⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atom_standard.cpp

📁 完整的RTP RTSP代码库
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    AddVersionAndFlags(); /* 0, 1 */    ExpectChildAtom("hdlr", Required, OnlyOne);    ExpectChildAtom("ilst", Required, OnlyOne);  } else if (ATOMID(type) == ATOMID("mfhd")) {    AddVersionAndFlags();	/* 0, 1 */    AddProperty( /* 2 */		new MP4Integer32Property("sequenceNumber"));  } else if (ATOMID(type) == ATOMID("minf")) {    ExpectChildAtom("vmhd", Optional, OnlyOne);    ExpectChildAtom("smhd", Optional, OnlyOne);    ExpectChildAtom("hmhd", Optional, OnlyOne);    ExpectChildAtom("nmhd", Optional, OnlyOne);    ExpectChildAtom("gmhd", Optional, OnlyOne);    ExpectChildAtom("dinf", Required, OnlyOne);    ExpectChildAtom("stbl", Required, OnlyOne);  } else if (ATOMID(type) == ATOMID("moof")) {    ExpectChildAtom("mfhd", Required, OnlyOne);    ExpectChildAtom("traf", Optional, Many);  } else if (ATOMID(type) == ATOMID("moov")) {    ExpectChildAtom("mvhd", Required, OnlyOne);    ExpectChildAtom("iods", Optional, OnlyOne);    ExpectChildAtom("trak", Required, Many);    ExpectChildAtom("udta", Optional, Many);    ExpectChildAtom("mvex", Optional, OnlyOne);  } else if (ATOMID(type) == ATOMID("mvex")) {    ExpectChildAtom("trex", Required, Many);  /*   * n???   */  } else if (ATOMID(type) == ATOMID("nmhd")) {    AddVersionAndFlags();  } else if (ATOMID(type) == ATOMID("nump")) {    AddProperty( // packets sent		new MP4Integer64Property("packets"));  /*    * o???    */  } else if (ATOMID(type) == ATOMID("odkm")) {    AddVersionAndFlags();    ExpectChildAtom("ohdr", Required, OnlyOne);  /*   * p???   */  } else if (ATOMID(type) == ATOMID("payt")) {    AddProperty(new MP4Integer32Property("payloadNumber"));    AddProperty(new MP4StringProperty("rtpMap", Counted));  } else if (ATOMID(type) == ATOMID("pinf")) {    ExpectChildAtom("frma", Required, OnlyOne);  } else if (ATOMID(type) == ATOMID("pmax")) {    AddProperty( // max packet size 		new MP4Integer32Property("bytes"));  } else if (ATOMID(type) == ATOMID("pgap") ||	     ATOMID(type) == ATOMID("plID") ||	     ATOMID(type) == ATOMID("purd") ||	     ATOMID(type) == ATOMID("rtng")) {    ExpectChildAtom("data", Required, OnlyOne);  /*   * s???   */  } else if (ATOMID(type) == ATOMID("schi")) {    // not sure if this is child atoms or table of boxes    // get clarification on spec 9.1.2.5    ExpectChildAtom("odkm", Optional, OnlyOne);    ExpectChildAtom("iKMS", Optional, OnlyOne);    ExpectChildAtom("iSFM", Optional, OnlyOne);  } else if (ATOMID(type) == ATOMID("schm")) {    AddVersionAndFlags(); /* 0, 1 */    AddProperty( /* 2 */                new MP4Integer32Property("scheme_type"));    AddProperty( /* 3 */	        new MP4Integer32Property("scheme_version"));    // browser URI if flags set, TODO  } else if (ATOMID(type) == ATOMID("sinf")) {    ExpectChildAtom("frma", Required, OnlyOne);    ExpectChildAtom("imif", Optional, OnlyOne);    ExpectChildAtom("schm", Optional, OnlyOne);    ExpectChildAtom("schi", Optional, OnlyOne);  } else if (ATOMID(type) == ATOMID("smhd")) {    AddVersionAndFlags();    AddReserved("reserved", 4);  } else if (ATOMID(type) == ATOMID("snro")) {    AddProperty(new MP4Integer32Property("offset"));  } else if (ATOMID(type) == ATOMID("stco")) {    AddVersionAndFlags();    MP4Integer32Property* pCount = new MP4Integer32Property("entryCount");     AddProperty(pCount);    MP4TableProperty* pTable = new MP4TableProperty("entries", pCount);    AddProperty(pTable);    pTable->AddProperty(new MP4Integer32Property("chunkOffset"));  } else if (ATOMID(type) == ATOMID("stsh")) {    AddVersionAndFlags();    MP4Integer32Property* pCount = new MP4Integer32Property("entryCount");     AddProperty(pCount);    MP4TableProperty* pTable = new MP4TableProperty("entries", pCount);    AddProperty(pTable);    pTable->AddProperty(new MP4Integer32Property("shadowedSampleNumber"));    pTable->AddProperty(new MP4Integer32Property("syncSampleNumber"));  } else if (ATOMID(type) == ATOMID("stss")) {    AddVersionAndFlags();    MP4Integer32Property* pCount = new MP4Integer32Property("entryCount");     AddProperty(pCount);    MP4TableProperty* pTable = new MP4TableProperty("entries", pCount);    AddProperty(pTable);    pTable->AddProperty(new MP4Integer32Property("sampleNumber"));  } else if (ATOMID(type) == ATOMID("stts")) {    AddVersionAndFlags();    MP4Integer32Property* pCount = new MP4Integer32Property("entryCount");     AddProperty(pCount);    MP4TableProperty* pTable = new MP4TableProperty("entries", pCount);    AddProperty(pTable);    pTable->AddProperty(new MP4Integer32Property("sampleCount"));    pTable->AddProperty(new MP4Integer32Property("sampleDelta"));  } else if (ATOMID(type) == ATOMID("sfID") ||	     ATOMID(type) == ATOMID("stik")) {    ExpectChildAtom("data", Required, OnlyOne);  /*   * t???   */  } else if (ATOMID(type) == ATOMID("tims")) {    AddProperty( 		new MP4Integer32Property("timeScale"));  } else if (ATOMID(type) == ATOMID("tmin")) {    AddProperty( // min relative xmit time		new MP4Integer32Property("milliSecs"));  } else if (ATOMID(type) == ATOMID("tmax")) {    AddProperty( // max relative xmit time		new MP4Integer32Property("milliSecs"));  } else if (ATOMID(type) == ATOMID("tmpo")) { // iTunes    ExpectChildAtom("data", Required, OnlyOne);  } else if (ATOMID(type) == ATOMID("traf")) {    ExpectChildAtom("tfhd", Required, OnlyOne);    ExpectChildAtom("trun", Optional, Many);  } else if (ATOMID(type) == ATOMID("trak")) {    ExpectChildAtom("tkhd", Required, OnlyOne);    ExpectChildAtom("tref", Optional, OnlyOne);    ExpectChildAtom("edts", Optional, OnlyOne);    ExpectChildAtom("mdia", Required, OnlyOne);    ExpectChildAtom("udta", Optional, Many);  } else if (ATOMID(type) == ATOMID("tref")) {    ExpectChildAtom("chap", Optional, OnlyOne);    ExpectChildAtom("dpnd", Optional, OnlyOne);    ExpectChildAtom("hint", Optional, OnlyOne);    ExpectChildAtom("ipir", Optional, OnlyOne);    ExpectChildAtom("mpod", Optional, OnlyOne);    ExpectChildAtom("sync", Optional, OnlyOne);  } else if (ATOMID(type) == ATOMID("trex")) {    AddVersionAndFlags();	/* 0, 1 */    AddProperty( /* 2 */		new MP4Integer32Property("trackId"));    AddProperty( /* 3 */		new MP4Integer32Property("defaultSampleDesriptionIndex"));    AddProperty( /* 4 */		new MP4Integer32Property("defaultSampleDuration"));    AddProperty( /* 5 */		new MP4Integer32Property("defaultSampleSize"));    AddProperty( /* 6 */		new MP4Integer32Property("defaultSampleFlags"));  } else if (ATOMID(type) == ATOMID("trkn")) { // iTunes    ExpectChildAtom("data", Required, OnlyOne);  } else if (ATOMID(type) == ATOMID("trpy") ||	     ATOMID(type) == ATOMID("tpyl")) {    AddProperty( // bytes sent including RTP headers		new MP4Integer64Property("bytes"));  } else if (ATOMID(type) == ATOMID("tsro")) {    AddProperty( 		new MP4Integer32Property("offset"));  } else if (ATOMID(type) == ATOMID("wave")) {    ExpectChildAtom("esds", Required, OnlyOne);  /*   * copyright???   */  } else if (ATOMID(type) == ATOMID(art) ||	     ATOMID(type) == ATOMID(wrt) ||	     ATOMID(type) == ATOMID(alb) ||	     ATOMID(type) == ATOMID(day) ||	     ATOMID(type) == ATOMID(too) ||	     ATOMID(type) == ATOMID(gen) ||	     ATOMID(type) == ATOMID(grp)) { /* Apple iTunes */    ExpectChildAtom("data", Required, OnlyOne);  /*   * ----    */  } else if (ATOMID(type) == ATOMID("----")) { /* Apple iTunes */    ExpectChildAtom("mean", Required, OnlyOne);    ExpectChildAtom("name", Required, OnlyOne);    ExpectChildAtom("data", Required, OnlyOne);  } else {  /*   * default - unknown type   */    SetUnknownType(true);  }  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -