diff --git a/docs/annotated.html b/docs/annotated.html index 4a3f23e6d3..77de723d3c 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -301,7 +301,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index 7e2508d7f4..087eb2c1bd 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index 12324b9dbb..f7f61b4caf 100644 --- a/docs/d0/d06/mpd__flags_8cc_source.html +++ b/docs/d0/d06/mpd__flags_8cc_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html index 23fa3f903a..3e87258d75 100644 --- a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html +++ b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/muxer__options_8h_source.html b/docs/d0/d0e/muxer__options_8h_source.html index 5938eb21d3..e5e1115431 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html index 94c227012c..3ab4cf264e 100644 --- a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html +++ b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html index ea2d0ca058..ffd09970ba 100644 --- a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html +++ b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html index 4d842f2705..ce9d64ee77 100644 --- a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html +++ b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html index 7e306d5eaf..558c8ad58d 100644 --- a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html +++ b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index ed4bfd2e97..571967a3f1 100644 --- a/docs/d0/d30/mock__mpd__notifier_8h_source.html +++ b/docs/d0/d30/mock__mpd__notifier_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d32/mp2t__common_8h_source.html b/docs/d0/d32/mp2t__common_8h_source.html index ae0a711436..f0627fbf11 100644 --- a/docs/d0/d32/mp2t__common_8h_source.html +++ b/docs/d0/d32/mp2t__common_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d35/es__descriptor_8cc_source.html b/docs/d0/d35/es__descriptor_8cc_source.html index 805f5fe631..99a7278c4a 100644 --- a/docs/d0/d35/es__descriptor_8cc_source.html +++ b/docs/d0/d35/es__descriptor_8cc_source.html @@ -282,7 +282,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html index f2e44760d5..4d6338a623 100644 --- a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/webm__constants_8h_source.html b/docs/d0/d3a/webm__constants_8h_source.html index 40a9191fcd..630144b62f 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -313,7 +313,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d42/widevine__encryption__flags_8cc_source.html b/docs/d0/d42/widevine__encryption__flags_8cc_source.html index c512ffcd19..c8bba2c8a2 100644 --- a/docs/d0/d42/widevine__encryption__flags_8cc_source.html +++ b/docs/d0/d42/widevine__encryption__flags_8cc_source.html @@ -243,7 +243,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d43/structedash__packager_1_1media_1_1H264SPS-members.html b/docs/d0/d43/structedash__packager_1_1media_1_1H264SPS-members.html index 7485208c85..c4f0a01fb9 100644 --- a/docs/d0/d43/structedash__packager_1_1media_1_1H264SPS-members.html +++ b/docs/d0/d43/structedash__packager_1_1media_1_1H264SPS-members.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d46/fourccs_8h_source.html b/docs/d0/d46/fourccs_8h_source.html index 3eda680722..ac1e3490f9 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -111,105 +111,111 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
22  FOURCC_DASH = 0x64617368,
23  FOURCC_DINF = 0x64696e66,
24  FOURCC_DREF = 0x64726566,
-
25  FOURCC_EAC3 = 0x65632d33,
-
26  FOURCC_EDTS = 0x65647473,
-
27  FOURCC_ELST = 0x656c7374,
-
28  FOURCC_ENCA = 0x656e6361,
-
29  FOURCC_ENCV = 0x656e6376,
-
30  FOURCC_ESDS = 0x65736473,
-
31  FOURCC_FREE = 0x66726565,
-
32  FOURCC_FRMA = 0x66726d61,
-
33  FOURCC_FTYP = 0x66747970,
-
34  FOURCC_HDLR = 0x68646c72,
-
35  FOURCC_HEV1 = 0x68657631,
-
36  FOURCC_HINT = 0x68696e74,
-
37  FOURCC_HVC1 = 0x68766331,
-
38  FOURCC_HVCC = 0x68766343,
-
39  FOURCC_ISO6 = 0x69736f36,
-
40  FOURCC_IODS = 0x696f6473,
-
41  FOURCC_MDAT = 0x6d646174,
-
42  FOURCC_MDHD = 0x6d646864,
-
43  FOURCC_MDIA = 0x6d646961,
-
44  FOURCC_MECO = 0x6d65636f,
-
45  FOURCC_MEHD = 0x6d656864,
-
46  FOURCC_META = 0x6d657461,
-
47  FOURCC_MFHD = 0x6d666864,
-
48  FOURCC_MFRA = 0x6d667261,
-
49  FOURCC_MINF = 0x6d696e66,
-
50  FOURCC_MOOF = 0x6d6f6f66,
-
51  FOURCC_MOOV = 0x6d6f6f76,
-
52  FOURCC_MP41 = 0x6d703431,
-
53  FOURCC_MP4A = 0x6d703461,
-
54  FOURCC_MP4V = 0x6d703476,
-
55  FOURCC_MVEX = 0x6d766578,
-
56  FOURCC_MVHD = 0x6d766864,
-
57  FOURCC_PASP = 0x70617370,
-
58  FOURCC_PDIN = 0x7064696e,
-
59  FOURCC_PRFT = 0x70726674,
-
60  FOURCC_PSSH = 0x70737368,
-
61  FOURCC_SAIO = 0x7361696f,
-
62  FOURCC_SAIZ = 0x7361697a,
-
63  FOURCC_SBGP = 0x73626770,
-
64  FOURCC_SCHI = 0x73636869,
-
65  FOURCC_SCHM = 0x7363686d,
-
66  FOURCC_SDTP = 0x73647470,
-
67  FOURCC_SEIG = 0x73656967,
-
68  FOURCC_SGPD = 0x73677064,
-
69  FOURCC_SIDX = 0x73696478,
-
70  FOURCC_SINF = 0x73696e66,
-
71  FOURCC_SKIP = 0x736b6970,
-
72  FOURCC_SMHD = 0x736d6864,
-
73  FOURCC_SOUN = 0x736f756e,
-
74  FOURCC_SSIX = 0x73736978,
-
75  FOURCC_STBL = 0x7374626c,
-
76  FOURCC_STCO = 0x7374636f,
-
77  FOURCC_STSC = 0x73747363,
-
78  FOURCC_STSD = 0x73747364,
-
79  FOURCC_STSS = 0x73747373,
-
80  FOURCC_STSZ = 0x7374737a,
-
81  FOURCC_STTS = 0x73747473,
-
82  FOURCC_STYP = 0x73747970,
-
83  FOURCC_STZ2 = 0x73747a32,
-
84  FOURCC_TENC = 0x74656e63,
-
85  FOURCC_TFDT = 0x74666474,
-
86  FOURCC_TFHD = 0x74666864,
-
87  FOURCC_TKHD = 0x746b6864,
-
88  FOURCC_TRAF = 0x74726166,
-
89  FOURCC_TRAK = 0x7472616b,
-
90  FOURCC_TREX = 0x74726578,
-
91  FOURCC_TRUN = 0x7472756e,
-
92  FOURCC_UDTA = 0x75647461,
-
93  FOURCC_URL = 0x75726c20,
-
94  FOURCC_URN = 0x75726e20,
-
95  FOURCC_UUID = 0x75756964,
-
96  FOURCC_VIDE = 0x76696465,
-
97  FOURCC_VMHD = 0x766d6864,
-
98  FOURCC_VP08 = 0x76703038,
-
99  FOURCC_VP09 = 0x76703039,
-
100  FOURCC_VP10 = 0x76703130,
-
101  FOURCC_VPCC = 0x76706343,
-
102  FOURCC_WIDE = 0x77696465,
-
103 };
-
104 
-
105 const inline std::string FourCCToString(FourCC fourcc) {
-
106  char buf[5];
-
107  buf[0] = (fourcc >> 24) & 0xff;
-
108  buf[1] = (fourcc >> 16) & 0xff;
-
109  buf[2] = (fourcc >> 8) & 0xff;
-
110  buf[3] = (fourcc) & 0xff;
-
111  buf[4] = 0;
-
112  return std::string(buf);
-
113 }
-
114 
-
115 } // namespace mp4
-
116 } // namespace media
-
117 } // namespace edash_packager
-
118 
-
119 #endif // MEDIA_FORMATS_MP4_FOURCCS_H_
+
25  FOURCC_DTSE = 0x64747365,
+
26  FOURCC_DTSC = 0x64747363,
+
27  FOURCC_DTSH = 0x64747368,
+
28  FOURCC_DTSL = 0x6474736c,
+
29  FOURCC_DTSP = 0x6474732b,
+
30  FOURCC_DTSM = 0x6474732d,
+
31  FOURCC_EAC3 = 0x65632d33,
+
32  FOURCC_EDTS = 0x65647473,
+
33  FOURCC_ELST = 0x656c7374,
+
34  FOURCC_ENCA = 0x656e6361,
+
35  FOURCC_ENCV = 0x656e6376,
+
36  FOURCC_ESDS = 0x65736473,
+
37  FOURCC_FREE = 0x66726565,
+
38  FOURCC_FRMA = 0x66726d61,
+
39  FOURCC_FTYP = 0x66747970,
+
40  FOURCC_HDLR = 0x68646c72,
+
41  FOURCC_HEV1 = 0x68657631,
+
42  FOURCC_HINT = 0x68696e74,
+
43  FOURCC_HVC1 = 0x68766331,
+
44  FOURCC_HVCC = 0x68766343,
+
45  FOURCC_ISO6 = 0x69736f36,
+
46  FOURCC_IODS = 0x696f6473,
+
47  FOURCC_MDAT = 0x6d646174,
+
48  FOURCC_MDHD = 0x6d646864,
+
49  FOURCC_MDIA = 0x6d646961,
+
50  FOURCC_MECO = 0x6d65636f,
+
51  FOURCC_MEHD = 0x6d656864,
+
52  FOURCC_META = 0x6d657461,
+
53  FOURCC_MFHD = 0x6d666864,
+
54  FOURCC_MFRA = 0x6d667261,
+
55  FOURCC_MINF = 0x6d696e66,
+
56  FOURCC_MOOF = 0x6d6f6f66,
+
57  FOURCC_MOOV = 0x6d6f6f76,
+
58  FOURCC_MP41 = 0x6d703431,
+
59  FOURCC_MP4A = 0x6d703461,
+
60  FOURCC_MP4V = 0x6d703476,
+
61  FOURCC_MVEX = 0x6d766578,
+
62  FOURCC_MVHD = 0x6d766864,
+
63  FOURCC_PASP = 0x70617370,
+
64  FOURCC_PDIN = 0x7064696e,
+
65  FOURCC_PRFT = 0x70726674,
+
66  FOURCC_PSSH = 0x70737368,
+
67  FOURCC_SAIO = 0x7361696f,
+
68  FOURCC_SAIZ = 0x7361697a,
+
69  FOURCC_SBGP = 0x73626770,
+
70  FOURCC_SCHI = 0x73636869,
+
71  FOURCC_SCHM = 0x7363686d,
+
72  FOURCC_SDTP = 0x73647470,
+
73  FOURCC_SEIG = 0x73656967,
+
74  FOURCC_SGPD = 0x73677064,
+
75  FOURCC_SIDX = 0x73696478,
+
76  FOURCC_SINF = 0x73696e66,
+
77  FOURCC_SKIP = 0x736b6970,
+
78  FOURCC_SMHD = 0x736d6864,
+
79  FOURCC_SOUN = 0x736f756e,
+
80  FOURCC_SSIX = 0x73736978,
+
81  FOURCC_STBL = 0x7374626c,
+
82  FOURCC_STCO = 0x7374636f,
+
83  FOURCC_STSC = 0x73747363,
+
84  FOURCC_STSD = 0x73747364,
+
85  FOURCC_STSS = 0x73747373,
+
86  FOURCC_STSZ = 0x7374737a,
+
87  FOURCC_STTS = 0x73747473,
+
88  FOURCC_STYP = 0x73747970,
+
89  FOURCC_STZ2 = 0x73747a32,
+
90  FOURCC_TENC = 0x74656e63,
+
91  FOURCC_TFDT = 0x74666474,
+
92  FOURCC_TFHD = 0x74666864,
+
93  FOURCC_TKHD = 0x746b6864,
+
94  FOURCC_TRAF = 0x74726166,
+
95  FOURCC_TRAK = 0x7472616b,
+
96  FOURCC_TREX = 0x74726578,
+
97  FOURCC_TRUN = 0x7472756e,
+
98  FOURCC_UDTA = 0x75647461,
+
99  FOURCC_URL = 0x75726c20,
+
100  FOURCC_URN = 0x75726e20,
+
101  FOURCC_UUID = 0x75756964,
+
102  FOURCC_VIDE = 0x76696465,
+
103  FOURCC_VMHD = 0x766d6864,
+
104  FOURCC_VP08 = 0x76703038,
+
105  FOURCC_VP09 = 0x76703039,
+
106  FOURCC_VP10 = 0x76703130,
+
107  FOURCC_VPCC = 0x76706343,
+
108  FOURCC_WIDE = 0x77696465,
+
109 };
+
110 
+
111 const inline std::string FourCCToString(FourCC fourcc) {
+
112  char buf[5];
+
113  buf[0] = (fourcc >> 24) & 0xff;
+
114  buf[1] = (fourcc >> 16) & 0xff;
+
115  buf[2] = (fourcc >> 8) & 0xff;
+
116  buf[3] = (fourcc) & 0xff;
+
117  buf[4] = 0;
+
118  return std::string(buf);
+
119 }
+
120 
+
121 } // namespace mp4
+
122 } // namespace media
+
123 } // namespace edash_packager
+
124 
+
125 #endif // MEDIA_FORMATS_MP4_FOURCCS_H_
diff --git a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html index 29da015608..eab4198db7 100644 --- a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html +++ b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html index 880a948a9d..9f1e515e0f 100644 --- a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html +++ b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4e/libcrypto__threading_8cc_source.html b/docs/d0/d4e/libcrypto__threading_8cc_source.html index 7fedc07dd6..56ac3de6d6 100644 --- a/docs/d0/d4e/libcrypto__threading_8cc_source.html +++ b/docs/d0/d4e/libcrypto__threading_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d66/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox-members.html b/docs/d0/d66/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox-members.html index bbc6b22b2a..1c72ec7ff0 100644 --- a/docs/d0/d66/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox-members.html +++ b/docs/d0/d66/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html index 8f3ed0c179..73a922f973 100644 --- a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html +++ b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d7d/decryptor__source_8h_source.html b/docs/d0/d7d/decryptor__source_8h_source.html index bc251d0070..a53f62d740 100644 --- a/docs/d0/d7d/decryptor__source_8h_source.html +++ b/docs/d0/d7d/decryptor__source_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html index 480a04560a..772f8d2efa 100644 --- a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html +++ b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html @@ -119,7 +119,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html index 6b32368cbe..3d48393729 100644 --- a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html +++ b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html @@ -143,7 +143,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 425 of file box_definitions.h.

+

Definition at line 426 of file box_definitions.h.

Member Function Documentation

@@ -169,7 +169,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1480 of file box_definitions.cc.

+

Definition at line 1493 of file box_definitions.cc.

@@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html index bec50c8a53..255547e6a3 100644 --- a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html +++ b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html index e1de32e745..76a7b86df2 100644 --- a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html +++ b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html @@ -123,7 +123,7 @@ std::vector< diff --git a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html index c47ae76b54..dbcad3442d 100644 --- a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html +++ b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da6/stream__descriptor_8cc_source.html b/docs/d0/da6/stream__descriptor_8cc_source.html index f01f824811..2be93685c8 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -229,7 +229,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html index 64ebdb2ebc..b482ec0d94 100644 --- a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html +++ b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html @@ -146,7 +146,7 @@ Public Member Functions diff --git a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html index 4e72b42c54..b0a38de02f 100644 --- a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html +++ b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html index 2e08fd896c..00a3cfa962 100644 --- a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html +++ b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html index 3dbaa49e66..2f52ae592e 100644 --- a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html +++ b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html index 5f0d6e328a..3a89ed9e37 100644 --- a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html +++ b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html index 768ef3b9e1..4553e69aa1 100644 --- a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html +++ b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html @@ -112,7 +112,7 @@ void operator() ( diff --git a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html index fb5ac5a2a8..a2c82c0a4d 100644 --- a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html +++ b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html index d562ed91cf..111bfed292 100644 --- a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html +++ b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html index 65c5b87c57..765b24b1ca 100644 --- a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html +++ b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html @@ -123,7 +123,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html index b33c5c47e4..3cf78a1d0b 100644 --- a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html +++ b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df3/packager__util_8cc_source.html b/docs/d0/df3/packager__util_8cc_source.html index 217485b284..4f80ac4165 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -315,7 +315,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html index 9a4a96264f..6e3294d0fd 100644 --- a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html +++ b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html index ebb8aa0ca6..3e2c110dc8 100644 --- a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html +++ b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html @@ -116,7 +116,7 @@ scoped_refptr< diff --git a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html index 13825cae5e..31108ad4e2 100644 --- a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html +++ b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d08/segmenter_8cc_source.html b/docs/d1/d08/segmenter_8cc_source.html index e89d318f9e..06786a7d0d 100644 --- a/docs/d1/d08/segmenter_8cc_source.html +++ b/docs/d1/d08/segmenter_8cc_source.html @@ -518,7 +518,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
429 } // namespace edash_packager
edash_packager::media::mp4::Fragmenter
Definition: fragmenter.h:29
edash_packager::media::KeySource::GetKey
virtual Status GetKey(TrackType track_type, EncryptionKey *key)
Definition: key_source.cc:46
-
edash_packager::media::mp4::SampleDescription
Definition: box_definitions.h:223
+
edash_packager::media::mp4::SampleDescription
Definition: box_definitions.h:224
edash_packager::media::MuxerOptions::fragment_duration
double fragment_duration
Definition: muxer_options.h:34
edash_packager::media::MuxerOptions::fragment_sap_aligned
bool fragment_sap_aligned
Definition: muxer_options.h:43
edash_packager::media::mp4::Segmenter::GetDuration
double GetDuration() const
Definition: segmenter.cc:324
@@ -544,7 +544,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d13/status_8h_source.html b/docs/d1/d13/status_8h_source.html index 7e2fca7998..c45f8824f2 100644 --- a/docs/d1/d13/status_8h_source.html +++ b/docs/d1/d13/status_8h_source.html @@ -240,7 +240,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html index ea72f0ac44..077ee708e5 100644 --- a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html +++ b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1d/muxer__flags_8cc_source.html b/docs/d1/d1d/muxer__flags_8cc_source.html index da0bb53c6c..cfc5dc3454 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index b18a64175b..e1b45aa977 100644 --- a/docs/d1/d27/key__fetcher_8h_source.html +++ b/docs/d1/d27/key__fetcher_8h_source.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html index ea8eb86b97..323e9443ad 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html index aa61f1482a..efade58441 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html index c7ff73a4ea..9f1a2085b1 100644 --- a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html +++ b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html index 82a704095d..9c006e03bd 100644 --- a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html +++ b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html @@ -175,7 +175,7 @@ Additional Inherited Members diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index f6354e40f5..0e67dd7181 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html index 1ad37bde3d..3ebacec2ef 100644 --- a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html +++ b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d3b/mpd__generator__flags_8h_source.html b/docs/d1/d3b/mpd__generator__flags_8h_source.html index a750d5f78d..25ae32c77a 100644 --- a/docs/d1/d3b/mpd__generator__flags_8h_source.html +++ b/docs/d1/d3b/mpd__generator__flags_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d45/decoding__time__iterator_8cc_source.html b/docs/d1/d45/decoding__time__iterator_8cc_source.html index 3f4e687fe5..733af125ab 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -163,12 +163,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
edash_packager::media::mp4::DecodingTimeIterator::IsValid
bool IsValid() const
Definition: decoding_time_iterator.cc:35
edash_packager::media::mp4::DecodingTimeIterator::AdvanceSample
bool AdvanceSample()
Definition: decoding_time_iterator.cc:24
edash_packager::media::mp4::DecodingTimeIterator::NumSamples
uint32_t NumSamples() const
Definition: decoding_time_iterator.cc:61
-
edash_packager::media::mp4::DecodingTimeToSample
Definition: box_definitions.h:237
+
edash_packager::media::mp4::DecodingTimeToSample
Definition: box_definitions.h:238
edash_packager::media::mp4::DecodingTimeIterator::Duration
uint64_t Duration(uint32_t start_sample, uint32_t end_sample) const
Definition: decoding_time_iterator.cc:40
diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index c6f0c3c198..2f4d4ad145 100644 --- a/docs/d1/d48/text__track__config_8h_source.html +++ b/docs/d1/d48/text__track__config_8h_source.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html index aae953ae54..e1d6902d5e 100644 --- a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html +++ b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html @@ -145,7 +145,7 @@ static const int kPacketSi diff --git a/docs/d1/d4d/h264__bit__reader_8cc_source.html b/docs/d1/d4d/h264__bit__reader_8cc_source.html index f41eb075e6..9566d2989c 100644 --- a/docs/d1/d4d/h264__bit__reader_8cc_source.html +++ b/docs/d1/d4d/h264__bit__reader_8cc_source.html @@ -205,7 +205,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html index 80e1dc3a3a..a67ce52fa5 100644 --- a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html +++ b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html @@ -127,7 +127,7 @@ double suggested_presentat diff --git a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html index 867cada5dc..dfad130a87 100644 --- a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html +++ b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html @@ -149,7 +149,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 497 of file box_definitions.h.

+

Definition at line 498 of file box_definitions.h.

Member Function Documentation

@@ -175,7 +175,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1710 of file box_definitions.cc.

+

Definition at line 1723 of file box_definitions.cc.

@@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d1/d72/language__utils_8cc_source.html b/docs/d1/d72/language__utils_8cc_source.html index a96f001be4..47837ce802 100644 --- a/docs/d1/d72/language__utils_8cc_source.html +++ b/docs/d1/d72/language__utils_8cc_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html index bed4f3cf37..c75b01d5ba 100644 --- a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html +++ b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html @@ -101,20 +101,21 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); ComputeSize() overrideedash_packager::media::mp4::AudioSampleEntryvirtual data_reference_index (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry esds (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - format (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - GetActualFormat() const (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntryinline - Parse(BoxReader *reader)edash_packager::media::mp4::Box - ReadWrite(BoxBuffer *buffer) overrideedash_packager::media::mp4::AudioSampleEntryvirtual - samplerate (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - samplesize (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - sinf (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - Write(BufferWriter *writer)edash_packager::media::mp4::Box - ~AudioSampleEntry() override (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry - ~Box() (defined in edash_packager::media::mp4::Box)edash_packager::media::mp4::Boxvirtual + extra_data (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + format (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + GetActualFormat() const (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntryinline + Parse(BoxReader *reader)edash_packager::media::mp4::Box + ReadWrite(BoxBuffer *buffer) overrideedash_packager::media::mp4::AudioSampleEntryvirtual + samplerate (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + samplesize (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + sinf (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + Write(BufferWriter *writer)edash_packager::media::mp4::Box + ~AudioSampleEntry() override (defined in edash_packager::media::mp4::AudioSampleEntry)edash_packager::media::mp4::AudioSampleEntry + ~Box() (defined in edash_packager::media::mp4::Box)edash_packager::media::mp4::Boxvirtual diff --git a/docs/d1/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index eacef0c982..ea3c0dceac 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -528,7 +528,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html index 138a5340f9..35620b0cb4 100644 --- a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html +++ b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html index 761c7e72ff..33d081eb14 100644 --- a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html +++ b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html @@ -176,7 +176,7 @@ base::Clock * clock () diff --git a/docs/d1/d7d/webm__video__client_8cc_source.html b/docs/d1/d7d/webm__video__client_8cc_source.html index 90281ca633..7a15a15360 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -285,7 +285,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html index 156537754c..289b7cca61 100644 --- a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html +++ b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html index d0bb8257f2..2ed520100a 100644 --- a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html +++ b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html @@ -155,7 +155,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 564 of file box_definitions.h.

+

Definition at line 565 of file box_definitions.h.

Member Function Documentation

@@ -181,7 +181,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1934 of file box_definitions.cc.

+

Definition at line 1947 of file box_definitions.cc.

@@ -192,7 +192,7 @@ Additional Inherited Members diff --git a/docs/d1/d82/adts__constants_8h_source.html b/docs/d1/d82/adts__constants_8h_source.html index f249363235..7a53a453cc 100644 --- a/docs/d1/d82/adts__constants_8h_source.html +++ b/docs/d1/d82/adts__constants_8h_source.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html index da7280c386..602e620f31 100644 --- a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html +++ b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html @@ -218,7 +218,7 @@ Static Public Member Functions diff --git a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html index 8f7fd3b8d3..d0b6d72e74 100644 --- a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html +++ b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d8e/webm__audio__client_8cc_source.html b/docs/d1/d8e/webm__audio__client_8cc_source.html index 5525f57cbb..1263796035 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -204,14 +204,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
115 
116 } // namespace media
117 } // namespace edash_packager
-
Holds audio stream information.
+
Holds audio stream information.
void Reset()
Reset this object's state so it can process a new audio track element.
-
static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
+
static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
scoped_refptr< AudioStreamInfo > GetAudioStreamInfo(int64_t track_num, const std::string &codec_id, const std::vector< uint8_t > &codec_private, const std::string &language, bool is_encrypted)
diff --git a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html index 8e5c60d5b4..95cb1dd2ba 100644 --- a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html +++ b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html @@ -242,7 +242,7 @@ false if max_offset > diff --git a/docs/d1/d9d/tracks__builder_8h_source.html b/docs/d1/d9d/tracks__builder_8h_source.html index 99dc6d2352..6534fb320e 100644 --- a/docs/d1/d9d/tracks__builder_8h_source.html +++ b/docs/d1/d9d/tracks__builder_8h_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html index eb7420c0d2..18043d1085 100644 --- a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html +++ b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc8/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox.html b/docs/d1/dc8/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox.html index 1cae959123..6337a4206c 100644 --- a/docs/d1/dc8/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox.html +++ b/docs/d1/dc8/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatioBox.html @@ -175,7 +175,7 @@ Additional Inherited Members diff --git a/docs/d1/dcb/encrypting__fragmenter_8h_source.html b/docs/d1/dcb/encrypting__fragmenter_8h_source.html index eb95e01233..c8666e8fbd 100644 --- a/docs/d1/dcb/encrypting__fragmenter_8h_source.html +++ b/docs/d1/dcb/encrypting__fragmenter_8h_source.html @@ -164,14 +164,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
Status AddSample(scoped_refptr< MediaSample > sample) override
void FinalizeFragment() override
Finalize and optimize the fragment.
- +
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
EncryptingFragmenter(TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, uint8_t nalu_length_size)
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
diff --git a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html index 9a2658569b..c765ce251c 100644 --- a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html +++ b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html @@ -181,7 +181,7 @@ Additional Inherited Members diff --git a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html index aed02b7dbf..7eacde7b4b 100644 --- a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html +++ b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html index 87aaa1b8ea..259586b3de 100644 --- a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html @@ -156,7 +156,7 @@ Protected Member Functions diff --git a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html index d5edd935d7..287b7ac9ee 100644 --- a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html +++ b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de2/composition__offset__iterator_8cc_source.html b/docs/d1/de2/composition__offset__iterator_8cc_source.html index 09f7681ee1..fd22f9e4a1 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -153,13 +153,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
CompositionOffsetIterator(const CompositionTimeToSample &composition_time_to_sample)
Create CompositionOffsetIterator from composition time to sample box.
- + diff --git a/docs/d1/df0/aes__encryptor_8h_source.html b/docs/d1/df0/aes__encryptor_8h_source.html index 1d7094d8a0..bcdd6f3750 100644 --- a/docs/d1/df0/aes__encryptor_8h_source.html +++ b/docs/d1/df0/aes__encryptor_8h_source.html @@ -305,7 +305,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df1/multi__segment__segmenter_8cc_source.html b/docs/d1/df1/multi__segment__segmenter_8cc_source.html index 621147ef01..3cfdb90132 100644 --- a/docs/d1/df1/multi__segment__segmenter_8cc_source.html +++ b/docs/d1/df1/multi__segment__segmenter_8cc_source.html @@ -303,7 +303,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html index 37b2d8105d..c9a6a55cc5 100644 --- a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html +++ b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d02/timestamp_8h_source.html b/docs/d2/d02/timestamp_8h_source.html index 5f90d315a3..63319b2d62 100644 --- a/docs/d2/d02/timestamp_8h_source.html +++ b/docs/d2/d02/timestamp_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html index cc1ac617bf..1c329050bc 100644 --- a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html +++ b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d17/ts__section__pat_8cc_source.html b/docs/d2/d17/ts__section__pat_8cc_source.html index d4d85dc251..c505ac1eed 100644 --- a/docs/d2/d17/ts__section__pat_8cc_source.html +++ b/docs/d2/d17/ts__section__pat_8cc_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d23/threaded__io__file_8cc_source.html b/docs/d2/d23/threaded__io__file_8cc_source.html index 21fe3ef8ca..abde7428ab 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -279,7 +279,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d24/packager__util_8h_source.html b/docs/d2/d24/packager__util_8h_source.html index 56987dc175..858d0570f4 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html index a768f8fce9..dd417d3d48 100644 --- a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html +++ b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html @@ -147,7 +147,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 514 of file box_definitions.h.

+

Definition at line 515 of file box_definitions.h.

Member Function Documentation

@@ -173,7 +173,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1791 of file box_definitions.cc.

+

Definition at line 1804 of file box_definitions.cc.

@@ -184,7 +184,7 @@ Additional Inherited Members diff --git a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html index 05fc5967b4..b17c759196 100644 --- a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html +++ b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index 20517400cc..671d841bb2 100644 --- a/docs/d2/d30/tracks__builder_8cc_source.html +++ b/docs/d2/d30/tracks__builder_8cc_source.html @@ -487,7 +487,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html index 693e05be9c..e1413da7cc 100644 --- a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html +++ b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html index 297d912d06..d75c15274c 100644 --- a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html +++ b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4d/file_8h_source.html b/docs/d2/d4d/file_8h_source.html index e8ac49628f..eb841c10d1 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html index abd80ca3c2..62cfbf932a 100644 --- a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html +++ b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html @@ -121,7 +121,7 @@ int max_long_term_frame_id diff --git a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html index 8458664cc2..6251c0ca69 100644 --- a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html +++ b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html index 2c5d67955b..778d9e79fa 100644 --- a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html +++ b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html index b7b147f2b3..d0651a229c 100644 --- a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html +++ b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d62/simple__mpd__notifier_8h_source.html b/docs/d2/d62/simple__mpd__notifier_8h_source.html index b523dfe32f..3f61268c7e 100644 --- a/docs/d2/d62/simple__mpd__notifier_8h_source.html +++ b/docs/d2/d62/simple__mpd__notifier_8h_source.html @@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d6f/classBandwidthEstimator.html b/docs/d2/d6f/classBandwidthEstimator.html index 3b990bf66c..08b645ec53 100644 --- a/docs/d2/d6f/classBandwidthEstimator.html +++ b/docs/d2/d6f/classBandwidthEstimator.html @@ -151,7 +151,7 @@ static const int kUseAllBl diff --git a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html index 63657b641e..e2a8ea3940 100644 --- a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html +++ b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html @@ -172,7 +172,7 @@ Additional Inherited Members diff --git a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html index aaac43b977..7ea7ccb4ca 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -242,7 +242,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d7e/aac__audio__specific__config_8h_source.html b/docs/d2/d7e/aac__audio__specific__config_8h_source.html index c03ef527cb..ac64f19a74 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html index 6c81f4fb40..f2669fbc70 100644 --- a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html +++ b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html @@ -302,7 +302,7 @@ static const diff --git a/docs/d2/d92/box__reader_8h_source.html b/docs/d2/d92/box__reader_8h_source.html index 577d4cb181..f8d1dd04a6 100644 --- a/docs/d2/d92/box__reader_8h_source.html +++ b/docs/d2/d92/box__reader_8h_source.html @@ -249,7 +249,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d98/avc__decoder__configuration_8h_source.html b/docs/d2/d98/avc__decoder__configuration_8h_source.html index 57935ed6a5..efc06ff0dc 100644 --- a/docs/d2/d98/avc__decoder__configuration_8h_source.html +++ b/docs/d2/d98/avc__decoder__configuration_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index bfc57b2300..b5b73c100b 100644 --- a/docs/d2/da6/threaded__io__file_8h_source.html +++ b/docs/d2/da6/threaded__io__file_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html index ba4e5b5937..3539449588 100644 --- a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html +++ b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html @@ -146,7 +146,7 @@ bool is_encrypted diff --git a/docs/d2/dda/vp__codec__configuration_8cc_source.html b/docs/d2/dda/vp__codec__configuration_8cc_source.html index be79161547..cb725d7e5c 100644 --- a/docs/d2/dda/vp__codec__configuration_8cc_source.html +++ b/docs/d2/dda/vp__codec__configuration_8cc_source.html @@ -217,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/de6/packager__main_8cc_source.html b/docs/d2/de6/packager__main_8cc_source.html index db0bf07ff2..0f793911a6 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -536,7 +536,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/deb/es__parser_8h_source.html b/docs/d2/deb/es__parser_8h_source.html index 8cfc5a407d..6e6b611c1b 100644 --- a/docs/d2/deb/es__parser_8h_source.html +++ b/docs/d2/deb/es__parser_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html index 2352efe816..0d100551a3 100644 --- a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html +++ b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html index 0bcd6a27ef..51d4249dbe 100644 --- a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html +++ b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html @@ -195,7 +195,7 @@ Public Member Functions diff --git a/docs/d2/dfd/adts__header_8h_source.html b/docs/d2/dfd/adts__header_8h_source.html index 2ac2f066eb..19b26a53db 100644 --- a/docs/d2/dfd/adts__header_8h_source.html +++ b/docs/d2/dfd/adts__header_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html index 1e37036f10..eb95459ab5 100644 --- a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html +++ b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html @@ -225,7 +225,7 @@ const scoped_refptr< diff --git a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html index 397bad15da..4c473433a8 100644 --- a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html +++ b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html index 88e5996bb2..3d4ae3d8cf 100644 --- a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html +++ b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html index 034ed035f9..8bfb051eb2 100644 --- a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html +++ b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html @@ -234,7 +234,7 @@ Additional Inherited Members diff --git a/docs/d3/d15/udp__file__win_8cc_source.html b/docs/d3/d15/udp__file__win_8cc_source.html index ab18b42eb5..29ca7c8b05 100644 --- a/docs/d3/d15/udp__file__win_8cc_source.html +++ b/docs/d3/d15/udp__file__win_8cc_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d19/io__cache_8h_source.html b/docs/d3/d19/io__cache_8h_source.html index f5e06369cf..fdeb82f843 100644 --- a/docs/d3/d19/io__cache_8h_source.html +++ b/docs/d3/d19/io__cache_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html index 5b3d532c2b..54a32fd229 100644 --- a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html +++ b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html @@ -155,7 +155,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 399 of file box_definitions.h.

+

Definition at line 400 of file box_definitions.h.

Member Function Documentation

@@ -181,7 +181,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1400 of file box_definitions.cc.

+

Definition at line 1413 of file box_definitions.cc.

@@ -192,7 +192,7 @@ Additional Inherited Members diff --git a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html index 633c06be34..e88b2680d7 100644 --- a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html +++ b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d37/single__segment__segmenter_8cc_source.html b/docs/d3/d37/single__segment__segmenter_8cc_source.html index 037e69adf8..2df2803219 100644 --- a/docs/d3/d37/single__segment__segmenter_8cc_source.html +++ b/docs/d3/d37/single__segment__segmenter_8cc_source.html @@ -329,7 +329,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
static bool Delete(const char *file_name)
Definition: file.cc:138
virtual bool Open()=0
Internal open. Should not be used directly.
- +
bool GetIndexRange(size_t *offset, size_t *size) override
@@ -341,7 +341,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html index 1b0486f290..085e4853f6 100644 --- a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html @@ -311,7 +311,7 @@ KeyFetcher implementation overrides. diff --git a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html index 27431f3b07..6f55d994d3 100644 --- a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html +++ b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html index e052998f45..00c44b50a0 100644 --- a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html +++ b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d56/decrypt__config_8cc_source.html b/docs/d3/d56/decrypt__config_8cc_source.html index b2342b42fa..385b9aec85 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d62/rcheck_8h_source.html b/docs/d3/d62/rcheck_8h_source.html index 8d2ee34fd8..35e7ff0f6b 100644 --- a/docs/d3/d62/rcheck_8h_source.html +++ b/docs/d3/d62/rcheck_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html index 3a074b8448..4d47b186de 100644 --- a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html +++ b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html @@ -125,7 +125,7 @@ scoped_ptr< diff --git a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html index 9cef5af443..5d364ff5dd 100644 --- a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html +++ b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html @@ -297,7 +297,7 @@ void  diff --git a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html index 6505929b7a..b8add365cb 100644 --- a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html +++ b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html @@ -149,7 +149,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 223 of file box_definitions.h.

+

Definition at line 224 of file box_definitions.h.

Member Function Documentation

@@ -186,7 +186,7 @@ Additional Inherited Members
diff --git a/docs/d3/d76/muxer__flags_8h_source.html b/docs/d3/d76/muxer__flags_8h_source.html index 17d05443e7..3874db3737 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html index 9de0c2709c..4817a4880e 100644 --- a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html +++ b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html @@ -153,7 +153,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 307 of file box_definitions.h.

+

Definition at line 308 of file box_definitions.h.

Member Function Documentation

@@ -190,7 +190,7 @@ Additional Inherited Members
diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index f696d99aec..f822a01653 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html index fd3b4ba9cb..c1dd25cadd 100644 --- a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html +++ b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8d/webm__audio__client_8h_source.html b/docs/d3/d8d/webm__audio__client_8h_source.html index ef21903aae..4772d621d1 100644 --- a/docs/d3/d8d/webm__audio__client_8h_source.html +++ b/docs/d3/d8d/webm__audio__client_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html index 80144fab57..b570995561 100644 --- a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html +++ b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html index e2388eca1f..34e93760ab 100644 --- a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html +++ b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/db6/cenc_8cc_source.html b/docs/d3/db6/cenc_8cc_source.html index 0f89b87ff0..28fb6fe580 100644 --- a/docs/d3/db6/cenc_8cc_source.html +++ b/docs/d3/db6/cenc_8cc_source.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/db6/webm__parser_8cc_source.html b/docs/d3/db6/webm__parser_8cc_source.html index 13204c833c..cc56138e0c 100644 --- a/docs/d3/db6/webm__parser_8cc_source.html +++ b/docs/d3/db6/webm__parser_8cc_source.html @@ -1068,7 +1068,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html index 49f0dde8a0..3b5c71682b 100644 --- a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html +++ b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html @@ -124,7 +124,7 @@ int chroma_offset [32] diff --git a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html index 4354d7ab79..6ca687de11 100644 --- a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html +++ b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html index b5bdd3bfdf..6527057921 100644 --- a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html +++ b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbe/demuxer_8cc_source.html b/docs/d3/dbe/demuxer_8cc_source.html index 3edffbfe76..0430397206 100644 --- a/docs/d3/dbe/demuxer_8cc_source.html +++ b/docs/d3/dbe/demuxer_8cc_source.html @@ -306,7 +306,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html index f9e7120188..f1e5eee2eb 100644 --- a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html +++ b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html index 1a5e97b18d..cde10d498e 100644 --- a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html +++ b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html index a962c3b387..ce493fdbc3 100644 --- a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html +++ b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html index 815a152ac4..bbc70e976d 100644 --- a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html +++ b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html @@ -141,7 +141,7 @@ Additional Inherited Members

Detailed Description

-

Definition at line 385 of file box_definitions.h.

+

Definition at line 386 of file box_definitions.h.

Member Function Documentation

@@ -167,7 +167,7 @@ Additional Inherited Members

Implements edash_packager::media::mp4::Box.

-

Definition at line 1354 of file box_definitions.cc.

+

Definition at line 1367 of file box_definitions.cc.

@@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html index 1c4a123045..10fb770676 100644 --- a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html +++ b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html @@ -130,7 +130,7 @@ uint64_t file_size diff --git a/docs/d3/df1/box__reader_8cc_source.html b/docs/d3/df1/box__reader_8cc_source.html index 384fa8f3ea..181c9a77ca 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -295,7 +295,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html index 1c7c16d68c..b6fd701c44 100644 --- a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html +++ b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html @@ -381,7 +381,7 @@ class DynamicMpdBuilderTes diff --git a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html index f93f139730..c691169e9c 100644 --- a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html index d6aee613e4..f1e5c5d4f0 100644 --- a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html +++ b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html index 518bbcf9ac..37be828f20 100644 --- a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html +++ b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html @@ -330,7 +330,7 @@ class MediaStream diff --git a/docs/d4/d2e/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo-members.html b/docs/d4/d2e/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo-members.html index ee55e06825..c39bff87f5 100644 --- a/docs/d4/d2e/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo-members.html +++ b/docs/d4/d2e/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d37/io__cache_8cc_source.html b/docs/d4/d37/io__cache_8cc_source.html index 1210e04975..e32c5141ee 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -253,7 +253,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html index af365b7985..a431c3452f 100644 --- a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html +++ b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/d4/d55/classedash__packager_1_1media_1_1H264BitReader.html b/docs/d4/d55/classedash__packager_1_1media_1_1H264BitReader.html index 795eeb60bf..ffcf3f2f3c 100644 --- a/docs/d4/d55/classedash__packager_1_1media_1_1H264BitReader.html +++ b/docs/d4/d55/classedash__packager_1_1media_1_1H264BitReader.html @@ -122,7 +122,7 @@ size_t NumEmulationPrevent diff --git a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html index 631723642d..caaac16e3f 100644 --- a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html +++ b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html index 711f4fb402..1abcab1ecf 100644 --- a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html +++ b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html index 810b60247a..c44e078513 100644 --- a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html +++ b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html @@ -235,7 +235,7 @@ Public Member Functions diff --git a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html index 408d911d91..ea66048c4a 100644 --- a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html +++ b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html @@ -115,7 +115,7 @@ uint32_t data_size

Detailed Description

-

Definition at line 576 of file box_definitions.h.

+

Definition at line 577 of file box_definitions.h.


The documentation for this struct was generated from the following files:
  • media/formats/mp4/box_definitions.h
  • media/formats/mp4/box_definitions.cc
  • @@ -123,7 +123,7 @@ uint32_t data_size diff --git a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html index 98ab3cff3e..b6c1d173e0 100644 --- a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html +++ b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html @@ -127,7 +127,7 @@ union { diff --git a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html index 11c8491fdf..a089396109 100644 --- a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html +++ b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html index b8d599c802..fa8904536f 100644 --- a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html +++ b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html @@ -183,7 +183,7 @@ static const size_t  diff --git a/docs/d4/da4/classedash__packager_1_1media_1_1AesCbcCtsEncryptor-members.html b/docs/d4/da4/classedash__packager_1_1media_1_1AesCbcCtsEncryptor-members.html index 8d6fca9c7e..3730fb75ff 100644 --- a/docs/d4/da4/classedash__packager_1_1media_1_1AesCbcCtsEncryptor-members.html +++ b/docs/d4/da4/classedash__packager_1_1media_1_1AesCbcCtsEncryptor-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/db2/cluster__builder_8h_source.html b/docs/d4/db2/cluster__builder_8h_source.html index b660d1a0af..f46c39ce43 100644 --- a/docs/d4/db2/cluster__builder_8h_source.html +++ b/docs/d4/db2/cluster__builder_8h_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html index e955de47e1..2b24481ef6 100644 --- a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html +++ b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html @@ -118,7 +118,7 @@ int changing_slice_group_i diff --git a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html index 3c7632daa5..17b96fc53f 100644 --- a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html +++ b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html index 149ebd34cb..3f90eec1a1 100644 --- a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html +++ b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html index 50b88067a2..efd81f749a 100644 --- a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html +++ b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html index 26b36660d0..da7f53b223 100644 --- a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html +++ b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html @@ -136,14 +136,14 @@ uint64_t earliest_presenta

    Detailed Description

    -

    Definition at line 542 of file box_definitions.h.

    +

    Definition at line 543 of file box_definitions.h.


    The documentation for this struct was generated from the following file: diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index 96ec0deaf5..b969d0506a 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -158,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dd4/segmenter_8h_source.html b/docs/d4/dd4/segmenter_8h_source.html index ba6791bbe1..cbef47c11c 100644 --- a/docs/d4/dd4/segmenter_8h_source.html +++ b/docs/d4/dd4/segmenter_8h_source.html @@ -223,7 +223,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html index e6cd0fed31..539722896b 100644 --- a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html +++ b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html @@ -156,7 +156,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 521 of file box_definitions.h.

    +

    Definition at line 522 of file box_definitions.h.

    Member Function Documentation

    @@ -182,7 +182,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1844 of file box_definitions.cc.

    +

    Definition at line 1857 of file box_definitions.cc.

    @@ -193,7 +193,7 @@ Additional Inherited Members diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index e343aea218..bdb8378d3d 100644 --- a/docs/d4/dde/webvtt__util_8h_source.html +++ b/docs/d4/dde/webvtt__util_8h_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html index 80112e36dd..05bcc5ab6c 100644 --- a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html +++ b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html @@ -115,7 +115,7 @@ uint32_t cipher_bytes< diff --git a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html index 94f0b1f65f..ec6c10f1c7 100644 --- a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html +++ b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html @@ -225,7 +225,7 @@ Public Member Functions diff --git a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html index 4b11d674a6..77ca9e068d 100644 --- a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html +++ b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df5/request__signer_8cc_source.html b/docs/d4/df5/request__signer_8cc_source.html index 178dcd4950..e6facf5369 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html index 822bb5650e..d4db2fbcb8 100644 --- a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html +++ b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dff/webm__media__parser_8cc_source.html b/docs/d4/dff/webm__media__parser_8cc_source.html index 9423d13415..ad8043b409 100644 --- a/docs/d4/dff/webm__media__parser_8cc_source.html +++ b/docs/d4/dff/webm__media__parser_8cc_source.html @@ -332,7 +332,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html index 42e65fcd51..aaa5367b3f 100644 --- a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html +++ b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html @@ -501,7 +501,7 @@ template<class T > diff --git a/docs/d5/d15/producer__consumer__queue_8h_source.html b/docs/d5/d15/producer__consumer__queue_8h_source.html index 8fe1bceb12..585afc38ac 100644 --- a/docs/d5/d15/producer__consumer__queue_8h_source.html +++ b/docs/d5/d15/producer__consumer__queue_8h_source.html @@ -374,7 +374,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d18/structedash__packager_1_1media_1_1H264NALU-members.html b/docs/d5/d18/structedash__packager_1_1media_1_1H264NALU-members.html index 226ef9ace5..cd8cf7e001 100644 --- a/docs/d5/d18/structedash__packager_1_1media_1_1H264NALU-members.html +++ b/docs/d5/d18/structedash__packager_1_1media_1_1H264NALU-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1a/ts__section_8h_source.html b/docs/d5/d1a/ts__section_8h_source.html index ea3c10a76f..0436724e38 100644 --- a/docs/d5/d1a/ts__section_8h_source.html +++ b/docs/d5/d1a/ts__section_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html index eba1083bad..4108565ea6 100644 --- a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html +++ b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html index bacc7605c4..d2af1fd469 100644 --- a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html +++ b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d27/key__fetcher_8cc_source.html b/docs/d5/d27/key__fetcher_8cc_source.html index 695a6304df..003957b204 100644 --- a/docs/d5/d27/key__fetcher_8cc_source.html +++ b/docs/d5/d27/key__fetcher_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html index 8bd0b93221..f2dccb4d39 100644 --- a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -192,7 +192,7 @@ static const size_t kUnitS diff --git a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html index 9e62507188..e77791eda5 100644 --- a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html +++ b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html @@ -232,7 +232,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html index 0f97569d2e..deefecf026 100644 --- a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html +++ b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4d/box_8cc_source.html b/docs/d5/d4d/box_8cc_source.html index d356ae496f..c21a0debc0 100644 --- a/docs/d5/d4d/box_8cc_source.html +++ b/docs/d5/d4d/box_8cc_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d52/ts__section__pes_8h_source.html b/docs/d5/d52/ts__section__pes_8h_source.html index 57602d50e6..e9dcba9ddd 100644 --- a/docs/d5/d52/ts__section__pes_8h_source.html +++ b/docs/d5/d52/ts__section__pes_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html index 0f9487a15c..7c8b770648 100644 --- a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html +++ b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html index 96879bc014..5ebf09d230 100644 --- a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html +++ b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html @@ -224,7 +224,7 @@ Static Public Member Functions diff --git a/docs/d5/d63/network__util_8cc_source.html b/docs/d5/d63/network__util_8cc_source.html index f40eefd7f0..79b33bfc80 100644 --- a/docs/d5/d63/network__util_8cc_source.html +++ b/docs/d5/d63/network__util_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html index 22ac5d9491..1eb9c20ad5 100644 --- a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html +++ b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index 66726ad9c6..eef8569610 100644 --- a/docs/d5/d6f/vlog__flags_8cc_source.html +++ b/docs/d5/d6f/vlog__flags_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d73/vp__codec__configuration_8h_source.html b/docs/d5/d73/vp__codec__configuration_8h_source.html index 1af1cea3f7..ddcaeeeba8 100644 --- a/docs/d5/d73/vp__codec__configuration_8h_source.html +++ b/docs/d5/d73/vp__codec__configuration_8h_source.html @@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d7a/structedash__packager_1_1Element.html b/docs/d5/d7a/structedash__packager_1_1Element.html index b3e0817b58..f589aeaac1 100644 --- a/docs/d5/d7a/structedash__packager_1_1Element.html +++ b/docs/d5/d7a/structedash__packager_1_1Element.html @@ -120,7 +120,7 @@ std::vector< diff --git a/docs/d5/d7b/box__definitions_8h_source.html b/docs/d5/d7b/box__definitions_8h_source.html index 391c087ede..ec8bc98971 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -307,447 +307,448 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    218 
    -
    221 };
    -
    222 
    - -
    224  DECLARE_BOX_METHODS(SampleDescription);
    -
    225 
    -
    226  TrackType type;
    -
    227  std::vector<VideoSampleEntry> video_entries;
    -
    228  std::vector<AudioSampleEntry> audio_entries;
    -
    229 };
    -
    230 
    -
    231 struct DecodingTime {
    -
    232  uint32_t sample_count;
    -
    233  uint32_t sample_delta;
    -
    234 };
    -
    235 
    -
    236 // stts.
    - -
    238  DECLARE_BOX_METHODS(DecodingTimeToSample);
    -
    239 
    -
    240  std::vector<DecodingTime> decoding_time;
    -
    241 };
    -
    242 
    - -
    244  uint32_t sample_count;
    -
    245  // If version == 0, sample_offset is uint32_t;
    -
    246  // If version == 1, sample_offset is int32_t.
    -
    247  // Use int64_t so both can be supported properly.
    -
    248  int64_t sample_offset;
    -
    249 };
    -
    250 
    -
    251 // ctts. Optional.
    - -
    253  DECLARE_BOX_METHODS(CompositionTimeToSample);
    -
    254 
    -
    255  std::vector<CompositionOffset> composition_offset;
    -
    256 };
    -
    257 
    -
    258 struct ChunkInfo {
    -
    259  uint32_t first_chunk;
    -
    260  uint32_t samples_per_chunk;
    -
    261  uint32_t sample_description_index;
    -
    262 };
    -
    263 
    -
    264 // stsc.
    - -
    266  DECLARE_BOX_METHODS(SampleToChunk);
    -
    267 
    -
    268  std::vector<ChunkInfo> chunk_info;
    -
    269 };
    -
    270 
    -
    271 // stsz.
    -
    272 struct SampleSize : FullBox {
    -
    273  DECLARE_BOX_METHODS(SampleSize);
    -
    274 
    -
    275  uint32_t sample_size;
    -
    276  uint32_t sample_count;
    -
    277  std::vector<uint32_t> sizes;
    -
    278 };
    -
    279 
    -
    280 // stz2.
    - -
    282  DECLARE_BOX_METHODS(CompactSampleSize);
    -
    283 
    -
    284  uint8_t field_size;
    -
    285  std::vector<uint32_t> sizes;
    -
    286 };
    -
    287 
    -
    288 // co64.
    - -
    290  DECLARE_BOX_METHODS(ChunkLargeOffset);
    -
    291 
    -
    292  std::vector<uint64_t> offsets;
    -
    293 };
    -
    294 
    -
    295 // stco.
    - -
    297  DECLARE_BOX_METHODS(ChunkOffset);
    -
    298 };
    -
    299 
    -
    300 // stss. Optional.
    -
    301 struct SyncSample : FullBox {
    -
    302  DECLARE_BOX_METHODS(SyncSample);
    -
    303 
    -
    304  std::vector<uint32_t> sample_number;
    -
    305 };
    -
    306 
    -
    307 struct SampleTable : Box {
    -
    308  DECLARE_BOX_METHODS(SampleTable);
    -
    309 
    -
    310  SampleDescription description;
    -
    311  DecodingTimeToSample decoding_time_to_sample;
    -
    312  CompositionTimeToSample composition_time_to_sample;
    -
    313  SampleToChunk sample_to_chunk;
    -
    314  // Either SampleSize or CompactSampleSize must present. Store in SampleSize.
    -
    315  SampleSize sample_size;
    -
    316  // Either ChunkOffset or ChunkLargeOffset must present. Store in
    -
    317  // ChunkLargeOffset.
    -
    318  ChunkLargeOffset chunk_large_offset;
    -
    319  SyncSample sync_sample;
    -
    320 };
    -
    321 
    - -
    323  DECLARE_BOX_METHODS(MediaHeader);
    -
    324 
    -
    325  uint64_t creation_time;
    -
    326  uint64_t modification_time;
    -
    327  uint32_t timescale;
    -
    328  uint64_t duration;
    -
    329  // 3-char language code + 1 null terminating char.
    -
    330  char language[4];
    -
    331 };
    -
    332 
    - -
    334  DECLARE_BOX_METHODS(VideoMediaHeader);
    -
    335 
    -
    336  uint16_t graphicsmode;
    -
    337  uint16_t opcolor_red;
    -
    338  uint16_t opcolor_green;
    -
    339  uint16_t opcolor_blue;
    -
    340 };
    -
    341 
    - -
    343  DECLARE_BOX_METHODS(SoundMediaHeader);
    -
    344 
    -
    345  uint16_t balance;
    -
    346 };
    -
    347 
    - -
    349  DECLARE_BOX_METHODS(DataEntryUrl);
    -
    350 
    -
    351  std::vector<uint8_t> location;
    -
    352 };
    -
    353 
    - -
    355  DECLARE_BOX_METHODS(DataReference);
    -
    356 
    -
    357  // data entry can be either url or urn box. Fix to url box for now.
    -
    358  std::vector<DataEntryUrl> data_entry;
    -
    359 };
    -
    360 
    - -
    362  DECLARE_BOX_METHODS(DataInformation);
    -
    363 
    -
    364  DataReference dref;
    -
    365 };
    -
    366 
    - -
    368  DECLARE_BOX_METHODS(MediaInformation);
    -
    369 
    -
    370  DataInformation dinf;
    -
    371  SampleTable sample_table;
    -
    372  // Exactly one specific meida header shall be present, vmhd, smhd, hmhd, nmhd.
    -
    373  VideoMediaHeader vmhd;
    -
    374  SoundMediaHeader smhd;
    -
    375 };
    -
    376 
    -
    377 struct Media : Box {
    -
    378  DECLARE_BOX_METHODS(Media);
    -
    379 
    -
    380  MediaHeader header;
    -
    381  HandlerReference handler;
    -
    382  MediaInformation information;
    -
    383 };
    -
    384 
    -
    385 struct Track : Box {
    -
    386  DECLARE_BOX_METHODS(Track);
    -
    387 
    -
    388  TrackHeader header;
    -
    389  Media media;
    -
    390  Edit edit;
    -
    391 };
    -
    392 
    - -
    394  DECLARE_BOX_METHODS(MovieExtendsHeader);
    -
    395 
    -
    396  uint64_t fragment_duration;
    -
    397 };
    -
    398 
    - -
    400  DECLARE_BOX_METHODS(TrackExtends);
    -
    401 
    -
    402  uint32_t track_id;
    -
    403  uint32_t default_sample_description_index;
    -
    404  uint32_t default_sample_duration;
    -
    405  uint32_t default_sample_size;
    -
    406  uint32_t default_sample_flags;
    -
    407 };
    -
    408 
    -
    409 struct MovieExtends : Box {
    -
    410  DECLARE_BOX_METHODS(MovieExtends);
    -
    411 
    -
    412  MovieExtendsHeader header;
    -
    413  std::vector<TrackExtends> tracks;
    -
    414 };
    -
    415 
    -
    416 struct Movie : Box {
    -
    417  DECLARE_BOX_METHODS(Movie);
    -
    418 
    -
    419  MovieHeader header;
    -
    420  MovieExtends extends;
    -
    421  std::vector<Track> tracks;
    -
    422  std::vector<ProtectionSystemSpecificHeader> pssh;
    -
    423 };
    -
    424 
    - -
    426  DECLARE_BOX_METHODS(TrackFragmentDecodeTime);
    -
    427 
    -
    428  uint64_t decode_time;
    -
    429 };
    -
    430 
    - -
    432  DECLARE_BOX_METHODS(MovieFragmentHeader);
    -
    433 
    -
    434  uint32_t sequence_number;
    -
    435 };
    -
    436 
    - -
    438  enum TrackFragmentFlagsMasks {
    -
    439  kBaseDataOffsetPresentMask = 0x000001,
    -
    440  kSampleDescriptionIndexPresentMask = 0x000002,
    -
    441  kDefaultSampleDurationPresentMask = 0x000008,
    -
    442  kDefaultSampleSizePresentMask = 0x000010,
    -
    443  kDefaultSampleFlagsPresentMask = 0x000020,
    -
    444  kDurationIsEmptyMask = 0x010000,
    -
    445  kDefaultBaseIsMoofMask = 0x020000,
    -
    446  };
    -
    447 
    -
    448  enum SampleFlagsMasks {
    -
    449  kReservedMask = 0xFC000000,
    -
    450  kSampleDependsOnMask = 0x03000000,
    -
    451  kSampleIsDependedOnMask = 0x00C00000,
    -
    452  kSampleHasRedundancyMask = 0x00300000,
    -
    453  kSamplePaddingValueMask = 0x000E0000,
    -
    454  kNonKeySampleMask = 0x00010000,
    -
    455  kSampleDegradationPriorityMask = 0x0000FFFF,
    -
    456  };
    -
    457 
    -
    458  DECLARE_BOX_METHODS(TrackFragmentHeader);
    -
    459 
    -
    460  uint32_t track_id;
    -
    461  uint32_t sample_description_index;
    -
    462  uint32_t default_sample_duration;
    -
    463  uint32_t default_sample_size;
    -
    464  uint32_t default_sample_flags;
    -
    465 };
    -
    466 
    - -
    468  enum TrackFragmentFlagsMasks {
    -
    469  kDataOffsetPresentMask = 0x000001,
    -
    470  kFirstSampleFlagsPresentMask = 0x000004,
    -
    471  kSampleDurationPresentMask = 0x000100,
    -
    472  kSampleSizePresentMask = 0x000200,
    -
    473  kSampleFlagsPresentMask = 0x000400,
    -
    474  kSampleCompTimeOffsetsPresentMask = 0x000800,
    -
    475  };
    -
    476 
    -
    477  DECLARE_BOX_METHODS(TrackFragmentRun);
    -
    478 
    -
    479  uint32_t sample_count;
    -
    480  uint32_t data_offset;
    -
    481  std::vector<uint32_t> sample_flags;
    -
    482  std::vector<uint32_t> sample_sizes;
    -
    483  std::vector<uint32_t> sample_durations;
    -
    484  std::vector<int64_t> sample_composition_time_offsets;
    -
    485 };
    -
    486 
    - -
    488  enum GroupDescriptionIndexBase {
    -
    489  kTrackGroupDescriptionIndexBase = 0,
    -
    490  kTrackFragmentGroupDescriptionIndexBase = 0x10000,
    -
    491  };
    -
    492 
    -
    493  uint32_t sample_count;
    -
    494  uint32_t group_description_index;
    -
    495 };
    -
    496 
    - -
    498  DECLARE_BOX_METHODS(SampleToGroup);
    -
    499 
    -
    500  uint32_t grouping_type;
    -
    501  uint32_t grouping_type_parameter; // Version 1 only.
    -
    502  std::vector<SampleToGroupEntry> entries;
    -
    503 };
    -
    504 
    - - - -
    508 
    -
    509  bool is_encrypted;
    -
    510  uint8_t iv_size;
    -
    511  std::vector<uint8_t> key_id;
    -
    512 };
    -
    513 
    - -
    515  DECLARE_BOX_METHODS(SampleGroupDescription);
    -
    516 
    -
    517  uint32_t grouping_type;
    -
    518  std::vector<CencSampleEncryptionInfoEntry> entries;
    -
    519 };
    -
    520 
    -
    521 struct TrackFragment : Box {
    -
    522  DECLARE_BOX_METHODS(TrackFragment);
    -
    523 
    -
    524  TrackFragmentHeader header;
    -
    525  std::vector<TrackFragmentRun> runs;
    -
    526  bool decode_time_absent;
    -
    527  TrackFragmentDecodeTime decode_time;
    -
    528  SampleToGroup sample_to_group;
    -
    529  SampleGroupDescription sample_group_description;
    -
    530  SampleAuxiliaryInformationSize auxiliary_size;
    -
    531  SampleAuxiliaryInformationOffset auxiliary_offset;
    -
    532 };
    -
    533 
    -
    534 struct MovieFragment : Box {
    -
    535  DECLARE_BOX_METHODS(MovieFragment);
    -
    536 
    -
    537  MovieFragmentHeader header;
    -
    538  std::vector<TrackFragment> tracks;
    -
    539  std::vector<ProtectionSystemSpecificHeader> pssh;
    -
    540 };
    -
    541 
    - -
    543  enum SAPType {
    -
    544  TypeUnknown = 0,
    -
    545  Type1 = 1, // T(ept) = T(dec) = T(sap) = T(ptf)
    -
    546  Type2 = 2, // T(ept) = T(dec) = T(sap) < T(ptf)
    -
    547  Type3 = 3, // T(ept) < T(dec) = T(sap) <= T(ptf)
    -
    548  Type4 = 4, // T(ept) <= T(ptf) < T(dec) = T(sap)
    -
    549  Type5 = 5, // T(ept) = T(dec) < T(sap)
    -
    550  Type6 = 6, // T(ept) < T(dec) < T(sap)
    -
    551  };
    -
    552 
    -
    553  bool reference_type;
    -
    554  uint32_t referenced_size;
    -
    555  uint32_t subsegment_duration;
    -
    556  bool starts_with_sap;
    -
    557  SAPType sap_type;
    -
    558  uint32_t sap_delta_time;
    -
    559  // We add this field to keep track of earliest_presentation_time in this
    -
    560  // subsegment. It is not part of SegmentReference.
    -
    561  uint64_t earliest_presentation_time;
    -
    562 };
    -
    563 
    - -
    565  DECLARE_BOX_METHODS(SegmentIndex);
    -
    566 
    -
    567  uint32_t reference_id;
    -
    568  uint32_t timescale;
    -
    569  uint64_t earliest_presentation_time;
    -
    570  uint64_t first_offset;
    -
    571  std::vector<SegmentReference> references;
    -
    572 };
    -
    573 
    -
    574 // The actual data is parsed and written separately, so we do not inherit it
    -
    575 // from Box.
    -
    576 struct MediaData {
    -
    577  MediaData();
    -
    578  ~MediaData();
    -
    579  void Write(BufferWriter* buffer_writer);
    -
    580  uint32_t ComputeSize();
    -
    581  FourCC BoxType() const;
    -
    582 
    -
    583  uint32_t data_size;
    -
    584 };
    -
    585 
    -
    586 #undef DECLARE_BOX
    -
    587 
    -
    588 } // namespace mp4
    -
    589 } // namespace media
    -
    590 } // namespace edash_packager
    -
    591 
    -
    592 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_H_
    +
    221  std::vector<uint8_t> extra_data;
    +
    222 };
    +
    223 
    + +
    225  DECLARE_BOX_METHODS(SampleDescription);
    +
    226 
    +
    227  TrackType type;
    +
    228  std::vector<VideoSampleEntry> video_entries;
    +
    229  std::vector<AudioSampleEntry> audio_entries;
    +
    230 };
    +
    231 
    +
    232 struct DecodingTime {
    +
    233  uint32_t sample_count;
    +
    234  uint32_t sample_delta;
    +
    235 };
    +
    236 
    +
    237 // stts.
    + +
    239  DECLARE_BOX_METHODS(DecodingTimeToSample);
    +
    240 
    +
    241  std::vector<DecodingTime> decoding_time;
    +
    242 };
    +
    243 
    + +
    245  uint32_t sample_count;
    +
    246  // If version == 0, sample_offset is uint32_t;
    +
    247  // If version == 1, sample_offset is int32_t.
    +
    248  // Use int64_t so both can be supported properly.
    +
    249  int64_t sample_offset;
    +
    250 };
    +
    251 
    +
    252 // ctts. Optional.
    + +
    254  DECLARE_BOX_METHODS(CompositionTimeToSample);
    +
    255 
    +
    256  std::vector<CompositionOffset> composition_offset;
    +
    257 };
    +
    258 
    +
    259 struct ChunkInfo {
    +
    260  uint32_t first_chunk;
    +
    261  uint32_t samples_per_chunk;
    +
    262  uint32_t sample_description_index;
    +
    263 };
    +
    264 
    +
    265 // stsc.
    + +
    267  DECLARE_BOX_METHODS(SampleToChunk);
    +
    268 
    +
    269  std::vector<ChunkInfo> chunk_info;
    +
    270 };
    +
    271 
    +
    272 // stsz.
    +
    273 struct SampleSize : FullBox {
    +
    274  DECLARE_BOX_METHODS(SampleSize);
    +
    275 
    +
    276  uint32_t sample_size;
    +
    277  uint32_t sample_count;
    +
    278  std::vector<uint32_t> sizes;
    +
    279 };
    +
    280 
    +
    281 // stz2.
    + +
    283  DECLARE_BOX_METHODS(CompactSampleSize);
    +
    284 
    +
    285  uint8_t field_size;
    +
    286  std::vector<uint32_t> sizes;
    +
    287 };
    +
    288 
    +
    289 // co64.
    + +
    291  DECLARE_BOX_METHODS(ChunkLargeOffset);
    +
    292 
    +
    293  std::vector<uint64_t> offsets;
    +
    294 };
    +
    295 
    +
    296 // stco.
    + +
    298  DECLARE_BOX_METHODS(ChunkOffset);
    +
    299 };
    +
    300 
    +
    301 // stss. Optional.
    +
    302 struct SyncSample : FullBox {
    +
    303  DECLARE_BOX_METHODS(SyncSample);
    +
    304 
    +
    305  std::vector<uint32_t> sample_number;
    +
    306 };
    +
    307 
    +
    308 struct SampleTable : Box {
    +
    309  DECLARE_BOX_METHODS(SampleTable);
    +
    310 
    +
    311  SampleDescription description;
    +
    312  DecodingTimeToSample decoding_time_to_sample;
    +
    313  CompositionTimeToSample composition_time_to_sample;
    +
    314  SampleToChunk sample_to_chunk;
    +
    315  // Either SampleSize or CompactSampleSize must present. Store in SampleSize.
    +
    316  SampleSize sample_size;
    +
    317  // Either ChunkOffset or ChunkLargeOffset must present. Store in
    +
    318  // ChunkLargeOffset.
    +
    319  ChunkLargeOffset chunk_large_offset;
    +
    320  SyncSample sync_sample;
    +
    321 };
    +
    322 
    + +
    324  DECLARE_BOX_METHODS(MediaHeader);
    +
    325 
    +
    326  uint64_t creation_time;
    +
    327  uint64_t modification_time;
    +
    328  uint32_t timescale;
    +
    329  uint64_t duration;
    +
    330  // 3-char language code + 1 null terminating char.
    +
    331  char language[4];
    +
    332 };
    +
    333 
    + +
    335  DECLARE_BOX_METHODS(VideoMediaHeader);
    +
    336 
    +
    337  uint16_t graphicsmode;
    +
    338  uint16_t opcolor_red;
    +
    339  uint16_t opcolor_green;
    +
    340  uint16_t opcolor_blue;
    +
    341 };
    +
    342 
    + +
    344  DECLARE_BOX_METHODS(SoundMediaHeader);
    +
    345 
    +
    346  uint16_t balance;
    +
    347 };
    +
    348 
    + +
    350  DECLARE_BOX_METHODS(DataEntryUrl);
    +
    351 
    +
    352  std::vector<uint8_t> location;
    +
    353 };
    +
    354 
    + +
    356  DECLARE_BOX_METHODS(DataReference);
    +
    357 
    +
    358  // data entry can be either url or urn box. Fix to url box for now.
    +
    359  std::vector<DataEntryUrl> data_entry;
    +
    360 };
    +
    361 
    + +
    363  DECLARE_BOX_METHODS(DataInformation);
    +
    364 
    +
    365  DataReference dref;
    +
    366 };
    +
    367 
    + +
    369  DECLARE_BOX_METHODS(MediaInformation);
    +
    370 
    +
    371  DataInformation dinf;
    +
    372  SampleTable sample_table;
    +
    373  // Exactly one specific meida header shall be present, vmhd, smhd, hmhd, nmhd.
    +
    374  VideoMediaHeader vmhd;
    +
    375  SoundMediaHeader smhd;
    +
    376 };
    +
    377 
    +
    378 struct Media : Box {
    +
    379  DECLARE_BOX_METHODS(Media);
    +
    380 
    +
    381  MediaHeader header;
    +
    382  HandlerReference handler;
    +
    383  MediaInformation information;
    +
    384 };
    +
    385 
    +
    386 struct Track : Box {
    +
    387  DECLARE_BOX_METHODS(Track);
    +
    388 
    +
    389  TrackHeader header;
    +
    390  Media media;
    +
    391  Edit edit;
    +
    392 };
    +
    393 
    + +
    395  DECLARE_BOX_METHODS(MovieExtendsHeader);
    +
    396 
    +
    397  uint64_t fragment_duration;
    +
    398 };
    +
    399 
    + +
    401  DECLARE_BOX_METHODS(TrackExtends);
    +
    402 
    +
    403  uint32_t track_id;
    +
    404  uint32_t default_sample_description_index;
    +
    405  uint32_t default_sample_duration;
    +
    406  uint32_t default_sample_size;
    +
    407  uint32_t default_sample_flags;
    +
    408 };
    +
    409 
    +
    410 struct MovieExtends : Box {
    +
    411  DECLARE_BOX_METHODS(MovieExtends);
    +
    412 
    +
    413  MovieExtendsHeader header;
    +
    414  std::vector<TrackExtends> tracks;
    +
    415 };
    +
    416 
    +
    417 struct Movie : Box {
    +
    418  DECLARE_BOX_METHODS(Movie);
    +
    419 
    +
    420  MovieHeader header;
    +
    421  MovieExtends extends;
    +
    422  std::vector<Track> tracks;
    +
    423  std::vector<ProtectionSystemSpecificHeader> pssh;
    +
    424 };
    +
    425 
    + +
    427  DECLARE_BOX_METHODS(TrackFragmentDecodeTime);
    +
    428 
    +
    429  uint64_t decode_time;
    +
    430 };
    +
    431 
    + +
    433  DECLARE_BOX_METHODS(MovieFragmentHeader);
    +
    434 
    +
    435  uint32_t sequence_number;
    +
    436 };
    +
    437 
    + +
    439  enum TrackFragmentFlagsMasks {
    +
    440  kBaseDataOffsetPresentMask = 0x000001,
    +
    441  kSampleDescriptionIndexPresentMask = 0x000002,
    +
    442  kDefaultSampleDurationPresentMask = 0x000008,
    +
    443  kDefaultSampleSizePresentMask = 0x000010,
    +
    444  kDefaultSampleFlagsPresentMask = 0x000020,
    +
    445  kDurationIsEmptyMask = 0x010000,
    +
    446  kDefaultBaseIsMoofMask = 0x020000,
    +
    447  };
    +
    448 
    +
    449  enum SampleFlagsMasks {
    +
    450  kReservedMask = 0xFC000000,
    +
    451  kSampleDependsOnMask = 0x03000000,
    +
    452  kSampleIsDependedOnMask = 0x00C00000,
    +
    453  kSampleHasRedundancyMask = 0x00300000,
    +
    454  kSamplePaddingValueMask = 0x000E0000,
    +
    455  kNonKeySampleMask = 0x00010000,
    +
    456  kSampleDegradationPriorityMask = 0x0000FFFF,
    +
    457  };
    +
    458 
    +
    459  DECLARE_BOX_METHODS(TrackFragmentHeader);
    +
    460 
    +
    461  uint32_t track_id;
    +
    462  uint32_t sample_description_index;
    +
    463  uint32_t default_sample_duration;
    +
    464  uint32_t default_sample_size;
    +
    465  uint32_t default_sample_flags;
    +
    466 };
    +
    467 
    + +
    469  enum TrackFragmentFlagsMasks {
    +
    470  kDataOffsetPresentMask = 0x000001,
    +
    471  kFirstSampleFlagsPresentMask = 0x000004,
    +
    472  kSampleDurationPresentMask = 0x000100,
    +
    473  kSampleSizePresentMask = 0x000200,
    +
    474  kSampleFlagsPresentMask = 0x000400,
    +
    475  kSampleCompTimeOffsetsPresentMask = 0x000800,
    +
    476  };
    +
    477 
    +
    478  DECLARE_BOX_METHODS(TrackFragmentRun);
    +
    479 
    +
    480  uint32_t sample_count;
    +
    481  uint32_t data_offset;
    +
    482  std::vector<uint32_t> sample_flags;
    +
    483  std::vector<uint32_t> sample_sizes;
    +
    484  std::vector<uint32_t> sample_durations;
    +
    485  std::vector<int64_t> sample_composition_time_offsets;
    +
    486 };
    +
    487 
    + +
    489  enum GroupDescriptionIndexBase {
    +
    490  kTrackGroupDescriptionIndexBase = 0,
    +
    491  kTrackFragmentGroupDescriptionIndexBase = 0x10000,
    +
    492  };
    +
    493 
    +
    494  uint32_t sample_count;
    +
    495  uint32_t group_description_index;
    +
    496 };
    +
    497 
    + +
    499  DECLARE_BOX_METHODS(SampleToGroup);
    +
    500 
    +
    501  uint32_t grouping_type;
    +
    502  uint32_t grouping_type_parameter; // Version 1 only.
    +
    503  std::vector<SampleToGroupEntry> entries;
    +
    504 };
    +
    505 
    + + + +
    509 
    +
    510  bool is_encrypted;
    +
    511  uint8_t iv_size;
    +
    512  std::vector<uint8_t> key_id;
    +
    513 };
    +
    514 
    + +
    516  DECLARE_BOX_METHODS(SampleGroupDescription);
    +
    517 
    +
    518  uint32_t grouping_type;
    +
    519  std::vector<CencSampleEncryptionInfoEntry> entries;
    +
    520 };
    +
    521 
    +
    522 struct TrackFragment : Box {
    +
    523  DECLARE_BOX_METHODS(TrackFragment);
    +
    524 
    +
    525  TrackFragmentHeader header;
    +
    526  std::vector<TrackFragmentRun> runs;
    +
    527  bool decode_time_absent;
    +
    528  TrackFragmentDecodeTime decode_time;
    +
    529  SampleToGroup sample_to_group;
    +
    530  SampleGroupDescription sample_group_description;
    +
    531  SampleAuxiliaryInformationSize auxiliary_size;
    +
    532  SampleAuxiliaryInformationOffset auxiliary_offset;
    +
    533 };
    +
    534 
    +
    535 struct MovieFragment : Box {
    +
    536  DECLARE_BOX_METHODS(MovieFragment);
    +
    537 
    +
    538  MovieFragmentHeader header;
    +
    539  std::vector<TrackFragment> tracks;
    +
    540  std::vector<ProtectionSystemSpecificHeader> pssh;
    +
    541 };
    +
    542 
    + +
    544  enum SAPType {
    +
    545  TypeUnknown = 0,
    +
    546  Type1 = 1, // T(ept) = T(dec) = T(sap) = T(ptf)
    +
    547  Type2 = 2, // T(ept) = T(dec) = T(sap) < T(ptf)
    +
    548  Type3 = 3, // T(ept) < T(dec) = T(sap) <= T(ptf)
    +
    549  Type4 = 4, // T(ept) <= T(ptf) < T(dec) = T(sap)
    +
    550  Type5 = 5, // T(ept) = T(dec) < T(sap)
    +
    551  Type6 = 6, // T(ept) < T(dec) < T(sap)
    +
    552  };
    +
    553 
    +
    554  bool reference_type;
    +
    555  uint32_t referenced_size;
    +
    556  uint32_t subsegment_duration;
    +
    557  bool starts_with_sap;
    +
    558  SAPType sap_type;
    +
    559  uint32_t sap_delta_time;
    +
    560  // We add this field to keep track of earliest_presentation_time in this
    +
    561  // subsegment. It is not part of SegmentReference.
    +
    562  uint64_t earliest_presentation_time;
    +
    563 };
    +
    564 
    + +
    566  DECLARE_BOX_METHODS(SegmentIndex);
    +
    567 
    +
    568  uint32_t reference_id;
    +
    569  uint32_t timescale;
    +
    570  uint64_t earliest_presentation_time;
    +
    571  uint64_t first_offset;
    +
    572  std::vector<SegmentReference> references;
    +
    573 };
    +
    574 
    +
    575 // The actual data is parsed and written separately, so we do not inherit it
    +
    576 // from Box.
    +
    577 struct MediaData {
    +
    578  MediaData();
    +
    579  ~MediaData();
    +
    580  void Write(BufferWriter* buffer_writer);
    +
    581  uint32_t ComputeSize();
    +
    582  FourCC BoxType() const;
    +
    583 
    +
    584  uint32_t data_size;
    +
    585 };
    +
    586 
    +
    587 #undef DECLARE_BOX
    +
    588 
    +
    589 } // namespace mp4
    +
    590 } // namespace media
    +
    591 } // namespace edash_packager
    +
    592 
    +
    593 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_H_
    - - + + - + - - + + - - + + - + - - + + - - - - + + + + - + - - - - + + + + - - - + + + - - + + - - - + + + - - + + - + - - - - + + + + - + - - + + - - - + + + diff --git a/docs/d5/d89/widevine__key__source_8cc_source.html b/docs/d5/d89/widevine__key__source_8cc_source.html index 103890600d..01caf3f202 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -649,7 +649,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d8f/webm__cluster__parser_8cc_source.html b/docs/d5/d8f/webm__cluster__parser_8cc_source.html index c862ef1a1c..5f05b5b93c 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -827,7 +827,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d91/es__parser__adts_8cc_source.html b/docs/d5/d91/es__parser__adts_8cc_source.html index 498fba87f2..5bcdd7d8c6 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -369,12 +369,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    static scoped_refptr< MediaSample > CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)
    Definition: media_sample.cc:47
    static size_t GetAdtsHeaderSize(const uint8_t *data, size_t num_bytes)
    Definition: adts_header.cc:31
    void Reset()
    Reset the queue to the empty state.
    Definition: byte_queue.cc:24
    -
    static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
    +
    static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
    void Peek(const uint8_t **data, int *size) const
    Definition: byte_queue.cc:63
    diff --git a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html index 236cd01ecd..a9637f4f16 100644 --- a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html +++ b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/da4/aes__encryptor_8cc_source.html b/docs/d5/da4/aes__encryptor_8cc_source.html index 400f0d9080..0d5cd9aca2 100644 --- a/docs/d5/da4/aes__encryptor_8cc_source.html +++ b/docs/d5/da4/aes__encryptor_8cc_source.html @@ -568,7 +568,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html index 1ecb4649d6..c63f387981 100644 --- a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dba/ts__packet_8cc_source.html b/docs/d5/dba/ts__packet_8cc_source.html index 01c41bbc5f..c28b598a2a 100644 --- a/docs/d5/dba/ts__packet_8cc_source.html +++ b/docs/d5/dba/ts__packet_8cc_source.html @@ -304,7 +304,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html index 741ddc589f..c3f96897ef 100644 --- a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html +++ b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc8/classedash__packager_1_1media_1_1OpusPacket.html b/docs/d5/dc8/classedash__packager_1_1media_1_1OpusPacket.html index 7e58be231b..dea7e206f5 100644 --- a/docs/d5/dc8/classedash__packager_1_1media_1_1OpusPacket.html +++ b/docs/d5/dc8/classedash__packager_1_1media_1_1OpusPacket.html @@ -119,7 +119,7 @@ double duration_ms () diff --git a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html index 3a47a75eb0..63c68ecb14 100644 --- a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html +++ b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html @@ -294,7 +294,7 @@ Public Member Functions diff --git a/docs/d5/dcf/rsa__key_8h_source.html b/docs/d5/dcf/rsa__key_8h_source.html index a96ae11239..fa1cdd3d1c 100644 --- a/docs/d5/dcf/rsa__key_8h_source.html +++ b/docs/d5/dcf/rsa__key_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dda/ts__section__psi_8h_source.html b/docs/d5/dda/ts__section__psi_8h_source.html index 0afb89c5b4..2dcd2c791d 100644 --- a/docs/d5/dda/ts__section__psi_8h_source.html +++ b/docs/d5/dda/ts__section__psi_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/ddf/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo.html b/docs/d5/ddf/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo.html index e5cf5e5d40..77612d0fb7 100644 --- a/docs/d5/ddf/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo.html +++ b/docs/d5/ddf/classedash__packager_1_1media_1_1mp4_1_1FrameCENCInfo.html @@ -132,7 +132,7 @@ const std::vector
    diff --git a/docs/d5/de0/bit__reader_8cc_source.html b/docs/d5/de0/bit__reader_8cc_source.html index b00111429a..f50809926b 100644 --- a/docs/d5/de0/bit__reader_8cc_source.html +++ b/docs/d5/de0/bit__reader_8cc_source.html @@ -185,7 +185,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html index 4cbafb327a..77f854f196 100644 --- a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html +++ b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/def/ts__section__pmt_8h_source.html b/docs/d5/def/ts__section__pmt_8h_source.html index 78304726dd..5b6eac0b6b 100644 --- a/docs/d5/def/ts__section__pmt_8h_source.html +++ b/docs/d5/def/ts__section__pmt_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/df8/classedash__packager_1_1media_1_1H264BitReader-members.html b/docs/d5/df8/classedash__packager_1_1media_1_1H264BitReader-members.html index 3263b2f0bb..2ed6a99f9d 100644 --- a/docs/d5/df8/classedash__packager_1_1media_1_1H264BitReader-members.html +++ b/docs/d5/df8/classedash__packager_1_1media_1_1H264BitReader-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dfc/file_8cc_source.html b/docs/d5/dfc/file_8cc_source.html index d9dac22ca8..388de1573d 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -311,7 +311,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html index afc7370ec7..d6b607c5d0 100644 --- a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html +++ b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html index 485632dabc..808267c35f 100644 --- a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html +++ b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html @@ -228,7 +228,7 @@ class base::RefCountedThre diff --git a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html index a272281c8e..edd22271fb 100644 --- a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html index 60bff75c82..152b601412 100644 --- a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html +++ b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html index 9426186303..1fdf3b1ab2 100644 --- a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html +++ b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d17/es__parser__h264_8cc_source.html b/docs/d6/d17/es__parser__h264_8cc_source.html index eefefaf5a6..fb07f2bb9e 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -482,7 +482,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html index 21b04adfea..35acda4d0c 100644 --- a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html +++ b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html index 9787a21af7..76f32121c1 100644 --- a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html +++ b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d2e/mpd__notifier__util_8cc_source.html b/docs/d6/d2e/mpd__notifier__util_8cc_source.html index 317d82ede1..fca4c6e91b 100644 --- a/docs/d6/d2e/mpd__notifier__util_8cc_source.html +++ b/docs/d6/d2e/mpd__notifier__util_8cc_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d35/webm__content__encodings_8cc_source.html b/docs/d6/d35/webm__content__encodings_8cc_source.html index 70a914c480..3ebc374349 100644 --- a/docs/d6/d35/webm__content__encodings_8cc_source.html +++ b/docs/d6/d35/webm__content__encodings_8cc_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html index b3ea52de7f..d593671ce8 100644 --- a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html index af94a459d4..e7a86b2a8c 100644 --- a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html +++ b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d3b/chunk__info__iterator_8cc_source.html b/docs/d6/d3b/chunk__info__iterator_8cc_source.html index b1df2fce22..e23f9d0576 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    73 } // namespace mp4
    74 } // namespace media
    75 } // namespace edash_packager
    - +
    uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
    ChunkInfoIterator(const SampleToChunk &sample_to_chunk)
    Create ChunkInfoIterator from sample to chunk box.
    @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d41/encrypting__fragmenter_8cc_source.html b/docs/d6/d41/encrypting__fragmenter_8cc_source.html index bdc4b35b03..4c8d98ce1f 100644 --- a/docs/d6/d41/encrypting__fragmenter_8cc_source.html +++ b/docs/d6/d41/encrypting__fragmenter_8cc_source.html @@ -268,7 +268,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    Status AddSample(scoped_refptr< MediaSample > sample) override
    void FinalizeFragment() override
    Finalize and optimize the fragment.
    - +
    virtual Status PrepareFragmentForEncryption(bool enable_encryption)
    EncryptingFragmenter(TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, uint8_t nalu_length_size)
    virtual void FinalizeFragmentForEncryption()
    Finalize current fragment for encryption.
    @@ -276,7 +276,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html index 11d4661c1b..dd6c145837 100644 --- a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html +++ b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html index 5e0c1faa11..30410d6cce 100644 --- a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html +++ b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html @@ -233,7 +233,7 @@ Static Public Member Functions diff --git a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html index 320734d8ab..90a49bb430 100644 --- a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html +++ b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html @@ -135,7 +135,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 361 of file box_definitions.h.

    +

    Definition at line 362 of file box_definitions.h.

    Member Function Documentation

    @@ -161,7 +161,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1278 of file box_definitions.cc.

    +

    Definition at line 1291 of file box_definitions.cc.

    @@ -172,7 +172,7 @@ Additional Inherited Members diff --git a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html index 6f7071946e..7e3b9f01fb 100644 --- a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html +++ b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html @@ -185,7 +185,7 @@ Public Member Functions diff --git a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html index 79e9bb5d13..8d48f69998 100644 --- a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html +++ b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html index 6cdc60d8e0..c2af1bf7b8 100644 --- a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html +++ b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html @@ -143,7 +143,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 348 of file box_definitions.h.

    +

    Definition at line 349 of file box_definitions.h.

    Member Function Documentation

    @@ -169,7 +169,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1238 of file box_definitions.cc.

    +

    Definition at line 1251 of file box_definitions.cc.

    @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d6/d6e/ts__section__pes_8cc_source.html b/docs/d6/d6e/ts__section__pes_8cc_source.html index 56ae7ebc98..91d0704b14 100644 --- a/docs/d6/d6e/ts__section__pes_8cc_source.html +++ b/docs/d6/d6e/ts__section__pes_8cc_source.html @@ -405,7 +405,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d71/scoped__xml__ptr_8h_source.html b/docs/d6/d71/scoped__xml__ptr_8h_source.html index fd9cf66969..2909cbab9d 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html index 4612144ae8..3d62d03b95 100644 --- a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html +++ b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html index 6ded687f23..a67e80e754 100644 --- a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html +++ b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html @@ -141,7 +141,7 @@ uint32_t flags

    Detailed Description

    -

    Definition at line 296 of file box_definitions.h.

    +

    Definition at line 297 of file box_definitions.h.

    Member Function Documentation

    @@ -178,7 +178,7 @@ uint32_t flags diff --git a/docs/d6/d7b/webm__tracks__parser_8h_source.html b/docs/d6/d7b/webm__tracks__parser_8h_source.html index 94dfcf3265..758591eae7 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    diff --git a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html index f7e07e7550..43bf1917c1 100644 --- a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html +++ b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html index e5f288c9d7..688f8ea150 100644 --- a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html +++ b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d86/bandwidth__estimator_8cc_source.html b/docs/d6/d86/bandwidth__estimator_8cc_source.html index 62f04afc70..35c954ed47 100644 --- a/docs/d6/d86/bandwidth__estimator_8cc_source.html +++ b/docs/d6/d86/bandwidth__estimator_8cc_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8a/vp9__parser_8cc_source.html b/docs/d6/d8a/vp9__parser_8cc_source.html index f652461add..01ce82c1ca 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -639,7 +639,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html index 1aa7f0d68c..241a5f09f9 100644 --- a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html +++ b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html @@ -138,7 +138,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 409 of file box_definitions.h.

    +

    Definition at line 410 of file box_definitions.h.

    Member Function Documentation

    @@ -164,7 +164,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1426 of file box_definitions.cc.

    +

    Definition at line 1439 of file box_definitions.cc.

    @@ -175,7 +175,7 @@ Additional Inherited Members diff --git a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html index 9f4113388d..1d6aced642 100644 --- a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html +++ b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html @@ -181,7 +181,7 @@ virtual FourCC BoxType diff --git a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html index f8c657c8e6..67dca05de2 100644 --- a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html +++ b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html index 7444bb1fe8..62955fe5bd 100644 --- a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html +++ b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9b/h264__parser_8h_source.html b/docs/d6/d9b/h264__parser_8h_source.html index 51366e1e68..9e0e14840f 100644 --- a/docs/d6/d9b/h264__parser_8h_source.html +++ b/docs/d6/d9b/h264__parser_8h_source.html @@ -516,7 +516,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html index 9455ecd47e..e1508996dd 100644 --- a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html +++ b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da0/ts__section__pat_8h_source.html b/docs/d6/da0/ts__section__pat_8h_source.html index 2ed3fe09d1..c8a69ca793 100644 --- a/docs/d6/da0/ts__section__pat_8h_source.html +++ b/docs/d6/da0/ts__section__pat_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da2/classedash__packager_1_1media_1_1AesCbcCtsEncryptor.html b/docs/d6/da2/classedash__packager_1_1media_1_1AesCbcCtsEncryptor.html index 88412c0e23..89b2963593 100644 --- a/docs/d6/da2/classedash__packager_1_1media_1_1AesCbcCtsEncryptor.html +++ b/docs/d6/da2/classedash__packager_1_1media_1_1AesCbcCtsEncryptor.html @@ -258,7 +258,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html index 11f3ac905c..363128b82e 100644 --- a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html +++ b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html @@ -154,7 +154,7 @@ static bool FindStartCode< diff --git a/docs/d6/da3/mpd__builder_8h_source.html b/docs/d6/da3/mpd__builder_8h_source.html index 7a3411834f..3a82c42ca1 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -509,7 +509,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html index 08b1d29a22..f5b5aa79f3 100644 --- a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html +++ b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html index dfb6cd8842..594cb1a842 100644 --- a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html +++ b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html index 1bf40641a7..d16b2c18b7 100644 --- a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html +++ b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html index 627b202869..50efce548b 100644 --- a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html +++ b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc4/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor.html b/docs/d6/dc4/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor.html index efd27a83e4..b71493c141 100644 --- a/docs/d6/dc4/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor.html +++ b/docs/d6/dc4/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor.html @@ -208,7 +208,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html index b3ab669c43..0edac2f52b 100644 --- a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html +++ b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html @@ -210,7 +210,7 @@ void  diff --git a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html index 3c88cfb098..b948bede67 100644 --- a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html +++ b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de7/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor-members.html b/docs/d6/de7/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor-members.html index 4b050f8a3c..e0e845318b 100644 --- a/docs/d6/de7/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor-members.html +++ b/docs/d6/de7/classedash__packager_1_1media_1_1AesCbcPkcs5Encryptor-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/local__file_8cc_source.html b/docs/d6/de8/local__file_8cc_source.html index 6dd1b6cd68..4776c36e5c 100644 --- a/docs/d6/de8/local__file_8cc_source.html +++ b/docs/d6/de8/local__file_8cc_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/network__util_8h_source.html b/docs/d6/de8/network__util_8h_source.html index f97adec0a3..7f707ed3c2 100644 --- a/docs/d6/de8/network__util_8h_source.html +++ b/docs/d6/de8/network__util_8h_source.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html index 844649f842..67fe90e223 100644 --- a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html +++ b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html @@ -145,7 +145,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 416 of file box_definitions.h.

    +

    Definition at line 417 of file box_definitions.h.

    Member Function Documentation

    @@ -171,7 +171,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1460 of file box_definitions.cc.

    +

    Definition at line 1473 of file box_definitions.cc.

    @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d6/ded/ts__packet_8h_source.html b/docs/d6/ded/ts__packet_8h_source.html index 60c48d62e3..58ea200117 100644 --- a/docs/d6/ded/ts__packet_8h_source.html +++ b/docs/d6/ded/ts__packet_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/def/sync__sample__iterator_8cc_source.html b/docs/d6/def/sync__sample__iterator_8cc_source.html index 2758320235..b884fd2857 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -134,13 +134,13 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
    45 } // namespace media
    46 } // namespace edash_packager
    SyncSampleIterator(const SyncSample &sync_sample)
    Create a new SyncSampleIterator from sync sample box.
    - + diff --git a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html index ccecf3fb3d..0b8ca414d2 100644 --- a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html +++ b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html index ac439cb57e..db036144f6 100644 --- a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html +++ b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html @@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html index 0fd2eda4f6..60cf5c2cb4 100644 --- a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html +++ b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html @@ -143,7 +143,7 @@ Additional Inherited Members

    Detailed Description

    -

    Definition at line 354 of file box_definitions.h.

    +

    Definition at line 355 of file box_definitions.h.

    Member Function Documentation

    @@ -169,7 +169,7 @@ Additional Inherited Members

    Implements edash_packager::media::mp4::Box.

    -

    Definition at line 1260 of file box_definitions.cc.

    +

    Definition at line 1273 of file box_definitions.cc.

    @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d7/d12/media__parser_8h_source.html b/docs/d7/d12/media__parser_8h_source.html index 075f60e114..8c20a844d1 100644 --- a/docs/d7/d12/media__parser_8h_source.html +++ b/docs/d7/d12/media__parser_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d15/classedash__packager_1_1Representation.html b/docs/d7/d15/classedash__packager_1_1Representation.html index b0766a1c7f..3a190d95c4 100644 --- a/docs/d7/d15/classedash__packager_1_1Representation.html +++ b/docs/d7/d15/classedash__packager_1_1Representation.html @@ -426,7 +426,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/d7/d15/mpd__notifier_8h_source.html b/docs/d7/d15/mpd__notifier_8h_source.html index 21cad92682..64f4844aa1 100644 --- a/docs/d7/d15/mpd__notifier_8h_source.html +++ b/docs/d7/d15/mpd__notifier_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html index 466810762d..06a08c6f95 100644 --- a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html +++ b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html @@ -105,14 +105,14 @@ uint32_t sample_delta<

    Detailed Description

    -

    Definition at line 231 of file box_definitions.h.

    +

    Definition at line 232 of file box_definitions.h.


    The documentation for this struct was generated from the following file: diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index d683416b6f..b32b45746b 100644 --- a/docs/d7/d22/libcrypto__threading_8h_source.html +++ b/docs/d7/d22/libcrypto__threading_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html index 9b50d3b935..27ff0aaea3 100644 --- a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html +++ b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html index e0860f992e..fec064fad1 100644 --- a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html +++ b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html index a8f7e659dd..03b0b5774d 100644 --- a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html +++ b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html @@ -426,7 +426,7 @@ void set_language (con diff --git a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html index 090204b701..06c45bbb7d 100644 --- a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html +++ b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html index c713b5a172..be98b2fa36 100644 --- a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html +++ b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html @@ -160,7 +160,7 @@ Public Member Functions diff --git a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html index f06373b3ff..e4b6e93fac 100644 --- a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html +++ b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html @@ -172,7 +172,7 @@ Additional Inherited Members diff --git a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html index ae7cf5bd30..1c9ef2810d 100644 --- a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html +++ b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html index ed78cdc472..78ee30d23a 100644 --- a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html +++ b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html index f12f6b0e26..7c5c2cf5f1 100644 --- a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html +++ b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html @@ -108,7 +108,7 @@ std::vector< uint8_t > 

    Detailed Description

    -

    Definition at line 505 of file box_definitions.h.

    +

    Definition at line 506 of file box_definitions.h.


    The documentation for this struct was generated from the following files:
    • media/formats/mp4/box_definitions.h
    • media/formats/mp4/box_definitions.cc
    • @@ -116,7 +116,7 @@ std::vector< uint8_t >  diff --git a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html index 03adf7938c..3d785d7e58 100644 --- a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html +++ b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html index 256db2d1d8..7449b1065f 100644 --- a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html +++ b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7c/vlog__flags_8h_source.html b/docs/d7/d7c/vlog__flags_8h_source.html index b249bf8694..46b0403ea1 100644 --- a/docs/d7/d7c/vlog__flags_8h_source.html +++ b/docs/d7/d7c/vlog__flags_8h_source.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html index 8885b04649..57ae23dd34 100644 --- a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html +++ b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html index 572d6ad84a..9801482662 100644 --- a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html +++ b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html @@ -253,7 +253,7 @@ bool video_full_range_flag diff --git a/docs/d7/d87/video__stream__info_8h_source.html b/docs/d7/d87/video__stream__info_8h_source.html index 223ab24411..8679ff34ac 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html index c0d9c3a0cb..826aec3f66 100644 --- a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html +++ b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html @@ -268,7 +268,7 @@ class BoxBuffer diff --git a/docs/d7/d9d/progress__listener_8h_source.html b/docs/d7/d9d/progress__listener_8h_source.html index b318fc180b..d5845e1047 100644 --- a/docs/d7/d9d/progress__listener_8h_source.html +++ b/docs/d7/d9d/progress__listener_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/da4/track__run__iterator_8h_source.html b/docs/d7/da4/track__run__iterator_8h_source.html index 46aac13d47..bc3e9a7b62 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -185,10 +185,10 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      const AudioSampleEntry & audio_description() const
      Only valid if is_audio() is true.
      - + - + @@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html index d87a289a11..177ba0c2ef 100644 --- a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html +++ b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html @@ -149,7 +149,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 272 of file box_definitions.h.

      +

      Definition at line 273 of file box_definitions.h.

      Member Function Documentation

      @@ -186,7 +186,7 @@ Additional Inherited Members
      diff --git a/docs/d7/db0/mpd__writer_8h_source.html b/docs/d7/db0/mpd__writer_8h_source.html index db670a6cda..2da9059a8d 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/db3/structedash__packager_1_1Element-members.html b/docs/d7/db3/structedash__packager_1_1Element-members.html index a8d2d948fb..1ab1a18e07 100644 --- a/docs/d7/db3/structedash__packager_1_1Element-members.html +++ b/docs/d7/db3/structedash__packager_1_1Element-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dc6/byte__queue_8h_source.html b/docs/d7/dc6/byte__queue_8h_source.html index 7f2afd7fe0..facb9fce79 100644 --- a/docs/d7/dc6/byte__queue_8h_source.html +++ b/docs/d7/dc6/byte__queue_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd0/mpd__notifier__util_8h_source.html b/docs/d7/dd0/mpd__notifier__util_8h_source.html index c5988bd738..a6050e6f94 100644 --- a/docs/d7/dd0/mpd__notifier__util_8h_source.html +++ b/docs/d7/dd0/mpd__notifier__util_8h_source.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index 3313009804..fdeac67de2 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index 63a9316d6b..8bcf892e32 100644 --- a/docs/d7/dd6/key__source_8cc_source.html +++ b/docs/d7/dd6/key__source_8cc_source.html @@ -296,7 +296,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html index a2718b2dbc..5fcbb733f8 100644 --- a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html +++ b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html @@ -127,7 +127,7 @@ void operator() (xmlCh diff --git a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html index 3f58ef40cf..2074c4592a 100644 --- a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html +++ b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html index 38c787b4fb..587791ee92 100644 --- a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html +++ b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html @@ -155,7 +155,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 322 of file box_definitions.h.

      +

      Definition at line 323 of file box_definitions.h.

      Member Function Documentation

      @@ -181,7 +181,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1177 of file box_definitions.cc.

      +

      Definition at line 1190 of file box_definitions.cc.

      @@ -192,7 +192,7 @@ Additional Inherited Members diff --git a/docs/d7/dee/mpd__generator_8cc_source.html b/docs/d7/dee/mpd__generator_8cc_source.html index 169efb28cd..6ead92728b 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -194,7 +194,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/def/mp4__media__parser_8cc_source.html b/docs/d7/def/mp4__media__parser_8cc_source.html index 4174cb87c1..4c169b69c2 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      40  return (static_cast<double>(time_in_old_scale) / old_scale) * new_scale;
      41 }
      42 
      -
      43 VideoCodec FourCCToCodec(FourCC fourcc) {
      +
      43 VideoCodec FourCCToVideoCodec(FourCC fourcc) {
      44  switch (fourcc) {
      45  case FOURCC_AVC1:
      46  return kCodecH264;
      @@ -148,671 +148,697 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      59  }
      60 }
      61 
      -
      62 const char kWidevineKeySystemId[] = "edef8ba979d64acea3c827dcd51d21ed";
      -
      63 
      -
      64 } // namespace
      -
      65 
      -
      66 MP4MediaParser::MP4MediaParser()
      -
      67  : state_(kWaitingForInit), moof_head_(0), mdat_tail_(0) {}
      -
      68 
      -
      69 MP4MediaParser::~MP4MediaParser() {
      -
      70  STLDeleteValues(&decryptor_map_);
      -
      71 }
      -
      72 
      -
      73 void MP4MediaParser::Init(const InitCB& init_cb,
      -
      74  const NewSampleCB& new_sample_cb,
      -
      75  KeySource* decryption_key_source) {
      -
      76  DCHECK_EQ(state_, kWaitingForInit);
      -
      77  DCHECK(init_cb_.is_null());
      -
      78  DCHECK(!init_cb.is_null());
      -
      79  DCHECK(!new_sample_cb.is_null());
      -
      80 
      -
      81  ChangeState(kParsingBoxes);
      -
      82  init_cb_ = init_cb;
      -
      83  new_sample_cb_ = new_sample_cb;
      -
      84  decryption_key_source_ = decryption_key_source;
      -
      85 }
      +
      62 AudioCodec FourCCToAudioCodec(FourCC fourcc) {
      +
      63  switch(fourcc) {
      +
      64  case FOURCC_DTSC:
      +
      65  return kCodecDTSC;
      +
      66  case FOURCC_DTSH:
      +
      67  return kCodecDTSH;
      +
      68  case FOURCC_DTSL:
      +
      69  return kCodecDTSL;
      +
      70  case FOURCC_DTSE:
      +
      71  return kCodecDTSE;
      +
      72  case FOURCC_DTSP:
      +
      73  return kCodecDTSP;
      +
      74  case FOURCC_DTSM:
      +
      75  return kCodecDTSM;
      +
      76  case FOURCC_EAC3:
      +
      77  return kCodecEAC3;
      +
      78  default:
      +
      79  return kUnknownAudioCodec;
      +
      80  }
      +
      81 }
      +
      82 
      +
      83 const char kWidevineKeySystemId[] = "edef8ba979d64acea3c827dcd51d21ed";
      +
      84 
      +
      85 } // namespace
      86 
      -
      87 void MP4MediaParser::Reset() {
      -
      88  queue_.Reset();
      -
      89  runs_.reset();
      -
      90  moof_head_ = 0;
      -
      91  mdat_tail_ = 0;
      +
      87 MP4MediaParser::MP4MediaParser()
      +
      88  : state_(kWaitingForInit), moof_head_(0), mdat_tail_(0) {}
      +
      89 
      +
      90 MP4MediaParser::~MP4MediaParser() {
      +
      91  STLDeleteValues(&decryptor_map_);
      92 }
      93 
      - -
      95  DCHECK_NE(state_, kWaitingForInit);
      -
      96  Reset();
      -
      97  ChangeState(kParsingBoxes);
      -
      98 }
      -
      99 
      -
      100 bool MP4MediaParser::Parse(const uint8_t* buf, int size) {
      -
      101  DCHECK_NE(state_, kWaitingForInit);
      -
      102 
      -
      103  if (state_ == kError)
      -
      104  return false;
      -
      105 
      -
      106  queue_.Push(buf, size);
      +
      94 void MP4MediaParser::Init(const InitCB& init_cb,
      +
      95  const NewSampleCB& new_sample_cb,
      +
      96  KeySource* decryption_key_source) {
      +
      97  DCHECK_EQ(state_, kWaitingForInit);
      +
      98  DCHECK(init_cb_.is_null());
      +
      99  DCHECK(!init_cb.is_null());
      +
      100  DCHECK(!new_sample_cb.is_null());
      +
      101 
      +
      102  ChangeState(kParsingBoxes);
      +
      103  init_cb_ = init_cb;
      +
      104  new_sample_cb_ = new_sample_cb;
      +
      105  decryption_key_source_ = decryption_key_source;
      +
      106 }
      107 
      -
      108  bool result, err = false;
      -
      109 
      -
      110  do {
      -
      111  if (state_ == kParsingBoxes) {
      -
      112  result = ParseBox(&err);
      -
      113  } else {
      -
      114  DCHECK_EQ(kEmittingSamples, state_);
      -
      115  result = EnqueueSample(&err);
      -
      116  if (result) {
      -
      117  int64_t max_clear = runs_->GetMaxClearOffset() + moof_head_;
      -
      118  err = !ReadAndDiscardMDATsUntil(max_clear);
      -
      119  }
      -
      120  }
      -
      121  } while (result && !err);
      -
      122 
      -
      123  if (err) {
      -
      124  DLOG(ERROR) << "Error while parsing MP4";
      -
      125  moov_.reset();
      -
      126  Reset();
      -
      127  ChangeState(kError);
      -
      128  return false;
      -
      129  }
      +
      108 void MP4MediaParser::Reset() {
      +
      109  queue_.Reset();
      +
      110  runs_.reset();
      +
      111  moof_head_ = 0;
      +
      112  mdat_tail_ = 0;
      +
      113 }
      +
      114 
      + +
      116  DCHECK_NE(state_, kWaitingForInit);
      +
      117  Reset();
      +
      118  ChangeState(kParsingBoxes);
      +
      119 }
      +
      120 
      +
      121 bool MP4MediaParser::Parse(const uint8_t* buf, int size) {
      +
      122  DCHECK_NE(state_, kWaitingForInit);
      +
      123 
      +
      124  if (state_ == kError)
      +
      125  return false;
      +
      126 
      +
      127  queue_.Push(buf, size);
      +
      128 
      +
      129  bool result, err = false;
      130 
      -
      131  return true;
      -
      132 }
      -
      133 
      -
      134 bool MP4MediaParser::LoadMoov(const std::string& file_path) {
      -
      135  scoped_ptr<File, FileCloser> file(
      -
      136  File::OpenWithNoBuffering(file_path.c_str(), "r"));
      -
      137  if (!file) {
      -
      138  LOG(ERROR) << "Unable to open media file '" << file_path << "'";
      -
      139  return false;
      -
      140  }
      -
      141  if (!file->Seek(0)) {
      -
      142  LOG(WARNING) << "Filesystem does not support seeking on file '" << file_path
      -
      143  << "'";
      -
      144  return false;
      -
      145  }
      -
      146 
      -
      147  uint64_t file_position(0);
      -
      148  bool mdat_seen(false);
      -
      149  while (true) {
      -
      150  const uint32_t kBoxHeaderReadSize(16);
      -
      151  std::vector<uint8_t> buffer(kBoxHeaderReadSize);
      -
      152  int64_t bytes_read = file->Read(&buffer[0], kBoxHeaderReadSize);
      -
      153  if (bytes_read == 0) {
      -
      154  LOG(ERROR) << "Could not find 'moov' box in file '" << file_path << "'";
      -
      155  return false;
      -
      156  }
      -
      157  if (bytes_read < kBoxHeaderReadSize) {
      -
      158  LOG(ERROR) << "Error reading media file '" << file_path << "'";
      -
      159  return false;
      -
      160  }
      -
      161  uint64_t box_size;
      -
      162  FourCC box_type;
      -
      163  bool err;
      -
      164  if (!BoxReader::StartTopLevelBox(&buffer[0], kBoxHeaderReadSize, &box_type,
      -
      165  &box_size, &err)) {
      -
      166  LOG(ERROR) << "Could not start top level box from file '" << file_path
      -
      167  << "'";
      -
      168  return false;
      -
      169  }
      -
      170  if (box_type == FOURCC_MDAT) {
      -
      171  mdat_seen = true;
      -
      172  } else if (box_type == FOURCC_MOOV) {
      -
      173  if (!mdat_seen) {
      -
      174  // 'moov' is before 'mdat'. Nothing to do.
      -
      175  break;
      -
      176  }
      -
      177  // 'mdat' before 'moov'. Read and parse 'moov'.
      -
      178  if (!Parse(&buffer[0], bytes_read)) {
      -
      179  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
      -
      180  return false;
      -
      181  }
      -
      182  uint64_t bytes_to_read = box_size - bytes_read;
      -
      183  buffer.resize(bytes_to_read);
      -
      184  while (bytes_to_read > 0) {
      -
      185  bytes_read = file->Read(&buffer[0], bytes_to_read);
      -
      186  if (bytes_read <= 0) {
      -
      187  LOG(ERROR) << "Error reading 'moov' contents from file '" << file_path
      -
      188  << "'";
      -
      189  return false;
      -
      190  }
      -
      191  if (!Parse(&buffer[0], bytes_read)) {
      -
      192  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
      -
      193  return false;
      -
      194  }
      -
      195  bytes_to_read -= bytes_read;
      -
      196  }
      -
      197  queue_.Reset(); // So that we don't need to adjust data offsets.
      -
      198  mdat_tail_ = 0; // So it will skip boxes until mdat.
      -
      199  break; // Done.
      -
      200  }
      -
      201  file_position += box_size;
      -
      202  if (!file->Seek(file_position)) {
      -
      203  LOG(ERROR) << "Error skipping box in mp4 file '" << file_path << "'";
      -
      204  return false;
      -
      205  }
      -
      206  }
      -
      207  return true;
      -
      208 }
      -
      209 
      -
      210 bool MP4MediaParser::ParseBox(bool* err) {
      -
      211  const uint8_t* buf;
      -
      212  int size;
      -
      213  queue_.Peek(&buf, &size);
      -
      214  if (!size)
      -
      215  return false;
      -
      216 
      -
      217  scoped_ptr<BoxReader> reader(BoxReader::ReadTopLevelBox(buf, size, err));
      -
      218  if (reader.get() == NULL)
      -
      219  return false;
      -
      220 
      -
      221  if (reader->type() == FOURCC_MDAT) {
      -
      222  // The code ends up here only if a MOOV box is not yet seen.
      -
      223  DCHECK(!moov_);
      -
      224 
      -
      225  NOTIMPLEMENTED() << " Files with MDAT before MOOV is not supported yet.";
      -
      226  *err = true;
      -
      227  return false;
      -
      228  }
      -
      229 
      -
      230  // Set up mdat offset for ReadMDATsUntil().
      -
      231  mdat_tail_ = queue_.head() + reader->size();
      -
      232 
      -
      233  if (reader->type() == FOURCC_MOOV) {
      -
      234  *err = !ParseMoov(reader.get());
      -
      235  } else if (reader->type() == FOURCC_MOOF) {
      -
      236  moof_head_ = queue_.head();
      -
      237  *err = !ParseMoof(reader.get());
      -
      238 
      -
      239  // Return early to avoid evicting 'moof' data from queue. Auxiliary info may
      -
      240  // be located anywhere in the file, including inside the 'moof' itself.
      -
      241  // (Since 'default-base-is-moof' is mandated, no data references can come
      -
      242  // before the head of the 'moof', so keeping this box around is sufficient.)
      -
      243  return !(*err);
      -
      244  } else {
      -
      245  VLOG(2) << "Skipping top-level box: " << FourCCToString(reader->type());
      -
      246  }
      -
      247 
      -
      248  queue_.Pop(reader->size());
      -
      249  return !(*err);
      -
      250 }
      -
      251 
      -
      252 bool MP4MediaParser::ParseMoov(BoxReader* reader) {
      -
      253  if (moov_)
      -
      254  return true; // Already parsed the 'moov' box.
      -
      255 
      -
      256  moov_.reset(new Movie);
      -
      257  RCHECK(moov_->Parse(reader));
      -
      258  runs_.reset();
      +
      131  do {
      +
      132  if (state_ == kParsingBoxes) {
      +
      133  result = ParseBox(&err);
      +
      134  } else {
      +
      135  DCHECK_EQ(kEmittingSamples, state_);
      +
      136  result = EnqueueSample(&err);
      +
      137  if (result) {
      +
      138  int64_t max_clear = runs_->GetMaxClearOffset() + moof_head_;
      +
      139  err = !ReadAndDiscardMDATsUntil(max_clear);
      +
      140  }
      +
      141  }
      +
      142  } while (result && !err);
      +
      143 
      +
      144  if (err) {
      +
      145  DLOG(ERROR) << "Error while parsing MP4";
      +
      146  moov_.reset();
      +
      147  Reset();
      +
      148  ChangeState(kError);
      +
      149  return false;
      +
      150  }
      +
      151 
      +
      152  return true;
      +
      153 }
      +
      154 
      +
      155 bool MP4MediaParser::LoadMoov(const std::string& file_path) {
      +
      156  scoped_ptr<File, FileCloser> file(
      +
      157  File::OpenWithNoBuffering(file_path.c_str(), "r"));
      +
      158  if (!file) {
      +
      159  LOG(ERROR) << "Unable to open media file '" << file_path << "'";
      +
      160  return false;
      +
      161  }
      +
      162  if (!file->Seek(0)) {
      +
      163  LOG(WARNING) << "Filesystem does not support seeking on file '" << file_path
      +
      164  << "'";
      +
      165  return false;
      +
      166  }
      +
      167 
      +
      168  uint64_t file_position(0);
      +
      169  bool mdat_seen(false);
      +
      170  while (true) {
      +
      171  const uint32_t kBoxHeaderReadSize(16);
      +
      172  std::vector<uint8_t> buffer(kBoxHeaderReadSize);
      +
      173  int64_t bytes_read = file->Read(&buffer[0], kBoxHeaderReadSize);
      +
      174  if (bytes_read == 0) {
      +
      175  LOG(ERROR) << "Could not find 'moov' box in file '" << file_path << "'";
      +
      176  return false;
      +
      177  }
      +
      178  if (bytes_read < kBoxHeaderReadSize) {
      +
      179  LOG(ERROR) << "Error reading media file '" << file_path << "'";
      +
      180  return false;
      +
      181  }
      +
      182  uint64_t box_size;
      +
      183  FourCC box_type;
      +
      184  bool err;
      +
      185  if (!BoxReader::StartTopLevelBox(&buffer[0], kBoxHeaderReadSize, &box_type,
      +
      186  &box_size, &err)) {
      +
      187  LOG(ERROR) << "Could not start top level box from file '" << file_path
      +
      188  << "'";
      +
      189  return false;
      +
      190  }
      +
      191  if (box_type == FOURCC_MDAT) {
      +
      192  mdat_seen = true;
      +
      193  } else if (box_type == FOURCC_MOOV) {
      +
      194  if (!mdat_seen) {
      +
      195  // 'moov' is before 'mdat'. Nothing to do.
      +
      196  break;
      +
      197  }
      +
      198  // 'mdat' before 'moov'. Read and parse 'moov'.
      +
      199  if (!Parse(&buffer[0], bytes_read)) {
      +
      200  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
      +
      201  return false;
      +
      202  }
      +
      203  uint64_t bytes_to_read = box_size - bytes_read;
      +
      204  buffer.resize(bytes_to_read);
      +
      205  while (bytes_to_read > 0) {
      +
      206  bytes_read = file->Read(&buffer[0], bytes_to_read);
      +
      207  if (bytes_read <= 0) {
      +
      208  LOG(ERROR) << "Error reading 'moov' contents from file '" << file_path
      +
      209  << "'";
      +
      210  return false;
      +
      211  }
      +
      212  if (!Parse(&buffer[0], bytes_read)) {
      +
      213  LOG(ERROR) << "Error parsing mp4 file '" << file_path << "'";
      +
      214  return false;
      +
      215  }
      +
      216  bytes_to_read -= bytes_read;
      +
      217  }
      +
      218  queue_.Reset(); // So that we don't need to adjust data offsets.
      +
      219  mdat_tail_ = 0; // So it will skip boxes until mdat.
      +
      220  break; // Done.
      +
      221  }
      +
      222  file_position += box_size;
      +
      223  if (!file->Seek(file_position)) {
      +
      224  LOG(ERROR) << "Error skipping box in mp4 file '" << file_path << "'";
      +
      225  return false;
      +
      226  }
      +
      227  }
      +
      228  return true;
      +
      229 }
      +
      230 
      +
      231 bool MP4MediaParser::ParseBox(bool* err) {
      +
      232  const uint8_t* buf;
      +
      233  int size;
      +
      234  queue_.Peek(&buf, &size);
      +
      235  if (!size)
      +
      236  return false;
      +
      237 
      +
      238  scoped_ptr<BoxReader> reader(BoxReader::ReadTopLevelBox(buf, size, err));
      +
      239  if (reader.get() == NULL)
      +
      240  return false;
      +
      241 
      +
      242  if (reader->type() == FOURCC_MDAT) {
      +
      243  // The code ends up here only if a MOOV box is not yet seen.
      +
      244  DCHECK(!moov_);
      +
      245 
      +
      246  NOTIMPLEMENTED() << " Files with MDAT before MOOV is not supported yet.";
      +
      247  *err = true;
      +
      248  return false;
      +
      249  }
      +
      250 
      +
      251  // Set up mdat offset for ReadMDATsUntil().
      +
      252  mdat_tail_ = queue_.head() + reader->size();
      +
      253 
      +
      254  if (reader->type() == FOURCC_MOOV) {
      +
      255  *err = !ParseMoov(reader.get());
      +
      256  } else if (reader->type() == FOURCC_MOOF) {
      +
      257  moof_head_ = queue_.head();
      +
      258  *err = !ParseMoof(reader.get());
      259 
      -
      260  std::vector<scoped_refptr<StreamInfo> > streams;
      -
      261 
      -
      262  for (std::vector<Track>::const_iterator track = moov_->tracks.begin();
      -
      263  track != moov_->tracks.end(); ++track) {
      -
      264  const uint32_t timescale = track->media.header.timescale;
      -
      265 
      -
      266  // Calculate duration (based on timescale).
      -
      267  uint64_t duration = 0;
      -
      268  if (track->media.header.duration > 0) {
      -
      269  duration = track->media.header.duration;
      -
      270  } else if (moov_->extends.header.fragment_duration > 0) {
      -
      271  DCHECK(moov_->header.timescale != 0);
      -
      272  duration = Rescale(moov_->extends.header.fragment_duration,
      -
      273  moov_->header.timescale,
      -
      274  timescale);
      -
      275  } else if (moov_->header.duration > 0 &&
      -
      276  moov_->header.duration != std::numeric_limits<uint64_t>::max()) {
      -
      277  DCHECK(moov_->header.timescale != 0);
      -
      278  duration =
      -
      279  Rescale(moov_->header.duration, moov_->header.timescale, timescale);
      -
      280  }
      -
      281 
      -
      282  const SampleDescription& samp_descr =
      -
      283  track->media.information.sample_table.description;
      -
      284 
      -
      285  size_t desc_idx = 0;
      +
      260  // Return early to avoid evicting 'moof' data from queue. Auxiliary info may
      +
      261  // be located anywhere in the file, including inside the 'moof' itself.
      +
      262  // (Since 'default-base-is-moof' is mandated, no data references can come
      +
      263  // before the head of the 'moof', so keeping this box around is sufficient.)
      +
      264  return !(*err);
      +
      265  } else {
      +
      266  VLOG(2) << "Skipping top-level box: " << FourCCToString(reader->type());
      +
      267  }
      +
      268 
      +
      269  queue_.Pop(reader->size());
      +
      270  return !(*err);
      +
      271 }
      +
      272 
      +
      273 bool MP4MediaParser::ParseMoov(BoxReader* reader) {
      +
      274  if (moov_)
      +
      275  return true; // Already parsed the 'moov' box.
      +
      276 
      +
      277  moov_.reset(new Movie);
      +
      278  RCHECK(moov_->Parse(reader));
      +
      279  runs_.reset();
      +
      280 
      +
      281  std::vector<scoped_refptr<StreamInfo> > streams;
      +
      282 
      +
      283  for (std::vector<Track>::const_iterator track = moov_->tracks.begin();
      +
      284  track != moov_->tracks.end(); ++track) {
      +
      285  const uint32_t timescale = track->media.header.timescale;
      286 
      -
      287  // Read sample description index from mvex if it exists otherwise read
      -
      288  // from the first entry in Sample To Chunk box.
      -
      289  if (moov_->extends.tracks.size() > 0) {
      -
      290  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
      -
      291  const TrackExtends& trex = moov_->extends.tracks[t];
      -
      292  if (trex.track_id == track->header.track_id) {
      -
      293  desc_idx = trex.default_sample_description_index;
      -
      294  break;
      -
      295  }
      -
      296  }
      -
      297  } else {
      -
      298  const std::vector<ChunkInfo>& chunk_info =
      -
      299  track->media.information.sample_table.sample_to_chunk.chunk_info;
      -
      300  RCHECK(chunk_info.size() > 0);
      -
      301  desc_idx = chunk_info[0].sample_description_index;
      -
      302  }
      -
      303  RCHECK(desc_idx > 0);
      -
      304  desc_idx -= 1; // BMFF descriptor index is one-based
      +
      287  // Calculate duration (based on timescale).
      +
      288  uint64_t duration = 0;
      +
      289  if (track->media.header.duration > 0) {
      +
      290  duration = track->media.header.duration;
      +
      291  } else if (moov_->extends.header.fragment_duration > 0) {
      +
      292  DCHECK(moov_->header.timescale != 0);
      +
      293  duration = Rescale(moov_->extends.header.fragment_duration,
      +
      294  moov_->header.timescale,
      +
      295  timescale);
      +
      296  } else if (moov_->header.duration > 0 &&
      +
      297  moov_->header.duration != std::numeric_limits<uint64_t>::max()) {
      +
      298  DCHECK(moov_->header.timescale != 0);
      +
      299  duration =
      +
      300  Rescale(moov_->header.duration, moov_->header.timescale, timescale);
      +
      301  }
      +
      302 
      +
      303  const SampleDescription& samp_descr =
      +
      304  track->media.information.sample_table.description;
      305 
      -
      306  if (track->media.handler.type == kAudio) {
      -
      307  RCHECK(!samp_descr.audio_entries.empty());
      -
      308 
      -
      309  // It is not uncommon to find otherwise-valid files with incorrect sample
      -
      310  // description indices, so we fail gracefully in that case.
      -
      311  if (desc_idx >= samp_descr.audio_entries.size())
      -
      312  desc_idx = 0;
      -
      313  const AudioSampleEntry& entry = samp_descr.audio_entries[desc_idx];
      -
      314 
      -
      315  if (!(entry.format == FOURCC_MP4A || entry.format == FOURCC_EAC3 ||
      -
      316  (entry.format == FOURCC_ENCA &&
      -
      317  entry.sinf.format.format == FOURCC_MP4A))) {
      -
      318  LOG(ERROR) << "Unsupported audio format 0x"
      -
      319  << std::hex << entry.format << " in stsd box.";
      -
      320  return false;
      -
      321  }
      -
      322 
      -
      323  ObjectType audio_type = entry.esds.es_descriptor.object_type();
      -
      324  DVLOG(1) << "audio_type " << std::hex << audio_type;
      -
      325  if (audio_type == kForbidden && entry.format == FOURCC_EAC3) {
      -
      326  audio_type = kEAC3;
      -
      327  }
      -
      328 
      -
      329  AudioCodec codec = kUnknownAudioCodec;
      -
      330  uint8_t num_channels = 0;
      -
      331  uint32_t sampling_frequency = 0;
      -
      332  uint8_t audio_object_type = 0;
      -
      333  std::vector<uint8_t> extra_data;
      -
      334  // Check if it is MPEG4 AAC defined in ISO 14496 Part 3 or
      -
      335  // supported MPEG2 AAC variants.
      -
      336  if (entry.esds.es_descriptor.IsAAC()) {
      -
      337  codec = kCodecAAC;
      -
      338  const AACAudioSpecificConfig& aac_audio_specific_config =
      -
      339  entry.esds.aac_audio_specific_config;
      -
      340  num_channels = aac_audio_specific_config.num_channels();
      -
      341  sampling_frequency = aac_audio_specific_config.frequency();
      -
      342  audio_object_type = aac_audio_specific_config.audio_object_type();
      -
      343  extra_data = entry.esds.es_descriptor.decoder_specific_info();
      -
      344  } else if (audio_type == kEAC3) {
      -
      345  codec = kCodecEAC3;
      -
      346  num_channels = entry.channelcount;
      -
      347  sampling_frequency = entry.samplerate;
      -
      348  } else {
      -
      349  LOG(ERROR) << "Unsupported audio object type 0x"
      -
      350  << std::hex << audio_type << " in esds.";
      -
      351  return false;
      -
      352  }
      -
      353 
      -
      354  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      -
      355  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
      -
      356  streams.push_back(new AudioStreamInfo(
      -
      357  track->header.track_id,
      -
      358  timescale,
      -
      359  duration,
      -
      360  codec,
      -
      361  AudioStreamInfo::GetCodecString(codec, audio_object_type),
      -
      362  track->media.header.language,
      -
      363  entry.samplesize,
      -
      364  num_channels,
      -
      365  sampling_frequency,
      -
      366  extra_data.size() ? &extra_data[0] : NULL,
      -
      367  extra_data.size(),
      -
      368  is_encrypted));
      -
      369  }
      -
      370 
      -
      371  if (track->media.handler.type == kVideo) {
      -
      372  RCHECK(!samp_descr.video_entries.empty());
      -
      373  if (desc_idx >= samp_descr.video_entries.size())
      -
      374  desc_idx = 0;
      -
      375  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
      -
      376 
      -
      377  uint32_t coded_width = entry.width;
      -
      378  uint32_t coded_height = entry.height;
      -
      379  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
      -
      380  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
      -
      381  if (pixel_width == 0 && pixel_height == 0) {
      -
      382  pixel_width = 1;
      -
      383  pixel_height = 1;
      -
      384  }
      -
      385  std::string codec_string;
      -
      386  uint8_t nalu_length_size = 0;
      -
      387 
      -
      388  const FourCC actual_format = entry.GetActualFormat();
      -
      389  const VideoCodec video_codec = FourCCToCodec(actual_format);
      -
      390  switch (actual_format) {
      -
      391  case FOURCC_AVC1: {
      -
      392  AVCDecoderConfiguration avc_config;
      -
      393  if (!avc_config.Parse(entry.codec_config_record.data)) {
      -
      394  LOG(ERROR) << "Failed to parse avcc.";
      -
      395  return false;
      -
      396  }
      -
      397  codec_string = avc_config.GetCodecString();
      -
      398  nalu_length_size = avc_config.length_size();
      -
      399 
      -
      400  if (coded_width != avc_config.coded_width() ||
      -
      401  coded_height != avc_config.coded_height()) {
      -
      402  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
      -
      403  << "," << coded_height
      -
      404  << ") does not match with resolution in "
      -
      405  "AVCDecoderConfigurationRecord ("
      -
      406  << avc_config.coded_width() << ","
      -
      407  << avc_config.coded_height()
      -
      408  << "). Use AVCDecoderConfigurationRecord.";
      -
      409  coded_width = avc_config.coded_width();
      -
      410  coded_height = avc_config.coded_height();
      -
      411  }
      -
      412 
      -
      413  if (pixel_width != avc_config.pixel_width() ||
      -
      414  pixel_height != avc_config.pixel_height()) {
      -
      415  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
      -
      416  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
      -
      417  << pixel_height
      -
      418  << ") does not match with SAR in AVCDecoderConfigurationRecord "
      -
      419  "("
      -
      420  << avc_config.pixel_width() << "," << avc_config.pixel_height()
      -
      421  << "). Use AVCDecoderConfigurationRecord.";
      -
      422  pixel_width = avc_config.pixel_width();
      -
      423  pixel_height = avc_config.pixel_height();
      -
      424  }
      -
      425  break;
      -
      426  }
      -
      427  case FOURCC_HEV1:
      -
      428  case FOURCC_HVC1: {
      -
      429  HEVCDecoderConfiguration hevc_config;
      -
      430  if (!hevc_config.Parse(entry.codec_config_record.data)) {
      -
      431  LOG(ERROR) << "Failed to parse hevc.";
      -
      432  return false;
      -
      433  }
      -
      434  codec_string = hevc_config.GetCodecString(video_codec);
      -
      435  nalu_length_size = hevc_config.length_size();
      -
      436  break;
      -
      437  }
      -
      438  case FOURCC_VP08:
      -
      439  case FOURCC_VP09:
      -
      440  case FOURCC_VP10: {
      -
      441  VPCodecConfiguration vp_config;
      -
      442  if (!vp_config.Parse(entry.codec_config_record.data)) {
      -
      443  LOG(ERROR) << "Failed to parse vpcc.";
      -
      444  return false;
      -
      445  }
      -
      446  codec_string = vp_config.GetCodecString(video_codec);
      -
      447  break;
      -
      448  }
      -
      449  default:
      -
      450  LOG(ERROR) << "Unsupported video format "
      -
      451  << FourCCToString(actual_format) << " in stsd box.";
      -
      452  return false;
      -
      453  }
      -
      454 
      -
      455  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      -
      456  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
      -
      457  streams.push_back(new VideoStreamInfo(
      -
      458  track->header.track_id, timescale, duration, video_codec,
      -
      459  codec_string, track->media.header.language, coded_width, coded_height,
      -
      460  pixel_width, pixel_height,
      -
      461  0, // trick_play_rate
      -
      462  nalu_length_size, vector_as_array(&entry.codec_config_record.data),
      -
      463  entry.codec_config_record.data.size(), is_encrypted));
      -
      464  }
      -
      465  }
      -
      466 
      -
      467  init_cb_.Run(streams);
      -
      468  if (!FetchKeysIfNecessary(moov_->pssh))
      -
      469  return false;
      -
      470  runs_.reset(new TrackRunIterator(moov_.get()));
      -
      471  RCHECK(runs_->Init());
      -
      472  ChangeState(kEmittingSamples);
      -
      473  return true;
      -
      474 }
      -
      475 
      -
      476 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
      -
      477  // Must already have initialization segment.
      -
      478  RCHECK(moov_.get());
      -
      479  MovieFragment moof;
      -
      480  RCHECK(moof.Parse(reader));
      -
      481  if (!runs_)
      -
      482  runs_.reset(new TrackRunIterator(moov_.get()));
      -
      483  RCHECK(runs_->Init(moof));
      -
      484  if (!FetchKeysIfNecessary(moof.pssh))
      -
      485  return false;
      -
      486  ChangeState(kEmittingSamples);
      -
      487  return true;
      -
      488 }
      -
      489 
      -
      490 bool MP4MediaParser::FetchKeysIfNecessary(
      -
      491  const std::vector<ProtectionSystemSpecificHeader>& headers) {
      -
      492  if (headers.empty())
      -
      493  return true;
      -
      494 
      -
      495  // An error will be returned later if the samples need to be decrypted.
      -
      496  if (!decryption_key_source_)
      -
      497  return true;
      -
      498 
      -
      499  // TODO(tinskip): Pass in raw 'pssh' boxes to FetchKeys. This will allow
      -
      500  // supporting multiple keysystems. Move this to KeySource.
      -
      501  std::vector<uint8_t> widevine_system_id;
      -
      502  base::HexStringToBytes(kWidevineKeySystemId, &widevine_system_id);
      -
      503  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
      -
      504  headers.begin(); iter != headers.end(); ++iter) {
      -
      505  if (iter->system_id == widevine_system_id) {
      -
      506  Status status = decryption_key_source_->FetchKeys(iter->data);
      -
      507  if (!status.ok()) {
      -
      508  LOG(ERROR) << "Error fetching decryption keys: " << status;
      -
      509  return false;
      -
      510  }
      -
      511  return true;
      -
      512  }
      -
      513  }
      -
      514 
      -
      515  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
      -
      516  return false;
      -
      517 }
      -
      518 
      -
      519 bool MP4MediaParser::EnqueueSample(bool* err) {
      -
      520  if (!runs_->IsRunValid()) {
      -
      521  // Remain in kEnqueueingSamples state, discarding data, until the end of
      -
      522  // the current 'mdat' box has been appended to the queue.
      -
      523  if (!queue_.Trim(mdat_tail_))
      -
      524  return false;
      -
      525 
      -
      526  ChangeState(kParsingBoxes);
      -
      527  return true;
      -
      528  }
      -
      529 
      -
      530  if (!runs_->IsSampleValid()) {
      -
      531  runs_->AdvanceRun();
      -
      532  return true;
      -
      533  }
      -
      534 
      -
      535  DCHECK(!(*err));
      -
      536 
      -
      537  const uint8_t* buf;
      -
      538  int buf_size;
      -
      539  queue_.Peek(&buf, &buf_size);
      -
      540  if (!buf_size)
      -
      541  return false;
      -
      542 
      -
      543  // Skip this entire track if it is not audio nor video.
      -
      544  if (!runs_->is_audio() && !runs_->is_video())
      -
      545  runs_->AdvanceRun();
      -
      546 
      -
      547  // Attempt to cache the auxiliary information first. Aux info is usually
      -
      548  // placed in a contiguous block before the sample data, rather than being
      -
      549  // interleaved. If we didn't cache it, this would require that we retain the
      -
      550  // start of the segment buffer while reading samples. Aux info is typically
      -
      551  // quite small compared to sample data, so this pattern is useful on
      -
      552  // memory-constrained devices where the source buffer consumes a substantial
      -
      553  // portion of the total system memory.
      -
      554  if (runs_->AuxInfoNeedsToBeCached()) {
      -
      555  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
      -
      556  if (buf_size < runs_->aux_info_size())
      -
      557  return false;
      -
      558  *err = !runs_->CacheAuxInfo(buf, buf_size);
      -
      559  return !*err;
      -
      560  }
      -
      561 
      -
      562  int64_t sample_offset = runs_->sample_offset() + moof_head_;
      -
      563  queue_.PeekAt(sample_offset, &buf, &buf_size);
      -
      564  if (buf_size < runs_->sample_size()) {
      -
      565  if (sample_offset < queue_.head()) {
      -
      566  LOG(ERROR) << "Incorrect sample offset " << sample_offset
      -
      567  << " < " << queue_.head();
      -
      568  *err = true;
      -
      569  }
      -
      570  return false;
      -
      571  }
      +
      306  size_t desc_idx = 0;
      +
      307 
      +
      308  // Read sample description index from mvex if it exists otherwise read
      +
      309  // from the first entry in Sample To Chunk box.
      +
      310  if (moov_->extends.tracks.size() > 0) {
      +
      311  for (size_t t = 0; t < moov_->extends.tracks.size(); t++) {
      +
      312  const TrackExtends& trex = moov_->extends.tracks[t];
      +
      313  if (trex.track_id == track->header.track_id) {
      +
      314  desc_idx = trex.default_sample_description_index;
      +
      315  break;
      +
      316  }
      +
      317  }
      +
      318  } else {
      +
      319  const std::vector<ChunkInfo>& chunk_info =
      +
      320  track->media.information.sample_table.sample_to_chunk.chunk_info;
      +
      321  RCHECK(chunk_info.size() > 0);
      +
      322  desc_idx = chunk_info[0].sample_description_index;
      +
      323  }
      +
      324  RCHECK(desc_idx > 0);
      +
      325  desc_idx -= 1; // BMFF descriptor index is one-based
      +
      326 
      +
      327  if (track->media.handler.type == kAudio) {
      +
      328  RCHECK(!samp_descr.audio_entries.empty());
      +
      329 
      +
      330  // It is not uncommon to find otherwise-valid files with incorrect sample
      +
      331  // description indices, so we fail gracefully in that case.
      +
      332  if (desc_idx >= samp_descr.audio_entries.size())
      +
      333  desc_idx = 0;
      +
      334 
      +
      335  const AudioSampleEntry& entry = samp_descr.audio_entries[desc_idx];
      +
      336  const FourCC actual_format = entry.GetActualFormat();
      +
      337  AudioCodec codec = FourCCToAudioCodec(actual_format);
      +
      338  uint8_t num_channels = 0;
      +
      339  uint32_t sampling_frequency = 0;
      +
      340  uint8_t audio_object_type = 0;
      +
      341  std::vector<uint8_t> extra_data;
      +
      342 
      +
      343  switch (actual_format) {
      +
      344  case FOURCC_MP4A:
      +
      345  // Check if it is MPEG4 AAC defined in ISO 14496 Part 3 or
      +
      346  // supported MPEG2 AAC variants.
      +
      347  if (entry.esds.es_descriptor.IsAAC()) {
      +
      348  codec = kCodecAAC;
      +
      349  const AACAudioSpecificConfig& aac_audio_specific_config =
      +
      350  entry.esds.aac_audio_specific_config;
      +
      351  num_channels = aac_audio_specific_config.num_channels();
      +
      352  sampling_frequency = aac_audio_specific_config.frequency();
      +
      353  audio_object_type = aac_audio_specific_config.audio_object_type();
      +
      354  extra_data = entry.esds.es_descriptor.decoder_specific_info();
      +
      355  break;
      +
      356  } else {
      +
      357  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
      +
      358  << actual_format << " in stsd box.";
      +
      359  return false;
      +
      360  }
      +
      361  case FOURCC_DTSC:
      +
      362  case FOURCC_DTSH:
      +
      363  case FOURCC_DTSL:
      +
      364  case FOURCC_DTSE:
      +
      365  case FOURCC_DTSP:
      +
      366  case FOURCC_DTSM:
      +
      367  extra_data = entry.extra_data;
      +
      368  sampling_frequency = entry.samplerate;
      +
      369  break;
      +
      370  case FOURCC_EAC3:
      +
      371  num_channels = entry.channelcount;
      +
      372  sampling_frequency = entry.samplerate;
      +
      373  break;
      +
      374  default:
      +
      375  LOG(ERROR) << "Unsupported audio format 0x" << std::hex
      +
      376  << actual_format << " in stsd box.";
      +
      377  return false;
      +
      378  }
      +
      379 
      +
      380  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      +
      381  DVLOG(1) << "is_audio_track_encrypted_: " << is_encrypted;
      +
      382  streams.push_back(new AudioStreamInfo(
      +
      383  track->header.track_id,
      +
      384  timescale,
      +
      385  duration,
      +
      386  codec,
      +
      387  AudioStreamInfo::GetCodecString(codec, audio_object_type),
      +
      388  track->media.header.language,
      +
      389  entry.samplesize,
      +
      390  num_channels,
      +
      391  sampling_frequency,
      +
      392  extra_data.size() ? &extra_data[0] : NULL,
      +
      393  extra_data.size(),
      +
      394  is_encrypted));
      +
      395  }
      +
      396 
      +
      397  if (track->media.handler.type == kVideo) {
      +
      398  RCHECK(!samp_descr.video_entries.empty());
      +
      399  if (desc_idx >= samp_descr.video_entries.size())
      +
      400  desc_idx = 0;
      +
      401  const VideoSampleEntry& entry = samp_descr.video_entries[desc_idx];
      +
      402 
      +
      403  uint32_t coded_width = entry.width;
      +
      404  uint32_t coded_height = entry.height;
      +
      405  uint32_t pixel_width = entry.pixel_aspect.h_spacing;
      +
      406  uint32_t pixel_height = entry.pixel_aspect.v_spacing;
      +
      407  if (pixel_width == 0 && pixel_height == 0) {
      +
      408  pixel_width = 1;
      +
      409  pixel_height = 1;
      +
      410  }
      +
      411  std::string codec_string;
      +
      412  uint8_t nalu_length_size = 0;
      +
      413 
      +
      414  const FourCC actual_format = entry.GetActualFormat();
      +
      415  const VideoCodec video_codec = FourCCToVideoCodec(actual_format);
      +
      416  switch (actual_format) {
      +
      417  case FOURCC_AVC1: {
      +
      418  AVCDecoderConfiguration avc_config;
      +
      419  if (!avc_config.Parse(entry.codec_config_record.data)) {
      +
      420  LOG(ERROR) << "Failed to parse avcc.";
      +
      421  return false;
      +
      422  }
      +
      423  codec_string = avc_config.GetCodecString();
      +
      424  nalu_length_size = avc_config.length_size();
      +
      425 
      +
      426  if (coded_width != avc_config.coded_width() ||
      +
      427  coded_height != avc_config.coded_height()) {
      +
      428  LOG(WARNING) << "Resolution in VisualSampleEntry (" << coded_width
      +
      429  << "," << coded_height
      +
      430  << ") does not match with resolution in "
      +
      431  "AVCDecoderConfigurationRecord ("
      +
      432  << avc_config.coded_width() << ","
      +
      433  << avc_config.coded_height()
      +
      434  << "). Use AVCDecoderConfigurationRecord.";
      +
      435  coded_width = avc_config.coded_width();
      +
      436  coded_height = avc_config.coded_height();
      +
      437  }
      +
      438 
      +
      439  if (pixel_width != avc_config.pixel_width() ||
      +
      440  pixel_height != avc_config.pixel_height()) {
      +
      441  LOG_IF(WARNING, pixel_width != 1 || pixel_height != 1)
      +
      442  << "Pixel aspect ratio in PASP box (" << pixel_width << ","
      +
      443  << pixel_height
      +
      444  << ") does not match with SAR in AVCDecoderConfigurationRecord "
      +
      445  "("
      +
      446  << avc_config.pixel_width() << "," << avc_config.pixel_height()
      +
      447  << "). Use AVCDecoderConfigurationRecord.";
      +
      448  pixel_width = avc_config.pixel_width();
      +
      449  pixel_height = avc_config.pixel_height();
      +
      450  }
      +
      451  break;
      +
      452  }
      +
      453  case FOURCC_HEV1:
      +
      454  case FOURCC_HVC1: {
      +
      455  HEVCDecoderConfiguration hevc_config;
      +
      456  if (!hevc_config.Parse(entry.codec_config_record.data)) {
      +
      457  LOG(ERROR) << "Failed to parse hevc.";
      +
      458  return false;
      +
      459  }
      +
      460  codec_string = hevc_config.GetCodecString(video_codec);
      +
      461  nalu_length_size = hevc_config.length_size();
      +
      462  break;
      +
      463  }
      +
      464  case FOURCC_VP08:
      +
      465  case FOURCC_VP09:
      +
      466  case FOURCC_VP10: {
      +
      467  VPCodecConfiguration vp_config;
      +
      468  if (!vp_config.Parse(entry.codec_config_record.data)) {
      +
      469  LOG(ERROR) << "Failed to parse vpcc.";
      +
      470  return false;
      +
      471  }
      +
      472  codec_string = vp_config.GetCodecString(video_codec);
      +
      473  break;
      +
      474  }
      +
      475  default:
      +
      476  LOG(ERROR) << "Unsupported video format "
      +
      477  << FourCCToString(actual_format) << " in stsd box.";
      +
      478  return false;
      +
      479  }
      +
      480 
      +
      481  bool is_encrypted = entry.sinf.info.track_encryption.is_encrypted;
      +
      482  DVLOG(1) << "is_video_track_encrypted_: " << is_encrypted;
      +
      483  streams.push_back(new VideoStreamInfo(
      +
      484  track->header.track_id, timescale, duration, video_codec,
      +
      485  codec_string, track->media.header.language, coded_width, coded_height,
      +
      486  pixel_width, pixel_height,
      +
      487  0, // trick_play_rate
      +
      488  nalu_length_size, vector_as_array(&entry.codec_config_record.data),
      +
      489  entry.codec_config_record.data.size(), is_encrypted));
      +
      490  }
      +
      491  }
      +
      492 
      +
      493  init_cb_.Run(streams);
      +
      494  if (!FetchKeysIfNecessary(moov_->pssh))
      +
      495  return false;
      +
      496  runs_.reset(new TrackRunIterator(moov_.get()));
      +
      497  RCHECK(runs_->Init());
      +
      498  ChangeState(kEmittingSamples);
      +
      499  return true;
      +
      500 }
      +
      501 
      +
      502 bool MP4MediaParser::ParseMoof(BoxReader* reader) {
      +
      503  // Must already have initialization segment.
      +
      504  RCHECK(moov_.get());
      +
      505  MovieFragment moof;
      +
      506  RCHECK(moof.Parse(reader));
      +
      507  if (!runs_)
      +
      508  runs_.reset(new TrackRunIterator(moov_.get()));
      +
      509  RCHECK(runs_->Init(moof));
      +
      510  if (!FetchKeysIfNecessary(moof.pssh))
      +
      511  return false;
      +
      512  ChangeState(kEmittingSamples);
      +
      513  return true;
      +
      514 }
      +
      515 
      +
      516 bool MP4MediaParser::FetchKeysIfNecessary(
      +
      517  const std::vector<ProtectionSystemSpecificHeader>& headers) {
      +
      518  if (headers.empty())
      +
      519  return true;
      +
      520 
      +
      521  // An error will be returned later if the samples need to be decrypted.
      +
      522  if (!decryption_key_source_)
      +
      523  return true;
      +
      524 
      +
      525  // TODO(tinskip): Pass in raw 'pssh' boxes to FetchKeys. This will allow
      +
      526  // supporting multiple keysystems. Move this to KeySource.
      +
      527  std::vector<uint8_t> widevine_system_id;
      +
      528  base::HexStringToBytes(kWidevineKeySystemId, &widevine_system_id);
      +
      529  for (std::vector<ProtectionSystemSpecificHeader>::const_iterator iter =
      +
      530  headers.begin(); iter != headers.end(); ++iter) {
      +
      531  if (iter->system_id == widevine_system_id) {
      +
      532  Status status = decryption_key_source_->FetchKeys(iter->data);
      +
      533  if (!status.ok()) {
      +
      534  LOG(ERROR) << "Error fetching decryption keys: " << status;
      +
      535  return false;
      +
      536  }
      +
      537  return true;
      +
      538  }
      +
      539  }
      +
      540 
      +
      541  LOG(ERROR) << "No viable 'pssh' box found for content decryption.";
      +
      542  return false;
      +
      543 }
      +
      544 
      +
      545 bool MP4MediaParser::EnqueueSample(bool* err) {
      +
      546  if (!runs_->IsRunValid()) {
      +
      547  // Remain in kEnqueueingSamples state, discarding data, until the end of
      +
      548  // the current 'mdat' box has been appended to the queue.
      +
      549  if (!queue_.Trim(mdat_tail_))
      +
      550  return false;
      +
      551 
      +
      552  ChangeState(kParsingBoxes);
      +
      553  return true;
      +
      554  }
      +
      555 
      +
      556  if (!runs_->IsSampleValid()) {
      +
      557  runs_->AdvanceRun();
      +
      558  return true;
      +
      559  }
      +
      560 
      +
      561  DCHECK(!(*err));
      +
      562 
      +
      563  const uint8_t* buf;
      +
      564  int buf_size;
      +
      565  queue_.Peek(&buf, &buf_size);
      +
      566  if (!buf_size)
      +
      567  return false;
      +
      568 
      +
      569  // Skip this entire track if it is not audio nor video.
      +
      570  if (!runs_->is_audio() && !runs_->is_video())
      +
      571  runs_->AdvanceRun();
      572 
      -
      573  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
      -
      574  buf, runs_->sample_size(), runs_->is_keyframe()));
      -
      575  if (runs_->is_encrypted()) {
      -
      576  scoped_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
      -
      577  if (!decrypt_config ||
      -
      578  !DecryptSampleBuffer(decrypt_config.get(),
      -
      579  stream_sample->writable_data(),
      -
      580  stream_sample->data_size())) {
      -
      581  *err = true;
      -
      582  LOG(ERROR) << "Cannot decrypt samples.";
      +
      573  // Attempt to cache the auxiliary information first. Aux info is usually
      +
      574  // placed in a contiguous block before the sample data, rather than being
      +
      575  // interleaved. If we didn't cache it, this would require that we retain the
      +
      576  // start of the segment buffer while reading samples. Aux info is typically
      +
      577  // quite small compared to sample data, so this pattern is useful on
      +
      578  // memory-constrained devices where the source buffer consumes a substantial
      +
      579  // portion of the total system memory.
      +
      580  if (runs_->AuxInfoNeedsToBeCached()) {
      +
      581  queue_.PeekAt(runs_->aux_info_offset() + moof_head_, &buf, &buf_size);
      +
      582  if (buf_size < runs_->aux_info_size())
      583  return false;
      -
      584  }
      -
      585  }
      -
      586 
      -
      587  stream_sample->set_dts(runs_->dts());
      -
      588  stream_sample->set_pts(runs_->cts());
      -
      589  stream_sample->set_duration(runs_->duration());
      -
      590 
      -
      591  DVLOG(3) << "Pushing frame: "
      -
      592  << ", key=" << runs_->is_keyframe()
      -
      593  << ", dur=" << runs_->duration()
      -
      594  << ", dts=" << runs_->dts()
      -
      595  << ", cts=" << runs_->cts()
      -
      596  << ", size=" << runs_->sample_size();
      -
      597 
      -
      598  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
      -
      599  *err = true;
      -
      600  LOG(ERROR) << "Failed to process the sample.";
      -
      601  return false;
      -
      602  }
      -
      603 
      -
      604  runs_->AdvanceSample();
      -
      605  return true;
      -
      606 }
      -
      607 
      -
      608 bool MP4MediaParser::DecryptSampleBuffer(const DecryptConfig* decrypt_config,
      -
      609  uint8_t* buffer,
      -
      610  size_t buffer_size) {
      -
      611  DCHECK(decrypt_config);
      -
      612  DCHECK(buffer);
      -
      613 
      -
      614  if (!decryption_key_source_) {
      -
      615  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
      -
      616  "enabled";
      -
      617  return false;
      -
      618  }
      -
      619 
      -
      620  // Get the encryptor object.
      -
      621  AesCtrEncryptor* encryptor;
      -
      622  DecryptorMap::iterator found = decryptor_map_.find(decrypt_config->key_id());
      -
      623  if (found == decryptor_map_.end()) {
      -
      624  // Create new AesCtrEncryptor
      -
      625  EncryptionKey key;
      -
      626  Status status(decryption_key_source_->GetKey(decrypt_config->key_id(),
      -
      627  &key));
      -
      628  if (!status.ok()) {
      -
      629  LOG(ERROR) << "Error retrieving decryption key: " << status;
      -
      630  return false;
      -
      631  }
      -
      632  scoped_ptr<AesCtrEncryptor> new_encryptor(new AesCtrEncryptor);
      -
      633  if (!new_encryptor->InitializeWithIv(key.key, decrypt_config->iv())) {
      -
      634  LOG(ERROR) << "Failed to initialize AesCtrEncryptor for decryption.";
      -
      635  return false;
      -
      636  }
      -
      637  encryptor = new_encryptor.release();
      -
      638  decryptor_map_[decrypt_config->key_id()] = encryptor;
      -
      639  } else {
      -
      640  encryptor = found->second;
      -
      641  }
      -
      642  if (!encryptor->SetIv(decrypt_config->iv())) {
      -
      643  LOG(ERROR) << "Invalid initialization vector.";
      -
      644  return false;
      -
      645  }
      -
      646 
      -
      647  if (decrypt_config->subsamples().empty()) {
      -
      648  // Sample not encrypted using subsample encryption. Decrypt whole.
      -
      649  if (!encryptor->Decrypt(buffer, buffer_size, buffer)) {
      -
      650  LOG(ERROR) << "Error during bulk sample decryption.";
      -
      651  return false;
      -
      652  }
      -
      653  return true;
      -
      654  }
      -
      655 
      -
      656  // Subsample decryption.
      -
      657  const std::vector<SubsampleEntry>& subsamples = decrypt_config->subsamples();
      -
      658  uint8_t* current_ptr = buffer;
      -
      659  const uint8_t* buffer_end = buffer + buffer_size;
      -
      660  current_ptr += decrypt_config->data_offset();
      -
      661  if (current_ptr > buffer_end) {
      -
      662  LOG(ERROR) << "Subsample data_offset too large.";
      -
      663  return false;
      -
      664  }
      -
      665  for (std::vector<SubsampleEntry>::const_iterator iter = subsamples.begin();
      -
      666  iter != subsamples.end();
      -
      667  ++iter) {
      -
      668  if ((current_ptr + iter->clear_bytes + iter->cipher_bytes) > buffer_end) {
      -
      669  LOG(ERROR) << "Subsamples overflow sample buffer.";
      -
      670  return false;
      -
      671  }
      -
      672  current_ptr += iter->clear_bytes;
      -
      673  if (!encryptor->Decrypt(current_ptr, iter->cipher_bytes, current_ptr)) {
      -
      674  LOG(ERROR) << "Error decrypting subsample buffer.";
      -
      675  return false;
      -
      676  }
      -
      677  current_ptr += iter->cipher_bytes;
      -
      678  }
      -
      679  return true;
      -
      680 }
      +
      584  *err = !runs_->CacheAuxInfo(buf, buf_size);
      +
      585  return !*err;
      +
      586  }
      +
      587 
      +
      588  int64_t sample_offset = runs_->sample_offset() + moof_head_;
      +
      589  queue_.PeekAt(sample_offset, &buf, &buf_size);
      +
      590  if (buf_size < runs_->sample_size()) {
      +
      591  if (sample_offset < queue_.head()) {
      +
      592  LOG(ERROR) << "Incorrect sample offset " << sample_offset
      +
      593  << " < " << queue_.head();
      +
      594  *err = true;
      +
      595  }
      +
      596  return false;
      +
      597  }
      +
      598 
      +
      599  scoped_refptr<MediaSample> stream_sample(MediaSample::CopyFrom(
      +
      600  buf, runs_->sample_size(), runs_->is_keyframe()));
      +
      601  if (runs_->is_encrypted()) {
      +
      602  scoped_ptr<DecryptConfig> decrypt_config = runs_->GetDecryptConfig();
      +
      603  if (!decrypt_config ||
      +
      604  !DecryptSampleBuffer(decrypt_config.get(),
      +
      605  stream_sample->writable_data(),
      +
      606  stream_sample->data_size())) {
      +
      607  *err = true;
      +
      608  LOG(ERROR) << "Cannot decrypt samples.";
      +
      609  return false;
      +
      610  }
      +
      611  }
      +
      612 
      +
      613  stream_sample->set_dts(runs_->dts());
      +
      614  stream_sample->set_pts(runs_->cts());
      +
      615  stream_sample->set_duration(runs_->duration());
      +
      616 
      +
      617  DVLOG(3) << "Pushing frame: "
      +
      618  << ", key=" << runs_->is_keyframe()
      +
      619  << ", dur=" << runs_->duration()
      +
      620  << ", dts=" << runs_->dts()
      +
      621  << ", cts=" << runs_->cts()
      +
      622  << ", size=" << runs_->sample_size();
      +
      623 
      +
      624  if (!new_sample_cb_.Run(runs_->track_id(), stream_sample)) {
      +
      625  *err = true;
      +
      626  LOG(ERROR) << "Failed to process the sample.";
      +
      627  return false;
      +
      628  }
      +
      629 
      +
      630  runs_->AdvanceSample();
      +
      631  return true;
      +
      632 }
      +
      633 
      +
      634 bool MP4MediaParser::DecryptSampleBuffer(const DecryptConfig* decrypt_config,
      +
      635  uint8_t* buffer,
      +
      636  size_t buffer_size) {
      +
      637  DCHECK(decrypt_config);
      +
      638  DCHECK(buffer);
      +
      639 
      +
      640  if (!decryption_key_source_) {
      +
      641  LOG(ERROR) << "Encrypted media sample encountered, but decryption is not "
      +
      642  "enabled";
      +
      643  return false;
      +
      644  }
      +
      645 
      +
      646  // Get the encryptor object.
      +
      647  AesCtrEncryptor* encryptor;
      +
      648  DecryptorMap::iterator found = decryptor_map_.find(decrypt_config->key_id());
      +
      649  if (found == decryptor_map_.end()) {
      +
      650  // Create new AesCtrEncryptor
      +
      651  EncryptionKey key;
      +
      652  Status status(decryption_key_source_->GetKey(decrypt_config->key_id(),
      +
      653  &key));
      +
      654  if (!status.ok()) {
      +
      655  LOG(ERROR) << "Error retrieving decryption key: " << status;
      +
      656  return false;
      +
      657  }
      +
      658  scoped_ptr<AesCtrEncryptor> new_encryptor(new AesCtrEncryptor);
      +
      659  if (!new_encryptor->InitializeWithIv(key.key, decrypt_config->iv())) {
      +
      660  LOG(ERROR) << "Failed to initialize AesCtrEncryptor for decryption.";
      +
      661  return false;
      +
      662  }
      +
      663  encryptor = new_encryptor.release();
      +
      664  decryptor_map_[decrypt_config->key_id()] = encryptor;
      +
      665  } else {
      +
      666  encryptor = found->second;
      +
      667  }
      +
      668  if (!encryptor->SetIv(decrypt_config->iv())) {
      +
      669  LOG(ERROR) << "Invalid initialization vector.";
      +
      670  return false;
      +
      671  }
      +
      672 
      +
      673  if (decrypt_config->subsamples().empty()) {
      +
      674  // Sample not encrypted using subsample encryption. Decrypt whole.
      +
      675  if (!encryptor->Decrypt(buffer, buffer_size, buffer)) {
      +
      676  LOG(ERROR) << "Error during bulk sample decryption.";
      +
      677  return false;
      +
      678  }
      +
      679  return true;
      +
      680  }
      681 
      -
      682 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
      -
      683  bool err = false;
      -
      684  while (mdat_tail_ < offset) {
      -
      685  const uint8_t* buf;
      -
      686  int size;
      -
      687  queue_.PeekAt(mdat_tail_, &buf, &size);
      -
      688 
      -
      689  FourCC type;
      -
      690  uint64_t box_sz;
      -
      691  if (!BoxReader::StartTopLevelBox(buf, size, &type, &box_sz, &err))
      -
      692  break;
      -
      693 
      -
      694  mdat_tail_ += box_sz;
      -
      695  }
      -
      696  queue_.Trim(std::min(mdat_tail_, offset));
      -
      697  return !err;
      -
      698 }
      -
      699 
      -
      700 void MP4MediaParser::ChangeState(State new_state) {
      -
      701  DVLOG(2) << "Changing state: " << new_state;
      -
      702  state_ = new_state;
      -
      703 }
      -
      704 
      -
      705 } // namespace mp4
      -
      706 } // namespace media
      -
      707 } // namespace edash_packager
      +
      682  // Subsample decryption.
      +
      683  const std::vector<SubsampleEntry>& subsamples = decrypt_config->subsamples();
      +
      684  uint8_t* current_ptr = buffer;
      +
      685  const uint8_t* buffer_end = buffer + buffer_size;
      +
      686  current_ptr += decrypt_config->data_offset();
      +
      687  if (current_ptr > buffer_end) {
      +
      688  LOG(ERROR) << "Subsample data_offset too large.";
      +
      689  return false;
      +
      690  }
      +
      691  for (std::vector<SubsampleEntry>::const_iterator iter = subsamples.begin();
      +
      692  iter != subsamples.end();
      +
      693  ++iter) {
      +
      694  if ((current_ptr + iter->clear_bytes + iter->cipher_bytes) > buffer_end) {
      +
      695  LOG(ERROR) << "Subsamples overflow sample buffer.";
      +
      696  return false;
      +
      697  }
      +
      698  current_ptr += iter->clear_bytes;
      +
      699  if (!encryptor->Decrypt(current_ptr, iter->cipher_bytes, current_ptr)) {
      +
      700  LOG(ERROR) << "Error decrypting subsample buffer.";
      +
      701  return false;
      +
      702  }
      +
      703  current_ptr += iter->cipher_bytes;
      +
      704  }
      +
      705  return true;
      +
      706 }
      +
      707 
      +
      708 bool MP4MediaParser::ReadAndDiscardMDATsUntil(const int64_t offset) {
      +
      709  bool err = false;
      +
      710  while (mdat_tail_ < offset) {
      +
      711  const uint8_t* buf;
      +
      712  int size;
      +
      713  queue_.PeekAt(mdat_tail_, &buf, &size);
      +
      714 
      +
      715  FourCC type;
      +
      716  uint64_t box_sz;
      +
      717  if (!BoxReader::StartTopLevelBox(buf, size, &type, &box_sz, &err))
      +
      718  break;
      +
      719 
      +
      720  mdat_tail_ += box_sz;
      +
      721  }
      +
      722  queue_.Trim(std::min(mdat_tail_, offset));
      +
      723  return !err;
      +
      724 }
      +
      725 
      +
      726 void MP4MediaParser::ChangeState(State new_state) {
      +
      727  DVLOG(2) << "Changing state: " << new_state;
      +
      728  state_ = new_state;
      +
      729 }
      +
      730 
      +
      731 } // namespace mp4
      +
      732 } // namespace media
      +
      733 } // namespace edash_packager
      static BoxReader * ReadTopLevelBox(const uint8_t *buf, const size_t buf_size, bool *err)
      Definition: box_reader.cc:37
      virtual Status GetKey(TrackType track_type, EncryptionKey *key)
      Definition: key_source.cc:46
      -
      bool Parse(const uint8_t *buf, int size) override
      +
      bool Parse(const uint8_t *buf, int size) override
      static scoped_refptr< MediaSample > CopyFrom(const uint8_t *data, size_t size, bool is_key_frame)
      Definition: media_sample.cc:47
      void PeekAt(int64_t offset, const uint8_t **buf, int *size)
      - -
      bool LoadMoov(const std::string &file_path)
      + +
      bool LoadMoov(const std::string &file_path)
      virtual Status FetchKeys(const std::vector< uint8_t > &content_id, const std::string &policy)
      Definition: key_source.cc:30
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:29
      static bool StartTopLevelBox(const uint8_t *buf, const size_t buf_size, FourCC *type, uint64_t *box_size, bool *err) WARN_UNUSED_RESULT
      Definition: box_reader.cc:60
      -
      void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
      +
      void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
      static File * OpenWithNoBuffering(const char *file_name, const char *mode)
      Definition: file.cc:127
      -
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      +
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      diff --git a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html index 309edb29cd..d9fbc26a22 100644 --- a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html +++ b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html index 27a5db4042..3318e297e3 100644 --- a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html +++ b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index 078911a946..1422479eb0 100644 --- a/docs/d7/df9/byte__queue_8cc_source.html +++ b/docs/d7/df9/byte__queue_8cc_source.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html index 08cea7d3a7..244b6b36bf 100644 --- a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html +++ b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html @@ -155,7 +155,7 @@ track_id, const scoped_refptr

      Implements edash_packager::media::MediaParser.

      -

      Definition at line 94 of file mp4_media_parser.cc.

      +

      Definition at line 115 of file mp4_media_parser.cc.

      @@ -207,7 +207,7 @@ track_id, const scoped_refptr

      Implements edash_packager::media::MediaParser.

      -

      Definition at line 73 of file mp4_media_parser.cc.

      +

      Definition at line 94 of file mp4_media_parser.cc.

      @@ -233,7 +233,7 @@ track_id, const scoped_refptr
      Returns
      true if successful, false otherwise.
      -

      Definition at line 134 of file mp4_media_parser.cc.

      +

      Definition at line 155 of file mp4_media_parser.cc.

      @@ -273,7 +273,7 @@ track_id, const scoped_refptr

      Implements edash_packager::media::MediaParser.

      -

      Definition at line 100 of file mp4_media_parser.cc.

      +

      Definition at line 121 of file mp4_media_parser.cc.

      @@ -284,7 +284,7 @@ track_id, const scoped_refptr
      diff --git a/docs/d8/d0d/media__sample_8cc_source.html b/docs/d8/d0d/media__sample_8cc_source.html index 88a973633a..f0ec1438f8 100644 --- a/docs/d8/d0d/media__sample_8cc_source.html +++ b/docs/d8/d0d/media__sample_8cc_source.html @@ -189,7 +189,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d19/bandwidth__estimator_8h_source.html b/docs/d8/d19/bandwidth__estimator_8h_source.html index 6e36b79e9f..82230e11c0 100644 --- a/docs/d8/d19/bandwidth__estimator_8h_source.html +++ b/docs/d8/d19/bandwidth__estimator_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html index 6d81a770f3..718a8aaa36 100644 --- a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html +++ b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html @@ -370,7 +370,7 @@ void set_encryption_key diff --git a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html index 76e065191d..0ef0026dfe 100644 --- a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html +++ b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html @@ -108,14 +108,14 @@ uint32_t sample_descriptio

      Detailed Description

      -

      Definition at line 258 of file box_definitions.h.

      +

      Definition at line 259 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html index 342dadaa2c..304f5f9271 100644 --- a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html index 15fc9c7590..feb6c42510 100644 --- a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html +++ b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html index 614e574802..25c7a3c7dc 100644 --- a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html +++ b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html index 4e6a9599da..d37eaf3f41 100644 --- a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html +++ b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html @@ -177,7 +177,7 @@ void  diff --git a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html index c51be1929c..14456ebcbc 100644 --- a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html +++ b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d33/webm__content__encodings__client_8h_source.html b/docs/d8/d33/webm__content__encodings__client_8h_source.html index 064dca5e34..7547a4bc31 100644 --- a/docs/d8/d33/webm__content__encodings__client_8h_source.html +++ b/docs/d8/d33/webm__content__encodings__client_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html index 2b92dd7ead..5629e8e6b5 100644 --- a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html +++ b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html index cccb73fe55..fdfd632e18 100644 --- a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html +++ b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html index 9886c125a9..a28a4a7950 100644 --- a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html index 8c25e55eb1..3782ab7a7a 100644 --- a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html +++ b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html @@ -356,7 +356,7 @@ class base::RefCountedThre diff --git a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html index 1d7b0e0c17..216a93d47b 100644 --- a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html +++ b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html index d97901432d..d1b7ff7338 100644 --- a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html +++ b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html index e32a5c0445..d0e529035d 100644 --- a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html +++ b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html @@ -320,7 +320,7 @@ Public Member Functions diff --git a/docs/d8/d74/classedash__packager_1_1Representation-members.html b/docs/d8/d74/classedash__packager_1_1Representation-members.html index 1a3c3fa08f..a531c7b5a0 100644 --- a/docs/d8/d74/classedash__packager_1_1Representation-members.html +++ b/docs/d8/d74/classedash__packager_1_1Representation-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html index 7a18642f13..14996fbbe4 100644 --- a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html +++ b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html index 9f286dc515..e747e49445 100644 --- a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html +++ b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html index c5732dc4a3..2eaa33b81d 100644 --- a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html +++ b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html @@ -152,7 +152,7 @@ Additional Inherited Members diff --git a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html index abbbc56726..cb61a89a58 100644 --- a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html +++ b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html index d4584a591f..488dd84f56 100644 --- a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html +++ b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html @@ -141,7 +141,7 @@ virtual void Reset ()= diff --git a/docs/d8/d94/adts__constants_8cc_source.html b/docs/d8/d94/adts__constants_8cc_source.html index f9e576be6c..96663c980e 100644 --- a/docs/d8/d94/adts__constants_8cc_source.html +++ b/docs/d8/d94/adts__constants_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html index 2774274e06..d3aadb11d1 100644 --- a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html +++ b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9a/fragmenter_8cc_source.html b/docs/d8/d9a/fragmenter_8cc_source.html index b1bfa4cff0..3794802f8e 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -241,15 +241,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      virtual Status InitializeFragment(int64_t first_sample_dts)
      Definition: fragmenter.cc:73
      virtual Status AddSample(scoped_refptr< MediaSample > sample)
      Definition: fragmenter.cc:36
      - +
      bool OptimizeSampleEntries(std::vector< T > *entries, T *default_value)
      Definition: fragmenter.h:90
      - +
      virtual void FinalizeFragment()
      Finalize and optimize the fragment.
      Definition: fragmenter.cc:91
      diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index ff9952130f..2ad5440542 100644 --- a/docs/d8/d9c/webm__tracks__parser_8cc_source.html +++ b/docs/d8/d9c/webm__tracks__parser_8cc_source.html @@ -440,7 +440,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9f/udp__file_8h_source.html b/docs/d8/d9f/udp__file_8h_source.html index 60437b4876..801f46d891 100644 --- a/docs/d8/d9f/udp__file_8h_source.html +++ b/docs/d8/d9f/udp__file_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html index 221a36ad9f..11158bc163 100644 --- a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html +++ b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html @@ -255,7 +255,7 @@ track_id, const scoped_refptr
      diff --git a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html index 359e674871..2e84f231de 100644 --- a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html index 89cfe5361a..d055e6fa62 100644 --- a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html +++ b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/daa/stream__info_8h_source.html b/docs/d8/daa/stream__info_8h_source.html index 4ff375a98f..53721dcb49 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -185,7 +185,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/db0/structedash__packager_1_1media_1_1H264SPS.html b/docs/d8/db0/structedash__packager_1_1media_1_1H264SPS.html index 574884a2b6..01f5fe20c9 100644 --- a/docs/d8/db0/structedash__packager_1_1media_1_1H264SPS.html +++ b/docs/d8/db0/structedash__packager_1_1media_1_1H264SPS.html @@ -242,7 +242,7 @@ int chroma_array_type< diff --git a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html index 50621c86dd..8a8ccf6bf3 100644 --- a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html +++ b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html index c1d969c6ea..7a5a8c8c22 100644 --- a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html +++ b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html @@ -459,7 +459,7 @@ Additional Inherited Members diff --git a/docs/d8/dca/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor-members.html b/docs/d8/dca/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor-members.html index 1a6674ac82..cffc246fab 100644 --- a/docs/d8/dca/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor-members.html +++ b/docs/d8/dca/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html index 5c1c307c31..7267bcb332 100644 --- a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html +++ b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html index 6c46575e6b..9e001adee3 100644 --- a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html +++ b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/de6/webm__crypto__helpers_8h_source.html b/docs/d8/de6/webm__crypto__helpers_8h_source.html index 37a247dbf7..55eec3a5d5 100644 --- a/docs/d8/de6/webm__crypto__helpers_8h_source.html +++ b/docs/d8/de6/webm__crypto__helpers_8h_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html index a780f1e0cc..b4d4308f8f 100644 --- a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html +++ b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html index fd9a4ff167..25fca6c1fc 100644 --- a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html +++ b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html @@ -121,7 +121,7 @@ uint32_t height diff --git a/docs/d9/d08/mock__mpd__builder_8h_source.html b/docs/d9/d08/mock__mpd__builder_8h_source.html index 1d5ab38dd2..7ffeb26923 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html index 654fc1c5fb..5bbb91bbd6 100644 --- a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html +++ b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html @@ -221,14 +221,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      virtual std::string UUID()
      Definition: key_source.cc:92
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:29
      - - + +
      virtual std::string SystemName()
      Definition: key_source.cc:96
      virtual void FinalizeFragmentForEncryption()
      Finalize current fragment for encryption.
      diff --git a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html index b9432751f8..d0ac677c45 100644 --- a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html +++ b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html index bb05e944e1..686eeebd94 100644 --- a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html +++ b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 301 of file box_definitions.h.

      +

      Definition at line 302 of file box_definitions.h.

      Member Function Documentation

      @@ -180,7 +180,7 @@ Additional Inherited Members
      diff --git a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html index ba969c82af..15ed4cf323 100644 --- a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html +++ b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html @@ -146,7 +146,7 @@ Public Member Functions diff --git a/docs/d9/d3b/webm__content__encodings_8h_source.html b/docs/d9/d3b/webm__content__encodings_8h_source.html index 72cdd42231..64ef33d4c9 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html index 16b9f133ec..d9f53c69d3 100644 --- a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html +++ b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html @@ -273,7 +273,7 @@ bool ReadNBytesInto8s diff --git a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html index aaba74d076..b0a11d94bf 100644 --- a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html +++ b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html @@ -183,7 +183,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 437 of file box_definitions.h.

      +

      Definition at line 438 of file box_definitions.h.

      Member Function Documentation

      @@ -209,7 +209,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1548 of file box_definitions.cc.

      +

      Definition at line 1561 of file box_definitions.cc.

      @@ -220,7 +220,7 @@ Additional Inherited Members diff --git a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html index f5c9d4b2e8..973e300883 100644 --- a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html +++ b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html index 8cace45a7a..10d873f3eb 100644 --- a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html +++ b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html index 0cd7e6531d..e895210039 100644 --- a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html +++ b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html @@ -119,7 +119,7 @@ union { diff --git a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html index 7260d9ca23..6c23fe47a4 100644 --- a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html +++ b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html @@ -132,7 +132,7 @@ int64_t video_sample_durat diff --git a/docs/d9/d86/limits_8h_source.html b/docs/d9/d86/limits_8h_source.html index f1d7274ce6..28d3d735ae 100644 --- a/docs/d9/d86/limits_8h_source.html +++ b/docs/d9/d86/limits_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html index 7b657d03ca..9daed83ff5 100644 --- a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html +++ b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html @@ -582,7 +582,7 @@ Static Protected Member Functions diff --git a/docs/d9/d90/text__track_8h_source.html b/docs/d9/d90/text__track_8h_source.html index ea40e1db6c..f3c9fbcf08 100644 --- a/docs/d9/d90/text__track_8h_source.html +++ b/docs/d9/d90/text__track_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d91/h264__bit__reader_8h_source.html b/docs/d9/d91/h264__bit__reader_8h_source.html index 36bcb4ab6e..72b32890e2 100644 --- a/docs/d9/d91/h264__bit__reader_8h_source.html +++ b/docs/d9/d91/h264__bit__reader_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d93/media__stream_8h_source.html b/docs/d9/d93/media__stream_8h_source.html index d439daf981..5860072fd8 100644 --- a/docs/d9/d93/media__stream_8h_source.html +++ b/docs/d9/d93/media__stream_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html index 0a3e210284..3e055dde01 100644 --- a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html +++ b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html index ec9a5485f0..dcb3fc02f5 100644 --- a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html +++ b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html index b236d9730a..69a1e46376 100644 --- a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html +++ b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html @@ -118,7 +118,7 @@ uint64_t repeat diff --git a/docs/d9/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index 6d38cff7d6..861ab27ac3 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html index aafbbb6b2f..573eb0959c 100644 --- a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -252,7 +252,7 @@ Additional Inherited Members diff --git a/docs/d9/db9/content__protection__element_8cc_source.html b/docs/d9/db9/content__protection__element_8cc_source.html index ca7d7a76a3..d0307d3a8a 100644 --- a/docs/d9/db9/content__protection__element_8cc_source.html +++ b/docs/d9/db9/content__protection__element_8cc_source.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db9/muxer_8cc_source.html b/docs/d9/db9/muxer_8cc_source.html index 886e151a84..e08ce1d3fc 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dc8/webm__constants_8cc_source.html b/docs/d9/dc8/webm__constants_8cc_source.html index 6621603a93..22d5b5e3aa 100644 --- a/docs/d9/dc8/webm__constants_8cc_source.html +++ b/docs/d9/dc8/webm__constants_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html index 9811969ec2..e5203cf80f 100644 --- a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html +++ b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/d9/dcc/webm__video__client_8h_source.html b/docs/d9/dcc/webm__video__client_8h_source.html index 4efbb8c48d..a3f8e14dbd 100644 --- a/docs/d9/dcc/webm__video__client_8h_source.html +++ b/docs/d9/dcc/webm__video__client_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/de3/muxer__listener__internal_8cc_source.html b/docs/d9/de3/muxer__listener__internal_8cc_source.html index 44d7829953..29149e36b2 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -326,7 +326,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html index 51d82c248d..f0942dc550 100644 --- a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html +++ b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/ded/aac__audio__specific__config_8cc_source.html b/docs/d9/ded/aac__audio__specific__config_8cc_source.html index a9b84c18e2..481b08f51e 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -357,7 +357,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html index cf0a6888e0..0c9f42cbc6 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html index 168f270aff..734dbb3b05 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d04/audio__stream__info_8cc_source.html b/docs/da/d04/audio__stream__info_8cc_source.html index 0f03f9d7ca..d3fb7c6a3d 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -132,85 +132,109 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      43  return "Opus";
      44  case kCodecEAC3:
      45  return "EAC3";
      -
      46  default:
      -
      47  NOTIMPLEMENTED() << "Unknown Audio Codec: " << audio_codec;
      -
      48  return "UnknownAudioCodec";
      -
      49  }
      -
      50 }
      -
      51 } // namespace
      -
      52 
      - -
      54  uint32_t time_scale,
      -
      55  uint64_t duration,
      -
      56  AudioCodec codec,
      -
      57  const std::string& codec_string,
      -
      58  const std::string& language,
      -
      59  uint8_t sample_bits,
      -
      60  uint8_t num_channels,
      -
      61  uint32_t sampling_frequency,
      -
      62  const uint8_t* extra_data,
      -
      63  size_t extra_data_size,
      -
      64  bool is_encrypted)
      -
      65  : StreamInfo(kStreamAudio,
      -
      66  track_id,
      -
      67  time_scale,
      -
      68  duration,
      -
      69  codec_string,
      -
      70  language,
      -
      71  extra_data,
      -
      72  extra_data_size,
      -
      73  is_encrypted),
      -
      74  codec_(codec),
      -
      75  sample_bits_(sample_bits),
      -
      76  num_channels_(num_channels),
      -
      77  sampling_frequency_(sampling_frequency) {
      -
      78 }
      -
      79 
      -
      80 AudioStreamInfo::~AudioStreamInfo() {}
      -
      81 
      - -
      83  return codec_ != kUnknownAudioCodec && num_channels_ != 0 &&
      -
      84  num_channels_ <= limits::kMaxChannels && sample_bits_ > 0 &&
      -
      85  sample_bits_ <= limits::kMaxBitsPerSample &&
      -
      86  sampling_frequency_ > 0 &&
      -
      87  sampling_frequency_ <= limits::kMaxSampleRate;
      -
      88 }
      -
      89 
      -
      90 std::string AudioStreamInfo::ToString() const {
      -
      91  return base::StringPrintf(
      -
      92  "%s codec: %s\n sample_bits: %d\n num_channels: %d\n "
      -
      93  "sampling_frequency: %d\n language: %s\n",
      -
      94  StreamInfo::ToString().c_str(), AudioCodecToString(codec_).c_str(),
      -
      95  sample_bits_, num_channels_, sampling_frequency_, language().c_str());
      -
      96 }
      -
      97 
      -
      98 std::string AudioStreamInfo::GetCodecString(AudioCodec codec,
      -
      99  uint8_t audio_object_type) {
      -
      100  switch (codec) {
      -
      101  case kCodecVorbis:
      -
      102  return "vorbis";
      -
      103  case kCodecOpus:
      -
      104  return "opus";
      -
      105  case kCodecAAC:
      -
      106  return "mp4a.40." + base::UintToString(audio_object_type);
      -
      107  default:
      -
      108  NOTIMPLEMENTED() << "Codec: " << codec;
      -
      109  return "unknown";
      -
      110  }
      -
      111 }
      -
      112 
      -
      113 } // namespace media
      -
      114 } // namespace edash_packager
      -
      std::string ToString() const override
      +
      46  case kCodecDTSC:
      +
      47  return "DTSC";
      +
      48  case kCodecDTSH:
      +
      49  return "DTSH";
      +
      50  case kCodecDTSL:
      +
      51  return "DTSL";
      +
      52  case kCodecDTSE:
      +
      53  return "DTSE";
      +
      54  case kCodecDTSP:
      +
      55  return "DTS+";
      +
      56  case kCodecDTSM:
      +
      57  return "DTS-";
      +
      58  default:
      +
      59  NOTIMPLEMENTED() << "Unknown Audio Codec: " << audio_codec;
      +
      60  return "UnknownAudioCodec";
      +
      61  }
      +
      62 }
      +
      63 } // namespace
      +
      64 
      + +
      66  uint32_t time_scale,
      +
      67  uint64_t duration,
      +
      68  AudioCodec codec,
      +
      69  const std::string& codec_string,
      +
      70  const std::string& language,
      +
      71  uint8_t sample_bits,
      +
      72  uint8_t num_channels,
      +
      73  uint32_t sampling_frequency,
      +
      74  const uint8_t* extra_data,
      +
      75  size_t extra_data_size,
      +
      76  bool is_encrypted)
      +
      77  : StreamInfo(kStreamAudio,
      +
      78  track_id,
      +
      79  time_scale,
      +
      80  duration,
      +
      81  codec_string,
      +
      82  language,
      +
      83  extra_data,
      +
      84  extra_data_size,
      +
      85  is_encrypted),
      +
      86  codec_(codec),
      +
      87  sample_bits_(sample_bits),
      +
      88  num_channels_(num_channels),
      +
      89  sampling_frequency_(sampling_frequency) {
      +
      90 }
      +
      91 
      +
      92 AudioStreamInfo::~AudioStreamInfo() {}
      +
      93 
      + +
      95  return codec_ != kUnknownAudioCodec && num_channels_ != 0 &&
      +
      96  num_channels_ <= limits::kMaxChannels && sample_bits_ > 0 &&
      +
      97  sample_bits_ <= limits::kMaxBitsPerSample &&
      +
      98  sampling_frequency_ > 0 &&
      +
      99  sampling_frequency_ <= limits::kMaxSampleRate;
      +
      100 }
      +
      101 
      +
      102 std::string AudioStreamInfo::ToString() const {
      +
      103  return base::StringPrintf(
      +
      104  "%s codec: %s\n sample_bits: %d\n num_channels: %d\n "
      +
      105  "sampling_frequency: %d\n language: %s\n",
      +
      106  StreamInfo::ToString().c_str(), AudioCodecToString(codec_).c_str(),
      +
      107  sample_bits_, num_channels_, sampling_frequency_, language().c_str());
      +
      108 }
      +
      109 
      +
      110 std::string AudioStreamInfo::GetCodecString(AudioCodec codec,
      +
      111  uint8_t audio_object_type) {
      +
      112  switch (codec) {
      +
      113  case kCodecVorbis:
      +
      114  return "vorbis";
      +
      115  case kCodecOpus:
      +
      116  return "opus";
      +
      117  case kCodecAAC:
      +
      118  return "mp4a.40." + base::UintToString(audio_object_type);
      +
      119  case kCodecDTSC:
      +
      120  return "dtsc";
      +
      121  case kCodecDTSH:
      +
      122  return "dtsh";
      +
      123  case kCodecDTSL:
      +
      124  return "dtsl";
      +
      125  case kCodecDTSE:
      +
      126  return "dtse";
      +
      127  case kCodecDTSP:
      +
      128  return "dts+";
      +
      129  case kCodecDTSM:
      +
      130  return "dts-";
      +
      131  default:
      +
      132  NOTIMPLEMENTED() << "Codec: " << codec;
      +
      133  return "unknown";
      +
      134  }
      +
      135 }
      +
      136 
      +
      137 } // namespace media
      +
      138 } // namespace edash_packager
      +
      std::string ToString() const override
      Abstract class holds stream information.
      Definition: stream_info.h:26
      -
      AudioStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, AudioCodec codec, const std::string &codec_string, const std::string &language, uint8_t sample_bits, uint8_t num_channels, uint32_t sampling_frequency, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
      Construct an initialized audio stream info object.
      +
      AudioStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, AudioCodec codec, const std::string &codec_string, const std::string &language, uint8_t sample_bits, uint8_t num_channels, uint32_t sampling_frequency, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
      Construct an initialized audio stream info object.
      virtual std::string ToString() const
      Definition: stream_info.cc:40
      - -
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      + +
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      diff --git a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html index 4481a4848a..f9617b70a7 100644 --- a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html +++ b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html index 731561fecf..291b6aa6f4 100644 --- a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html +++ b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 393 of file box_definitions.h.

      +

      Definition at line 394 of file box_definitions.h.

      Member Function Documentation

      @@ -169,7 +169,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1371 of file box_definitions.cc.

      +

      Definition at line 1384 of file box_definitions.cc.

      @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html index a70e773c6b..c2de02a4a3 100644 --- a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html +++ b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d22/key__rotation__fragmenter_8h_source.html b/docs/da/d22/key__rotation__fragmenter_8h_source.html index 4db01d2ba2..4b2a541f7d 100644 --- a/docs/da/d22/key__rotation__fragmenter_8h_source.html +++ b/docs/da/d22/key__rotation__fragmenter_8h_source.html @@ -149,12 +149,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:29
      - - + + diff --git a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html index 9508e0a82f..5d3f5e3d9f 100644 --- a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html @@ -190,7 +190,7 @@ Static Public Member Functions

      Detailed Description

      Holds audio stream information.

      -

      Definition at line 37 of file audio_stream_info.h.

      +

      Definition at line 43 of file audio_stream_info.h.

      Member Function Documentation

      @@ -231,7 +231,7 @@ Static Public Member Functions
      Returns
      The codec string.
      -

      Definition at line 98 of file audio_stream_info.cc.

      +

      Definition at line 110 of file audio_stream_info.cc.

      @@ -259,7 +259,7 @@ Static Public Member Functions

      Implements edash_packager::media::StreamInfo.

      -

      Definition at line 82 of file audio_stream_info.cc.

      +

      Definition at line 94 of file audio_stream_info.cc.

      @@ -287,7 +287,7 @@ Static Public Member Functions

      Reimplemented from edash_packager::media::StreamInfo.

      -

      Definition at line 90 of file audio_stream_info.cc.

      +

      Definition at line 102 of file audio_stream_info.cc.

      @@ -298,7 +298,7 @@ Static Public Member Functions diff --git a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html index b8e5065b7b..2c59d42d1e 100644 --- a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html +++ b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html index d093778dab..2aed168ef2 100644 --- a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html +++ b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d38/classedash__packager_1_1MpdNotifier.html b/docs/da/d38/classedash__packager_1_1MpdNotifier.html index f3c5247798..e1931c10b6 100644 --- a/docs/da/d38/classedash__packager_1_1MpdNotifier.html +++ b/docs/da/d38/classedash__packager_1_1MpdNotifier.html @@ -472,7 +472,7 @@ Public Member Functions diff --git a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html index 07ffd17df7..4e17a63e05 100644 --- a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html +++ b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d47/structedash__packager_1_1media_1_1H264PPS-members.html b/docs/da/d47/structedash__packager_1_1media_1_1H264PPS-members.html index 23c3dbe3ec..1729e9f860 100644 --- a/docs/da/d47/structedash__packager_1_1media_1_1H264PPS-members.html +++ b/docs/da/d47/structedash__packager_1_1media_1_1H264PPS-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html index f90f3cd094..b6bcae674c 100644 --- a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html +++ b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html @@ -473,7 +473,7 @@ class DashIopMpdNotifierTe diff --git a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html index a696fa387f..366a314e5f 100644 --- a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html +++ b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html @@ -172,7 +172,7 @@ Additional Inherited Members diff --git a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html index b5e2eb3a7e..58e30af607 100644 --- a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html +++ b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 252 of file box_definitions.h.

      +

      Definition at line 253 of file box_definitions.h.

      Member Function Documentation

      @@ -180,7 +180,7 @@ Additional Inherited Members
      diff --git a/docs/da/d5c/widevine__key__source_8h_source.html b/docs/da/d5c/widevine__key__source_8h_source.html index a84218d777..89d206c85d 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -217,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html index 8af01a826a..d49b8fd53a 100644 --- a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html +++ b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html @@ -187,7 +187,7 @@ Public Member Functions diff --git a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html index 3e5b91a00a..01b6dcd98c 100644 --- a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html +++ b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html index 2349e2892a..c106d81801 100644 --- a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html +++ b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html index dfe427e32a..db975b224a 100644 --- a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html +++ b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html index 71a3cda01c..4e31b0e6b1 100644 --- a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html +++ b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html index 612d10d43e..80c35db199 100644 --- a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html +++ b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html index 3ef5a9af90..7c3498e3d6 100644 --- a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html +++ b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html @@ -109,7 +109,7 @@ bool operator() (const diff --git a/docs/da/d7f/hevc__decoder__configuration_8h_source.html b/docs/da/d7f/hevc__decoder__configuration_8h_source.html index f447a7c9a3..6958eee7eb 100644 --- a/docs/da/d7f/hevc__decoder__configuration_8h_source.html +++ b/docs/da/d7f/hevc__decoder__configuration_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html index a545627996..2d34fa7c03 100644 --- a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html +++ b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html @@ -144,7 +144,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 289 of file box_definitions.h.

      +

      Definition at line 290 of file box_definitions.h.

      Member Function Documentation

      @@ -183,7 +183,7 @@ Additional Inherited Members
      diff --git a/docs/da/d88/mp4__muxer_8cc_source.html b/docs/da/d88/mp4__muxer_8cc_source.html index 2dee01dec1..2c0fadccc9 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -429,7 +429,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d8e/container__names_8cc_source.html b/docs/da/d8e/container__names_8cc_source.html index f8c736673d..f976cc39fa 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1808,7 +1808,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html index 1953734ed0..02ca72e641 100644 --- a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html +++ b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 342 of file box_definitions.h.

      +

      Definition at line 343 of file box_definitions.h.

      Member Function Documentation

      @@ -169,7 +169,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1217 of file box_definitions.cc.

      +

      Definition at line 1230 of file box_definitions.cc.

      @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/da/dc3/status_8cc_source.html b/docs/da/dc3/status_8cc_source.html index c31e24690b..bc024cf84d 100644 --- a/docs/da/dc3/status_8cc_source.html +++ b/docs/da/dc3/status_8cc_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dcb/es__descriptor_8h_source.html b/docs/da/dcb/es__descriptor_8h_source.html index 88b2a9dc13..3389e6dfda 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -113,66 +113,65 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      24  kForbidden = 0,
      25  kISO_14496_3 = 0x40, // MPEG4 AAC
      26  kISO_13818_7_AAC_LC = 0x67, // MPEG2 AAC-LC
      -
      27  kEAC3 = 0xa6 // Dolby Digital Plus
      -
      28 };
      -
      29 
      -
      33 class ESDescriptor {
      -
      34  public:
      -
      35  ESDescriptor();
      -
      36  ~ESDescriptor();
      -
      37 
      -
      38  bool Parse(const std::vector<uint8_t>& data);
      -
      39  void Write(BufferWriter* writer) const;
      -
      40  size_t ComputeSize() const;
      -
      41 
      -
      42  uint16_t esid() const { return esid_; }
      -
      43  void set_esid(uint16_t esid) { esid_ = esid; }
      -
      44 
      -
      45  ObjectType object_type() const { return object_type_; }
      -
      46  void set_object_type(ObjectType object_type) { object_type_ = object_type; }
      -
      47 
      -
      48  const std::vector<uint8_t>& decoder_specific_info() const {
      -
      49  return decoder_specific_info_;
      -
      50  }
      -
      51  void set_decoder_specific_info(
      -
      52  const std::vector<uint8_t>& decoder_specific_info) {
      -
      53  decoder_specific_info_ = decoder_specific_info;
      -
      54  }
      -
      55 
      -
      57  bool IsAAC() const {
      -
      58  return object_type_ == kISO_14496_3 || object_type_ == kISO_13818_7_AAC_LC;
      -
      59  }
      -
      60 
      -
      61  private:
      -
      62  enum Tag {
      -
      63  kESDescrTag = 0x03,
      -
      64  kDecoderConfigDescrTag = 0x04,
      -
      65  kDecoderSpecificInfoTag = 0x05,
      -
      66  kSLConfigTag = 0x06,
      -
      67  };
      -
      68 
      -
      69  bool ParseDecoderConfigDescriptor(BitReader* reader);
      -
      70  bool ParseDecoderSpecificInfo(BitReader* reader);
      -
      71 
      -
      72  uint16_t esid_; // Elementary Stream ID.
      -
      73  ObjectType object_type_;
      -
      74  std::vector<uint8_t> decoder_specific_info_;
      -
      75 };
      -
      76 
      -
      77 } // namespace mp4
      -
      78 
      -
      79 } // namespace media
      -
      80 } // namespace edash_packager
      -
      81 
      -
      82 #endif // MEDIA_FORMATS_MP4_ES_DESCRIPTOR_H_
      +
      27 };
      +
      28 
      +
      32 class ESDescriptor {
      +
      33  public:
      +
      34  ESDescriptor();
      +
      35  ~ESDescriptor();
      +
      36 
      +
      37  bool Parse(const std::vector<uint8_t>& data);
      +
      38  void Write(BufferWriter* writer) const;
      +
      39  size_t ComputeSize() const;
      +
      40 
      +
      41  uint16_t esid() const { return esid_; }
      +
      42  void set_esid(uint16_t esid) { esid_ = esid; }
      +
      43 
      +
      44  ObjectType object_type() const { return object_type_; }
      +
      45  void set_object_type(ObjectType object_type) { object_type_ = object_type; }
      +
      46 
      +
      47  const std::vector<uint8_t>& decoder_specific_info() const {
      +
      48  return decoder_specific_info_;
      +
      49  }
      +
      50  void set_decoder_specific_info(
      +
      51  const std::vector<uint8_t>& decoder_specific_info) {
      +
      52  decoder_specific_info_ = decoder_specific_info;
      +
      53  }
      +
      54 
      +
      56  bool IsAAC() const {
      +
      57  return object_type_ == kISO_14496_3 || object_type_ == kISO_13818_7_AAC_LC;
      +
      58  }
      +
      59 
      +
      60  private:
      +
      61  enum Tag {
      +
      62  kESDescrTag = 0x03,
      +
      63  kDecoderConfigDescrTag = 0x04,
      +
      64  kDecoderSpecificInfoTag = 0x05,
      +
      65  kSLConfigTag = 0x06,
      +
      66  };
      +
      67 
      +
      68  bool ParseDecoderConfigDescriptor(BitReader* reader);
      +
      69  bool ParseDecoderSpecificInfo(BitReader* reader);
      +
      70 
      +
      71  uint16_t esid_; // Elementary Stream ID.
      +
      72  ObjectType object_type_;
      +
      73  std::vector<uint8_t> decoder_specific_info_;
      +
      74 };
      +
      75 
      +
      76 } // namespace mp4
      +
      77 
      +
      78 } // namespace media
      +
      79 } // namespace edash_packager
      +
      80 
      +
      81 #endif // MEDIA_FORMATS_MP4_ES_DESCRIPTOR_H_
      A class to read bit streams.
      Definition: bit_reader.h:17
      - - + + diff --git a/docs/da/dd0/webm__info__parser_8h_source.html b/docs/da/dd0/webm__info__parser_8h_source.html index 4fa81002bd..d5f62aa3e3 100644 --- a/docs/da/dd0/webm__info__parser_8h_source.html +++ b/docs/da/dd0/webm__info__parser_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd1/fragmenter_8h_source.html b/docs/da/dd1/fragmenter_8h_source.html index b1bb3694f8..249ccd0298 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -190,15 +190,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      virtual Status InitializeFragment(int64_t first_sample_dts)
      Definition: fragmenter.cc:73
      virtual Status AddSample(scoped_refptr< MediaSample > sample)
      Definition: fragmenter.cc:36
      - +
      bool OptimizeSampleEntries(std::vector< T > *entries, T *default_value)
      Definition: fragmenter.h:90
      - +
      virtual void FinalizeFragment()
      Finalize and optimize the fragment.
      Definition: fragmenter.cc:91
      diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index 48c29f0360..5320447a07 100644 --- a/docs/da/de2/mock__mpd__builder_8cc_source.html +++ b/docs/da/de2/mock__mpd__builder_8cc_source.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html index ecdf216cd8..59d7c18e0f 100644 --- a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html +++ b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html @@ -131,7 +131,7 @@ int64_t GetFramesToTarget< diff --git a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html index 5e62fbfec9..b6e36a5de4 100644 --- a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html +++ b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html @@ -105,14 +105,14 @@ int64_t sample_offset<

      Detailed Description

      -

      Definition at line 243 of file box_definitions.h.

      +

      Definition at line 244 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/db/d01/avc__decoder__configuration_8cc_source.html b/docs/db/d01/avc__decoder__configuration_8cc_source.html index 7d2032c93f..94c507884f 100644 --- a/docs/db/d01/avc__decoder__configuration_8cc_source.html +++ b/docs/db/d01/avc__decoder__configuration_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html index 52c08f6492..dc0b8a023a 100644 --- a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html +++ b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/db/d09/namespaceedash__packager.html b/docs/db/d09/namespaceedash__packager.html index 5f6c89def7..4a125f7a23 100644 --- a/docs/db/d09/namespaceedash__packager.html +++ b/docs/db/d09/namespaceedash__packager.html @@ -550,7 +550,7 @@ const char kEncryptedMp4Va diff --git a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html index 8e9963e729..07cf070ed3 100644 --- a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html +++ b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html index 4968c44b7b..580cc0ecdf 100644 --- a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html +++ b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html index a9f7dffca7..4a194319f9 100644 --- a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html +++ b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html @@ -225,7 +225,7 @@ The number of bytes parsed on success. diff --git a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html index 620b5d5520..87b9cc6cfe 100644 --- a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html +++ b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html @@ -412,7 +412,7 @@ bool is_keyframe () co diff --git a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html index b3643b7941..39c2f400dd 100644 --- a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html +++ b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html @@ -149,7 +149,7 @@ Additional Inherited Members diff --git a/docs/db/d31/track__run__iterator_8cc_source.html b/docs/db/d31/track__run__iterator_8cc_source.html index 89ecbd61f8..c536475d40 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -656,7 +656,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - +
      scoped_ptr< DecryptConfig > GetDecryptConfig()
      @@ -667,12 +667,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - +
      uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
      - + @@ -680,26 +680,26 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - - + + - + - + - + diff --git a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html index 652a0ae36c..f29fbea945 100644 --- a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html +++ b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html index 16116ebdd3..e4ce6e47e8 100644 --- a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html +++ b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d49/multi__segment__segmenter_8h_source.html b/docs/db/d49/multi__segment__segmenter_8h_source.html index 5909629805..fded4fe637 100644 --- a/docs/db/d49/multi__segment__segmenter_8h_source.html +++ b/docs/db/d49/multi__segment__segmenter_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html index 4c1730ef9f..94a27f6a31 100644 --- a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html +++ b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html @@ -147,7 +147,7 @@ Additional Inherited Members diff --git a/docs/db/d51/mp2t__media__parser_8h_source.html b/docs/db/d51/mp2t__media__parser_8h_source.html index b62153072c..a7fd4ceb50 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html index a438f1f949..98bc016ba3 100644 --- a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html +++ b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html @@ -471,7 +471,7 @@ class SimpleMpdNotifierTes diff --git a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html index 64a2de6b73..b2e667b448 100644 --- a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html +++ b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d60/mpd__options_8h_source.html b/docs/db/d60/mpd__options_8h_source.html index 0a7c9f99de..dc1c2eac3b 100644 --- a/docs/db/d60/mpd__options_8h_source.html +++ b/docs/db/d60/mpd__options_8h_source.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html index 42d99600c3..87741972b0 100644 --- a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html +++ b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html index 71e0e2dc0d..3e7ed1efc5 100644 --- a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html +++ b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html @@ -336,7 +336,7 @@ Static Public Member Functions diff --git a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html index c65d77e9bb..80c744c38e 100644 --- a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html +++ b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html @@ -494,7 +494,7 @@ template<typename T > diff --git a/docs/db/d71/http__key__fetcher_8h_source.html b/docs/db/d71/http__key__fetcher_8h_source.html index 68bd2976c1..ef86cd8824 100644 --- a/docs/db/d71/http__key__fetcher_8h_source.html +++ b/docs/db/d71/http__key__fetcher_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html index e2ebb6c949..ec7ac92299 100644 --- a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html +++ b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d7e/muxer__options_8cc_source.html b/docs/db/d7e/muxer__options_8cc_source.html index 41c4019fb7..073d0b36fa 100644 --- a/docs/db/d7e/muxer__options_8cc_source.html +++ b/docs/db/d7e/muxer__options_8cc_source.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html index be31dff447..446f4991d9 100644 --- a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html +++ b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html @@ -146,7 +146,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 281 of file box_definitions.h.

      +

      Definition at line 282 of file box_definitions.h.

      Member Function Documentation

      @@ -183,7 +183,7 @@ Additional Inherited Members
      diff --git a/docs/db/d8f/mp4__muxer_8h_source.html b/docs/db/d8f/mp4__muxer_8h_source.html index 94733e36da..ab3d89ce8d 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -163,19 +163,19 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      77 
      78 #endif // MEDIA_FORMATS_MP4_MP4_MUXER_H_
      MP4Muxer(const MuxerOptions &options)
      Create a MP4Muxer object from MuxerOptions.
      Definition: mp4_muxer.cc:64
      -
      Holds audio stream information.
      +
      Holds audio stream information.
      Abstract class holds stream information.
      Definition: stream_info.h:26
      Holds video stream information.
      - +
      This structure contains the list of configuration options for Muxer.
      Definition: muxer_options.h:18
      diff --git a/docs/db/d96/wvm__media__parser_8h_source.html b/docs/db/d96/wvm__media__parser_8h_source.html index 21fa424342..9eec5b4a9e 100644 --- a/docs/db/d96/wvm__media__parser_8h_source.html +++ b/docs/db/d96/wvm__media__parser_8h_source.html @@ -365,7 +365,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html index 6e7b4256ca..3e8427186e 100644 --- a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html +++ b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html index 6e09880148..e87cc8328b 100644 --- a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html +++ b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html @@ -272,7 +272,7 @@ The number of bytes parsed on success. diff --git a/docs/db/da4/classBandwidthEstimator-members.html b/docs/db/da4/classBandwidthEstimator-members.html index 02c879ccd1..763bba014b 100644 --- a/docs/db/da4/classBandwidthEstimator-members.html +++ b/docs/db/da4/classBandwidthEstimator-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html index f1172efdb0..2c91424d3a 100644 --- a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html +++ b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html @@ -559,7 +559,7 @@ static std::string  diff --git a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html index a356e35dd0..643c1a55c3 100644 --- a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html +++ b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html index 18b9900bbe..1673e904b4 100644 --- a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html +++ b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html @@ -302,7 +302,7 @@ template<typename T > diff --git a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html index 0944a347ce..56cf8433f3 100644 --- a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html +++ b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd2/chunk__info__iterator_8h_source.html b/docs/db/dd2/chunk__info__iterator_8h_source.html index 01873c3d56..6f0a3bea70 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      74 
      75 #endif // MEDIA_FORMATS_MP4_CHUNK_INFO_ITERATOR_H_
      - +
      uint32_t NumSamples(uint32_t start_chunk, uint32_t end_chunk) const
      @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd9/sync__sample__iterator_8h_source.html b/docs/db/dd9/sync__sample__iterator_8h_source.html index b4c5a08b2c..7dbd70838b 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -133,14 +133,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      51 
      52 #endif // MEDIA_FORMATS_MP4_SYNC_SAMPLE_ITERATOR_H_
      SyncSampleIterator(const SyncSample &sync_sample)
      Create a new SyncSampleIterator from sync sample box.
      - + diff --git a/docs/db/de4/classedash__packager_1_1AdaptationSet.html b/docs/db/de4/classedash__packager_1_1AdaptationSet.html index 6e9f992f88..4939e0c609 100644 --- a/docs/db/de4/classedash__packager_1_1AdaptationSet.html +++ b/docs/db/de4/classedash__packager_1_1AdaptationSet.html @@ -582,7 +582,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html index ccdcdf0b26..ab3aeed6a8 100644 --- a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html +++ b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dec/audio__timestamp__helper_8cc_source.html b/docs/db/dec/audio__timestamp__helper_8cc_source.html index d6862042b0..a76dc3d22f 100644 --- a/docs/db/dec/audio__timestamp__helper_8cc_source.html +++ b/docs/db/dec/audio__timestamp__helper_8cc_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/ded/opus__packet__builder_8cc_source.html b/docs/db/ded/opus__packet__builder_8cc_source.html index efcd24e878..2f34e868a7 100644 --- a/docs/db/ded/opus__packet__builder_8cc_source.html +++ b/docs/db/ded/opus__packet__builder_8cc_source.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html index 181052c900..1efbb02299 100644 --- a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html +++ b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html @@ -144,7 +144,7 @@ uint32_t pid () diff --git a/docs/db/df6/muxer_8h_source.html b/docs/db/df6/muxer_8h_source.html index c306bcc0e6..8d389043b0 100644 --- a/docs/db/df6/muxer_8h_source.html +++ b/docs/db/df6/muxer_8h_source.html @@ -208,7 +208,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html index 7a3208b43f..391214d377 100644 --- a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html +++ b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html index ee5be347aa..1c77b206ff 100644 --- a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html +++ b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html @@ -152,7 +152,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 333 of file box_definitions.h.

      +

      Definition at line 334 of file box_definitions.h.

      Member Function Documentation

      @@ -178,7 +178,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1201 of file box_definitions.cc.

      +

      Definition at line 1214 of file box_definitions.cc.

      @@ -189,7 +189,7 @@ Additional Inherited Members diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index 1b3b165a4c..38976d5ea0 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -373,7 +373,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html index 0dee855b61..85971eae24 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -265,7 +265,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dfe/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor.html b/docs/db/dfe/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor.html index 4c822f3754..34e4244355 100644 --- a/docs/db/dfe/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor.html +++ b/docs/db/dfe/classedash__packager_1_1media_1_1AesCbcPkcs5Decryptor.html @@ -209,7 +209,7 @@ const std::vector< uint8_t > &  diff --git a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html index dfee065b35..90f2f20f16 100644 --- a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html @@ -286,7 +286,7 @@ Additional Inherited Members diff --git a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html index e4592df10d..39b0031d18 100644 --- a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html +++ b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html @@ -190,7 +190,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html index 92f952f0a6..ed37f1f62f 100644 --- a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html +++ b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html @@ -118,7 +118,7 @@ int16_t media_rate_fractio diff --git a/docs/dc/d19/box_8h_source.html b/docs/dc/d19/box_8h_source.html index 4305c9ee49..6aa23ca577 100644 --- a/docs/dc/d19/box_8h_source.html +++ b/docs/dc/d19/box_8h_source.html @@ -158,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html index 98f4f369b9..bd9b848cd6 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -407,7 +407,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html index 4a6b5bdb65..2edb802ec3 100644 --- a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html +++ b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html index a61b7f21e0..e5e81ec443 100644 --- a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html +++ b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html index c374882251..ce81f3e4c9 100644 --- a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html +++ b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html index 962a18491b..31c0a3d189 100644 --- a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html +++ b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html index aa6dc43fde..3f41d6b1e2 100644 --- a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html +++ b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3c/webm__cluster__parser_8h_source.html b/docs/dc/d3c/webm__cluster__parser_8h_source.html index 58190890f7..10b1cbe4dd 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -312,7 +312,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index 25611fe8ee..89e96f7876 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -189,7 +189,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html index fd0fe4c289..b99305eebe 100644 --- a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html index 9001e1bb3f..301f201431 100644 --- a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html +++ b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html index 35a3be0dab..b7216ed5b8 100644 --- a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html +++ b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html index 84f6262085..928dbe92b4 100644 --- a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html +++ b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html @@ -296,7 +296,7 @@ Public Member Functions diff --git a/docs/dc/d52/decoding__time__iterator_8h_source.html b/docs/dc/d52/decoding__time__iterator_8h_source.html index 56c573bd9d..a234c860ec 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -142,12 +142,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - +
      uint64_t Duration(uint32_t start_sample, uint32_t end_sample) const
      diff --git a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html index e96cd6c38a..594ae176be 100644 --- a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html +++ b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d58/webm__media__parser_8h_source.html b/docs/dc/d58/webm__media__parser_8h_source.html index 774a242c4b..8691786a3b 100644 --- a/docs/dc/d58/webm__media__parser_8h_source.html +++ b/docs/dc/d58/webm__media__parser_8h_source.html @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html index 38b3cb3a4a..e2d6c3dc82 100644 --- a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html +++ b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html @@ -180,7 +180,7 @@ Protected Member Functions diff --git a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html index 54e4843dec..54959103ca 100644 --- a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html +++ b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/dc/d7b/closure__thread_8cc_source.html b/docs/dc/d7b/closure__thread_8cc_source.html index c9311c0cc2..ec999a2062 100644 --- a/docs/dc/d7b/closure__thread_8cc_source.html +++ b/docs/dc/d7b/closure__thread_8cc_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d7b/h264__parser_8cc_source.html b/docs/dc/d7b/h264__parser_8cc_source.html index ae60771d0e..6f5b002afc 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1446,7 +1446,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d81/classedash__packager_1_1MpdWriter.html b/docs/dc/d81/classedash__packager_1_1MpdWriter.html index 70a88f04ee..ca7189937b 100644 --- a/docs/dc/d81/classedash__packager_1_1MpdWriter.html +++ b/docs/dc/d81/classedash__packager_1_1MpdWriter.html @@ -123,7 +123,7 @@ class MpdWriterTest diff --git a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html index 3894b8c31f..0acbeee68f 100644 --- a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html +++ b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html @@ -299,7 +299,7 @@ void set_encryption_key diff --git a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html index 52562cabe2..c76c4e7326 100644 --- a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html +++ b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html @@ -255,7 +255,7 @@ track_id, const scoped_refptr
      diff --git a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html index d89773024e..a7ed467f3d 100644 --- a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html +++ b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 237 of file box_definitions.h.

      +

      Definition at line 238 of file box_definitions.h.

      Member Function Documentation

      @@ -180,7 +180,7 @@ Additional Inherited Members
      diff --git a/docs/dc/dbf/box__buffer_8h_source.html b/docs/dc/dbf/box__buffer_8h_source.html index 034c384f00..70a537bc3f 100644 --- a/docs/dc/dbf/box__buffer_8h_source.html +++ b/docs/dc/dbf/box__buffer_8h_source.html @@ -275,7 +275,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html index b8d361a7b3..8c69747926 100644 --- a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html +++ b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html @@ -313,7 +313,7 @@ static const size_t  diff --git a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html index d0ea9b8822..a55e6d49ba 100644 --- a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html +++ b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html @@ -111,7 +111,7 @@ static void  diff --git a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html index a611f75e56..d052a8a958 100644 --- a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html +++ b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dd9/rsa__key_8cc_source.html b/docs/dc/dd9/rsa__key_8cc_source.html index 931bea6752..f013267513 100644 --- a/docs/dc/dd9/rsa__key_8cc_source.html +++ b/docs/dc/dd9/rsa__key_8cc_source.html @@ -350,7 +350,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html index d03a5448e9..9de778481d 100644 --- a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html +++ b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/ddf/udp__file__posix_8cc_source.html b/docs/dc/ddf/udp__file__posix_8cc_source.html index c5b34136ff..bb37ae3cf6 100644 --- a/docs/dc/ddf/udp__file__posix_8cc_source.html +++ b/docs/dc/ddf/udp__file__posix_8cc_source.html @@ -322,7 +322,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html index 7b8c53e3e2..544a6c020c 100644 --- a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html +++ b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html @@ -423,7 +423,7 @@ void set_progress_target diff --git a/docs/dc/dec/ts__section__pmt_8cc_source.html b/docs/dc/dec/ts__section__pmt_8cc_source.html index 8d17241a57..05a8687afe 100644 --- a/docs/dc/dec/ts__section__pmt_8cc_source.html +++ b/docs/dc/dec/ts__section__pmt_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html index 064f802be4..63456354f6 100644 --- a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html +++ b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html index ab0e352546..556c188eb4 100644 --- a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html +++ b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html @@ -158,7 +158,7 @@ Public Member Functions diff --git a/docs/dc/df8/closure__thread_8h_source.html b/docs/dc/df8/closure__thread_8h_source.html index 260803f630..4b5139e211 100644 --- a/docs/dc/df8/closure__thread_8h_source.html +++ b/docs/dc/df8/closure__thread_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html index fa9ada4b05..b4c43cea93 100644 --- a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html +++ b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html @@ -440,7 +440,7 @@ Additional Inherited Members diff --git a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html index 4745aea9d1..b0bfd00392 100644 --- a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html +++ b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html index 28a694cde3..7396e48ef6 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html @@ -149,7 +149,7 @@ const scoped_refptr
      diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html index 4af29ccb82..3f9beb2169 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/dd/d11/mpd__builder_8cc_source.html b/docs/dd/d11/mpd__builder_8cc_source.html index 9493fa7624..155c600d67 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -1458,7 +1458,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d12/mpd__writer_8cc_source.html b/docs/dd/d12/mpd__writer_8cc_source.html index f985065331..af516db6bc 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html index 9434abac0c..54392b5781 100644 --- a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html +++ b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html @@ -198,7 +198,7 @@ Additional Inherited Members diff --git a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html index 356ded5b39..aa27963702 100644 --- a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html +++ b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html @@ -213,7 +213,7 @@ Additional Inherited Members diff --git a/docs/dd/d18/es__parser__adts_8h_source.html b/docs/dd/d18/es__parser__adts_8h_source.html index c9ec2220ac..9390701a79 100644 --- a/docs/dd/d18/es__parser__adts_8h_source.html +++ b/docs/dd/d18/es__parser__adts_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d19/video__stream__info_8cc_source.html b/docs/dd/d19/video__stream__info_8cc_source.html index cbdc5b4a73..fe20c984b4 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html index 7e3a2dab8a..f8c1c42cb8 100644 --- a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html index 56b6daa0e1..97bce5b7d8 100644 --- a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html +++ b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html @@ -179,7 +179,7 @@ void  diff --git a/docs/dd/d2c/single__segment__segmenter_8h_source.html b/docs/dd/d2c/single__segment__segmenter_8h_source.html index 2cf9356f8f..11b78e74f2 100644 --- a/docs/dd/d2c/single__segment__segmenter_8h_source.html +++ b/docs/dd/d2c/single__segment__segmenter_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d30/wvm__media__parser_8cc_source.html b/docs/dd/d30/wvm__media__parser_8cc_source.html index 1e5ae6672e..cdbbe4ae70 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1254,11 +1254,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      static size_t GetAdtsFrameSize(const uint8_t *data, size_t num_bytes)
      Definition: adts_header.cc:23
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:29
      static scoped_refptr< MediaSample > CreateEmptyMediaSample()
      Create a MediaSample object with default members.
      Definition: media_sample.cc:69
      -
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      +
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      diff --git a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html index 3da605571d..5d013e926d 100644 --- a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html +++ b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d41/structedash__packager_1_1media_1_1H264NALU.html b/docs/dd/d41/structedash__packager_1_1media_1_1H264NALU.html index 9be3ff9ca7..6e902c5765 100644 --- a/docs/dd/d41/structedash__packager_1_1media_1_1H264NALU.html +++ b/docs/dd/d41/structedash__packager_1_1media_1_1H264NALU.html @@ -139,7 +139,7 @@ int nal_unit_type diff --git a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html index 12f3bedb78..7e9633ea60 100644 --- a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html +++ b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d46/webm__parser_8h_source.html b/docs/dd/d46/webm__parser_8h_source.html index bad687f6a1..d62fd519f2 100644 --- a/docs/dd/d46/webm__parser_8h_source.html +++ b/docs/dd/d46/webm__parser_8h_source.html @@ -227,7 +227,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html index e4942db9dc..196fbde9b8 100644 --- a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html +++ b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html @@ -175,7 +175,7 @@ The number of bytes parsed on success. diff --git a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html index 47cf54bc44..dd0a12fd50 100644 --- a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html +++ b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html index 0cbc840958..04093dfabd 100644 --- a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html +++ b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html @@ -522,7 +522,7 @@ bool ReadWriteInt64 (i diff --git a/docs/dd/d54/widevine__encryption__flags_8h_source.html b/docs/dd/d54/widevine__encryption__flags_8h_source.html index 51e339a60b..a0f6e62a01 100644 --- a/docs/dd/d54/widevine__encryption__flags_8h_source.html +++ b/docs/dd/d54/widevine__encryption__flags_8h_source.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html index d1966f461a..4a8f1b64f2 100644 --- a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html +++ b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html @@ -226,7 +226,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html index 717fa2cbb3..d053c5de7f 100644 --- a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html +++ b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html @@ -255,7 +255,7 @@ bool Encrypt (const st diff --git a/docs/dd/d80/media__sample_8h_source.html b/docs/dd/d80/media__sample_8h_source.html index 627e5e950b..97fb8f4e9b 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -245,7 +245,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html index cb5a4ac269..325e32800a 100644 --- a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html +++ b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html @@ -419,7 +419,7 @@ bool  diff --git a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html index e668439da3..ee9ae8d828 100644 --- a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html +++ b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html index 80b71639f7..7eaea6835d 100644 --- a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html +++ b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d96/classedash__packager_1_1media_1_1AesCbcCtsDecryptor.html b/docs/dd/d96/classedash__packager_1_1media_1_1AesCbcCtsDecryptor.html index 40ae9ac82b..3b40f392e8 100644 --- a/docs/dd/d96/classedash__packager_1_1media_1_1AesCbcCtsDecryptor.html +++ b/docs/dd/d96/classedash__packager_1_1media_1_1AesCbcCtsDecryptor.html @@ -252,7 +252,7 @@ const std::vector< uint8_t > &  diff --git a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html index df00735dd1..a8a32e04f2 100644 --- a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html +++ b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html @@ -498,7 +498,7 @@ bool  diff --git a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html index c86addc0d4..fbee1168bc 100644 --- a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html +++ b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html @@ -205,7 +205,7 @@ track_id, const scoped_refptr
      diff --git a/docs/dd/d9a/audio__timestamp__helper_8h_source.html b/docs/dd/d9a/audio__timestamp__helper_8h_source.html index 2a1561ea35..703f028138 100644 --- a/docs/dd/d9a/audio__timestamp__helper_8h_source.html +++ b/docs/dd/d9a/audio__timestamp__helper_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html index 4f74d114c9..2d950a6f9a 100644 --- a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html +++ b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html @@ -142,7 +142,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 534 of file box_definitions.h.

      +

      Definition at line 535 of file box_definitions.h.

      Member Function Documentation

      @@ -168,7 +168,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1876 of file box_definitions.cc.

      +

      Definition at line 1889 of file box_definitions.cc.

      @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html index f546b84563..094cc763a8 100644 --- a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html +++ b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html @@ -176,7 +176,7 @@ std::vector< FourCC > < diff --git a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html index a902756f4d..e41a0bb8dc 100644 --- a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html +++ b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html index b4219f0b5e..23bea520ef 100644 --- a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html +++ b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html index 77d4e45e93..dc7932305a 100644 --- a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html +++ b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html @@ -113,14 +113,14 @@ uint32_t group_description

      Detailed Description

      -

      Definition at line 487 of file box_definitions.h.

      +

      Definition at line 488 of file box_definitions.h.


      The documentation for this struct was generated from the following file: diff --git a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html index 213fa8fccf..e84393e731 100644 --- a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html +++ b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbc/buffer__reader_8cc_source.html b/docs/dd/dbc/buffer__reader_8cc_source.html index 64c58f5e46..babf1bcb9a 100644 --- a/docs/dd/dbc/buffer__reader_8cc_source.html +++ b/docs/dd/dbc/buffer__reader_8cc_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html index 3a44bdc9f0..0b012a5a27 100644 --- a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html +++ b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html index 0d09dd793e..c90511fa67 100644 --- a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html +++ b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html @@ -144,7 +144,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 367 of file box_definitions.h.

      +

      Definition at line 368 of file box_definitions.h.

      Member Function Documentation

      @@ -170,7 +170,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1302 of file box_definitions.cc.

      +

      Definition at line 1315 of file box_definitions.cc.

      @@ -181,7 +181,7 @@ Additional Inherited Members diff --git a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html index aed29614cf..5842cdb648 100644 --- a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html +++ b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbf/webm__webvtt__parser_8h_source.html b/docs/dd/dbf/webm__webvtt__parser_8h_source.html index 444800cdae..da20a4d5dd 100644 --- a/docs/dd/dbf/webm__webvtt__parser_8h_source.html +++ b/docs/dd/dbf/webm__webvtt__parser_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html index 7a4e0b41f6..5a4d3b5535 100644 --- a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html +++ b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html @@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html index 9618cfdbee..20a49f08c0 100644 --- a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html +++ b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html @@ -112,7 +112,7 @@ virtual scoped_ptr< diff --git a/docs/dd/dcf/structedash__packager_1_1media_1_1H264PPS.html b/docs/dd/dcf/structedash__packager_1_1media_1_1H264PPS.html index 46db7f2471..58d26a74ad 100644 --- a/docs/dd/dcf/structedash__packager_1_1media_1_1H264PPS.html +++ b/docs/dd/dcf/structedash__packager_1_1media_1_1H264PPS.html @@ -167,7 +167,7 @@ int second_chroma_qp_index diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index eed9ff497c..e8920dace9 100644 --- a/docs/dd/dd2/buffer__writer_8h_source.html +++ b/docs/dd/dd2/buffer__writer_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd3/buffer__writer_8cc_source.html b/docs/dd/dd3/buffer__writer_8cc_source.html index 5829440ba3..46d2cff292 100644 --- a/docs/dd/dd3/buffer__writer_8cc_source.html +++ b/docs/dd/dd3/buffer__writer_8cc_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd7/classedash__packager_1_1media_1_1OpusPacket-members.html b/docs/dd/dd7/classedash__packager_1_1media_1_1OpusPacket-members.html index cfe2936281..c9b789e9d9 100644 --- a/docs/dd/dd7/classedash__packager_1_1media_1_1OpusPacket-members.html +++ b/docs/dd/dd7/classedash__packager_1_1media_1_1OpusPacket-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/de7/xml__node_8h_source.html b/docs/dd/de7/xml__node_8h_source.html index a102612c61..6ef5255c05 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -227,7 +227,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html index 718a3c2dc6..226a6c9690 100644 --- a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html +++ b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dee/box__definitions_8cc_source.html b/docs/dd/dee/box__definitions_8cc_source.html index efbe833e4f..8dec524e0d 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -1190,882 +1190,895 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      1101  // Convert from 16.16 fixed point to integer.
      1102  samplerate >>= 16;
      1103 
      -
      1104  RCHECK(buffer->PrepareChildren());
      -
      1105  if (format == FOURCC_ENCA) {
      -
      1106  if (buffer->Reading()) {
      -
      1107  // Continue scanning until a recognized protection scheme is found,
      -
      1108  // or until we run out of protection schemes.
      -
      1109  while (sinf.type.type != FOURCC_CENC) {
      -
      1110  if (!buffer->ReadWriteChild(&sinf))
      -
      1111  return false;
      -
      1112  }
      -
      1113  } else {
      -
      1114  RCHECK(buffer->ReadWriteChild(&sinf));
      -
      1115  }
      -
      1116  }
      -
      1117 
      -
      1118  // ESDS is not valid in case of EAC3.
      -
      1119  RCHECK(buffer->TryReadWriteChild(&esds));
      -
      1120  return true;
      -
      1121 }
      +
      1104  if (format == FOURCC_ENCA || format == FOURCC_MP4A) {
      +
      1105  RCHECK(buffer->PrepareChildren());
      +
      1106  if (format == FOURCC_ENCA) {
      +
      1107  if (buffer->Reading()) {
      +
      1108  // Continue scanning until a recognized protection scheme is found,
      +
      1109  // or until we run out of protection schemes.
      +
      1110  while (sinf.type.type != FOURCC_CENC) {
      +
      1111  if (!buffer->ReadWriteChild(&sinf))
      +
      1112  return false;
      +
      1113  }
      +
      1114  } else {
      +
      1115  RCHECK(buffer->ReadWriteChild(&sinf));
      +
      1116  }
      +
      1117  }
      +
      1118 
      +
      1119  // ESDS is not valid in case of EAC3.
      +
      1120  RCHECK(buffer->TryReadWriteChild(&esds));
      +
      1121  }
      1122 
      - -
      1124  atom_size = kBoxSize + sizeof(data_reference_index) + sizeof(channelcount) +
      -
      1125  sizeof(samplesize) + sizeof(samplerate) + sinf.ComputeSize() +
      -
      1126  esds.ComputeSize() + 6 + 8 + // 6 + 8 bytes reserved.
      -
      1127  4; // 4 bytes predefined.
      -
      1128  return atom_size;
      -
      1129 }
      -
      1130 
      -
      1131 MediaHeader::MediaHeader()
      -
      1132  : creation_time(0), modification_time(0), timescale(0), duration(0) {
      -
      1133  language[0] = 0;
      -
      1134 }
      -
      1135 MediaHeader::~MediaHeader() {}
      -
      1136 FourCC MediaHeader::BoxType() const { return FOURCC_MDHD; }
      -
      1137 
      - -
      1139  RCHECK(FullBox::ReadWrite(buffer));
      -
      1140 
      -
      1141  uint8_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1142  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      -
      1143  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      -
      1144  buffer->ReadWriteUInt32(&timescale) &&
      -
      1145  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      -
      1146 
      -
      1147  if (buffer->Reading()) {
      -
      1148  // Read language codes into temp first then use BitReader to read the
      -
      1149  // values. ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      -
      1150  std::vector<uint8_t> temp;
      -
      1151  RCHECK(buffer->ReadWriteVector(&temp, 2));
      -
      1152 
      -
      1153  BitReader bit_reader(&temp[0], 2);
      -
      1154  bit_reader.SkipBits(1);
      -
      1155  for (int i = 0; i < 3; ++i) {
      -
      1156  CHECK(bit_reader.ReadBits(5, &language[i]));
      -
      1157  language[i] += 0x60;
      -
      1158  }
      -
      1159  language[3] = '\0';
      -
      1160  } else {
      -
      1161  // Set up default language if it is not set.
      -
      1162  const char kUndefinedLanguage[] = "und";
      -
      1163  if (language[0] == 0)
      -
      1164  strcpy(language, kUndefinedLanguage);
      +
      1123  // Read/write all other data in the buffer extra_data.
      +
      1124  if (buffer->Reading()) {
      +
      1125  LOG(INFO) << "read vector: " << buffer->Size() << ", " << buffer->Pos();
      +
      1126  RCHECK(buffer->ReadWriteVector(&extra_data, buffer->Size() - buffer->Pos()));
      +
      1127  } else {
      +
      1128  LOG(INFO) << "write vector: " << extra_data.size();
      +
      1129  RCHECK(buffer->ReadWriteVector(&extra_data, extra_data.size()));
      +
      1130  }
      +
      1131 
      +
      1132  return true;
      +
      1133 }
      +
      1134 
      + +
      1136  atom_size = kBoxSize + sizeof(data_reference_index) + sizeof(channelcount) +
      +
      1137  sizeof(samplesize) + sizeof(samplerate) + sinf.ComputeSize() +
      +
      1138  esds.ComputeSize() + extra_data.size() +
      +
      1139  6 + 8 + // 6 + 8 bytes reserved.
      +
      1140  4; // 4 bytes predefined.
      +
      1141  return atom_size;
      +
      1142 }
      +
      1143 
      +
      1144 MediaHeader::MediaHeader()
      +
      1145  : creation_time(0), modification_time(0), timescale(0), duration(0) {
      +
      1146  language[0] = 0;
      +
      1147 }
      +
      1148 MediaHeader::~MediaHeader() {}
      +
      1149 FourCC MediaHeader::BoxType() const { return FOURCC_MDHD; }
      +
      1150 
      + +
      1152  RCHECK(FullBox::ReadWrite(buffer));
      +
      1153 
      +
      1154  uint8_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1155  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
      +
      1156  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
      +
      1157  buffer->ReadWriteUInt32(&timescale) &&
      +
      1158  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
      +
      1159 
      +
      1160  if (buffer->Reading()) {
      +
      1161  // Read language codes into temp first then use BitReader to read the
      +
      1162  // values. ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
      +
      1163  std::vector<uint8_t> temp;
      +
      1164  RCHECK(buffer->ReadWriteVector(&temp, 2));
      1165 
      -
      1166  // Lang format: bit(1) pad, unsigned int(5)[3] language.
      -
      1167  uint16_t lang = 0;
      -
      1168  for (int i = 0; i < 3; ++i)
      -
      1169  lang |= (language[i] - 0x60) << ((2 - i) * 5);
      -
      1170  RCHECK(buffer->ReadWriteUInt16(&lang));
      -
      1171  }
      -
      1172 
      -
      1173  RCHECK(buffer->IgnoreBytes(2)); // predefined.
      -
      1174  return true;
      -
      1175 }
      -
      1176 
      - -
      1178  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      -
      1179  atom_size = kFullBoxSize + sizeof(timescale) +
      -
      1180  sizeof(uint32_t) * (1 + version) * 3 + 2 + // 2 bytes language.
      -
      1181  2; // 2 bytes predefined.
      -
      1182  return atom_size;
      -
      1183 }
      -
      1184 
      -
      1185 VideoMediaHeader::VideoMediaHeader()
      -
      1186  : graphicsmode(0), opcolor_red(0), opcolor_green(0), opcolor_blue(0) {
      -
      1187  const uint32_t kVideoMediaHeaderFlags = 1;
      -
      1188  flags = kVideoMediaHeaderFlags;
      -
      1189 }
      -
      1190 VideoMediaHeader::~VideoMediaHeader() {}
      -
      1191 FourCC VideoMediaHeader::BoxType() const { return FOURCC_VMHD; }
      - -
      1193  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1194  buffer->ReadWriteUInt16(&graphicsmode) &&
      -
      1195  buffer->ReadWriteUInt16(&opcolor_red) &&
      -
      1196  buffer->ReadWriteUInt16(&opcolor_green) &&
      -
      1197  buffer->ReadWriteUInt16(&opcolor_blue));
      -
      1198  return true;
      -
      1199 }
      -
      1200 
      - -
      1202  atom_size = kFullBoxSize + sizeof(graphicsmode) + sizeof(opcolor_red) +
      -
      1203  sizeof(opcolor_green) + sizeof(opcolor_blue);
      -
      1204  return atom_size;
      -
      1205 }
      -
      1206 
      -
      1207 SoundMediaHeader::SoundMediaHeader() : balance(0) {}
      -
      1208 SoundMediaHeader::~SoundMediaHeader() {}
      -
      1209 FourCC SoundMediaHeader::BoxType() const { return FOURCC_SMHD; }
      - -
      1211  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1212  buffer->ReadWriteUInt16(&balance) &&
      -
      1213  buffer->IgnoreBytes(2)); // reserved.
      -
      1214  return true;
      -
      1215 }
      -
      1216 
      - -
      1218  atom_size = kFullBoxSize + sizeof(balance) + sizeof(uint16_t);
      -
      1219  return atom_size;
      -
      1220 }
      -
      1221 
      -
      1222 DataEntryUrl::DataEntryUrl() {
      -
      1223  const uint32_t kDataEntryUrlFlags = 1;
      -
      1224  flags = kDataEntryUrlFlags;
      -
      1225 }
      -
      1226 DataEntryUrl::~DataEntryUrl() {}
      -
      1227 FourCC DataEntryUrl::BoxType() const { return FOURCC_URL; }
      - -
      1229  RCHECK(FullBox::ReadWrite(buffer));
      -
      1230  if (buffer->Reading()) {
      -
      1231  RCHECK(buffer->ReadWriteVector(&location, buffer->Size() - buffer->Pos()));
      -
      1232  } else {
      -
      1233  RCHECK(buffer->ReadWriteVector(&location, location.size()));
      -
      1234  }
      -
      1235  return true;
      -
      1236 }
      -
      1237 
      - -
      1239  atom_size = kBoxSize + sizeof(flags) + location.size();
      -
      1240  return atom_size;
      -
      1241 }
      -
      1242 
      -
      1243 DataReference::DataReference() {
      -
      1244  // Default 1 entry.
      -
      1245  data_entry.resize(1);
      -
      1246 }
      -
      1247 DataReference::~DataReference() {}
      -
      1248 FourCC DataReference::BoxType() const { return FOURCC_DREF; }
      - -
      1250  uint32_t entry_count = data_entry.size();
      -
      1251  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1252  buffer->ReadWriteUInt32(&entry_count));
      -
      1253  data_entry.resize(entry_count);
      -
      1254  RCHECK(buffer->PrepareChildren());
      -
      1255  for (uint32_t i = 0; i < entry_count; ++i)
      -
      1256  RCHECK(buffer->ReadWriteChild(&data_entry[i]));
      -
      1257  return true;
      -
      1258 }
      -
      1259 
      - -
      1261  uint32_t count = data_entry.size();
      -
      1262  atom_size = kFullBoxSize + sizeof(count);
      -
      1263  for (uint32_t i = 0; i < count; ++i)
      -
      1264  atom_size += data_entry[i].ComputeSize();
      -
      1265  return atom_size;
      -
      1266 }
      -
      1267 
      -
      1268 DataInformation::DataInformation() {}
      -
      1269 DataInformation::~DataInformation() {}
      -
      1270 FourCC DataInformation::BoxType() const { return FOURCC_DINF; }
      -
      1271 
      - -
      1273  return Box::ReadWrite(buffer) &&
      -
      1274  buffer->PrepareChildren() &&
      -
      1275  buffer->ReadWriteChild(&dref);
      -
      1276 }
      -
      1277 
      - -
      1279  atom_size = kBoxSize + dref.ComputeSize();
      -
      1280  return atom_size;
      -
      1281 }
      -
      1282 
      -
      1283 MediaInformation::MediaInformation() {}
      -
      1284 MediaInformation::~MediaInformation() {}
      -
      1285 FourCC MediaInformation::BoxType() const { return FOURCC_MINF; }
      -
      1286 
      - -
      1288  RCHECK(Box::ReadWrite(buffer) &&
      -
      1289  buffer->PrepareChildren() &&
      -
      1290  buffer->ReadWriteChild(&dinf) &&
      -
      1291  buffer->ReadWriteChild(&sample_table));
      -
      1292  if (sample_table.description.type == kVideo)
      -
      1293  RCHECK(buffer->ReadWriteChild(&vmhd));
      -
      1294  else if (sample_table.description.type == kAudio)
      -
      1295  RCHECK(buffer->ReadWriteChild(&smhd));
      -
      1296  else
      -
      1297  NOTIMPLEMENTED();
      -
      1298  // Hint is not supported for now.
      -
      1299  return true;
      -
      1300 }
      -
      1301 
      - -
      1303  atom_size = kBoxSize + dinf.ComputeSize() + sample_table.ComputeSize();
      -
      1304  if (sample_table.description.type == kVideo)
      -
      1305  atom_size += vmhd.ComputeSize();
      -
      1306  else if (sample_table.description.type == kAudio)
      -
      1307  atom_size += smhd.ComputeSize();
      -
      1308  return atom_size;
      -
      1309 }
      -
      1310 
      -
      1311 Media::Media() {}
      -
      1312 Media::~Media() {}
      -
      1313 FourCC Media::BoxType() const { return FOURCC_MDIA; }
      +
      1166  BitReader bit_reader(&temp[0], 2);
      +
      1167  bit_reader.SkipBits(1);
      +
      1168  for (int i = 0; i < 3; ++i) {
      +
      1169  CHECK(bit_reader.ReadBits(5, &language[i]));
      +
      1170  language[i] += 0x60;
      +
      1171  }
      +
      1172  language[3] = '\0';
      +
      1173  } else {
      +
      1174  // Set up default language if it is not set.
      +
      1175  const char kUndefinedLanguage[] = "und";
      +
      1176  if (language[0] == 0)
      +
      1177  strcpy(language, kUndefinedLanguage);
      +
      1178 
      +
      1179  // Lang format: bit(1) pad, unsigned int(5)[3] language.
      +
      1180  uint16_t lang = 0;
      +
      1181  for (int i = 0; i < 3; ++i)
      +
      1182  lang |= (language[i] - 0x60) << ((2 - i) * 5);
      +
      1183  RCHECK(buffer->ReadWriteUInt16(&lang));
      +
      1184  }
      +
      1185 
      +
      1186  RCHECK(buffer->IgnoreBytes(2)); // predefined.
      +
      1187  return true;
      +
      1188 }
      +
      1189 
      + +
      1191  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
      +
      1192  atom_size = kFullBoxSize + sizeof(timescale) +
      +
      1193  sizeof(uint32_t) * (1 + version) * 3 + 2 + // 2 bytes language.
      +
      1194  2; // 2 bytes predefined.
      +
      1195  return atom_size;
      +
      1196 }
      +
      1197 
      +
      1198 VideoMediaHeader::VideoMediaHeader()
      +
      1199  : graphicsmode(0), opcolor_red(0), opcolor_green(0), opcolor_blue(0) {
      +
      1200  const uint32_t kVideoMediaHeaderFlags = 1;
      +
      1201  flags = kVideoMediaHeaderFlags;
      +
      1202 }
      +
      1203 VideoMediaHeader::~VideoMediaHeader() {}
      +
      1204 FourCC VideoMediaHeader::BoxType() const { return FOURCC_VMHD; }
      + +
      1206  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1207  buffer->ReadWriteUInt16(&graphicsmode) &&
      +
      1208  buffer->ReadWriteUInt16(&opcolor_red) &&
      +
      1209  buffer->ReadWriteUInt16(&opcolor_green) &&
      +
      1210  buffer->ReadWriteUInt16(&opcolor_blue));
      +
      1211  return true;
      +
      1212 }
      +
      1213 
      + +
      1215  atom_size = kFullBoxSize + sizeof(graphicsmode) + sizeof(opcolor_red) +
      +
      1216  sizeof(opcolor_green) + sizeof(opcolor_blue);
      +
      1217  return atom_size;
      +
      1218 }
      +
      1219 
      +
      1220 SoundMediaHeader::SoundMediaHeader() : balance(0) {}
      +
      1221 SoundMediaHeader::~SoundMediaHeader() {}
      +
      1222 FourCC SoundMediaHeader::BoxType() const { return FOURCC_SMHD; }
      + +
      1224  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1225  buffer->ReadWriteUInt16(&balance) &&
      +
      1226  buffer->IgnoreBytes(2)); // reserved.
      +
      1227  return true;
      +
      1228 }
      +
      1229 
      + +
      1231  atom_size = kFullBoxSize + sizeof(balance) + sizeof(uint16_t);
      +
      1232  return atom_size;
      +
      1233 }
      +
      1234 
      +
      1235 DataEntryUrl::DataEntryUrl() {
      +
      1236  const uint32_t kDataEntryUrlFlags = 1;
      +
      1237  flags = kDataEntryUrlFlags;
      +
      1238 }
      +
      1239 DataEntryUrl::~DataEntryUrl() {}
      +
      1240 FourCC DataEntryUrl::BoxType() const { return FOURCC_URL; }
      + +
      1242  RCHECK(FullBox::ReadWrite(buffer));
      +
      1243  if (buffer->Reading()) {
      +
      1244  RCHECK(buffer->ReadWriteVector(&location, buffer->Size() - buffer->Pos()));
      +
      1245  } else {
      +
      1246  RCHECK(buffer->ReadWriteVector(&location, location.size()));
      +
      1247  }
      +
      1248  return true;
      +
      1249 }
      +
      1250 
      + +
      1252  atom_size = kBoxSize + sizeof(flags) + location.size();
      +
      1253  return atom_size;
      +
      1254 }
      +
      1255 
      +
      1256 DataReference::DataReference() {
      +
      1257  // Default 1 entry.
      +
      1258  data_entry.resize(1);
      +
      1259 }
      +
      1260 DataReference::~DataReference() {}
      +
      1261 FourCC DataReference::BoxType() const { return FOURCC_DREF; }
      + +
      1263  uint32_t entry_count = data_entry.size();
      +
      1264  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1265  buffer->ReadWriteUInt32(&entry_count));
      +
      1266  data_entry.resize(entry_count);
      +
      1267  RCHECK(buffer->PrepareChildren());
      +
      1268  for (uint32_t i = 0; i < entry_count; ++i)
      +
      1269  RCHECK(buffer->ReadWriteChild(&data_entry[i]));
      +
      1270  return true;
      +
      1271 }
      +
      1272 
      + +
      1274  uint32_t count = data_entry.size();
      +
      1275  atom_size = kFullBoxSize + sizeof(count);
      +
      1276  for (uint32_t i = 0; i < count; ++i)
      +
      1277  atom_size += data_entry[i].ComputeSize();
      +
      1278  return atom_size;
      +
      1279 }
      +
      1280 
      +
      1281 DataInformation::DataInformation() {}
      +
      1282 DataInformation::~DataInformation() {}
      +
      1283 FourCC DataInformation::BoxType() const { return FOURCC_DINF; }
      +
      1284 
      + +
      1286  return Box::ReadWrite(buffer) &&
      +
      1287  buffer->PrepareChildren() &&
      +
      1288  buffer->ReadWriteChild(&dref);
      +
      1289 }
      +
      1290 
      + +
      1292  atom_size = kBoxSize + dref.ComputeSize();
      +
      1293  return atom_size;
      +
      1294 }
      +
      1295 
      +
      1296 MediaInformation::MediaInformation() {}
      +
      1297 MediaInformation::~MediaInformation() {}
      +
      1298 FourCC MediaInformation::BoxType() const { return FOURCC_MINF; }
      +
      1299 
      + +
      1301  RCHECK(Box::ReadWrite(buffer) &&
      +
      1302  buffer->PrepareChildren() &&
      +
      1303  buffer->ReadWriteChild(&dinf) &&
      +
      1304  buffer->ReadWriteChild(&sample_table));
      +
      1305  if (sample_table.description.type == kVideo)
      +
      1306  RCHECK(buffer->ReadWriteChild(&vmhd));
      +
      1307  else if (sample_table.description.type == kAudio)
      +
      1308  RCHECK(buffer->ReadWriteChild(&smhd));
      +
      1309  else
      +
      1310  NOTIMPLEMENTED();
      +
      1311  // Hint is not supported for now.
      +
      1312  return true;
      +
      1313 }
      1314 
      - -
      1316  RCHECK(Box::ReadWrite(buffer) &&
      -
      1317  buffer->PrepareChildren() &&
      -
      1318  buffer->ReadWriteChild(&header) &&
      -
      1319  buffer->ReadWriteChild(&handler));
      -
      1320  if (buffer->Reading()) {
      -
      1321  // Maddeningly, the HandlerReference box specifies how to parse the
      -
      1322  // SampleDescription box, making the latter the only box (of those that we
      -
      1323  // support) which cannot be parsed correctly on its own (or even with
      -
      1324  // information from its strict ancestor tree). We thus copy the handler type
      -
      1325  // to the sample description box *before* parsing it to provide this
      -
      1326  // information while parsing.
      -
      1327  information.sample_table.description.type = handler.type;
      -
      1328  } else {
      -
      1329  DCHECK_EQ(information.sample_table.description.type, handler.type);
      -
      1330  }
      -
      1331  RCHECK(buffer->ReadWriteChild(&information));
      -
      1332  return true;
      -
      1333 }
      -
      1334 
      - -
      1336  atom_size = kBoxSize + header.ComputeSize() + handler.ComputeSize() +
      -
      1337  information.ComputeSize();
      -
      1338  return atom_size;
      -
      1339 }
      -
      1340 
      -
      1341 Track::Track() {}
      -
      1342 Track::~Track() {}
      -
      1343 FourCC Track::BoxType() const { return FOURCC_TRAK; }
      -
      1344 
      - -
      1346  RCHECK(Box::ReadWrite(buffer) &&
      -
      1347  buffer->PrepareChildren() &&
      -
      1348  buffer->ReadWriteChild(&header) &&
      -
      1349  buffer->ReadWriteChild(&media) &&
      -
      1350  buffer->TryReadWriteChild(&edit));
      -
      1351  return true;
      + +
      1316  atom_size = kBoxSize + dinf.ComputeSize() + sample_table.ComputeSize();
      +
      1317  if (sample_table.description.type == kVideo)
      +
      1318  atom_size += vmhd.ComputeSize();
      +
      1319  else if (sample_table.description.type == kAudio)
      +
      1320  atom_size += smhd.ComputeSize();
      +
      1321  return atom_size;
      +
      1322 }
      +
      1323 
      +
      1324 Media::Media() {}
      +
      1325 Media::~Media() {}
      +
      1326 FourCC Media::BoxType() const { return FOURCC_MDIA; }
      +
      1327 
      + +
      1329  RCHECK(Box::ReadWrite(buffer) &&
      +
      1330  buffer->PrepareChildren() &&
      +
      1331  buffer->ReadWriteChild(&header) &&
      +
      1332  buffer->ReadWriteChild(&handler));
      +
      1333  if (buffer->Reading()) {
      +
      1334  // Maddeningly, the HandlerReference box specifies how to parse the
      +
      1335  // SampleDescription box, making the latter the only box (of those that we
      +
      1336  // support) which cannot be parsed correctly on its own (or even with
      +
      1337  // information from its strict ancestor tree). We thus copy the handler type
      +
      1338  // to the sample description box *before* parsing it to provide this
      +
      1339  // information while parsing.
      +
      1340  information.sample_table.description.type = handler.type;
      +
      1341  } else {
      +
      1342  DCHECK_EQ(information.sample_table.description.type, handler.type);
      +
      1343  }
      +
      1344  RCHECK(buffer->ReadWriteChild(&information));
      +
      1345  return true;
      +
      1346 }
      +
      1347 
      + +
      1349  atom_size = kBoxSize + header.ComputeSize() + handler.ComputeSize() +
      +
      1350  information.ComputeSize();
      +
      1351  return atom_size;
      1352 }
      1353 
      - -
      1355  atom_size = kBoxSize + header.ComputeSize() + media.ComputeSize() +
      -
      1356  edit.ComputeSize();
      -
      1357  return atom_size;
      -
      1358 }
      -
      1359 
      -
      1360 MovieExtendsHeader::MovieExtendsHeader() : fragment_duration(0) {}
      -
      1361 MovieExtendsHeader::~MovieExtendsHeader() {}
      -
      1362 FourCC MovieExtendsHeader::BoxType() const { return FOURCC_MEHD; }
      -
      1363 
      - -
      1365  RCHECK(FullBox::ReadWrite(buffer));
      -
      1366  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1367  RCHECK(buffer->ReadWriteUInt64NBytes(&fragment_duration, num_bytes));
      -
      1368  return true;
      -
      1369 }
      -
      1370 
      - -
      1372  atom_size = 0;
      -
      1373  // This box is optional. Skip it if it is not used.
      -
      1374  if (fragment_duration != 0) {
      -
      1375  version = IsFitIn32Bits(fragment_duration) ? 0 : 1;
      -
      1376  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
      -
      1377  }
      -
      1378  return atom_size;
      -
      1379 }
      -
      1380 
      -
      1381 TrackExtends::TrackExtends()
      -
      1382  : track_id(0),
      -
      1383  default_sample_description_index(0),
      -
      1384  default_sample_duration(0),
      -
      1385  default_sample_size(0),
      -
      1386  default_sample_flags(0) {}
      -
      1387 TrackExtends::~TrackExtends() {}
      -
      1388 FourCC TrackExtends::BoxType() const { return FOURCC_TREX; }
      -
      1389 
      - -
      1391  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1392  buffer->ReadWriteUInt32(&track_id) &&
      -
      1393  buffer->ReadWriteUInt32(&default_sample_description_index) &&
      -
      1394  buffer->ReadWriteUInt32(&default_sample_duration) &&
      -
      1395  buffer->ReadWriteUInt32(&default_sample_size) &&
      -
      1396  buffer->ReadWriteUInt32(&default_sample_flags));
      -
      1397  return true;
      -
      1398 }
      -
      1399 
      - -
      1401  atom_size = kFullBoxSize + sizeof(track_id) +
      -
      1402  sizeof(default_sample_description_index) +
      -
      1403  sizeof(default_sample_duration) + sizeof(default_sample_size) +
      -
      1404  sizeof(default_sample_flags);
      -
      1405  return atom_size;
      -
      1406 }
      -
      1407 
      -
      1408 MovieExtends::MovieExtends() {}
      -
      1409 MovieExtends::~MovieExtends() {}
      -
      1410 FourCC MovieExtends::BoxType() const { return FOURCC_MVEX; }
      -
      1411 
      - -
      1413  RCHECK(Box::ReadWrite(buffer) &&
      -
      1414  buffer->PrepareChildren() &&
      -
      1415  buffer->TryReadWriteChild(&header));
      -
      1416  if (buffer->Reading()) {
      -
      1417  DCHECK(buffer->reader());
      -
      1418  RCHECK(buffer->reader()->ReadChildren(&tracks));
      -
      1419  } else {
      -
      1420  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1421  RCHECK(tracks[i].ReadWrite(buffer));
      -
      1422  }
      -
      1423  return true;
      -
      1424 }
      -
      1425 
      - -
      1427  // This box is optional. Skip it if it does not contain any track.
      -
      1428  atom_size = 0;
      -
      1429  if (tracks.size() != 0) {
      -
      1430  atom_size = kBoxSize + header.ComputeSize();
      -
      1431  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1432  atom_size += tracks[i].ComputeSize();
      -
      1433  }
      -
      1434  return atom_size;
      -
      1435 }
      -
      1436 
      -
      1437 Movie::Movie() {}
      -
      1438 Movie::~Movie() {}
      -
      1439 FourCC Movie::BoxType() const { return FOURCC_MOOV; }
      -
      1440 
      - -
      1442  RCHECK(Box::ReadWrite(buffer) &&
      -
      1443  buffer->PrepareChildren() &&
      -
      1444  buffer->ReadWriteChild(&header) &&
      -
      1445  buffer->TryReadWriteChild(&extends));
      -
      1446  if (buffer->Reading()) {
      -
      1447  BoxReader* reader = buffer->reader();
      -
      1448  DCHECK(reader);
      -
      1449  RCHECK(reader->ReadChildren(&tracks) &&
      -
      1450  reader->TryReadChildren(&pssh));
      -
      1451  } else {
      -
      1452  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1453  RCHECK(tracks[i].ReadWrite(buffer));
      -
      1454  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1455  RCHECK(pssh[i].ReadWrite(buffer));
      -
      1456  }
      -
      1457  return true;
      -
      1458 }
      -
      1459 
      - -
      1461  atom_size = kBoxSize + header.ComputeSize() + extends.ComputeSize();
      -
      1462  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1463  atom_size += tracks[i].ComputeSize();
      -
      1464  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1465  atom_size += pssh[i].ComputeSize();
      -
      1466  return atom_size;
      -
      1467 }
      -
      1468 
      -
      1469 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
      -
      1470 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
      -
      1471 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_TFDT; }
      +
      1354 Track::Track() {}
      +
      1355 Track::~Track() {}
      +
      1356 FourCC Track::BoxType() const { return FOURCC_TRAK; }
      +
      1357 
      + +
      1359  RCHECK(Box::ReadWrite(buffer) &&
      +
      1360  buffer->PrepareChildren() &&
      +
      1361  buffer->ReadWriteChild(&header) &&
      +
      1362  buffer->ReadWriteChild(&media) &&
      +
      1363  buffer->TryReadWriteChild(&edit));
      +
      1364  return true;
      +
      1365 }
      +
      1366 
      + +
      1368  atom_size = kBoxSize + header.ComputeSize() + media.ComputeSize() +
      +
      1369  edit.ComputeSize();
      +
      1370  return atom_size;
      +
      1371 }
      +
      1372 
      +
      1373 MovieExtendsHeader::MovieExtendsHeader() : fragment_duration(0) {}
      +
      1374 MovieExtendsHeader::~MovieExtendsHeader() {}
      +
      1375 FourCC MovieExtendsHeader::BoxType() const { return FOURCC_MEHD; }
      +
      1376 
      + +
      1378  RCHECK(FullBox::ReadWrite(buffer));
      +
      1379  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1380  RCHECK(buffer->ReadWriteUInt64NBytes(&fragment_duration, num_bytes));
      +
      1381  return true;
      +
      1382 }
      +
      1383 
      + +
      1385  atom_size = 0;
      +
      1386  // This box is optional. Skip it if it is not used.
      +
      1387  if (fragment_duration != 0) {
      +
      1388  version = IsFitIn32Bits(fragment_duration) ? 0 : 1;
      +
      1389  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
      +
      1390  }
      +
      1391  return atom_size;
      +
      1392 }
      +
      1393 
      +
      1394 TrackExtends::TrackExtends()
      +
      1395  : track_id(0),
      +
      1396  default_sample_description_index(0),
      +
      1397  default_sample_duration(0),
      +
      1398  default_sample_size(0),
      +
      1399  default_sample_flags(0) {}
      +
      1400 TrackExtends::~TrackExtends() {}
      +
      1401 FourCC TrackExtends::BoxType() const { return FOURCC_TREX; }
      +
      1402 
      + +
      1404  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1405  buffer->ReadWriteUInt32(&track_id) &&
      +
      1406  buffer->ReadWriteUInt32(&default_sample_description_index) &&
      +
      1407  buffer->ReadWriteUInt32(&default_sample_duration) &&
      +
      1408  buffer->ReadWriteUInt32(&default_sample_size) &&
      +
      1409  buffer->ReadWriteUInt32(&default_sample_flags));
      +
      1410  return true;
      +
      1411 }
      +
      1412 
      + +
      1414  atom_size = kFullBoxSize + sizeof(track_id) +
      +
      1415  sizeof(default_sample_description_index) +
      +
      1416  sizeof(default_sample_duration) + sizeof(default_sample_size) +
      +
      1417  sizeof(default_sample_flags);
      +
      1418  return atom_size;
      +
      1419 }
      +
      1420 
      +
      1421 MovieExtends::MovieExtends() {}
      +
      1422 MovieExtends::~MovieExtends() {}
      +
      1423 FourCC MovieExtends::BoxType() const { return FOURCC_MVEX; }
      +
      1424 
      + +
      1426  RCHECK(Box::ReadWrite(buffer) &&
      +
      1427  buffer->PrepareChildren() &&
      +
      1428  buffer->TryReadWriteChild(&header));
      +
      1429  if (buffer->Reading()) {
      +
      1430  DCHECK(buffer->reader());
      +
      1431  RCHECK(buffer->reader()->ReadChildren(&tracks));
      +
      1432  } else {
      +
      1433  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1434  RCHECK(tracks[i].ReadWrite(buffer));
      +
      1435  }
      +
      1436  return true;
      +
      1437 }
      +
      1438 
      + +
      1440  // This box is optional. Skip it if it does not contain any track.
      +
      1441  atom_size = 0;
      +
      1442  if (tracks.size() != 0) {
      +
      1443  atom_size = kBoxSize + header.ComputeSize();
      +
      1444  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1445  atom_size += tracks[i].ComputeSize();
      +
      1446  }
      +
      1447  return atom_size;
      +
      1448 }
      +
      1449 
      +
      1450 Movie::Movie() {}
      +
      1451 Movie::~Movie() {}
      +
      1452 FourCC Movie::BoxType() const { return FOURCC_MOOV; }
      +
      1453 
      + +
      1455  RCHECK(Box::ReadWrite(buffer) &&
      +
      1456  buffer->PrepareChildren() &&
      +
      1457  buffer->ReadWriteChild(&header) &&
      +
      1458  buffer->TryReadWriteChild(&extends));
      +
      1459  if (buffer->Reading()) {
      +
      1460  BoxReader* reader = buffer->reader();
      +
      1461  DCHECK(reader);
      +
      1462  RCHECK(reader->ReadChildren(&tracks) &&
      +
      1463  reader->TryReadChildren(&pssh));
      +
      1464  } else {
      +
      1465  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1466  RCHECK(tracks[i].ReadWrite(buffer));
      +
      1467  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1468  RCHECK(pssh[i].ReadWrite(buffer));
      +
      1469  }
      +
      1470  return true;
      +
      1471 }
      1472 
      - -
      1474  RCHECK(FullBox::ReadWrite(buffer));
      -
      1475  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1476  RCHECK(buffer->ReadWriteUInt64NBytes(&decode_time, num_bytes));
      -
      1477  return true;
      -
      1478 }
      -
      1479 
      - -
      1481  version = IsFitIn32Bits(decode_time) ? 0 : 1;
      -
      1482  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
      -
      1483  return atom_size;
      -
      1484 }
      + +
      1474  atom_size = kBoxSize + header.ComputeSize() + extends.ComputeSize();
      +
      1475  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1476  atom_size += tracks[i].ComputeSize();
      +
      1477  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1478  atom_size += pssh[i].ComputeSize();
      +
      1479  return atom_size;
      +
      1480 }
      +
      1481 
      +
      1482 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
      +
      1483 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
      +
      1484 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_TFDT; }
      1485 
      -
      1486 MovieFragmentHeader::MovieFragmentHeader() : sequence_number(0) {}
      -
      1487 MovieFragmentHeader::~MovieFragmentHeader() {}
      -
      1488 FourCC MovieFragmentHeader::BoxType() const { return FOURCC_MFHD; }
      -
      1489 
      - -
      1491  return FullBox::ReadWrite(buffer) &&
      -
      1492  buffer->ReadWriteUInt32(&sequence_number);
      -
      1493 }
      -
      1494 
      - -
      1496  atom_size = kFullBoxSize + sizeof(sequence_number);
      -
      1497  return atom_size;
      -
      1498 }
      -
      1499 
      -
      1500 TrackFragmentHeader::TrackFragmentHeader()
      -
      1501  : track_id(0),
      -
      1502  sample_description_index(0),
      -
      1503  default_sample_duration(0),
      -
      1504  default_sample_size(0),
      -
      1505  default_sample_flags(0) {}
      -
      1506 
      -
      1507 TrackFragmentHeader::~TrackFragmentHeader() {}
      -
      1508 FourCC TrackFragmentHeader::BoxType() const { return FOURCC_TFHD; }
      -
      1509 
      - -
      1511  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1512  buffer->ReadWriteUInt32(&track_id));
      -
      1513 
      -
      1514  if (flags & kBaseDataOffsetPresentMask) {
      -
      1515  // MSE requires 'default-base-is-moof' to be set and
      -
      1516  // 'base-data-offset-present' not to be set. We omit these checks as some
      -
      1517  // valid files in the wild don't follow these rules, though they use moof as
      -
      1518  // base.
      -
      1519  uint64_t base_data_offset;
      -
      1520  RCHECK(buffer->ReadWriteUInt64(&base_data_offset));
      -
      1521  DLOG(WARNING) << "base-data-offset-present is not expected. Assumes "
      -
      1522  "default-base-is-moof.";
      -
      1523  }
      -
      1524 
      -
      1525  if (flags & kSampleDescriptionIndexPresentMask) {
      -
      1526  RCHECK(buffer->ReadWriteUInt32(&sample_description_index));
      -
      1527  } else if (buffer->Reading()) {
      -
      1528  sample_description_index = 0;
      -
      1529  }
      -
      1530 
      -
      1531  if (flags & kDefaultSampleDurationPresentMask) {
      -
      1532  RCHECK(buffer->ReadWriteUInt32(&default_sample_duration));
      -
      1533  } else if (buffer->Reading()) {
      -
      1534  default_sample_duration = 0;
      -
      1535  }
      -
      1536 
      -
      1537  if (flags & kDefaultSampleSizePresentMask) {
      -
      1538  RCHECK(buffer->ReadWriteUInt32(&default_sample_size));
      -
      1539  } else if (buffer->Reading()) {
      -
      1540  default_sample_size = 0;
      -
      1541  }
      -
      1542 
      -
      1543  if (flags & kDefaultSampleFlagsPresentMask)
      -
      1544  RCHECK(buffer->ReadWriteUInt32(&default_sample_flags));
      -
      1545  return true;
      -
      1546 }
      -
      1547 
      - -
      1549  atom_size = kFullBoxSize + sizeof(track_id);
      -
      1550  if (flags & kSampleDescriptionIndexPresentMask)
      -
      1551  atom_size += sizeof(sample_description_index);
      -
      1552  if (flags & kDefaultSampleDurationPresentMask)
      -
      1553  atom_size += sizeof(default_sample_duration);
      -
      1554  if (flags & kDefaultSampleSizePresentMask)
      -
      1555  atom_size += sizeof(default_sample_size);
      + +
      1487  RCHECK(FullBox::ReadWrite(buffer));
      +
      1488  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1489  RCHECK(buffer->ReadWriteUInt64NBytes(&decode_time, num_bytes));
      +
      1490  return true;
      +
      1491 }
      +
      1492 
      + +
      1494  version = IsFitIn32Bits(decode_time) ? 0 : 1;
      +
      1495  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
      +
      1496  return atom_size;
      +
      1497 }
      +
      1498 
      +
      1499 MovieFragmentHeader::MovieFragmentHeader() : sequence_number(0) {}
      +
      1500 MovieFragmentHeader::~MovieFragmentHeader() {}
      +
      1501 FourCC MovieFragmentHeader::BoxType() const { return FOURCC_MFHD; }
      +
      1502 
      + +
      1504  return FullBox::ReadWrite(buffer) &&
      +
      1505  buffer->ReadWriteUInt32(&sequence_number);
      +
      1506 }
      +
      1507 
      + +
      1509  atom_size = kFullBoxSize + sizeof(sequence_number);
      +
      1510  return atom_size;
      +
      1511 }
      +
      1512 
      +
      1513 TrackFragmentHeader::TrackFragmentHeader()
      +
      1514  : track_id(0),
      +
      1515  sample_description_index(0),
      +
      1516  default_sample_duration(0),
      +
      1517  default_sample_size(0),
      +
      1518  default_sample_flags(0) {}
      +
      1519 
      +
      1520 TrackFragmentHeader::~TrackFragmentHeader() {}
      +
      1521 FourCC TrackFragmentHeader::BoxType() const { return FOURCC_TFHD; }
      +
      1522 
      + +
      1524  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1525  buffer->ReadWriteUInt32(&track_id));
      +
      1526 
      +
      1527  if (flags & kBaseDataOffsetPresentMask) {
      +
      1528  // MSE requires 'default-base-is-moof' to be set and
      +
      1529  // 'base-data-offset-present' not to be set. We omit these checks as some
      +
      1530  // valid files in the wild don't follow these rules, though they use moof as
      +
      1531  // base.
      +
      1532  uint64_t base_data_offset;
      +
      1533  RCHECK(buffer->ReadWriteUInt64(&base_data_offset));
      +
      1534  DLOG(WARNING) << "base-data-offset-present is not expected. Assumes "
      +
      1535  "default-base-is-moof.";
      +
      1536  }
      +
      1537 
      +
      1538  if (flags & kSampleDescriptionIndexPresentMask) {
      +
      1539  RCHECK(buffer->ReadWriteUInt32(&sample_description_index));
      +
      1540  } else if (buffer->Reading()) {
      +
      1541  sample_description_index = 0;
      +
      1542  }
      +
      1543 
      +
      1544  if (flags & kDefaultSampleDurationPresentMask) {
      +
      1545  RCHECK(buffer->ReadWriteUInt32(&default_sample_duration));
      +
      1546  } else if (buffer->Reading()) {
      +
      1547  default_sample_duration = 0;
      +
      1548  }
      +
      1549 
      +
      1550  if (flags & kDefaultSampleSizePresentMask) {
      +
      1551  RCHECK(buffer->ReadWriteUInt32(&default_sample_size));
      +
      1552  } else if (buffer->Reading()) {
      +
      1553  default_sample_size = 0;
      +
      1554  }
      +
      1555 
      1556  if (flags & kDefaultSampleFlagsPresentMask)
      -
      1557  atom_size += sizeof(default_sample_flags);
      -
      1558  return atom_size;
      +
      1557  RCHECK(buffer->ReadWriteUInt32(&default_sample_flags));
      +
      1558  return true;
      1559 }
      1560 
      -
      1561 TrackFragmentRun::TrackFragmentRun() : sample_count(0), data_offset(0) {}
      -
      1562 TrackFragmentRun::~TrackFragmentRun() {}
      -
      1563 FourCC TrackFragmentRun::BoxType() const { return FOURCC_TRUN; }
      -
      1564 
      - -
      1566  if (!buffer->Reading()) {
      -
      1567  // Determine whether version 0 or version 1 should be used.
      -
      1568  // Use version 0 if possible, use version 1 if there is a negative
      -
      1569  // sample_offset value.
      -
      1570  version = 0;
      -
      1571  if (flags & kSampleCompTimeOffsetsPresentMask) {
      -
      1572  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      1573  if (sample_composition_time_offsets[i] < 0) {
      -
      1574  version = 1;
      -
      1575  break;
      -
      1576  }
      -
      1577  }
      -
      1578  }
      -
      1579  }
      -
      1580 
      -
      1581  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1582  buffer->ReadWriteUInt32(&sample_count));
      -
      1583 
      -
      1584  bool data_offset_present = (flags & kDataOffsetPresentMask) != 0;
      -
      1585  bool first_sample_flags_present = (flags & kFirstSampleFlagsPresentMask) != 0;
      -
      1586  bool sample_duration_present = (flags & kSampleDurationPresentMask) != 0;
      -
      1587  bool sample_size_present = (flags & kSampleSizePresentMask) != 0;
      -
      1588  bool sample_flags_present = (flags & kSampleFlagsPresentMask) != 0;
      -
      1589  bool sample_composition_time_offsets_present =
      -
      1590  (flags & kSampleCompTimeOffsetsPresentMask) != 0;
      -
      1591 
      -
      1592  if (data_offset_present) {
      -
      1593  RCHECK(buffer->ReadWriteUInt32(&data_offset));
      -
      1594  } else {
      -
      1595  // NOTE: If the data-offset is not present, then the data for this run
      -
      1596  // starts immediately after the data of the previous run, or at the
      -
      1597  // base-data-offset defined by the track fragment header if this is the
      -
      1598  // first run in a track fragment. If the data-offset is present, it is
      -
      1599  // relative to the base-data-offset established in the track fragment
      -
      1600  // header.
      -
      1601  NOTIMPLEMENTED();
      -
      1602  }
      -
      1603 
      -
      1604  uint32_t first_sample_flags;
      -
      1605 
      -
      1606  if (buffer->Reading()) {
      -
      1607  if (first_sample_flags_present)
      -
      1608  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      -
      1609 
      -
      1610  if (sample_duration_present)
      -
      1611  sample_durations.resize(sample_count);
      -
      1612  if (sample_size_present)
      -
      1613  sample_sizes.resize(sample_count);
      -
      1614  if (sample_flags_present)
      -
      1615  sample_flags.resize(sample_count);
      -
      1616  if (sample_composition_time_offsets_present)
      -
      1617  sample_composition_time_offsets.resize(sample_count);
      -
      1618  } else {
      -
      1619  if (first_sample_flags_present) {
      -
      1620  first_sample_flags = sample_flags[0];
      -
      1621  DCHECK(sample_flags.size() == 1);
      -
      1622  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      -
      1623  }
      -
      1624 
      -
      1625  if (sample_duration_present)
      -
      1626  DCHECK(sample_durations.size() == sample_count);
      -
      1627  if (sample_size_present)
      -
      1628  DCHECK(sample_sizes.size() == sample_count);
      -
      1629  if (sample_flags_present)
      -
      1630  DCHECK(sample_flags.size() == sample_count);
      -
      1631  if (sample_composition_time_offsets_present)
      -
      1632  DCHECK(sample_composition_time_offsets.size() == sample_count);
      -
      1633  }
      -
      1634 
      -
      1635  for (uint32_t i = 0; i < sample_count; ++i) {
      -
      1636  if (sample_duration_present)
      -
      1637  RCHECK(buffer->ReadWriteUInt32(&sample_durations[i]));
      -
      1638  if (sample_size_present)
      -
      1639  RCHECK(buffer->ReadWriteUInt32(&sample_sizes[i]));
      -
      1640  if (sample_flags_present)
      -
      1641  RCHECK(buffer->ReadWriteUInt32(&sample_flags[i]));
      -
      1642 
      -
      1643  if (sample_composition_time_offsets_present) {
      -
      1644  if (version == 0) {
      -
      1645  uint32_t sample_offset = sample_composition_time_offsets[i];
      -
      1646  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      -
      1647  sample_composition_time_offsets[i] = sample_offset;
      -
      1648  } else {
      -
      1649  int32_t sample_offset = sample_composition_time_offsets[i];
      -
      1650  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      -
      1651  sample_composition_time_offsets[i] = sample_offset;
      -
      1652  }
      -
      1653  }
      -
      1654  }
      + +
      1562  atom_size = kFullBoxSize + sizeof(track_id);
      +
      1563  if (flags & kSampleDescriptionIndexPresentMask)
      +
      1564  atom_size += sizeof(sample_description_index);
      +
      1565  if (flags & kDefaultSampleDurationPresentMask)
      +
      1566  atom_size += sizeof(default_sample_duration);
      +
      1567  if (flags & kDefaultSampleSizePresentMask)
      +
      1568  atom_size += sizeof(default_sample_size);
      +
      1569  if (flags & kDefaultSampleFlagsPresentMask)
      +
      1570  atom_size += sizeof(default_sample_flags);
      +
      1571  return atom_size;
      +
      1572 }
      +
      1573 
      +
      1574 TrackFragmentRun::TrackFragmentRun() : sample_count(0), data_offset(0) {}
      +
      1575 TrackFragmentRun::~TrackFragmentRun() {}
      +
      1576 FourCC TrackFragmentRun::BoxType() const { return FOURCC_TRUN; }
      +
      1577 
      + +
      1579  if (!buffer->Reading()) {
      +
      1580  // Determine whether version 0 or version 1 should be used.
      +
      1581  // Use version 0 if possible, use version 1 if there is a negative
      +
      1582  // sample_offset value.
      +
      1583  version = 0;
      +
      1584  if (flags & kSampleCompTimeOffsetsPresentMask) {
      +
      1585  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      1586  if (sample_composition_time_offsets[i] < 0) {
      +
      1587  version = 1;
      +
      1588  break;
      +
      1589  }
      +
      1590  }
      +
      1591  }
      +
      1592  }
      +
      1593 
      +
      1594  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1595  buffer->ReadWriteUInt32(&sample_count));
      +
      1596 
      +
      1597  bool data_offset_present = (flags & kDataOffsetPresentMask) != 0;
      +
      1598  bool first_sample_flags_present = (flags & kFirstSampleFlagsPresentMask) != 0;
      +
      1599  bool sample_duration_present = (flags & kSampleDurationPresentMask) != 0;
      +
      1600  bool sample_size_present = (flags & kSampleSizePresentMask) != 0;
      +
      1601  bool sample_flags_present = (flags & kSampleFlagsPresentMask) != 0;
      +
      1602  bool sample_composition_time_offsets_present =
      +
      1603  (flags & kSampleCompTimeOffsetsPresentMask) != 0;
      +
      1604 
      +
      1605  if (data_offset_present) {
      +
      1606  RCHECK(buffer->ReadWriteUInt32(&data_offset));
      +
      1607  } else {
      +
      1608  // NOTE: If the data-offset is not present, then the data for this run
      +
      1609  // starts immediately after the data of the previous run, or at the
      +
      1610  // base-data-offset defined by the track fragment header if this is the
      +
      1611  // first run in a track fragment. If the data-offset is present, it is
      +
      1612  // relative to the base-data-offset established in the track fragment
      +
      1613  // header.
      +
      1614  NOTIMPLEMENTED();
      +
      1615  }
      +
      1616 
      +
      1617  uint32_t first_sample_flags;
      +
      1618 
      +
      1619  if (buffer->Reading()) {
      +
      1620  if (first_sample_flags_present)
      +
      1621  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      +
      1622 
      +
      1623  if (sample_duration_present)
      +
      1624  sample_durations.resize(sample_count);
      +
      1625  if (sample_size_present)
      +
      1626  sample_sizes.resize(sample_count);
      +
      1627  if (sample_flags_present)
      +
      1628  sample_flags.resize(sample_count);
      +
      1629  if (sample_composition_time_offsets_present)
      +
      1630  sample_composition_time_offsets.resize(sample_count);
      +
      1631  } else {
      +
      1632  if (first_sample_flags_present) {
      +
      1633  first_sample_flags = sample_flags[0];
      +
      1634  DCHECK(sample_flags.size() == 1);
      +
      1635  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
      +
      1636  }
      +
      1637 
      +
      1638  if (sample_duration_present)
      +
      1639  DCHECK(sample_durations.size() == sample_count);
      +
      1640  if (sample_size_present)
      +
      1641  DCHECK(sample_sizes.size() == sample_count);
      +
      1642  if (sample_flags_present)
      +
      1643  DCHECK(sample_flags.size() == sample_count);
      +
      1644  if (sample_composition_time_offsets_present)
      +
      1645  DCHECK(sample_composition_time_offsets.size() == sample_count);
      +
      1646  }
      +
      1647 
      +
      1648  for (uint32_t i = 0; i < sample_count; ++i) {
      +
      1649  if (sample_duration_present)
      +
      1650  RCHECK(buffer->ReadWriteUInt32(&sample_durations[i]));
      +
      1651  if (sample_size_present)
      +
      1652  RCHECK(buffer->ReadWriteUInt32(&sample_sizes[i]));
      +
      1653  if (sample_flags_present)
      +
      1654  RCHECK(buffer->ReadWriteUInt32(&sample_flags[i]));
      1655 
      -
      1656  if (buffer->Reading()) {
      -
      1657  if (first_sample_flags_present) {
      -
      1658  if (sample_flags.size() == 0) {
      -
      1659  sample_flags.push_back(first_sample_flags);
      -
      1660  } else {
      -
      1661  sample_flags[0] = first_sample_flags;
      -
      1662  }
      -
      1663  }
      -
      1664  }
      -
      1665  return true;
      -
      1666 }
      -
      1667 
      - -
      1669  atom_size = kFullBoxSize + sizeof(sample_count);
      -
      1670  if (flags & kDataOffsetPresentMask)
      -
      1671  atom_size += sizeof(data_offset);
      -
      1672  if (flags & kFirstSampleFlagsPresentMask)
      -
      1673  atom_size += sizeof(uint32_t);
      -
      1674  uint32_t fields = (flags & kSampleDurationPresentMask ? 1 : 0) +
      -
      1675  (flags & kSampleSizePresentMask ? 1 : 0) +
      -
      1676  (flags & kSampleFlagsPresentMask ? 1 : 0) +
      -
      1677  (flags & kSampleCompTimeOffsetsPresentMask ? 1 : 0);
      -
      1678  atom_size += fields * sizeof(uint32_t) * sample_count;
      -
      1679  return atom_size;
      -
      1680 }
      -
      1681 
      -
      1682 SampleToGroup::SampleToGroup() : grouping_type(0), grouping_type_parameter(0) {}
      -
      1683 SampleToGroup::~SampleToGroup() {}
      -
      1684 FourCC SampleToGroup::BoxType() const { return FOURCC_SBGP; }
      -
      1685 
      - -
      1687  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1688  buffer->ReadWriteUInt32(&grouping_type));
      -
      1689  if (version == 1)
      -
      1690  RCHECK(buffer->ReadWriteUInt32(&grouping_type_parameter));
      -
      1691 
      -
      1692  if (grouping_type != FOURCC_SEIG) {
      -
      1693  DCHECK(buffer->Reading());
      -
      1694  DLOG(WARNING) << "Sample group "
      -
      1695  << FourCCToString(static_cast<FourCC>(grouping_type))
      -
      1696  << " is not supported.";
      -
      1697  return true;
      -
      1698  }
      -
      1699 
      -
      1700  uint32_t count = entries.size();
      -
      1701  RCHECK(buffer->ReadWriteUInt32(&count));
      -
      1702  entries.resize(count);
      -
      1703  for (uint32_t i = 0; i < count; ++i) {
      -
      1704  RCHECK(buffer->ReadWriteUInt32(&entries[i].sample_count) &&
      -
      1705  buffer->ReadWriteUInt32(&entries[i].group_description_index));
      -
      1706  }
      -
      1707  return true;
      -
      1708 }
      -
      1709 
      - -
      1711  // This box is optional. Skip it if it is not used.
      -
      1712  atom_size = 0;
      -
      1713  if (!entries.empty()) {
      -
      1714  atom_size = kFullBoxSize + sizeof(grouping_type) +
      -
      1715  (version == 1 ? sizeof(grouping_type_parameter) : 0) +
      -
      1716  sizeof(uint32_t) + entries.size() * sizeof(entries[0]);
      -
      1717  }
      -
      1718  return atom_size;
      -
      1719 }
      -
      1720 
      -
      1721 CencSampleEncryptionInfoEntry::CencSampleEncryptionInfoEntry()
      -
      1722  : is_encrypted(false), iv_size(0) {
      -
      1723 }
      -
      1724 CencSampleEncryptionInfoEntry::~CencSampleEncryptionInfoEntry() {};
      -
      1725 
      -
      1726 SampleGroupDescription::SampleGroupDescription() : grouping_type(0) {}
      -
      1727 SampleGroupDescription::~SampleGroupDescription() {}
      -
      1728 FourCC SampleGroupDescription::BoxType() const { return FOURCC_SGPD; }
      -
      1729 
      - -
      1731  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1732  buffer->ReadWriteUInt32(&grouping_type));
      +
      1656  if (sample_composition_time_offsets_present) {
      +
      1657  if (version == 0) {
      +
      1658  uint32_t sample_offset = sample_composition_time_offsets[i];
      +
      1659  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
      +
      1660  sample_composition_time_offsets[i] = sample_offset;
      +
      1661  } else {
      +
      1662  int32_t sample_offset = sample_composition_time_offsets[i];
      +
      1663  RCHECK(buffer->ReadWriteInt32(&sample_offset));
      +
      1664  sample_composition_time_offsets[i] = sample_offset;
      +
      1665  }
      +
      1666  }
      +
      1667  }
      +
      1668 
      +
      1669  if (buffer->Reading()) {
      +
      1670  if (first_sample_flags_present) {
      +
      1671  if (sample_flags.size() == 0) {
      +
      1672  sample_flags.push_back(first_sample_flags);
      +
      1673  } else {
      +
      1674  sample_flags[0] = first_sample_flags;
      +
      1675  }
      +
      1676  }
      +
      1677  }
      +
      1678  return true;
      +
      1679 }
      +
      1680 
      + +
      1682  atom_size = kFullBoxSize + sizeof(sample_count);
      +
      1683  if (flags & kDataOffsetPresentMask)
      +
      1684  atom_size += sizeof(data_offset);
      +
      1685  if (flags & kFirstSampleFlagsPresentMask)
      +
      1686  atom_size += sizeof(uint32_t);
      +
      1687  uint32_t fields = (flags & kSampleDurationPresentMask ? 1 : 0) +
      +
      1688  (flags & kSampleSizePresentMask ? 1 : 0) +
      +
      1689  (flags & kSampleFlagsPresentMask ? 1 : 0) +
      +
      1690  (flags & kSampleCompTimeOffsetsPresentMask ? 1 : 0);
      +
      1691  atom_size += fields * sizeof(uint32_t) * sample_count;
      +
      1692  return atom_size;
      +
      1693 }
      +
      1694 
      +
      1695 SampleToGroup::SampleToGroup() : grouping_type(0), grouping_type_parameter(0) {}
      +
      1696 SampleToGroup::~SampleToGroup() {}
      +
      1697 FourCC SampleToGroup::BoxType() const { return FOURCC_SBGP; }
      +
      1698 
      + +
      1700  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1701  buffer->ReadWriteUInt32(&grouping_type));
      +
      1702  if (version == 1)
      +
      1703  RCHECK(buffer->ReadWriteUInt32(&grouping_type_parameter));
      +
      1704 
      +
      1705  if (grouping_type != FOURCC_SEIG) {
      +
      1706  DCHECK(buffer->Reading());
      +
      1707  DLOG(WARNING) << "Sample group "
      +
      1708  << FourCCToString(static_cast<FourCC>(grouping_type))
      +
      1709  << " is not supported.";
      +
      1710  return true;
      +
      1711  }
      +
      1712 
      +
      1713  uint32_t count = entries.size();
      +
      1714  RCHECK(buffer->ReadWriteUInt32(&count));
      +
      1715  entries.resize(count);
      +
      1716  for (uint32_t i = 0; i < count; ++i) {
      +
      1717  RCHECK(buffer->ReadWriteUInt32(&entries[i].sample_count) &&
      +
      1718  buffer->ReadWriteUInt32(&entries[i].group_description_index));
      +
      1719  }
      +
      1720  return true;
      +
      1721 }
      +
      1722 
      + +
      1724  // This box is optional. Skip it if it is not used.
      +
      1725  atom_size = 0;
      +
      1726  if (!entries.empty()) {
      +
      1727  atom_size = kFullBoxSize + sizeof(grouping_type) +
      +
      1728  (version == 1 ? sizeof(grouping_type_parameter) : 0) +
      +
      1729  sizeof(uint32_t) + entries.size() * sizeof(entries[0]);
      +
      1730  }
      +
      1731  return atom_size;
      +
      1732 }
      1733 
      -
      1734  if (grouping_type != FOURCC_SEIG) {
      -
      1735  DCHECK(buffer->Reading());
      -
      1736  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
      -
      1737  return true;
      -
      1738  }
      -
      1739 
      -
      1740  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      -
      1741  uint32_t default_length = 0;
      -
      1742  if (version == 1) {
      -
      1743  if (buffer->Reading()) {
      -
      1744  RCHECK(buffer->ReadWriteUInt32(&default_length));
      -
      1745  RCHECK(default_length == 0 || default_length >= kEntrySize);
      -
      1746  } else {
      -
      1747  default_length = kEntrySize;
      -
      1748  RCHECK(buffer->ReadWriteUInt32(&default_length));
      -
      1749  }
      -
      1750  }
      -
      1751 
      -
      1752  uint32_t count = entries.size();
      -
      1753  RCHECK(buffer->ReadWriteUInt32(&count));
      -
      1754  entries.resize(count);
      -
      1755  for (uint32_t i = 0; i < count; ++i) {
      -
      1756  if (version == 1) {
      -
      1757  if (buffer->Reading() && default_length == 0) {
      -
      1758  uint32_t description_length = 0;
      -
      1759  RCHECK(buffer->ReadWriteUInt32(&description_length));
      -
      1760  RCHECK(description_length >= kEntrySize);
      -
      1761  }
      +
      1734 CencSampleEncryptionInfoEntry::CencSampleEncryptionInfoEntry()
      +
      1735  : is_encrypted(false), iv_size(0) {
      +
      1736 }
      +
      1737 CencSampleEncryptionInfoEntry::~CencSampleEncryptionInfoEntry() {};
      +
      1738 
      +
      1739 SampleGroupDescription::SampleGroupDescription() : grouping_type(0) {}
      +
      1740 SampleGroupDescription::~SampleGroupDescription() {}
      +
      1741 FourCC SampleGroupDescription::BoxType() const { return FOURCC_SGPD; }
      +
      1742 
      + +
      1744  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1745  buffer->ReadWriteUInt32(&grouping_type));
      +
      1746 
      +
      1747  if (grouping_type != FOURCC_SEIG) {
      +
      1748  DCHECK(buffer->Reading());
      +
      1749  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
      +
      1750  return true;
      +
      1751  }
      +
      1752 
      +
      1753  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      +
      1754  uint32_t default_length = 0;
      +
      1755  if (version == 1) {
      +
      1756  if (buffer->Reading()) {
      +
      1757  RCHECK(buffer->ReadWriteUInt32(&default_length));
      +
      1758  RCHECK(default_length == 0 || default_length >= kEntrySize);
      +
      1759  } else {
      +
      1760  default_length = kEntrySize;
      +
      1761  RCHECK(buffer->ReadWriteUInt32(&default_length));
      1762  }
      -
      1763 
      -
      1764  if (!buffer->Reading()) {
      -
      1765  if (entries[i].key_id.size() != kCencKeyIdSize) {
      -
      1766  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      -
      1767  << " bytes; got " << entries[i].key_id.size()
      -
      1768  << ". Resized accordingly.";
      -
      1769  entries[i].key_id.resize(kCencKeyIdSize);
      -
      1770  }
      -
      1771  }
      -
      1772 
      -
      1773  uint8_t flag = entries[i].is_encrypted ? 1 : 0;
      -
      1774  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      -
      1775  buffer->ReadWriteUInt8(&flag) &&
      -
      1776  buffer->ReadWriteUInt8(&entries[i].iv_size) &&
      -
      1777  buffer->ReadWriteVector(&entries[i].key_id, kCencKeyIdSize));
      -
      1778 
      -
      1779  if (buffer->Reading()) {
      -
      1780  entries[i].is_encrypted = (flag != 0);
      -
      1781  if (entries[i].is_encrypted) {
      -
      1782  RCHECK(entries[i].iv_size == 8 || entries[i].iv_size == 16);
      -
      1783  } else {
      -
      1784  RCHECK(entries[i].iv_size == 0);
      -
      1785  }
      -
      1786  }
      -
      1787  }
      -
      1788  return true;
      -
      1789 }
      -
      1790 
      - -
      1792  // Version 0 is obsoleted, so always generate version 1 box.
      -
      1793  version = 1;
      -
      1794  // This box is optional. Skip it if it is not used.
      -
      1795  atom_size = 0;
      -
      1796  if (!entries.empty()) {
      -
      1797  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      -
      1798  atom_size = kFullBoxSize + sizeof(grouping_type) +
      -
      1799  (version == 1 ? sizeof(uint32_t) : 0) + sizeof(uint32_t) +
      -
      1800  entries.size() * kEntrySize;
      -
      1801  }
      -
      1802  return atom_size;
      -
      1803 }
      -
      1804 
      -
      1805 TrackFragment::TrackFragment() : decode_time_absent(false) {}
      -
      1806 TrackFragment::~TrackFragment() {}
      -
      1807 FourCC TrackFragment::BoxType() const { return FOURCC_TRAF; }
      -
      1808 
      - -
      1810  RCHECK(Box::ReadWrite(buffer) &&
      -
      1811  buffer->PrepareChildren() &&
      -
      1812  buffer->ReadWriteChild(&header));
      -
      1813  if (buffer->Reading()) {
      -
      1814  DCHECK(buffer->reader());
      -
      1815  decode_time_absent = !buffer->reader()->ChildExist(&decode_time);
      -
      1816  if (!decode_time_absent)
      -
      1817  RCHECK(buffer->ReadWriteChild(&decode_time));
      -
      1818  RCHECK(buffer->reader()->TryReadChildren(&runs));
      -
      1819 
      -
      1820  // There could be multiple SampleGroupDescription and SampleToGroup boxes
      -
      1821  // with different grouping types. For common encryption, the relevant
      -
      1822  // grouping type is 'seig'. Continue reading until 'seig' is found, or
      -
      1823  // until running out of child boxes.
      -
      1824  while (sample_to_group.grouping_type != FOURCC_SEIG &&
      -
      1825  buffer->reader()->ChildExist(&sample_to_group)) {
      -
      1826  RCHECK(buffer->reader()->ReadChild(&sample_to_group));
      -
      1827  }
      -
      1828  while (sample_group_description.grouping_type != FOURCC_SEIG &&
      -
      1829  buffer->reader()->ChildExist(&sample_group_description)) {
      -
      1830  RCHECK(buffer->reader()->ReadChild(&sample_group_description));
      -
      1831  }
      -
      1832  } else {
      -
      1833  if (!decode_time_absent)
      -
      1834  RCHECK(buffer->ReadWriteChild(&decode_time));
      -
      1835  for (uint32_t i = 0; i < runs.size(); ++i)
      -
      1836  RCHECK(runs[i].ReadWrite(buffer));
      -
      1837  RCHECK(buffer->TryReadWriteChild(&sample_to_group) &&
      -
      1838  buffer->TryReadWriteChild(&sample_group_description));
      -
      1839  }
      -
      1840  return buffer->TryReadWriteChild(&auxiliary_size) &&
      -
      1841  buffer->TryReadWriteChild(&auxiliary_offset);
      -
      1842 }
      -
      1843 
      - -
      1845  atom_size = kBoxSize + header.ComputeSize() + decode_time.ComputeSize() +
      -
      1846  sample_to_group.ComputeSize() +
      -
      1847  sample_group_description.ComputeSize() +
      -
      1848  auxiliary_size.ComputeSize() + auxiliary_offset.ComputeSize();
      -
      1849  for (uint32_t i = 0; i < runs.size(); ++i)
      -
      1850  atom_size += runs[i].ComputeSize();
      -
      1851  return atom_size;
      -
      1852 }
      -
      1853 
      -
      1854 MovieFragment::MovieFragment() {}
      -
      1855 MovieFragment::~MovieFragment() {}
      -
      1856 FourCC MovieFragment::BoxType() const { return FOURCC_MOOF; }
      -
      1857 
      - -
      1859  RCHECK(Box::ReadWrite(buffer) &&
      -
      1860  buffer->PrepareChildren() &&
      -
      1861  buffer->ReadWriteChild(&header));
      -
      1862  if (buffer->Reading()) {
      -
      1863  BoxReader* reader = buffer->reader();
      -
      1864  DCHECK(reader);
      -
      1865  RCHECK(reader->ReadChildren(&tracks) &&
      -
      1866  reader->TryReadChildren(&pssh));
      -
      1867  } else {
      -
      1868  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1869  RCHECK(tracks[i].ReadWrite(buffer));
      -
      1870  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1871  RCHECK(pssh[i].ReadWrite(buffer));
      -
      1872  }
      -
      1873  return true;
      -
      1874 }
      -
      1875 
      - -
      1877  atom_size = kBoxSize + header.ComputeSize();
      -
      1878  for (uint32_t i = 0; i < tracks.size(); ++i)
      -
      1879  atom_size += tracks[i].ComputeSize();
      -
      1880  for (uint32_t i = 0; i < pssh.size(); ++i)
      -
      1881  atom_size += pssh[i].ComputeSize();
      -
      1882  return atom_size;
      -
      1883 }
      -
      1884 
      -
      1885 SegmentIndex::SegmentIndex()
      -
      1886  : reference_id(0),
      -
      1887  timescale(0),
      -
      1888  earliest_presentation_time(0),
      -
      1889  first_offset(0) {}
      -
      1890 SegmentIndex::~SegmentIndex() {}
      -
      1891 FourCC SegmentIndex::BoxType() const { return FOURCC_SIDX; }
      -
      1892 
      - -
      1894  RCHECK(FullBox::ReadWrite(buffer) &&
      -
      1895  buffer->ReadWriteUInt32(&reference_id) &&
      -
      1896  buffer->ReadWriteUInt32(&timescale));
      +
      1763  }
      +
      1764 
      +
      1765  uint32_t count = entries.size();
      +
      1766  RCHECK(buffer->ReadWriteUInt32(&count));
      +
      1767  entries.resize(count);
      +
      1768  for (uint32_t i = 0; i < count; ++i) {
      +
      1769  if (version == 1) {
      +
      1770  if (buffer->Reading() && default_length == 0) {
      +
      1771  uint32_t description_length = 0;
      +
      1772  RCHECK(buffer->ReadWriteUInt32(&description_length));
      +
      1773  RCHECK(description_length >= kEntrySize);
      +
      1774  }
      +
      1775  }
      +
      1776 
      +
      1777  if (!buffer->Reading()) {
      +
      1778  if (entries[i].key_id.size() != kCencKeyIdSize) {
      +
      1779  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
      +
      1780  << " bytes; got " << entries[i].key_id.size()
      +
      1781  << ". Resized accordingly.";
      +
      1782  entries[i].key_id.resize(kCencKeyIdSize);
      +
      1783  }
      +
      1784  }
      +
      1785 
      +
      1786  uint8_t flag = entries[i].is_encrypted ? 1 : 0;
      +
      1787  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      +
      1788  buffer->ReadWriteUInt8(&flag) &&
      +
      1789  buffer->ReadWriteUInt8(&entries[i].iv_size) &&
      +
      1790  buffer->ReadWriteVector(&entries[i].key_id, kCencKeyIdSize));
      +
      1791 
      +
      1792  if (buffer->Reading()) {
      +
      1793  entries[i].is_encrypted = (flag != 0);
      +
      1794  if (entries[i].is_encrypted) {
      +
      1795  RCHECK(entries[i].iv_size == 8 || entries[i].iv_size == 16);
      +
      1796  } else {
      +
      1797  RCHECK(entries[i].iv_size == 0);
      +
      1798  }
      +
      1799  }
      +
      1800  }
      +
      1801  return true;
      +
      1802 }
      +
      1803 
      + +
      1805  // Version 0 is obsoleted, so always generate version 1 box.
      +
      1806  version = 1;
      +
      1807  // This box is optional. Skip it if it is not used.
      +
      1808  atom_size = 0;
      +
      1809  if (!entries.empty()) {
      +
      1810  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
      +
      1811  atom_size = kFullBoxSize + sizeof(grouping_type) +
      +
      1812  (version == 1 ? sizeof(uint32_t) : 0) + sizeof(uint32_t) +
      +
      1813  entries.size() * kEntrySize;
      +
      1814  }
      +
      1815  return atom_size;
      +
      1816 }
      +
      1817 
      +
      1818 TrackFragment::TrackFragment() : decode_time_absent(false) {}
      +
      1819 TrackFragment::~TrackFragment() {}
      +
      1820 FourCC TrackFragment::BoxType() const { return FOURCC_TRAF; }
      +
      1821 
      + +
      1823  RCHECK(Box::ReadWrite(buffer) &&
      +
      1824  buffer->PrepareChildren() &&
      +
      1825  buffer->ReadWriteChild(&header));
      +
      1826  if (buffer->Reading()) {
      +
      1827  DCHECK(buffer->reader());
      +
      1828  decode_time_absent = !buffer->reader()->ChildExist(&decode_time);
      +
      1829  if (!decode_time_absent)
      +
      1830  RCHECK(buffer->ReadWriteChild(&decode_time));
      +
      1831  RCHECK(buffer->reader()->TryReadChildren(&runs));
      +
      1832 
      +
      1833  // There could be multiple SampleGroupDescription and SampleToGroup boxes
      +
      1834  // with different grouping types. For common encryption, the relevant
      +
      1835  // grouping type is 'seig'. Continue reading until 'seig' is found, or
      +
      1836  // until running out of child boxes.
      +
      1837  while (sample_to_group.grouping_type != FOURCC_SEIG &&
      +
      1838  buffer->reader()->ChildExist(&sample_to_group)) {
      +
      1839  RCHECK(buffer->reader()->ReadChild(&sample_to_group));
      +
      1840  }
      +
      1841  while (sample_group_description.grouping_type != FOURCC_SEIG &&
      +
      1842  buffer->reader()->ChildExist(&sample_group_description)) {
      +
      1843  RCHECK(buffer->reader()->ReadChild(&sample_group_description));
      +
      1844  }
      +
      1845  } else {
      +
      1846  if (!decode_time_absent)
      +
      1847  RCHECK(buffer->ReadWriteChild(&decode_time));
      +
      1848  for (uint32_t i = 0; i < runs.size(); ++i)
      +
      1849  RCHECK(runs[i].ReadWrite(buffer));
      +
      1850  RCHECK(buffer->TryReadWriteChild(&sample_to_group) &&
      +
      1851  buffer->TryReadWriteChild(&sample_group_description));
      +
      1852  }
      +
      1853  return buffer->TryReadWriteChild(&auxiliary_size) &&
      +
      1854  buffer->TryReadWriteChild(&auxiliary_offset);
      +
      1855 }
      +
      1856 
      + +
      1858  atom_size = kBoxSize + header.ComputeSize() + decode_time.ComputeSize() +
      +
      1859  sample_to_group.ComputeSize() +
      +
      1860  sample_group_description.ComputeSize() +
      +
      1861  auxiliary_size.ComputeSize() + auxiliary_offset.ComputeSize();
      +
      1862  for (uint32_t i = 0; i < runs.size(); ++i)
      +
      1863  atom_size += runs[i].ComputeSize();
      +
      1864  return atom_size;
      +
      1865 }
      +
      1866 
      +
      1867 MovieFragment::MovieFragment() {}
      +
      1868 MovieFragment::~MovieFragment() {}
      +
      1869 FourCC MovieFragment::BoxType() const { return FOURCC_MOOF; }
      +
      1870 
      + +
      1872  RCHECK(Box::ReadWrite(buffer) &&
      +
      1873  buffer->PrepareChildren() &&
      +
      1874  buffer->ReadWriteChild(&header));
      +
      1875  if (buffer->Reading()) {
      +
      1876  BoxReader* reader = buffer->reader();
      +
      1877  DCHECK(reader);
      +
      1878  RCHECK(reader->ReadChildren(&tracks) &&
      +
      1879  reader->TryReadChildren(&pssh));
      +
      1880  } else {
      +
      1881  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1882  RCHECK(tracks[i].ReadWrite(buffer));
      +
      1883  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1884  RCHECK(pssh[i].ReadWrite(buffer));
      +
      1885  }
      +
      1886  return true;
      +
      1887 }
      +
      1888 
      + +
      1890  atom_size = kBoxSize + header.ComputeSize();
      +
      1891  for (uint32_t i = 0; i < tracks.size(); ++i)
      +
      1892  atom_size += tracks[i].ComputeSize();
      +
      1893  for (uint32_t i = 0; i < pssh.size(); ++i)
      +
      1894  atom_size += pssh[i].ComputeSize();
      +
      1895  return atom_size;
      +
      1896 }
      1897 
      -
      1898  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      -
      1899  RCHECK(
      -
      1900  buffer->ReadWriteUInt64NBytes(&earliest_presentation_time, num_bytes) &&
      -
      1901  buffer->ReadWriteUInt64NBytes(&first_offset, num_bytes));
      -
      1902 
      -
      1903  uint16_t reference_count = references.size();
      -
      1904  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      -
      1905  buffer->ReadWriteUInt16(&reference_count));
      -
      1906  references.resize(reference_count);
      -
      1907 
      -
      1908  uint32_t reference_type_size;
      -
      1909  uint32_t sap;
      -
      1910  for (uint32_t i = 0; i < reference_count; ++i) {
      -
      1911  if (!buffer->Reading()) {
      -
      1912  reference_type_size = references[i].referenced_size;
      -
      1913  if (references[i].reference_type)
      -
      1914  reference_type_size |= (1 << 31);
      -
      1915  sap = (references[i].sap_type << 28) | references[i].sap_delta_time;
      -
      1916  if (references[i].starts_with_sap)
      -
      1917  sap |= (1 << 31);
      -
      1918  }
      -
      1919  RCHECK(buffer->ReadWriteUInt32(&reference_type_size) &&
      -
      1920  buffer->ReadWriteUInt32(&references[i].subsegment_duration) &&
      -
      1921  buffer->ReadWriteUInt32(&sap));
      -
      1922  if (buffer->Reading()) {
      -
      1923  references[i].reference_type = (reference_type_size >> 31) ? true : false;
      -
      1924  references[i].referenced_size = reference_type_size & ~(1 << 31);
      -
      1925  references[i].starts_with_sap = (sap >> 31) ? true : false;
      -
      1926  references[i].sap_type =
      -
      1927  static_cast<SegmentReference::SAPType>((sap >> 28) & 0x07);
      -
      1928  references[i].sap_delta_time = sap & ~(0xF << 28);
      -
      1929  }
      -
      1930  }
      -
      1931  return true;
      -
      1932 }
      -
      1933 
      - -
      1935  version = IsFitIn32Bits(earliest_presentation_time, first_offset) ? 0 : 1;
      -
      1936  atom_size = kFullBoxSize + sizeof(reference_id) + sizeof(timescale) +
      -
      1937  sizeof(uint32_t) * (1 + version) * 2 + 2 * sizeof(uint16_t) +
      -
      1938  3 * sizeof(uint32_t) * references.size();
      -
      1939  return atom_size;
      -
      1940 }
      -
      1941 
      -
      1942 MediaData::MediaData() : data_size(0) {}
      -
      1943 MediaData::~MediaData() {}
      -
      1944 FourCC MediaData::BoxType() const { return FOURCC_MDAT; }
      -
      1945 
      -
      1946 void MediaData::Write(BufferWriter* buffer) {
      -
      1947  buffer->AppendInt(ComputeSize());
      -
      1948  buffer->AppendInt(static_cast<uint32_t>(BoxType()));
      -
      1949 }
      -
      1950 
      -
      1951 uint32_t MediaData::ComputeSize() {
      -
      1952  return kBoxSize + data_size;
      +
      1898 SegmentIndex::SegmentIndex()
      +
      1899  : reference_id(0),
      +
      1900  timescale(0),
      +
      1901  earliest_presentation_time(0),
      +
      1902  first_offset(0) {}
      +
      1903 SegmentIndex::~SegmentIndex() {}
      +
      1904 FourCC SegmentIndex::BoxType() const { return FOURCC_SIDX; }
      +
      1905 
      + +
      1907  RCHECK(FullBox::ReadWrite(buffer) &&
      +
      1908  buffer->ReadWriteUInt32(&reference_id) &&
      +
      1909  buffer->ReadWriteUInt32(&timescale));
      +
      1910 
      +
      1911  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
      +
      1912  RCHECK(
      +
      1913  buffer->ReadWriteUInt64NBytes(&earliest_presentation_time, num_bytes) &&
      +
      1914  buffer->ReadWriteUInt64NBytes(&first_offset, num_bytes));
      +
      1915 
      +
      1916  uint16_t reference_count = references.size();
      +
      1917  RCHECK(buffer->IgnoreBytes(2) && // reserved.
      +
      1918  buffer->ReadWriteUInt16(&reference_count));
      +
      1919  references.resize(reference_count);
      +
      1920 
      +
      1921  uint32_t reference_type_size;
      +
      1922  uint32_t sap;
      +
      1923  for (uint32_t i = 0; i < reference_count; ++i) {
      +
      1924  if (!buffer->Reading()) {
      +
      1925  reference_type_size = references[i].referenced_size;
      +
      1926  if (references[i].reference_type)
      +
      1927  reference_type_size |= (1 << 31);
      +
      1928  sap = (references[i].sap_type << 28) | references[i].sap_delta_time;
      +
      1929  if (references[i].starts_with_sap)
      +
      1930  sap |= (1 << 31);
      +
      1931  }
      +
      1932  RCHECK(buffer->ReadWriteUInt32(&reference_type_size) &&
      +
      1933  buffer->ReadWriteUInt32(&references[i].subsegment_duration) &&
      +
      1934  buffer->ReadWriteUInt32(&sap));
      +
      1935  if (buffer->Reading()) {
      +
      1936  references[i].reference_type = (reference_type_size >> 31) ? true : false;
      +
      1937  references[i].referenced_size = reference_type_size & ~(1 << 31);
      +
      1938  references[i].starts_with_sap = (sap >> 31) ? true : false;
      +
      1939  references[i].sap_type =
      +
      1940  static_cast<SegmentReference::SAPType>((sap >> 28) & 0x07);
      +
      1941  references[i].sap_delta_time = sap & ~(0xF << 28);
      +
      1942  }
      +
      1943  }
      +
      1944  return true;
      +
      1945 }
      +
      1946 
      + +
      1948  version = IsFitIn32Bits(earliest_presentation_time, first_offset) ? 0 : 1;
      +
      1949  atom_size = kFullBoxSize + sizeof(reference_id) + sizeof(timescale) +
      +
      1950  sizeof(uint32_t) * (1 + version) * 2 + 2 * sizeof(uint16_t) +
      +
      1951  3 * sizeof(uint32_t) * references.size();
      +
      1952  return atom_size;
      1953 }
      1954 
      -
      1955 } // namespace mp4
      -
      1956 } // namespace media
      -
      1957 } // namespace edash_packager
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - +
      1955 MediaData::MediaData() : data_size(0) {}
      +
      1956 MediaData::~MediaData() {}
      +
      1957 FourCC MediaData::BoxType() const { return FOURCC_MDAT; }
      +
      1958 
      +
      1959 void MediaData::Write(BufferWriter* buffer) {
      +
      1960  buffer->AppendInt(ComputeSize());
      +
      1961  buffer->AppendInt(static_cast<uint32_t>(BoxType()));
      +
      1962 }
      +
      1963 
      +
      1964 uint32_t MediaData::ComputeSize() {
      +
      1965  return kBoxSize + data_size;
      +
      1966 }
      +
      1967 
      +
      1968 } // namespace mp4
      +
      1969 } // namespace media
      +
      1970 } // namespace edash_packager
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadChildren(std::vector< T > *children) WARN_UNUSED_RESULT
      Definition: box_reader.h:133
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadChild(Box *child) WARN_UNUSED_RESULT
      Definition: box_reader.cc:123
      - + - +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      virtual bool ReadWrite(BoxBuffer *buffer)
      Read/write the mp4 box from/to BoxBuffer.
      Definition: box.cc:36
      @@ -2073,63 +2086,63 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - - + + - +
      bool ChildExist(Box *child) WARN_UNUSED_RESULT
      Definition: box_reader.cc:136
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWriteUInt64NBytes(uint64_t *v, size_t num_bytes)
      Definition: box_buffer.h:107
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - - - + + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - + - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      Definition: box.cc:50
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - + -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - +
      bool IgnoreBytes(size_t num_bytes)
      Definition: box_buffer.h:167
      A class to read bit streams.
      Definition: bit_reader.h:17
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - + -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      @@ -2137,9 +2150,9 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - + -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      @@ -2148,38 +2161,38 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      bool ReadAllChildren(std::vector< T > *children) WARN_UNUSED_RESULT
      Definition: box_reader.h:163
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - +
      void Write(BufferWriter *writer)
      Definition: box.cc:25
      - + -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - - +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool TryReadChildren(std::vector< T > *children) WARN_UNUSED_RESULT
      Definition: box_reader.h:139
      Class for reading MP4 boxes.
      Definition: box_reader.h:24
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - - + + -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      - -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      + +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      -
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      +
      bool ReadWrite(BoxBuffer *buffer) override
      Read/write the mp4 box from/to BoxBuffer.
      diff --git a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html index d495cf84ac..0a457d1119 100644 --- a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html +++ b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html @@ -125,7 +125,7 @@ const std::string & id diff --git a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html index 9cfb324213..0733252483 100644 --- a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html +++ b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d0f/local__file_8h_source.html b/docs/de/d0f/local__file_8h_source.html index 55b1e2d6e1..708c156858 100644 --- a/docs/de/d0f/local__file_8h_source.html +++ b/docs/de/d0f/local__file_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d10/cenc_8h_source.html b/docs/de/d10/cenc_8h_source.html index d5cf7b3fec..68ea7f137e 100644 --- a/docs/de/d10/cenc_8h_source.html +++ b/docs/de/d10/cenc_8h_source.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d12/container__names_8h_source.html b/docs/de/d12/container__names_8h_source.html index aa7422a0f3..b683d950a7 100644 --- a/docs/de/d12/container__names_8h_source.html +++ b/docs/de/d12/container__names_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d15/media__stream_8cc_source.html b/docs/de/d15/media__stream_8cc_source.html index b408bccdfd..fd4017258a 100644 --- a/docs/de/d15/media__stream_8cc_source.html +++ b/docs/de/d15/media__stream_8cc_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d17/cluster__builder_8cc_source.html b/docs/de/d17/cluster__builder_8cc_source.html index 44ded911c7..7f60f31c09 100644 --- a/docs/de/d17/cluster__builder_8cc_source.html +++ b/docs/de/d17/cluster__builder_8cc_source.html @@ -330,7 +330,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d19/classedash__packager_1_1media_1_1File.html b/docs/de/d19/classedash__packager_1_1media_1_1File.html index 482b68587d..0aeac170f8 100644 --- a/docs/de/d19/classedash__packager_1_1media_1_1File.html +++ b/docs/de/d19/classedash__packager_1_1media_1_1File.html @@ -709,7 +709,7 @@ class ThreadedIoFile diff --git a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html index fed44efed9..ff14dc4c0e 100644 --- a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html +++ b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html @@ -128,7 +128,7 @@ std::string language diff --git a/docs/de/d34/offset__byte__queue_8h_source.html b/docs/de/d34/offset__byte__queue_8h_source.html index e300de6b17..a37471fb95 100644 --- a/docs/de/d34/offset__byte__queue_8h_source.html +++ b/docs/de/d34/offset__byte__queue_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3e/buffer__reader_8h_source.html b/docs/de/d3e/buffer__reader_8h_source.html index a63970d4bf..3e225690d7 100644 --- a/docs/de/d3e/buffer__reader_8h_source.html +++ b/docs/de/d3e/buffer__reader_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html index 86a9832f83..ca01faac74 100644 --- a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html +++ b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/de/d4a/muxer__listener__internal_8h_source.html b/docs/de/d4a/muxer__listener__internal_8h_source.html index 835dcc92f0..12459c6289 100644 --- a/docs/de/d4a/muxer__listener__internal_8h_source.html +++ b/docs/de/d4a/muxer__listener__internal_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html index 8f361fe0f7..088516151e 100644 --- a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html +++ b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html index 84372f22be..4dbef4e9a2 100644 --- a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html +++ b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html @@ -271,7 +271,7 @@ std::string  diff --git a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html index d569cf6f51..721d3ac8b6 100644 --- a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html +++ b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html @@ -148,7 +148,7 @@ const scoped_refptr
      diff --git a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html index 628d9f15da..2eb007f180 100644 --- a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html +++ b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5b/adts__header_8cc_source.html b/docs/de/d5b/adts__header_8cc_source.html index 5c244ed6bb..305958e791 100644 --- a/docs/de/d5b/adts__header_8cc_source.html +++ b/docs/de/d5b/adts__header_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5c/mpd__flags_8h_source.html b/docs/de/d5c/mpd__flags_8h_source.html index 808d576fab..a4bbcf75f9 100644 --- a/docs/de/d5c/mpd__flags_8h_source.html +++ b/docs/de/d5c/mpd__flags_8h_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html index 5b7fad6f34..d21e31d9f6 100644 --- a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html +++ b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d6e/language__utils_8h_source.html b/docs/de/d6e/language__utils_8h_source.html index fc99caef54..2fa2685d67 100644 --- a/docs/de/d6e/language__utils_8h_source.html +++ b/docs/de/d6e/language__utils_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d70/http__key__fetcher_8cc_source.html b/docs/de/d70/http__key__fetcher_8cc_source.html index 7040c3173e..de11088357 100644 --- a/docs/de/d70/http__key__fetcher_8cc_source.html +++ b/docs/de/d70/http__key__fetcher_8cc_source.html @@ -236,7 +236,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html index 6f344e747f..1f8cb92339 100644 --- a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html +++ b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/webm__content__encodings__client_8cc_source.html b/docs/de/d77/webm__content__encodings__client_8cc_source.html index 77128fd0fd..5f5a6a7421 100644 --- a/docs/de/d77/webm__content__encodings__client_8cc_source.html +++ b/docs/de/d77/webm__content__encodings__client_8cc_source.html @@ -361,7 +361,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d7b/mp4__media__parser_8h_source.html b/docs/de/d7b/mp4__media__parser_8h_source.html index 0b1d92f515..d1f8899a86 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -203,21 +203,21 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      123 #endif // MEDIA_FORMATS_MP4_MP4_MEDIA_PARSER_H_
      -
      bool Parse(const uint8_t *buf, int size) override
      +
      bool Parse(const uint8_t *buf, int size) override
      - -
      bool LoadMoov(const std::string &file_path)
      + +
      bool LoadMoov(const std::string &file_path)
      base::Callback< bool(uint32_t track_id, const scoped_refptr< MediaSample > &media_sample)> NewSampleCB
      Definition: media_parser.h:43
      KeySource is responsible for encryption key acquisition.
      Definition: key_source.h:29
      base::Callback< void(const std::vector< scoped_refptr< StreamInfo > > &stream_info)> InitCB
      Definition: media_parser.h:34
      -
      void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
      +
      void Init(const InitCB &init_cb, const NewSampleCB &new_sample_cb, KeySource *decryption_key_source) override
      Class for reading MP4 boxes.
      Definition: box_reader.h:24
      diff --git a/docs/de/d83/box__definitions__comparison_8h_source.html b/docs/de/d83/box__definitions__comparison_8h_source.html index 8032512fb3..38c2065d0c 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -289,175 +289,176 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      200  lhs.data_reference_index == rhs.data_reference_index &&
      201  lhs.channelcount == rhs.channelcount &&
      202  lhs.samplesize == rhs.samplesize && lhs.samplerate == rhs.samplerate &&
      -
      203  lhs.sinf == rhs.sinf && lhs.esds == rhs.esds;
      -
      204 }
      -
      205 
      -
      206 inline bool operator==(const MediaHeader& lhs, const MediaHeader& rhs) {
      -
      207  return lhs.creation_time == rhs.creation_time &&
      -
      208  lhs.modification_time == rhs.modification_time &&
      -
      209  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      -
      210  strcmp(lhs.language, rhs.language) == 0;
      -
      211 }
      -
      212 
      -
      213 inline bool operator==(const VideoMediaHeader& lhs,
      -
      214  const VideoMediaHeader& rhs) {
      -
      215  return lhs.graphicsmode == rhs.graphicsmode &&
      -
      216  lhs.opcolor_red == rhs.opcolor_red &&
      -
      217  lhs.opcolor_green == rhs.opcolor_green &&
      -
      218  lhs.opcolor_blue == rhs.opcolor_blue;
      -
      219 }
      -
      220 
      -
      221 inline bool operator==(const SoundMediaHeader& lhs,
      -
      222  const SoundMediaHeader& rhs) {
      -
      223  return lhs.balance == rhs.balance;
      -
      224 }
      -
      225 
      -
      226 inline bool operator==(const DataEntryUrl& lhs, const DataEntryUrl& rhs) {
      -
      227  return lhs.flags == rhs.flags && lhs.location == rhs.location;
      -
      228 }
      -
      229 
      -
      230 inline bool operator==(const DataReference& lhs, const DataReference& rhs) {
      -
      231  return lhs.data_entry == rhs.data_entry;
      -
      232 }
      -
      233 
      -
      234 inline bool operator==(const DataInformation& lhs, const DataInformation& rhs) {
      -
      235  return lhs.dref == rhs.dref;
      -
      236 }
      -
      237 
      -
      238 inline bool operator==(const MediaInformation& lhs,
      -
      239  const MediaInformation& rhs) {
      -
      240  return lhs.dinf == rhs.dinf && lhs.sample_table == rhs.sample_table &&
      -
      241  lhs.vmhd == rhs.vmhd && lhs.smhd == rhs.smhd;
      -
      242 }
      -
      243 
      -
      244 inline bool operator==(const Media& lhs, const Media& rhs) {
      -
      245  return lhs.header == rhs.header && lhs.handler == rhs.handler &&
      -
      246  lhs.information == rhs.information;
      -
      247 }
      -
      248 
      -
      249 inline bool operator==(const Track& lhs, const Track& rhs) {
      -
      250  return lhs.header == rhs.header && lhs.media == rhs.media &&
      -
      251  lhs.edit == rhs.edit;
      -
      252 }
      -
      253 
      -
      254 inline bool operator==(const MovieExtendsHeader& lhs,
      -
      255  const MovieExtendsHeader& rhs) {
      -
      256  return lhs.fragment_duration == rhs.fragment_duration;
      -
      257 }
      -
      258 
      -
      259 inline bool operator==(const TrackExtends& lhs, const TrackExtends& rhs) {
      -
      260  return lhs.track_id == rhs.track_id &&
      -
      261  lhs.default_sample_description_index ==
      -
      262  rhs.default_sample_description_index &&
      -
      263  lhs.default_sample_duration == rhs.default_sample_duration &&
      -
      264  lhs.default_sample_size == rhs.default_sample_size &&
      -
      265  lhs.default_sample_flags == rhs.default_sample_flags;
      -
      266 }
      -
      267 
      -
      268 inline bool operator==(const MovieExtends& lhs, const MovieExtends& rhs) {
      -
      269  return lhs.header == rhs.header && lhs.tracks == rhs.tracks;
      -
      270 }
      -
      271 
      -
      272 inline bool operator==(const Movie& lhs, const Movie& rhs) {
      -
      273  return lhs.header == rhs.header && lhs.extends == rhs.extends &&
      -
      274  lhs.tracks == rhs.tracks && lhs.pssh == rhs.pssh;
      -
      275 }
      -
      276 
      -
      277 inline bool operator==(const TrackFragmentDecodeTime& lhs,
      -
      278  const TrackFragmentDecodeTime& rhs) {
      -
      279  return lhs.decode_time == rhs.decode_time;
      -
      280 }
      -
      281 
      -
      282 inline bool operator==(const MovieFragmentHeader& lhs,
      -
      283  const MovieFragmentHeader& rhs) {
      -
      284  return lhs.sequence_number == rhs.sequence_number;
      -
      285 }
      -
      286 
      -
      287 inline bool operator==(const TrackFragmentHeader& lhs,
      -
      288  const TrackFragmentHeader& rhs) {
      -
      289  return lhs.flags == rhs.flags && lhs.track_id == rhs.track_id &&
      -
      290  lhs.sample_description_index == rhs.sample_description_index &&
      -
      291  lhs.default_sample_duration == rhs.default_sample_duration &&
      -
      292  lhs.default_sample_size == rhs.default_sample_size &&
      -
      293  lhs.default_sample_flags == rhs.default_sample_flags;
      -
      294 }
      -
      295 
      -
      296 inline bool operator==(const TrackFragmentRun& lhs,
      -
      297  const TrackFragmentRun& rhs) {
      -
      298  return lhs.flags == rhs.flags && lhs.sample_count == rhs.sample_count &&
      -
      299  lhs.data_offset == rhs.data_offset &&
      -
      300  lhs.sample_flags == rhs.sample_flags &&
      -
      301  lhs.sample_sizes == rhs.sample_sizes &&
      -
      302  lhs.sample_durations == rhs.sample_durations &&
      -
      303  lhs.sample_composition_time_offsets ==
      -
      304  rhs.sample_composition_time_offsets;
      -
      305 }
      -
      306 
      -
      307 inline bool operator==(const SampleToGroupEntry& lhs,
      -
      308  const SampleToGroupEntry& rhs) {
      -
      309  return lhs.sample_count == rhs.sample_count &&
      -
      310  lhs.group_description_index == rhs.group_description_index;
      -
      311 }
      -
      312 
      -
      313 inline bool operator==(const SampleToGroup& lhs,
      -
      314  const SampleToGroup& rhs) {
      -
      315  return lhs.grouping_type == rhs.grouping_type &&
      -
      316  lhs.grouping_type_parameter == rhs.grouping_type_parameter &&
      -
      317  lhs.entries == rhs.entries;
      -
      318 }
      -
      319 
      -
      320 inline bool operator==(const CencSampleEncryptionInfoEntry& lhs,
      -
      321  const CencSampleEncryptionInfoEntry& rhs) {
      -
      322  return lhs.is_encrypted == rhs.is_encrypted &&
      -
      323  lhs.iv_size == rhs.iv_size &&
      -
      324  lhs.key_id == rhs.key_id;
      -
      325 }
      -
      326 
      -
      327 inline bool operator==(const SampleGroupDescription& lhs,
      -
      328  const SampleGroupDescription& rhs) {
      -
      329  return lhs.grouping_type == rhs.grouping_type &&
      -
      330  lhs.entries == rhs.entries;
      -
      331 }
      -
      332 
      -
      333 inline bool operator==(const TrackFragment& lhs, const TrackFragment& rhs) {
      -
      334  return lhs.header == rhs.header && lhs.runs == rhs.runs &&
      -
      335  lhs.decode_time == rhs.decode_time &&
      -
      336  lhs.auxiliary_offset == rhs.auxiliary_offset &&
      -
      337  lhs.auxiliary_size == rhs.auxiliary_size;
      -
      338 }
      -
      339 
      -
      340 inline bool operator==(const MovieFragment& lhs, const MovieFragment& rhs) {
      -
      341  return lhs.header == rhs.header && lhs.tracks == rhs.tracks &&
      -
      342  lhs.pssh == rhs.pssh;
      -
      343 }
      -
      344 
      -
      345 inline bool operator==(const SegmentReference& lhs,
      -
      346  const SegmentReference& rhs) {
      -
      347  return lhs.reference_type == rhs.reference_type &&
      -
      348  lhs.referenced_size == rhs.referenced_size &&
      -
      349  lhs.subsegment_duration == rhs.subsegment_duration &&
      -
      350  lhs.starts_with_sap == rhs.starts_with_sap &&
      -
      351  lhs.sap_type == rhs.sap_type &&
      -
      352  lhs.sap_delta_time == rhs.sap_delta_time;
      -
      353 }
      -
      354 
      -
      355 inline bool operator==(const SegmentIndex& lhs, const SegmentIndex& rhs) {
      -
      356  return lhs.reference_id == rhs.reference_id &&
      -
      357  lhs.timescale == rhs.timescale &&
      -
      358  lhs.earliest_presentation_time == rhs.earliest_presentation_time &&
      -
      359  lhs.first_offset == rhs.first_offset &&
      -
      360  lhs.references == rhs.references;
      -
      361 }
      -
      362 
      -
      363 } // namespace mp4
      -
      364 } // namespace media
      -
      365 } // namespace edash_packager
      -
      366 
      -
      367 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_COMPARISON_H_
      +
      203  lhs.sinf == rhs.sinf && lhs.esds == rhs.esds &&
      +
      204  lhs.extra_data == rhs.extra_data;
      +
      205 }
      +
      206 
      +
      207 inline bool operator==(const MediaHeader& lhs, const MediaHeader& rhs) {
      +
      208  return lhs.creation_time == rhs.creation_time &&
      +
      209  lhs.modification_time == rhs.modification_time &&
      +
      210  lhs.timescale == rhs.timescale && lhs.duration == rhs.duration &&
      +
      211  strcmp(lhs.language, rhs.language) == 0;
      +
      212 }
      +
      213 
      +
      214 inline bool operator==(const VideoMediaHeader& lhs,
      +
      215  const VideoMediaHeader& rhs) {
      +
      216  return lhs.graphicsmode == rhs.graphicsmode &&
      +
      217  lhs.opcolor_red == rhs.opcolor_red &&
      +
      218  lhs.opcolor_green == rhs.opcolor_green &&
      +
      219  lhs.opcolor_blue == rhs.opcolor_blue;
      +
      220 }
      +
      221 
      +
      222 inline bool operator==(const SoundMediaHeader& lhs,
      +
      223  const SoundMediaHeader& rhs) {
      +
      224  return lhs.balance == rhs.balance;
      +
      225 }
      +
      226 
      +
      227 inline bool operator==(const DataEntryUrl& lhs, const DataEntryUrl& rhs) {
      +
      228  return lhs.flags == rhs.flags && lhs.location == rhs.location;
      +
      229 }
      +
      230 
      +
      231 inline bool operator==(const DataReference& lhs, const DataReference& rhs) {
      +
      232  return lhs.data_entry == rhs.data_entry;
      +
      233 }
      +
      234 
      +
      235 inline bool operator==(const DataInformation& lhs, const DataInformation& rhs) {
      +
      236  return lhs.dref == rhs.dref;
      +
      237 }
      +
      238 
      +
      239 inline bool operator==(const MediaInformation& lhs,
      +
      240  const MediaInformation& rhs) {
      +
      241  return lhs.dinf == rhs.dinf && lhs.sample_table == rhs.sample_table &&
      +
      242  lhs.vmhd == rhs.vmhd && lhs.smhd == rhs.smhd;
      +
      243 }
      +
      244 
      +
      245 inline bool operator==(const Media& lhs, const Media& rhs) {
      +
      246  return lhs.header == rhs.header && lhs.handler == rhs.handler &&
      +
      247  lhs.information == rhs.information;
      +
      248 }
      +
      249 
      +
      250 inline bool operator==(const Track& lhs, const Track& rhs) {
      +
      251  return lhs.header == rhs.header && lhs.media == rhs.media &&
      +
      252  lhs.edit == rhs.edit;
      +
      253 }
      +
      254 
      +
      255 inline bool operator==(const MovieExtendsHeader& lhs,
      +
      256  const MovieExtendsHeader& rhs) {
      +
      257  return lhs.fragment_duration == rhs.fragment_duration;
      +
      258 }
      +
      259 
      +
      260 inline bool operator==(const TrackExtends& lhs, const TrackExtends& rhs) {
      +
      261  return lhs.track_id == rhs.track_id &&
      +
      262  lhs.default_sample_description_index ==
      +
      263  rhs.default_sample_description_index &&
      +
      264  lhs.default_sample_duration == rhs.default_sample_duration &&
      +
      265  lhs.default_sample_size == rhs.default_sample_size &&
      +
      266  lhs.default_sample_flags == rhs.default_sample_flags;
      +
      267 }
      +
      268 
      +
      269 inline bool operator==(const MovieExtends& lhs, const MovieExtends& rhs) {
      +
      270  return lhs.header == rhs.header && lhs.tracks == rhs.tracks;
      +
      271 }
      +
      272 
      +
      273 inline bool operator==(const Movie& lhs, const Movie& rhs) {
      +
      274  return lhs.header == rhs.header && lhs.extends == rhs.extends &&
      +
      275  lhs.tracks == rhs.tracks && lhs.pssh == rhs.pssh;
      +
      276 }
      +
      277 
      +
      278 inline bool operator==(const TrackFragmentDecodeTime& lhs,
      +
      279  const TrackFragmentDecodeTime& rhs) {
      +
      280  return lhs.decode_time == rhs.decode_time;
      +
      281 }
      +
      282 
      +
      283 inline bool operator==(const MovieFragmentHeader& lhs,
      +
      284  const MovieFragmentHeader& rhs) {
      +
      285  return lhs.sequence_number == rhs.sequence_number;
      +
      286 }
      +
      287 
      +
      288 inline bool operator==(const TrackFragmentHeader& lhs,
      +
      289  const TrackFragmentHeader& rhs) {
      +
      290  return lhs.flags == rhs.flags && lhs.track_id == rhs.track_id &&
      +
      291  lhs.sample_description_index == rhs.sample_description_index &&
      +
      292  lhs.default_sample_duration == rhs.default_sample_duration &&
      +
      293  lhs.default_sample_size == rhs.default_sample_size &&
      +
      294  lhs.default_sample_flags == rhs.default_sample_flags;
      +
      295 }
      +
      296 
      +
      297 inline bool operator==(const TrackFragmentRun& lhs,
      +
      298  const TrackFragmentRun& rhs) {
      +
      299  return lhs.flags == rhs.flags && lhs.sample_count == rhs.sample_count &&
      +
      300  lhs.data_offset == rhs.data_offset &&
      +
      301  lhs.sample_flags == rhs.sample_flags &&
      +
      302  lhs.sample_sizes == rhs.sample_sizes &&
      +
      303  lhs.sample_durations == rhs.sample_durations &&
      +
      304  lhs.sample_composition_time_offsets ==
      +
      305  rhs.sample_composition_time_offsets;
      +
      306 }
      +
      307 
      +
      308 inline bool operator==(const SampleToGroupEntry& lhs,
      +
      309  const SampleToGroupEntry& rhs) {
      +
      310  return lhs.sample_count == rhs.sample_count &&
      +
      311  lhs.group_description_index == rhs.group_description_index;
      +
      312 }
      +
      313 
      +
      314 inline bool operator==(const SampleToGroup& lhs,
      +
      315  const SampleToGroup& rhs) {
      +
      316  return lhs.grouping_type == rhs.grouping_type &&
      +
      317  lhs.grouping_type_parameter == rhs.grouping_type_parameter &&
      +
      318  lhs.entries == rhs.entries;
      +
      319 }
      +
      320 
      +
      321 inline bool operator==(const CencSampleEncryptionInfoEntry& lhs,
      +
      322  const CencSampleEncryptionInfoEntry& rhs) {
      +
      323  return lhs.is_encrypted == rhs.is_encrypted &&
      +
      324  lhs.iv_size == rhs.iv_size &&
      +
      325  lhs.key_id == rhs.key_id;
      +
      326 }
      +
      327 
      +
      328 inline bool operator==(const SampleGroupDescription& lhs,
      +
      329  const SampleGroupDescription& rhs) {
      +
      330  return lhs.grouping_type == rhs.grouping_type &&
      +
      331  lhs.entries == rhs.entries;
      +
      332 }
      +
      333 
      +
      334 inline bool operator==(const TrackFragment& lhs, const TrackFragment& rhs) {
      +
      335  return lhs.header == rhs.header && lhs.runs == rhs.runs &&
      +
      336  lhs.decode_time == rhs.decode_time &&
      +
      337  lhs.auxiliary_offset == rhs.auxiliary_offset &&
      +
      338  lhs.auxiliary_size == rhs.auxiliary_size;
      +
      339 }
      +
      340 
      +
      341 inline bool operator==(const MovieFragment& lhs, const MovieFragment& rhs) {
      +
      342  return lhs.header == rhs.header && lhs.tracks == rhs.tracks &&
      +
      343  lhs.pssh == rhs.pssh;
      +
      344 }
      +
      345 
      +
      346 inline bool operator==(const SegmentReference& lhs,
      +
      347  const SegmentReference& rhs) {
      +
      348  return lhs.reference_type == rhs.reference_type &&
      +
      349  lhs.referenced_size == rhs.referenced_size &&
      +
      350  lhs.subsegment_duration == rhs.subsegment_duration &&
      +
      351  lhs.starts_with_sap == rhs.starts_with_sap &&
      +
      352  lhs.sap_type == rhs.sap_type &&
      +
      353  lhs.sap_delta_time == rhs.sap_delta_time;
      +
      354 }
      +
      355 
      +
      356 inline bool operator==(const SegmentIndex& lhs, const SegmentIndex& rhs) {
      +
      357  return lhs.reference_id == rhs.reference_id &&
      +
      358  lhs.timescale == rhs.timescale &&
      +
      359  lhs.earliest_presentation_time == rhs.earliest_presentation_time &&
      +
      360  lhs.first_offset == rhs.first_offset &&
      +
      361  lhs.references == rhs.references;
      +
      362 }
      +
      363 
      +
      364 } // namespace mp4
      +
      365 } // namespace media
      +
      366 } // namespace edash_packager
      +
      367 
      +
      368 #endif // MEDIA_FORMATS_MP4_BOX_DEFINITIONS_COMPARISON_H_
      diff --git a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html index f75930587a..4c4656eea2 100644 --- a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html +++ b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html index ece012ca65..72dc70c703 100644 --- a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html +++ b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html @@ -142,7 +142,7 @@ Additional Inherited Members diff --git a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html index 6b63538d0f..e52ba06251 100644 --- a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html +++ b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html @@ -276,7 +276,7 @@ int slice_beta_offset_div2 diff --git a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html index 5c833901e8..15b7306ab7 100644 --- a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html +++ b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html index afafb22014..2efe75dcf6 100644 --- a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html +++ b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html @@ -199,7 +199,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html index bdabd83141..2c28dec262 100644 --- a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html +++ b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html index 8d348f9769..62c51134f8 100644 --- a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html +++ b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html @@ -109,7 +109,7 @@ virtual void addWebVTTCue< diff --git a/docs/de/da0/classedash__packager_1_1media_1_1AesCbcCtsDecryptor-members.html b/docs/de/da0/classedash__packager_1_1media_1_1AesCbcCtsDecryptor-members.html index 8e0690d0c1..bc0b67938d 100644 --- a/docs/de/da0/classedash__packager_1_1media_1_1AesCbcCtsDecryptor-members.html +++ b/docs/de/da0/classedash__packager_1_1media_1_1AesCbcCtsDecryptor-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html index 008ddc215b..f68a4e6f0c 100644 --- a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html +++ b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html @@ -150,7 +150,7 @@ Protected Member Functions diff --git a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html index 26cf15a1bd..ce89e26df0 100644 --- a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html +++ b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html index dd7d7fea27..986a0289e7 100644 --- a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html +++ b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html index e43d09a5ff..ee072f9e71 100644 --- a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html +++ b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dad/validate__flag_8cc_source.html b/docs/de/dad/validate__flag_8cc_source.html index 82d13c9db4..a7bc658967 100644 --- a/docs/de/dad/validate__flag_8cc_source.html +++ b/docs/de/dad/validate__flag_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html index f7d39dfe20..3c71d45c88 100644 --- a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html +++ b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html @@ -131,7 +131,7 @@ void set_decoder_specific_

      Detailed Description

      This class parses object type and decoder specific information from an elementary stream descriptor, which is usually contained in an esds box. Please refer to ISO 14496 Part 1 7.2.6.5 for more details.

      -

      Definition at line 33 of file es_descriptor.h.

      +

      Definition at line 32 of file es_descriptor.h.

      Member Function Documentation

      @@ -155,7 +155,7 @@ void set_decoder_specific_
      Returns
      true if the stream is AAC.
      -

      Definition at line 57 of file es_descriptor.h.

      +

      Definition at line 56 of file es_descriptor.h.

      @@ -166,7 +166,7 @@ void set_decoder_specific_ diff --git a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html index 1f30aa108d..e060bb10bb 100644 --- a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html +++ b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index 8017120653..e90c7d4e6d 100644 --- a/docs/de/dc1/demuxer_8h_source.html +++ b/docs/de/dc1/demuxer_8h_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html index 22158a1eaa..c2f4f13876 100644 --- a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html +++ b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/de/dcc/mock__mpd__notifier_8cc_source.html b/docs/de/dcc/mock__mpd__notifier_8cc_source.html index fed53a5bbd..b91d7885fb 100644 --- a/docs/de/dcc/mock__mpd__notifier_8cc_source.html +++ b/docs/de/dcc/mock__mpd__notifier_8cc_source.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcf/file__closer_8h_source.html b/docs/de/dcf/file__closer_8h_source.html index 620ff0b4cc..430146c773 100644 --- a/docs/de/dcf/file__closer_8h_source.html +++ b/docs/de/dcf/file__closer_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html index 68045489ff..57866be104 100644 --- a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html +++ b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/content__protection__element_8h_source.html b/docs/de/dd6/content__protection__element_8h_source.html index f482d8584c..c4e1a5aef7 100644 --- a/docs/de/dd6/content__protection__element_8h_source.html +++ b/docs/de/dd6/content__protection__element_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html index 7946eb1c7e..c1ac8f8eea 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html index e7e2834491..82ae0faf9e 100644 --- a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html +++ b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html @@ -141,7 +141,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 377 of file box_definitions.h.

      +

      Definition at line 378 of file box_definitions.h.

      Member Function Documentation

      @@ -167,7 +167,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1335 of file box_definitions.cc.

      +

      Definition at line 1348 of file box_definitions.cc.

      @@ -178,7 +178,7 @@ Additional Inherited Members diff --git a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html index 39c8a8b268..c578d23c43 100644 --- a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html +++ b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfa/muxer__listener_8h_source.html b/docs/de/dfa/muxer__listener_8h_source.html index 65ea47d3b3..25212407ab 100644 --- a/docs/de/dfa/muxer__listener_8h_source.html +++ b/docs/de/dfa/muxer__listener_8h_source.html @@ -204,7 +204,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html index 7e1ca0a659..4a723562cc 100644 --- a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html +++ b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html index 923e5c2c9b..9ddf3f19dc 100644 --- a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html +++ b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfd/stream__info_8cc_source.html b/docs/de/dfd/stream__info_8cc_source.html index c9774dd977..9b92e7e089 100644 --- a/docs/de/dfd/stream__info_8cc_source.html +++ b/docs/de/dfd/stream__info_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html index d24267a615..658e3dfd30 100644 --- a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html +++ b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1a/offset__byte__queue_8cc_source.html b/docs/df/d1a/offset__byte__queue_8cc_source.html index 358fc8a3c8..d6507a285f 100644 --- a/docs/df/d1a/offset__byte__queue_8cc_source.html +++ b/docs/df/d1a/offset__byte__queue_8cc_source.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1c/composition__offset__iterator_8h_source.html b/docs/df/d1c/composition__offset__iterator_8h_source.html index 8ce5dc6c22..60f4611014 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -140,14 +140,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      CompositionOffsetIterator(const CompositionTimeToSample &composition_time_to_sample)
      Create CompositionOffsetIterator from composition time to sample box.
      - + diff --git a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html index 539ebfb77a..89a557c9e6 100644 --- a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html +++ b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html index aca44c18e3..4588fda534 100644 --- a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html +++ b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html @@ -173,7 +173,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 467 of file box_definitions.h.

      +

      Definition at line 468 of file box_definitions.h.

      Member Function Documentation

      @@ -199,7 +199,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1668 of file box_definitions.cc.

      +

      Definition at line 1681 of file box_definitions.cc.

      @@ -210,7 +210,7 @@ Additional Inherited Members diff --git a/docs/df/d22/validate__flag_8h_source.html b/docs/df/d22/validate__flag_8h_source.html index 8f57d362dc..eeadd5a668 100644 --- a/docs/df/d22/validate__flag_8h_source.html +++ b/docs/df/d22/validate__flag_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html index 8157008ca4..ff65f7d961 100644 --- a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html +++ b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html @@ -208,7 +208,7 @@ Static Public Attributes diff --git a/docs/df/d31/muxer__util_8cc_source.html b/docs/df/d31/muxer__util_8cc_source.html index 55987c2bbf..8369d07442 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d32/audio__stream__info_8h_source.html b/docs/df/d32/audio__stream__info_8h_source.html index edb3255224..00cf94e3ce 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -118,72 +118,78 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
      29  kCodecPCM_S24BE,
      30  kCodecOpus,
      31  kCodecEAC3,
      -
      32 
      -
      33  kNumAudioCodec
      -
      34 };
      -
      35 
      -
      37 class AudioStreamInfo : public StreamInfo {
      -
      38  public:
      -
      40  AudioStreamInfo(int track_id,
      -
      41  uint32_t time_scale,
      -
      42  uint64_t duration,
      -
      43  AudioCodec codec,
      -
      44  const std::string& codec_string,
      -
      45  const std::string& language,
      -
      46  uint8_t sample_bits,
      -
      47  uint8_t num_channels,
      -
      48  uint32_t sampling_frequency,
      -
      49  const uint8_t* extra_data,
      -
      50  size_t extra_data_size,
      -
      51  bool is_encrypted);
      -
      52 
      -
      55  bool IsValidConfig() const override;
      -
      56  std::string ToString() const override;
      +
      32  kCodecDTSC,
      +
      33  kCodecDTSH,
      +
      34  kCodecDTSL,
      +
      35  kCodecDTSE,
      +
      36  kCodecDTSP,
      +
      37  kCodecDTSM,
      +
      38 
      +
      39  kNumAudioCodec
      +
      40 };
      +
      41 
      +
      43 class AudioStreamInfo : public StreamInfo {
      +
      44  public:
      +
      46  AudioStreamInfo(int track_id,
      +
      47  uint32_t time_scale,
      +
      48  uint64_t duration,
      +
      49  AudioCodec codec,
      +
      50  const std::string& codec_string,
      +
      51  const std::string& language,
      +
      52  uint8_t sample_bits,
      +
      53  uint8_t num_channels,
      +
      54  uint32_t sampling_frequency,
      +
      55  const uint8_t* extra_data,
      +
      56  size_t extra_data_size,
      +
      57  bool is_encrypted);
      58 
      -
      59  AudioCodec codec() const { return codec_; }
      -
      60  uint8_t sample_bits() const { return sample_bits_; }
      -
      61  uint8_t sample_bytes() const { return sample_bits_ / 8; }
      -
      62  uint8_t num_channels() const { return num_channels_; }
      -
      63  uint32_t sampling_frequency() const { return sampling_frequency_; }
      -
      64  uint32_t bytes_per_frame() const {
      -
      65  return static_cast<uint32_t>(num_channels_) * sample_bits_ / 8;
      -
      66  }
      -
      67 
      -
      68  void set_sampling_frequency(const uint32_t sampling_frequency) {
      -
      69  sampling_frequency_ = sampling_frequency;
      -
      70  }
      -
      71 
      -
      72 
      -
      75  static std::string GetCodecString(AudioCodec codec,
      -
      76  uint8_t audio_object_type);
      +
      61  bool IsValidConfig() const override;
      +
      62  std::string ToString() const override;
      +
      64 
      +
      65  AudioCodec codec() const { return codec_; }
      +
      66  uint8_t sample_bits() const { return sample_bits_; }
      +
      67  uint8_t sample_bytes() const { return sample_bits_ / 8; }
      +
      68  uint8_t num_channels() const { return num_channels_; }
      +
      69  uint32_t sampling_frequency() const { return sampling_frequency_; }
      +
      70  uint32_t bytes_per_frame() const {
      +
      71  return static_cast<uint32_t>(num_channels_) * sample_bits_ / 8;
      +
      72  }
      +
      73 
      +
      74  void set_sampling_frequency(const uint32_t sampling_frequency) {
      +
      75  sampling_frequency_ = sampling_frequency;
      +
      76  }
      77 
      -
      78  private:
      -
      79  ~AudioStreamInfo() override;
      -
      80 
      -
      81  AudioCodec codec_;
      -
      82  uint8_t sample_bits_;
      -
      83  uint8_t num_channels_;
      -
      84  uint32_t sampling_frequency_;
      -
      85 
      -
      86  // Not using DISALLOW_COPY_AND_ASSIGN here intentionally to allow the compiler
      -
      87  // generated copy constructor and assignment operator. Since the extra data is
      -
      88  // typically small, the performance impact is minimal.
      -
      89 };
      -
      90 
      -
      91 } // namespace media
      -
      92 } // namespace edash_packager
      -
      93 
      -
      94 #endif // MEDIA_BASE_AUDIO_STREAM_INFO_H_
      -
      Holds audio stream information.
      -
      std::string ToString() const override
      +
      78 
      +
      81  static std::string GetCodecString(AudioCodec codec,
      +
      82  uint8_t audio_object_type);
      +
      83 
      +
      84  private:
      +
      85  ~AudioStreamInfo() override;
      +
      86 
      +
      87  AudioCodec codec_;
      +
      88  uint8_t sample_bits_;
      +
      89  uint8_t num_channels_;
      +
      90  uint32_t sampling_frequency_;
      +
      91 
      +
      92  // Not using DISALLOW_COPY_AND_ASSIGN here intentionally to allow the compiler
      +
      93  // generated copy constructor and assignment operator. Since the extra data is
      +
      94  // typically small, the performance impact is minimal.
      +
      95 };
      +
      96 
      +
      97 } // namespace media
      +
      98 } // namespace edash_packager
      +
      99 
      +
      100 #endif // MEDIA_BASE_AUDIO_STREAM_INFO_H_
      +
      Holds audio stream information.
      +
      std::string ToString() const override
      Abstract class holds stream information.
      Definition: stream_info.h:26
      -
      AudioStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, AudioCodec codec, const std::string &codec_string, const std::string &language, uint8_t sample_bits, uint8_t num_channels, uint32_t sampling_frequency, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
      Construct an initialized audio stream info object.
      - -
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      +
      AudioStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, AudioCodec codec, const std::string &codec_string, const std::string &language, uint8_t sample_bits, uint8_t num_channels, uint32_t sampling_frequency, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
      Construct an initialized audio stream info object.
      + +
      static std::string GetCodecString(AudioCodec codec, uint8_t audio_object_type)
      diff --git a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html index 7751f2e260..51faad639c 100644 --- a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html +++ b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html index 8f2c7d9497..b78de54c1c 100644 --- a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html +++ b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html @@ -116,7 +116,7 @@ int size () const diff --git a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html index 1b0c931f7d..86e5676759 100644 --- a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html +++ b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html index 5506a527d2..87bc7c05d9 100644 --- a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html +++ b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html index a9f95fef05..4387b4e6ae 100644 --- a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html +++ b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html index 4c50cd2e69..7f505e62cc 100644 --- a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html +++ b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html @@ -147,6 +147,9 @@ uint32_t samplerate ElementaryStreamDescriptor esds   + +std::vector< uint8_t > extra_data +  @@ -182,7 +185,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1123 of file box_definitions.cc.

      +

      Definition at line 1135 of file box_definitions.cc.

      @@ -193,7 +196,7 @@ Additional Inherited Members diff --git a/docs/df/d67/opus__packet__builder_8h_source.html b/docs/df/d67/opus__packet__builder_8h_source.html index 7c52341102..ffb2e131a9 100644 --- a/docs/df/d67/opus__packet__builder_8h_source.html +++ b/docs/df/d67/opus__packet__builder_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html index 907fb1e43f..439c1b8457 100644 --- a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html +++ b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html @@ -193,7 +193,7 @@ Additional Inherited Members diff --git a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html index 5d9be0105c..db63228496 100644 --- a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html +++ b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Additional Inherited Members

      Detailed Description

      -

      Definition at line 265 of file box_definitions.h.

      +

      Definition at line 266 of file box_definitions.h.

      Member Function Documentation

      @@ -180,7 +180,7 @@ Additional Inherited Members
      diff --git a/docs/df/d7d/webm__info__parser_8cc_source.html b/docs/df/d7d/webm__info__parser_8cc_source.html index d106fe9503..3fb25f9eac 100644 --- a/docs/df/d7d/webm__info__parser_8cc_source.html +++ b/docs/df/d7d/webm__info__parser_8cc_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html index 9968054f97..3443846307 100644 --- a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html +++ b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html @@ -143,7 +143,7 @@ Additional Inherited Members

      Detailed Description

      -

      Definition at line 431 of file box_definitions.h.

      +

      Definition at line 432 of file box_definitions.h.

      Member Function Documentation

      @@ -169,7 +169,7 @@ Additional Inherited Members

      Implements edash_packager::media::mp4::Box.

      -

      Definition at line 1495 of file box_definitions.cc.

      +

      Definition at line 1508 of file box_definitions.cc.

      @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/df/d8a/vp9__parser_8h_source.html b/docs/df/d8a/vp9__parser_8h_source.html index 121f1e0e71..c451277b45 100644 --- a/docs/df/d8a/vp9__parser_8h_source.html +++ b/docs/df/d8a/vp9__parser_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d96/xml__node_8cc_source.html b/docs/df/d96/xml__node_8cc_source.html index 4a26a05188..1304d2ed82 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -468,7 +468,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html index e3e34ebf82..ad646d223a 100644 --- a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html +++ b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dad/decrypt__config_8h_source.html b/docs/df/dad/decrypt__config_8h_source.html index 6ff00b6023..538f2fd021 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html index 4c9128f106..116a0d94b4 100644 --- a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html +++ b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html @@ -251,7 +251,7 @@ template<typename T > diff --git a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html index 3e2bc60682..fadaf05ef3 100644 --- a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html +++ b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html index c126c451f3..7e3f0f2f71 100644 --- a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html +++ b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html index 5b8af282ec..d4f4f29557 100644 --- a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html +++ b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/mpd__utils_8h_source.html b/docs/df/dd2/mpd__utils_8h_source.html index 6cc9f12284..645ae1a4ea 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html index 6d6aa17d1d..b384be27f2 100644 --- a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html +++ b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html @@ -301,7 +301,7 @@ void AppendInt (int64_ diff --git a/docs/df/dde/ts__section__psi_8cc_source.html b/docs/df/dde/ts__section__psi_8cc_source.html index 3841775b66..004caf1c0d 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html index abd5a5dfc6..791e7a09c8 100644 --- a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html +++ b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/text__track__config_8cc_source.html b/docs/df/de3/text__track__config_8cc_source.html index 33a89f7d99..bf88324a04 100644 --- a/docs/df/de3/text__track__config_8cc_source.html +++ b/docs/df/de3/text__track__config_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html index b3cdec2c94..bdecd5ef42 100644 --- a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html +++ b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html @@ -177,7 +177,7 @@ virtual void OnNewSegment< diff --git a/docs/df/de9/segment__info_8h_source.html b/docs/df/de9/segment__info_8h_source.html index 328951a1a3..752d238f9e 100644 --- a/docs/df/de9/segment__info_8h_source.html +++ b/docs/df/de9/segment__info_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html index da939008f1..9037c7483a 100644 --- a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html +++ b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html index a472c2ac24..660796c036 100644 --- a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html +++ b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dir_2618cd273dea54f184e42d7a562af818.html b/docs/dir_2618cd273dea54f184e42d7a562af818.html index 5c967417e8..7f60807f62 100644 --- a/docs/dir_2618cd273dea54f184e42d7a562af818.html +++ b/docs/dir_2618cd273dea54f184e42d7a562af818.html @@ -140,7 +140,7 @@ Files diff --git a/docs/dir_279fd47bebb21302c25cfb685e84c359.html b/docs/dir_279fd47bebb21302c25cfb685e84c359.html index 7f8c4fb374..8c6f442d2d 100644 --- a/docs/dir_279fd47bebb21302c25cfb685e84c359.html +++ b/docs/dir_279fd47bebb21302c25cfb685e84c359.html @@ -113,7 +113,7 @@ Files diff --git a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html index fdaee3be49..003dc16391 100644 --- a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html +++ b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html @@ -99,7 +99,7 @@ Directories diff --git a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html index 5e7cfcfd9a..da477b6bbb 100644 --- a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html +++ b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html @@ -173,7 +173,7 @@ Files diff --git a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html index 88f80404ad..f00bc470de 100644 --- a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html +++ b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html index 28d85dcb30..ce62df0b5d 100644 --- a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html +++ b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html @@ -149,7 +149,7 @@ Files diff --git a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html index 2bb609c0e3..7666f7c6d9 100644 --- a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html +++ b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html @@ -119,7 +119,7 @@ Files diff --git a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html index dc042ff698..5406aa149d 100644 --- a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html +++ b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html @@ -99,7 +99,7 @@ Directories diff --git a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html index 5bd0573e92..4dd5b28438 100644 --- a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html +++ b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html @@ -95,7 +95,7 @@ Files diff --git a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html index 4a529825d3..51e96bc437 100644 --- a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html +++ b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html index 03c5b1bcda..ff6b9be1c1 100644 --- a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html +++ b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html @@ -93,7 +93,7 @@ Directories diff --git a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html index 60dd3a116f..08c3fdae10 100644 --- a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html +++ b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html @@ -109,7 +109,7 @@ Files diff --git a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html index 9972004737..750a2de862 100644 --- a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html +++ b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html @@ -213,7 +213,7 @@ Files diff --git a/docs/dir_d422163b96683743ed3963d4aac17747.html b/docs/dir_d422163b96683743ed3963d4aac17747.html index 4ba75b77c1..efed236d63 100644 --- a/docs/dir_d422163b96683743ed3963d4aac17747.html +++ b/docs/dir_d422163b96683743ed3963d4aac17747.html @@ -131,7 +131,7 @@ Files diff --git a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html index 4406b99298..e550d9bfd3 100644 --- a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html +++ b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html index 2c203d4b87..948dc59d58 100644 --- a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html +++ b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html @@ -131,7 +131,7 @@ Files diff --git a/docs/files.html b/docs/files.html index e52f58a9a8..84483da9b6 100644 --- a/docs/files.html +++ b/docs/files.html @@ -351,7 +351,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index aa6ec6ba4d..0ccb233071 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -213,7 +213,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_b.html b/docs/functions_b.html index 2679c6f196..29d415661d 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -155,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_c.html b/docs/functions_c.html index ef406cbebd..6761ca5eb2 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -260,7 +260,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index 09838378f5..e2bf862779 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_e.html b/docs/functions_e.html index a3cbd43316..1730fc652a 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_eval.html b/docs/functions_eval.html index bef279f059..0f1d1caaf8 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_f.html b/docs/functions_f.html index c196105a56..6b4ba1471d 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -174,7 +174,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func.html b/docs/functions_func.html index 1cf289ba02..1951580719 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index b2c82a1662..8b10a2a8a5 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index c3e56f514f..c8f91b288c 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -260,7 +260,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index 54b5acd0c8..027537c587 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index 032b8fd4e6..38e966cd38 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index e1cdf712c1..79d16a14dd 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index dafe245bf6..5e2aa0513a 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index 4de817f60e..3af9c928f0 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index c963ca6fc6..d73474d275 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -189,7 +189,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html index 7021f2c85c..c5e4535faf 100644 --- a/docs/functions_func_k.html +++ b/docs/functions_func_k.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index bb35643766..75017768b1 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index 9c72e19f31..15ec0537f0 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index 4f3bd85599..1c994e2bb4 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index 0424aa9a6f..2ca2f66f33 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index bb659bdbf8..cdfe16a428 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -194,7 +194,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index 4cc49f8a3d..445d05f81a 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -245,7 +245,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index d4466061af..25a5764f9a 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index d988849096..1fa78fa4b6 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index 34304aa199..08e2e1b1ae 100644 --- a/docs/functions_func_u.html +++ b/docs/functions_func_u.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_v.html b/docs/functions_func_v.html index 92f89e3537..0ca0a90c09 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index 27bd4089d8..5554b5692a 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -155,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index 8947d7a313..0505089a22 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index e7fe2a58b2..4708ed4e92 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_g.html b/docs/functions_g.html index e72a921c77..7c12783e3c 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -220,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index 076ea5e094..9a8fa1efda 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_i.html b/docs/functions_i.html index 2a33bb97a0..44918c6442 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -192,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_k.html b/docs/functions_k.html index 074be911d0..d6b729c6e0 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_l.html b/docs/functions_l.html index f8995b6fc8..4e70debd4c 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_m.html b/docs/functions_m.html index 37ad2631dd..b4c51fa305 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_n.html b/docs/functions_n.html index a12a681551..e1ced62e28 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_o.html b/docs/functions_o.html index 80cb50d0cb..75f1dcfc5b 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_p.html b/docs/functions_p.html index 1f30462a06..5d8353c765 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -194,7 +194,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index 112ea8a653..8089ff01d4 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -245,7 +245,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_s.html b/docs/functions_s.html index 103ed7d403..0defe0534a 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_t.html b/docs/functions_t.html index ae493e9544..8d360a4ae6 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_type.html b/docs/functions_type.html index 25a58cf5e7..8bc683da0a 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_u.html b/docs/functions_u.html index 46bf153bf1..1bdf1376af 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_v.html b/docs/functions_v.html index 65e5672d3f..6acdf51b09 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_vars.html b/docs/functions_vars.html index f70cd564a3..8fe32b3750 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_w.html b/docs/functions_w.html index 3e8554a458..c0985cc857 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -155,7 +155,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_x.html b/docs/functions_x.html index 2fda24a915..17480fdd86 100644 --- a/docs/functions_x.html +++ b/docs/functions_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_~.html b/docs/functions_~.html index 39f312b72d..f132bef469 100644 --- a/docs/functions_~.html +++ b/docs/functions_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 472245dd3b..5c93e0e3dc 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -297,7 +297,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/index.html b/docs/index.html index 4742ada8af..fb53a74e4c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -81,7 +81,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index a8d5f85299..e09de1e9fb 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index e772f39905..6c88763197 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespaces.html b/docs/namespaces.html index a595de95b3..1f309f3b1f 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');