From 0fd5cebb26dba05c7f43b594a4f5b8e3d398ac99 Mon Sep 17 00:00:00 2001 From: Widevine Buildbot Date: Thu, 5 Nov 2015 01:47:40 +0000 Subject: [PATCH] Generate SDK documents for commit 4c10755d4016db5213ab1b246c528ed0f0558965 --- docs/annotated.html | 35 +- docs/classes.html | 123 +- docs/d0/d06/mpd__flags_8cc_source.html | 2 +- ...4_1_1CodecConfigurationRecord-members.html | 2 +- docs/d0/d0e/muxer__options_8h_source.html | 2 +- ..._1_1media_1_1StreamDescriptor-members.html | 2 +- ..._1media_1_1mp4_1_1ChunkOffset-members.html | 2 +- ...media_1_1H264DecRefPicMarking-members.html | 2 +- ...1mp4_1_1MultiSegmentSegmenter-members.html | 2 +- .../d0/d30/mock__mpd__notifier_8h_source.html | 2 +- docs/d0/d32/mp2t__common_8h_source.html | 2 +- docs/d0/d35/es__descriptor_8cc_source.html | 2 +- ..._1_1RepresentationBaseXmlNode-members.html | 2 +- docs/d0/d3a/webm__constants_8h_source.html | 2 +- ...idevine__encryption__flags_8cc_source.html | 2 +- ..._packager_1_1media_1_1H264SPS-members.html | 2 +- docs/d0/d46/fourccs_8h_source.html | 169 +- ...nfo__dump__muxer__listener_8cc_source.html | 2 +- ...1_1media_1_1mp4_1_1SampleSize-members.html | 2 +- .../d4e/libcrypto__threading_8cc_source.html | 2 +- ...1_1mp4_1_1PixelAspectRatioBox-members.html | 2 +- ...ckager_1_1media_1_1H264Parser-members.html | 2 +- docs/d0/d7d/decryptor__source_8h_source.html | 2 +- ...h__packager_1_1media_1_1EncryptionKey.html | 2 +- ...dia_1_1mp4_1_1TrackFragmentDecodeTime.html | 4 +- ..._1media_1_1mp4_1_1SampleTable-members.html | 2 +- ..._packager_1_1ContentProtectionElement.html | 2 +- ...r_1_1media_1_1WebMVideoClient-members.html | 2 +- .../d0/da6/stream__descriptor_8cc_source.html | 2 +- ...edash__packager_1_1MockRepresentation.html | 2 +- ...ager_1_1media_1_1BufferWriter-members.html | 2 +- ...packager_1_1SimpleMpdNotifier-members.html | 2 +- ...er_1_1media_1_1SubsampleEntry-members.html | 2 +- .../dd6/webm__crypto__helpers_8cc_source.html | 2 +- ...dash__packager_1_1media_1_1FileCloser.html | 2 +- ...ia_1_1mp4_1_1VideoSampleEntry-members.html | 2 +- ...1_1mp4_1_1MovieFragmentHeader-members.html | 2 +- ...h__packager_1_1media_1_1TracksBuilder.html | 2 +- ...rotectionSystemSpecificHeader-members.html | 2 +- docs/d0/df3/packager__util_8cc_source.html | 2 +- ...1media_1_1mp4_1_1MovieExtends-members.html | 2 +- ...ia_1_1wvm_1_1DemuxStreamIdMediaSample.html | 2 +- ..._1_1media_1_1mp4_1_1BoxBuffer-members.html | 2 +- docs/d1/d08/segmenter_8cc_source.html | 2 +- docs/d1/d13/status_8h_source.html | 2 +- ...packager_1_1xml_1_1XmlDeleter-members.html | 2 +- docs/d1/d1d/muxer__flags_8cc_source.html | 2 +- docs/d1/d27/key__fetcher_8h_source.html | 2 +- ..._1_1media_1_1WebMTracksParser-members.html | 2 +- ..._1_1mp4_1_1SyncSampleIterator-members.html | 2 +- ...1media_1_1mp4_1_1TrackExtends-members.html | 2 +- ...ia_1_1mp4_1_1CodecConfigurationRecord.html | 4 +- docs/d1/d37/es__parser__h264_8h_source.html | 2 +- ...ackager_1_1MockRepresentation-members.html | 2 +- .../d3b/mpd__generator__flags_8h_source.html | 2 +- .../decoding__time__iterator_8cc_source.html | 2 +- .../d1/d48/text__track__config_8h_source.html | 2 +- ...packager_1_1media_1_1mp2t_1_1TsPacket.html | 2 +- docs/d1/d4d/h264__bit__reader_8cc_source.html | 2 +- .../structedash__packager_1_1MpdOptions.html | 2 +- ...ager_1_1media_1_1mp4_1_1SampleToGroup.html | 4 +- docs/d1/d72/language__utils_8cc_source.html | 2 +- ...ia_1_1mp4_1_1AudioSampleEntry-members.html | 2 +- .../d74/mp2t__media__parser_8cc_source.html | 2 +- ...media_1_1mp4_1_1SampleToChunk-members.html | 2 +- ..._packager_1_1media_1_1mp4_1_1MP4Muxer.html | 2 +- .../d7d/webm__video__client_8cc_source.html | 4 +- ...ackager_1_1media_1_1BitReader-members.html | 2 +- ...kager_1_1media_1_1mp4_1_1SegmentIndex.html | 4 +- docs/d1/d82/adts__constants_8h_source.html | 2 +- ...sh__packager_1_1media_1_1RsaPublicKey.html | 2 +- ...p4_1_1CompositionTimeToSample-members.html | 2 +- .../d8e/webm__audio__client_8cc_source.html | 2 +- ..._packager_1_1media_1_1OffsetByteQueue.html | 2 +- docs/d1/d9d/tracks__builder_8h_source.html | 2 +- ...ackager_1_1media_1_1LocalFile-members.html | 2 +- ..._1media_1_1mp4_1_1PixelAspectRatioBox.html | 4 +- .../dcb/encrypting__fragmenter_8h_source.html | 2 +- ..._packager_1_1media_1_1mp4_1_1FileType.html | 4 +- ...media_1_1mp4_1_1SampleToGroup-members.html | 2 +- ...r_1_1xml_1_1RepresentationBaseXmlNode.html | 2 +- ...position__offset__iterator_8cc_source.html | 2 +- docs/d1/df0/aes__encryptor_8h_source.html | 2 +- .../multi__segment__segmenter_8cc_source.html | 2 +- ...m_1_1DemuxStreamIdMediaSample-members.html | 2 +- docs/d2/d02/timestamp_8h_source.html | 2 +- ...ia_1_1mp4_1_1MediaInformation-members.html | 2 +- docs/d2/d17/ts__section__pat_8cc_source.html | 2 +- .../d2/d23/threaded__io__file_8cc_source.html | 2 +- docs/d2/d24/packager__util_8h_source.html | 2 +- ...edia_1_1mp4_1_1SampleGroupDescription.html | 4 +- ..._1media_1_1mp4_1_1MediaHeader-members.html | 2 +- docs/d2/d30/tracks__builder_8cc_source.html | 2 +- ..._1media_1_1mp2t_1_1AdtsHeader-members.html | 2 +- ...ckager_1_1media_1_1FileCloser-members.html | 2 +- docs/d2/d4d/file_8h_source.html | 2 +- ...ager_1_1media_1_1H264DecRefPicMarking.html | 2 +- ...mp4_1_1SampleAuxiliaryInformationSize.html | 4 +- ...ager_1_1media_1_1mp2t_1_1TsSectionPmt.html | 2 +- ...ia_1_1mp4_1_1VideoMediaHeader-members.html | 2 +- .../d62/simple__mpd__notifier_8h_source.html | 2 +- docs/d2/d6f/classBandwidthEstimator.html | 2 +- ...ackager_1_1media_1_1mp4_1_1SchemeInfo.html | 4 +- .../d7b/simple__mpd__notifier_8cc_source.html | 2 +- ...ac__audio__specific__config_8h_source.html | 2 +- ...assedash__packager_1_1media_1_1Status.html | 2 +- docs/d2/d92/box__reader_8h_source.html | 2 +- ...avc__decoder__configuration_8h_source.html | 2 +- docs/d2/da6/threaded__io__file_8h_source.html | 2 +- ...1_1media_1_1VideoStreamInfoParameters.html | 2 +- .../vp__codec__configuration_8cc_source.html | 2 +- docs/d2/de6/packager__main_8cc_source.html | 2 +- docs/d2/deb/es__parser_8h_source.html | 2 +- ...kager_1_1media_1_1mp4_1_1Edit-members.html | 2 +- ..._1_1RepresentationStateChangeListener.html | 2 +- docs/d2/dfd/adts__header_8h_source.html | 2 +- ...ash__packager_1_1media_1_1MediaStream.html | 2 +- ...r_1_1media_1_1WebMAudioClient-members.html | 2 +- ...er_1_1media_1_1MpdNotifyMuxerListener.html | 2 +- docs/d3/d15/udp__file__win_8cc_source.html | 2 +- docs/d3/d19/io__cache_8h_source.html | 2 +- ...kager_1_1media_1_1mp4_1_1TrackExtends.html | 4 +- ...dia_1_1mp4_1_1TrackEncryption-members.html | 2 +- ...single__segment__segmenter_8cc_source.html | 6 +- ...__packager_1_1media_1_1HttpKeyFetcher.html | 2 +- ...r_1_1media_1_1mp4_1_1EditList-members.html | 2 +- ...a_1_1mp4_1_1ChunkInfoIterator-members.html | 2 +- docs/d3/d56/decrypt__config_8cc_source.html | 2 +- docs/d3/d62/rcheck_8h_source.html | 2 +- ...__packager_1_1media_1_1ClusterBuilder.html | 2 +- ...ssedash__packager_1_1media_1_1IoCache.html | 2 +- ..._1_1media_1_1mp4_1_1SampleDescription.html | 4 +- docs/d3/d76/muxer__flags_8h_source.html | 2 +- ...ckager_1_1media_1_1mp4_1_1SampleTable.html | 4 +- docs/d3/d80/muxer__util_8h_source.html | 2 +- ...esentationStateChangeListener-members.html | 2 +- .../d3/d8d/webm__audio__client_8h_source.html | 2 +- ..._1_1VideoStreamInfoParameters-members.html | 2 +- ...1media_1_1mp4_1_1ESDescriptor-members.html | 2 +- docs/d3/db6/cenc_8cc_source.html | 2 +- docs/d3/db6/webm__parser_8cc_source.html | 2 +- ...ager_1_1media_1_1H264WeightingFactors.html | 2 +- ...r_1_1media_1_1mp4_1_1HandlerReference.html | 4 +- ...r_1_1media_1_1WebMMediaParser-members.html | 2 +- docs/d3/dbe/demuxer_8cc_source.html | 2 +- ...pleAuxiliaryInformationOffset-members.html | 2 +- ..._1_1media_1_1ProgressListener-members.html | 2 +- ..._1_1media_1_1mp4_1_1BoxReader-members.html | 2 +- ...sh__packager_1_1media_1_1mp4_1_1Track.html | 4 +- ...ager_1_1media_1_1OnMediaEndParameters.html | 2 +- docs/d3/df1/box__reader_8cc_source.html | 2 +- .../classedash__packager_1_1MpdBuilder.html | 2 +- ...r_1_1media_1_1H264SliceHeader-members.html | 2 +- ...ager_1_1media_1_1mp4_1_1Media-members.html | 2 +- ...lassedash__packager_1_1media_1_1Muxer.html | 2 +- ...media_1_1mp4_1_1FrameCENCInfo-members.html | 2 +- docs/d4/d37/io__cache_8cc_source.html | 2 +- ...dash__packager_1_1media_1_1KeyFetcher.html | 2 +- ...h__packager_1_1media_1_1H264BitReader.html | 2 +- ...media_1_1mp4_1_1MovieFragment-members.html | 2 +- ...ckager_1_1xml_1_1ScopedXmlPtr-members.html | 2 +- ..._1media_1_1mp4_1_1MovieHeader-members.html | 2 +- ...1media_1_1mp4_1_1DecodingTimeIterator.html | 2 +- ...packager_1_1media_1_1mp4_1_1MediaData.html | 2 +- ...__packager_1_1media_1_1H264SEIMessage.html | 2 +- ...sh__packager_1_1AdaptationSet-members.html | 2 +- ...h__packager_1_1media_1_1DecryptConfig.html | 2 +- ..._1media_1_1AesCbcCtsEncryptor-members.html | 2 +- docs/d4/db2/cluster__builder_8h_source.html | 2 +- ...ager_1_1media_1_1H264SEIRecoveryPoint.html | 2 +- ...__packager_1_1media_1_1Status-members.html | 2 +- ...ackager_1_1media_1_1mp4_1_1SchemeType.html | 4 +- ...r_1_1media_1_1OffsetByteQueue-members.html | 2 +- ...r_1_1media_1_1mp4_1_1SegmentReference.html | 2 +- docs/d4/dd3/bit__reader_8h_source.html | 2 +- docs/d4/dd4/segmenter_8h_source.html | 2 +- ...ager_1_1media_1_1mp4_1_1TrackFragment.html | 4 +- docs/d4/dde/webvtt__util_8h_source.html | 2 +- ...__packager_1_1media_1_1SubsampleEntry.html | 2 +- ...a_1_1mp4_1_1CompositionOffsetIterator.html | 2 +- ...ampleAuxiliaryInformationSize-members.html | 2 +- docs/d4/df5/request__signer_8cc_source.html | 2 +- ...edash__packager_1_1MpdOptions-members.html | 2 +- .../dff/webm__media__parser_8cc_source.html | 2 +- ...ger_1_1media_1_1ProducerConsumerQueue.html | 2 +- .../producer__consumer__queue_8h_source.html | 2 +- ...packager_1_1media_1_1H264NALU-members.html | 2 +- docs/d5/d1a/ts__section_8h_source.html | 2 +- ...ager_1_1media_1_1BufferReader-members.html | 2 +- ...kager_1_1media_1_1MediaParser-members.html | 2 +- docs/d5/d27/key__fetcher_8cc_source.html | 2 +- ...edia_1_1H264ByteToUnitStreamConverter.html | 2 +- ...vc__decoder__configuration_8cc_source.html | 240 + ..._1_1media_1_1mp2t_1_1TsPacket-members.html | 2 +- docs/d5/d4d/box_8cc_source.html | 2 +- docs/d5/d52/ts__section__pes_8h_source.html | 2 +- ...mp4_1_1AACAudioSpecificConfig-members.html | 2 +- ...h__packager_1_1media_1_1RsaPrivateKey.html | 2 +- docs/d5/d63/network__util_8cc_source.html | 2 +- ..._1_1mp4_1_1MovieExtendsHeader-members.html | 2 +- docs/d5/d6f/vlog__flags_8cc_source.html | 2 +- .../vp__codec__configuration_8h_source.html | 2 +- .../d7a/structedash__packager_1_1Element.html | 2 +- docs/d5/d7b/box__definitions_8h_source.html | 2 +- .../d89/widevine__key__source_8cc_source.html | 2 +- .../d8f/webm__cluster__parser_8cc_source.html | 2 +- docs/d5/d91/es__parser__adts_8cc_source.html | 2 +- ...ackager_1_1MpdNotifierFactory-members.html | 2 +- docs/d5/da4/aes__encryptor_8cc_source.html | 2 +- ..._1xml_1_1AdaptationSetXmlNode-members.html | 2 +- docs/d5/dba/ts__packet_8cc_source.html | 2 +- .../dc1/webm__webvtt__parser_8cc_source.html | 2 +- ...dash__packager_1_1media_1_1OpusPacket.html | 2 +- ...ssedash__packager_1_1media_1_1Demuxer.html | 2 +- docs/d5/dcf/rsa__key_8h_source.html | 2 +- docs/d5/dda/ts__section__psi_8h_source.html | 2 +- ...ager_1_1media_1_1mp4_1_1FrameCENCInfo.html | 2 +- docs/d5/de0/bit__reader_8cc_source.html | 2 +- ...edia_1_1wvm_1_1WvmMediaParser-members.html | 2 +- docs/d5/def/ts__section__pmt_8h_source.html | 2 +- ...ger_1_1media_1_1H264BitReader-members.html | 2 +- docs/d5/dfc/file_8cc_source.html | 2 +- ...ckager_1_1media_1_1mp4_1_1Box-members.html | 2 +- ...dash__packager_1_1media_1_1StreamInfo.html | 2 +- ...r_1_1media_1_1VideoStreamInfo-members.html | 2 +- ...edia_1_1mp4_1_1OriginalFormat-members.html | 2 +- ..._1_1CompositionOffsetIterator-members.html | 2 +- docs/d6/d17/es__parser__h264_8cc_source.html | 2 +- ...mp4_1_1SampleGroupDescription-members.html | 2 +- ...ger_1_1media_1_1ClosureThread-members.html | 2 +- .../d2e/mpd__notifier__util_8cc_source.html | 2 +- .../webm__content__encodings_8cc_source.html | 2 +- ...ckager_1_1xml_1_1AdaptationSetXmlNode.html | 2 +- ..._1_1media_1_1AesRequestSigner-members.html | 2 +- .../d3b/chunk__info__iterator_8cc_source.html | 2 +- .../encrypting__fragmenter_8cc_source.html | 2 +- ...1media_1_1mp4_1_1DataEntryUrl-members.html | 2 +- ...r_1_1media_1_1AVCDecoderConfiguration.html | 2 +- ...er_1_1media_1_1mp4_1_1DataInformation.html | 4 +- ..._1_1media_1_1HEVCDecoderConfiguration.html | 193 + ...media_1_1H264SEIRecoveryPoint-members.html | 2 +- ...kager_1_1media_1_1mp4_1_1DataEntryUrl.html | 4 +- docs/d6/d6e/ts__section__pes_8cc_source.html | 2 +- docs/d6/d71/scoped__xml__ptr_8h_source.html | 2 +- .../dash__iop__mpd__notifier_8h_source.html | 2 +- ...ckager_1_1media_1_1mp4_1_1ChunkOffset.html | 4 +- .../d7b/webm__tracks__parser_8h_source.html | 2 +- ..._packager_1_1media_1_1Demuxer-members.html | 2 +- ..._1media_1_1LibcryptoThreading-members.html | 2 +- .../d86/bandwidth__estimator_8cc_source.html | 2 +- ...kager_1_1media_1_1mp4_1_1MovieExtends.html | 4 +- ...__packager_1_1media_1_1mp4_1_1FullBox.html | 2 +- ...a_1_1mp4_1_1SampleDescription-members.html | 2 +- ..._packager_1_1media_1_1UdpFile-members.html | 2 +- docs/d6/d9b/h264__parser_8h_source.html | 2 +- ...media_1_1mp2t_1_1TsSectionPes-members.html | 2 +- docs/d6/da0/ts__section__pat_8h_source.html | 2 +- ...ckager_1_1media_1_1AesCbcCtsEncryptor.html | 2 +- ...dash__packager_1_1media_1_1H264Parser.html | 2 +- docs/d6/da3/mpd__builder_8h_source.html | 2 +- ..._1_1media_1_1WebMWebVTTParser-members.html | 2 +- ...er_1_1media_1_1ThreadedIoFile-members.html | 2 +- ...a_1_1mp4_1_1CompositionOffset-members.html | 2 +- ...r_1_1media_1_1TextTrackConfig-members.html | 2 +- ...ager_1_1media_1_1AesCbcPkcs5Encryptor.html | 2 +- ...__packager_1_1media_1_1WebMListParser.html | 2 +- ...ckager_1_1media_1_1KeyFetcher-members.html | 2 +- ...media_1_1AesCbcPkcs5Encryptor-members.html | 2 +- docs/d6/de8/local__file_8cc_source.html | 2 +- docs/d6/de8/network__util_8h_source.html | 2 +- ...sh__packager_1_1media_1_1mp4_1_1Movie.html | 4 +- docs/d6/ded/ts__packet_8h_source.html | 2 +- .../sync__sample__iterator_8cc_source.html | 2 +- ...edia_1_1mp4_1_1MP4MediaParser-members.html | 2 +- ...xer__listener__test__helper_8h_source.html | 2 +- ...ager_1_1media_1_1mp4_1_1DataReference.html | 4 +- docs/d7/d12/media__parser_8h_source.html | 2 +- ...lassedash__packager_1_1Representation.html | 2 +- docs/d7/d15/mpd__notifier_8h_source.html | 2 +- ...kager_1_1media_1_1mp4_1_1DecodingTime.html | 2 +- .../d22/libcrypto__threading_8h_source.html | 2 +- ...r_1_1media_1_1DecryptorSource-members.html | 2 +- ...ager_1_1media_1_1mp4_1_1Movie-members.html | 2 +- ..._packager_1_1media_1_1VideoStreamInfo.html | 14 +- ...1_1media_1_1WebMClusterParser-members.html | 2 +- ...assedash__packager_1_1MockMpdNotifier.html | 2 +- ...ash__packager_1_1media_1_1mp4_1_1Edit.html | 4 +- ..._1mp4_1_1EncryptingFragmenter-members.html | 2 +- ...er_1_1media_1_1WebMListParser-members.html | 2 +- ...1mp4_1_1CencSampleEncryptionInfoEntry.html | 2 +- ..._1_1media_1_1mp4_1_1MediaData-members.html | 2 +- ...1media_1_1mp4_1_1DecodingTime-members.html | 2 +- docs/d7/d7c/vlog__flags_8h_source.html | 2 +- ...edash__packager_1_1MpdBuilder-members.html | 2 +- ...ager_1_1media_1_1VPCodecConfiguration.html | 2 +- .../d7/d87/video__stream__info_8h_source.html | 158 +- ...dash__packager_1_1media_1_1mp4_1_1Box.html | 2 +- docs/d7/d9d/progress__listener_8h_source.html | 2 +- .../da4/track__run__iterator_8h_source.html | 2 +- ...ackager_1_1media_1_1mp4_1_1SampleSize.html | 4 +- docs/d7/db0/mpd__writer_8h_source.html | 2 +- ...uctedash__packager_1_1Element-members.html | 2 +- docs/d7/dc6/byte__queue_8h_source.html | 2 +- .../d7/dd0/mpd__notifier__util_8h_source.html | 2 +- docs/d7/dd4/request__signer_8h_source.html | 2 +- docs/d7/dd6/key__source_8cc_source.html | 2 +- ...tedash__packager_1_1xml_1_1XmlDeleter.html | 2 +- ...to__unit__stream__converter_8h_source.html | 2 +- ...ckager_1_1media_1_1mp4_1_1MediaHeader.html | 4 +- docs/d7/dee/mpd__generator_8cc_source.html | 2 +- .../d7/def/mp4__media__parser_8cc_source.html | 1326 +++--- ...1media_1_1mp4_1_1SegmentIndex-members.html | 2 +- ...sh__packager_1_1media_1_1File-members.html | 2 +- docs/d7/df9/byte__queue_8cc_source.html | 2 +- ...ger_1_1media_1_1mp4_1_1MP4MediaParser.html | 10 +- docs/d8/d0d/media__sample_8cc_source.html | 2 +- .../d19/bandwidth__estimator_8h_source.html | 2 +- ...1media_1_1mp4_1_1EncryptingFragmenter.html | 2 +- ...packager_1_1media_1_1mp4_1_1ChunkInfo.html | 2 +- ...er_1_1media_1_1HttpKeyFetcher-members.html | 2 +- ...edia_1_1ProducerConsumerQueue-members.html | 2 +- ..._1media_1_1mp4_1_1SegmentType-members.html | 2 +- ...edash__packager_1_1media_1_1ByteQueue.html | 2 +- ...a_1_1mp4_1_1CompactSampleSize-members.html | 2 +- ..._content__encodings__client_8h_source.html | 2 +- ...1_1ElementaryStreamDescriptor-members.html | 2 +- ..._packager_1_1media_1_1mp4_1_1EditList.html | 4 +- ...r_1_1media_1_1AudioStreamInfo-members.html | 2 +- ...ash__packager_1_1media_1_1MediaSample.html | 2 +- ...packager_1_1MockAdaptationSet-members.html | 2 +- ...media_1_1mp4_1_1TrackFragment-members.html | 2 +- ..._1_1media_1_1mp4_1_1ChunkInfoIterator.html | 2 +- ...h__packager_1_1Representation-members.html | 2 +- ..._1mp4_1_1ProtectionSchemeInfo-members.html | 2 +- ...sedash__packager_1_1MockAdaptationSet.html | 2 +- ..._1media_1_1WebMContentEncodingsClient.html | 2 +- ...dia_1_1MpdNotifyMuxerListener-members.html | 2 +- ...ackager_1_1media_1_1mp2t_1_1TsSection.html | 2 +- docs/d8/d94/adts__constants_8cc_source.html | 2 +- ...r_1_1ContentProtectionElement-members.html | 2 +- docs/d8/d9a/fragmenter_8cc_source.html | 2 +- .../d9c/webm__tracks__parser_8cc_source.html | 2 +- docs/d8/d9f/udp__file_8h_source.html | 2 +- ...ger_1_1media_1_1wvm_1_1WvmMediaParser.html | 2 +- ...1_1media_1_1WidevineKeySource-members.html | 2 +- ...ia_1_1mp4_1_1SoundMediaHeader-members.html | 2 +- docs/d8/daa/stream__info_8h_source.html | 2 +- ...ctedash__packager_1_1media_1_1H264SPS.html | 2 +- ...edia_1_1wvm_1_1PrevSampleData-members.html | 2 +- ...ssedash__packager_1_1media_1_1UdpFile.html | 2 +- ...media_1_1AesCbcPkcs5Decryptor-members.html | 2 +- ...packager_1_1media_1_1AesRequestSigner.html | 2 +- ..._1_1media_1_1RsaRequestSigner-members.html | 2 +- .../de6/webm__crypto__helpers_8h_source.html | 2 +- ...sedash__packager_1_1MpdWriter-members.html | 2 +- ...dash__packager_1_1xml_1_1ScopedXmlPtr.html | 2 +- docs/d9/d08/mock__mpd__builder_8h_source.html | 2 +- .../key__rotation__fragmenter_8cc_source.html | 2 +- ...ackager_1_1DashIopMpdNotifier-members.html | 2 +- ...ackager_1_1media_1_1mp4_1_1SyncSample.html | 4 +- ...packager_1_1media_1_1ProgressListener.html | 2 +- .../webm__content__encodings_8h_source.html | 2 +- ...sh__packager_1_1media_1_1BufferReader.html | 2 +- ..._1media_1_1mp4_1_1TrackFragmentHeader.html | 4 +- ...dash__packager_1_1SegmentInfo-members.html | 2 +- ...ackager_1_1media_1_1TextTrack-members.html | 2 +- ..._1_1media_1_1H264ModificationOfPicNum.html | 2 +- ...ger_1_1media_1_1wvm_1_1PrevSampleData.html | 2 +- docs/d9/d86/limits_8h_source.html | 2 +- ...edash__packager_1_1media_1_1KeySource.html | 2 +- docs/d9/d90/text__track_8h_source.html | 2 +- docs/d9/d91/h264__bit__reader_8h_source.html | 2 +- docs/d9/d93/media__stream_8h_source.html | 2 +- ...kager_1_1media_1_1MediaStream-members.html | 2 +- ...ger_1_1media_1_1DecryptConfig-members.html | 2 +- .../structedash__packager_1_1SegmentInfo.html | 2 +- docs/d9/da4/stream__descriptor_8h_source.html | 2 +- ...edia_1_1VodMediaInfoDumpMuxerListener.html | 2 +- ...ntent__protection__element_8cc_source.html | 2 +- docs/d9/db9/muxer_8cc_source.html | 2 +- docs/d9/dc8/webm__constants_8cc_source.html | 2 +- ..._1_1mp4_1_1ElementaryStreamDescriptor.html | 4 +- .../d9/dcc/webm__video__client_8h_source.html | 2 +- .../muxer__listener__internal_8cc_source.html | 2 +- ...ger_1_1media_1_1RequestSigner-members.html | 2 +- ...c__audio__specific__config_8cc_source.html | 2 +- ...media_1_1H264WeightingFactors-members.html | 2 +- ...1_1media_1_1mp4_1_1SyncSample-members.html | 2 +- .../d04/audio__stream__info_8cc_source.html | 2 +- ...ia_1_1mp4_1_1HandlerReference-members.html | 2 +- ...1_1media_1_1mp4_1_1MovieExtendsHeader.html | 4 +- ...ckager_1_1media_1_1StreamInfo-members.html | 2 +- .../key__rotation__fragmenter_8h_source.html | 2 +- ..._packager_1_1media_1_1AudioStreamInfo.html | 2 +- ...mp4_1_1ProtectionSystemSpecificHeader.html | 4 +- ..._packager_1_1media_1_1IoCache-members.html | 2 +- .../classedash__packager_1_1MpdNotifier.html | 2 +- ...ger_1_1media_1_1RsaPrivateKey-members.html | 2 +- ..._packager_1_1media_1_1H264PPS-members.html | 2 +- ...edash__packager_1_1DashIopMpdNotifier.html | 2 +- ...ger_1_1media_1_1mp4_1_1OriginalFormat.html | 4 +- ...dia_1_1mp4_1_1CompositionTimeToSample.html | 4 +- .../d5c/widevine__key__source_8h_source.html | 2 +- ...ger_1_1media_1_1EncryptionKey-members.html | 2 +- ..._1_1media_1_1mp2t_1_1EsParser-members.html | 2 +- ...edia_1_1mp4_1_1SingleSegmentSegmenter.html | 2 +- ...ia_1_1AVCDecoderConfiguration-members.html | 2 +- ...xed__key__encryption__flags_8h_source.html | 2 +- ...1_1media_1_1StreamDescriptorCompareFn.html | 2 +- ...evc__decoder__configuration_8h_source.html | 149 + ...r_1_1media_1_1mp4_1_1ChunkLargeOffset.html | 4 +- docs/da/d88/mp4__muxer_8cc_source.html | 556 +-- docs/da/d8e/container__names_8cc_source.html | 2 +- ...r_1_1media_1_1mp4_1_1SoundMediaHeader.html | 4 +- docs/da/dc3/status_8cc_source.html | 2 +- docs/da/dcb/es__descriptor_8h_source.html | 2 +- docs/da/dd0/webm__info__parser_8h_source.html | 2 +- docs/da/dd1/fragmenter_8h_source.html | 2 +- .../da/de2/mock__mpd__builder_8cc_source.html | 2 +- ...ager_1_1media_1_1AudioTimestampHelper.html | 2 +- ..._1_1media_1_1mp4_1_1CompositionOffset.html | 2 +- ...vc__decoder__configuration_8cc_source.html | 2 +- ...1_1media_1_1mp4_1_1SyncSampleIterator.html | 2 +- docs/db/d09/namespaceedash__packager.html | 2 +- ...r_1_1media_1_1ContentEncoding-members.html | 2 +- ..._1mp4_1_1DecodingTimeToSample-members.html | 2 +- ...packager_1_1media_1_1WebMTracksParser.html | 2 +- ...r_1_1media_1_1mp4_1_1TrackRunIterator.html | 2 +- ...lassedash__packager_1_1MockMpdBuilder.html | 2 +- .../d31/track__run__iterator_8cc_source.html | 2 +- ...media_1_1mp4_1_1DataReference-members.html | 2 +- ...pd__notify__muxer__listener_8h_source.html | 2 +- .../multi__segment__segmenter_8h_source.html | 2 +- ...ager_1_1media_1_1mp2t_1_1TsSectionPsi.html | 2 +- .../db/d51/mp2t__media__parser_8h_source.html | 2 +- ...sedash__packager_1_1SimpleMpdNotifier.html | 2 +- ...a_1_1HEVCDecoderConfiguration-members.html | 109 + docs/db/d60/mpd__options_8h_source.html | 2 +- ...mp4_1_1SingleSegmentSegmenter-members.html | 2 +- ...ckager_1_1media_1_1mp2t_1_1AdtsHeader.html | 2 +- ...packager_1_1media_1_1mp4_1_1BoxReader.html | 2 +- docs/db/d71/http__key__fetcher_8h_source.html | 2 +- ...media_1_1mp4_1_1EditListEntry-members.html | 2 +- docs/db/d7e/muxer__options_8cc_source.html | 2 +- ..._1_1media_1_1mp4_1_1CompactSampleSize.html | 4 +- docs/db/d8f/mp4__muxer_8h_source.html | 6 +- docs/db/d96/wvm__media__parser_8h_source.html | 2 +- ...1_1WebMContentEncodingsClient-members.html | 2 +- ...ackager_1_1media_1_1WebMClusterParser.html | 2 +- .../da4/classBandwidthEstimator-members.html | 2 +- ...ackager_1_1media_1_1WidevineKeySource.html | 2 +- ...CencSampleEncryptionInfoEntry-members.html | 2 +- ...ackager_1_1media_1_1mp4_1_1Fragmenter.html | 2 +- ...media_1_1mp2t_1_1TsSectionPmt-members.html | 2 +- .../dd2/chunk__info__iterator_8h_source.html | 2 +- .../dd9/sync__sample__iterator_8h_source.html | 2 +- ...classedash__packager_1_1AdaptationSet.html | 2 +- ..._1_1StreamDescriptorCompareFn-members.html | 2 +- .../audio__timestamp__helper_8cc_source.html | 2 +- .../ded/opus__packet__builder_8cc_source.html | 2 +- ...packager_1_1media_1_1mp2t_1_1EsParser.html | 2 +- docs/db/df6/muxer_8h_source.html | 2 +- ...media_1_1mp2t_1_1TsSectionPsi-members.html | 2 +- ...r_1_1media_1_1mp4_1_1VideoMediaHeader.html | 4 +- docs/db/dfb/mpd__utils_8cc_source.html | 2 +- ...d__notify__muxer__listener_8cc_source.html | 2 +- ...ager_1_1media_1_1AesCbcPkcs5Decryptor.html | 2 +- ...kager_1_1xml_1_1RepresentationXmlNode.html | 2 +- ..._packager_1_1media_1_1WebMVideoClient.html | 2 +- ...ager_1_1media_1_1mp4_1_1EditListEntry.html | 2 +- docs/dc/d19/box_8h_source.html | 2 +- .../dash__iop__mpd__notifier_8cc_source.html | 2 +- ...__packager_1_1MockMpdNotifier-members.html | 2 +- ...ackager_1_1media_1_1KeySource-members.html | 2 +- ...er_1_1media_1_1ClusterBuilder-members.html | 2 +- ...ia_1_1mp2t_1_1Mp2tMediaParser-members.html | 2 +- ...ed__key__encryption__flags_8cc_source.html | 2 +- .../d3c/webm__cluster__parser_8h_source.html | 2 +- docs/dc/d3f/key__source_8h_source.html | 2 +- ...1xml_1_1RepresentationXmlNode-members.html | 2 +- ...h__packager_1_1xml_1_1XmlNode-members.html | 2 +- ..._packager_1_1media_1_1Cluster-members.html | 2 +- ...ash__packager_1_1media_1_1MediaParser.html | 2 +- .../decoding__time__iterator_8h_source.html | 2 +- ...er_1_1media_1_1H264SEIMessage-members.html | 2 +- .../dc/d58/webm__media__parser_8h_source.html | 2 +- ...h__packager_1_1media_1_1RequestSigner.html | 2 +- ...media_1_1mp4_1_1MultiSegmentSegmenter.html | 2 +- docs/dc/d7b/closure__thread_8cc_source.html | 2 +- docs/dc/d7b/h264__parser_8cc_source.html | 2 +- .../classedash__packager_1_1MpdWriter.html | 2 +- ...media_1_1mp4_1_1KeyRotationFragmenter.html | 2 +- ...r_1_1media_1_1mp2t_1_1Mp2tMediaParser.html | 2 +- ...1media_1_1mp4_1_1DecodingTimeToSample.html | 4 +- docs/dc/dbf/box__buffer_8h_source.html | 2 +- ...edia_1_1mp4_1_1AACAudioSpecificConfig.html | 2 +- ...packager_1_1media_1_1WebMWebVTTParser.html | 2 +- ..._1_1mp4_1_1SampleToGroupEntry-members.html | 2 +- docs/dc/dd9/rsa__key_8cc_source.html | 2 +- ...er_1_1media_1_1WebMInfoParser-members.html | 2 +- docs/dc/ddf/udp__file__posix_8cc_source.html | 2 +- ...packager_1_1media_1_1mp4_1_1Segmenter.html | 2 +- docs/dc/dec/ts__section__pmt_8cc_source.html | 2 +- ...dia_1_1mp4_1_1DataInformation-members.html | 2 +- ..._packager_1_1media_1_1DecryptorSource.html | 2 +- docs/dc/df8/closure__thread_8h_source.html | 2 +- ...__packager_1_1media_1_1ThreadedIoFile.html | 2 +- ...h__packager_1_1media_1_1Muxer-members.html | 2 +- ...ager_1_1media_1_1mp2t_1_1EsParserH264.html | 2 +- ...ager_1_1media_1_1mp2t_1_1TsSectionPat.html | 2 +- docs/dd/d11/mpd__builder_8cc_source.html | 2 +- docs/dd/d12/mpd__writer_8cc_source.html | 2 +- ...ckager_1_1media_1_1mp4_1_1MovieHeader.html | 4 +- ...ckager_1_1media_1_1mp4_1_1TrackHeader.html | 4 +- docs/dd/d18/es__parser__adts_8h_source.html | 2 +- .../d19/video__stream__info_8cc_source.html | 162 +- ...H264ByteToUnitStreamConverter-members.html | 2 +- ...h__packager_1_1media_1_1ClosureThread.html | 2 +- .../single__segment__segmenter_8h_source.html | 2 +- .../dd/d30/wvm__media__parser_8cc_source.html | 2 +- ...kager_1_1media_1_1MediaSample-members.html | 2 +- ...tedash__packager_1_1media_1_1H264NALU.html | 2 +- ...ia_1_1mp4_1_1SegmentReference-members.html | 2 +- docs/dd/d46/webm__parser_8h_source.html | 2 +- ...__packager_1_1media_1_1WebMInfoParser.html | 2 +- ...er_1_1media_1_1mp4_1_1FullBox-members.html | 2 +- ...packager_1_1media_1_1mp4_1_1BoxBuffer.html | 2 +- ...widevine__encryption__flags_8h_source.html | 2 +- ...o__unit__stream__converter_8cc_source.html | 2 +- ..._packager_1_1media_1_1AesCtrEncryptor.html | 2 +- docs/dd/d80/media__sample_8h_source.html | 2 +- ...lassedash__packager_1_1xml_1_1XmlNode.html | 2 +- ...1_1mp4_1_1TrackFragmentHeader-members.html | 2 +- ...1mp4_1_1KeyRotationFragmenter-members.html | 2 +- ...ckager_1_1media_1_1AesCbcCtsDecryptor.html | 2 +- ...edash__packager_1_1media_1_1LocalFile.html | 2 +- ..._packager_1_1media_1_1WebMMediaParser.html | 2 +- .../audio__timestamp__helper_8h_source.html | 2 +- ...ager_1_1media_1_1mp4_1_1MovieFragment.html | 4 +- ...ckager_1_1media_1_1mp4_1_1SegmentType.html | 4 +- ...packager_1_1media_1_1RsaRequestSigner.html | 2 +- ...info__dump__muxer__listener_8h_source.html | 2 +- ...1_1media_1_1mp4_1_1SampleToGroupEntry.html | 2 +- ..._1_1media_1_1WebMParserClient-members.html | 2 +- docs/dd/dbc/buffer__reader_8cc_source.html | 2 +- ...r_1_1media_1_1AesCtrEncryptor-members.html | 2 +- ...r_1_1media_1_1mp4_1_1MediaInformation.html | 4 +- ...dash__packager_1_1MpdNotifier-members.html | 2 +- .../dbf/webm__webvtt__parser_8h_source.html | 2 +- ...1media_1_1mp4_1_1ProtectionSchemeInfo.html | 4 +- ...edash__packager_1_1MpdNotifierFactory.html | 2 +- ...ctedash__packager_1_1media_1_1H264PPS.html | 2 +- docs/dd/dd2/buffer__writer_8h_source.html | 2 +- docs/dd/dd3/buffer__writer_8cc_source.html | 2 +- ...ckager_1_1media_1_1OpusPacket-members.html | 2 +- docs/dd/de7/xml__node_8h_source.html | 2 +- ...media_1_1OnMediaEndParameters-members.html | 2 +- docs/dd/dee/box__definitions_8cc_source.html | 3985 +++++++++-------- ..._packager_1_1media_1_1TextTrackConfig.html | 2 +- ...ager_1_1media_1_1MuxerOptions-members.html | 2 +- docs/de/d0f/local__file_8h_source.html | 2 +- docs/de/d10/cenc_8h_source.html | 2 +- docs/de/d12/container__names_8h_source.html | 2 +- docs/de/d15/media__stream_8cc_source.html | 2 +- docs/de/d17/cluster__builder_8cc_source.html | 2 +- ...classedash__packager_1_1media_1_1File.html | 2 +- ...packager_1_1media_1_1StreamDescriptor.html | 2 +- .../de/d34/offset__byte__queue_8h_source.html | 2 +- docs/de/d3e/buffer__reader_8h_source.html | 2 +- ...er_1_1media_1_1mp4_1_1TrackEncryption.html | 4 +- .../muxer__listener__internal_8h_source.html | 2 +- ...media_1_1mp2t_1_1TsSectionPat-members.html | 2 +- ...sh__packager_1_1media_1_1MuxerOptions.html | 2 +- ...ager_1_1media_1_1mp2t_1_1EsParserAdts.html | 2 +- ...1_1media_1_1mp4_1_1SchemeType-members.html | 2 +- docs/de/d5b/adts__header_8cc_source.html | 2 +- docs/de/d5c/mpd__flags_8h_source.html | 2 +- ...ager_1_1media_1_1mp4_1_1Track-members.html | 2 +- docs/de/d6e/language__utils_8h_source.html | 2 +- .../de/d70/http__key__fetcher_8cc_source.html | 2 +- ...VodMediaInfoDumpMuxerListener-members.html | 2 +- ...content__encodings__client_8cc_source.html | 2 +- docs/de/d7b/mp4__media__parser_8h_source.html | 10 +- ...ox__definitions__comparison_8h_source.html | 2 +- ..._1_1media_1_1mp4_1_1ChunkInfo-members.html | 2 +- ...ager_1_1media_1_1mp2t_1_1TsSectionPes.html | 2 +- ..._packager_1_1media_1_1H264SliceHeader.html | 2 +- ...ackager_1_1media_1_1ByteQueue-members.html | 2 +- ..._packager_1_1media_1_1WebMAudioClient.html | 2 +- ...ger_1_1media_1_1TracksBuilder-members.html | 2 +- ...edash__packager_1_1media_1_1TextTrack.html | 2 +- ..._1media_1_1AesCbcCtsDecryptor-members.html | 2 +- ...packager_1_1media_1_1WebMParserClient.html | 2 +- ..._1mp4_1_1DecodingTimeIterator-members.html | 2 +- ...media_1_1AudioTimestampHelper-members.html | 2 +- ...ia_1_1mp4_1_1TrackFragmentRun-members.html | 2 +- docs/de/dad/validate__flag_8cc_source.html | 2 +- ...kager_1_1media_1_1mp4_1_1ESDescriptor.html | 2 +- ...1_1media_1_1mp4_1_1SchemeInfo-members.html | 2 +- docs/de/dc1/demuxer_8h_source.html | 2 +- ...4_1_1SampleAuxiliaryInformationOffset.html | 4 +- .../dcc/mock__mpd__notifier_8cc_source.html | 2 +- docs/de/dcf/file__closer_8h_source.html | 2 +- ...r_1_1media_1_1mp4_1_1MP4Muxer-members.html | 2 +- ...ontent__protection__element_8h_source.html | 2 +- ...er__listener__test__helper_8cc_source.html | 2 +- ...sh__packager_1_1media_1_1mp4_1_1Media.html | 4 +- ...ckager_1_1media_1_1LibcryptoThreading.html | 2 +- docs/de/dfa/muxer__listener_8h_source.html | 2 +- ...a_1_1H264ModificationOfPicNum-members.html | 2 +- ...media_1_1mp2t_1_1EsParserH264-members.html | 2 +- docs/de/dfd/stream__info_8cc_source.html | 2 +- ...media_1_1VPCodecConfiguration-members.html | 2 +- .../d1a/offset__byte__queue_8cc_source.html | 2 +- ...mposition__offset__iterator_8h_source.html | 2 +- ...ia_1_1mp4_1_1TrackRunIterator-members.html | 2 +- ...r_1_1media_1_1mp4_1_1TrackFragmentRun.html | 4 +- docs/df/d22/validate__flag_8h_source.html | 2 +- ..._packager_1_1media_1_1ContentEncoding.html | 2 +- docs/df/d31/muxer__util_8cc_source.html | 2 +- .../df/d32/audio__stream__info_8h_source.html | 2 +- ...p4_1_1TrackFragmentDecodeTime-members.html | 2 +- ...ssedash__packager_1_1media_1_1Cluster.html | 2 +- ..._1_1media_1_1mp4_1_1Segmenter-members.html | 2 +- ...media_1_1mp2t_1_1EsParserAdts-members.html | 2 +- ...1_1media_1_1mp2t_1_1TsSection-members.html | 2 +- ...r_1_1media_1_1mp4_1_1AudioSampleEntry.html | 4 +- .../d67/opus__packet__builder_8h_source.html | 2 +- ...r_1_1media_1_1mp4_1_1VideoSampleEntry.html | 4 +- ...ager_1_1media_1_1mp4_1_1SampleToChunk.html | 4 +- .../df/d7d/webm__info__parser_8cc_source.html | 2 +- ..._1media_1_1mp4_1_1MovieFragmentHeader.html | 4 +- docs/df/d96/xml__node_8cc_source.html | 2 +- ...1_1media_1_1mp4_1_1Fragmenter-members.html | 2 +- docs/df/dad/decrypt__config_8h_source.html | 2 +- ...edash__packager_1_1media_1_1BitReader.html | 2 +- ...ia_1_1mp4_1_1ChunkLargeOffset-members.html | 2 +- ...r_1_1media_1_1mp4_1_1FileType-members.html | 2 +- ...h__packager_1_1MockMpdBuilder-members.html | 2 +- docs/df/dd2/mpd__utils_8h_source.html | 2 +- ...sh__packager_1_1media_1_1BufferWriter.html | 2 +- docs/df/dde/ts__section__psi_8cc_source.html | 2 +- ..._1media_1_1mp4_1_1TrackHeader-members.html | 2 +- .../de3/text__track__config_8cc_source.html | 2 +- ...h__packager_1_1media_1_1MuxerListener.html | 2 +- docs/df/de9/segment__info_8h_source.html | 2 +- ...ger_1_1media_1_1MuxerListener-members.html | 2 +- ...ager_1_1media_1_1RsaPublicKey-members.html | 2 +- .../dir_2618cd273dea54f184e42d7a562af818.html | 2 +- .../dir_279fd47bebb21302c25cfb685e84c359.html | 2 +- .../dir_39dc0668bd5a501998f94e8b4e546c71.html | 2 +- .../dir_3e9291fd7a18fdecc763294cb2628910.html | 2 +- .../dir_49627ef5ef0630f6cf11dd06344c4cf0.html | 2 +- .../dir_5039d854a18988ed1f1dbebc120ffbf7.html | 2 +- .../dir_5eb2e460866db0ed29e32d64402e5c22.html | 6 +- .../dir_65f7acfa8cf3a5f1edc11faa2428b914.html | 2 +- .../dir_679a6f4e9fa092b388fc986148018f2a.html | 2 +- .../dir_7f5e01ba7faf319a30cabd201b6ef121.html | 2 +- .../dir_89dd766eb2df7d7257dbe806a34404af.html | 2 +- .../dir_aa73376d632f252584a1c0dfbefab2c4.html | 2 +- .../dir_c6ada2450b25ab5438a4dba6c9b890af.html | 2 +- .../dir_d422163b96683743ed3963d4aac17747.html | 2 +- .../dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html | 2 +- .../dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html | 2 +- docs/files.html | 10 +- docs/functions.html | 2 +- docs/functions_b.html | 2 +- docs/functions_c.html | 2 +- docs/functions_d.html | 2 +- docs/functions_e.html | 2 +- docs/functions_eval.html | 2 +- docs/functions_f.html | 2 +- docs/functions_func.html | 2 +- docs/functions_func_b.html | 2 +- docs/functions_func_c.html | 2 +- docs/functions_func_d.html | 2 +- docs/functions_func_e.html | 2 +- docs/functions_func_f.html | 2 +- docs/functions_func_g.html | 3 +- docs/functions_func_h.html | 2 +- docs/functions_func_i.html | 2 +- docs/functions_func_k.html | 2 +- docs/functions_func_l.html | 5 +- docs/functions_func_m.html | 2 +- docs/functions_func_n.html | 2 +- docs/functions_func_o.html | 2 +- docs/functions_func_p.html | 3 +- docs/functions_func_r.html | 2 +- docs/functions_func_s.html | 2 +- docs/functions_func_t.html | 2 +- docs/functions_func_u.html | 2 +- docs/functions_func_v.html | 2 +- docs/functions_func_w.html | 2 +- docs/functions_func_x.html | 2 +- docs/functions_func_~.html | 2 +- docs/functions_g.html | 3 +- docs/functions_h.html | 2 +- docs/functions_i.html | 2 +- docs/functions_k.html | 2 +- docs/functions_l.html | 5 +- docs/functions_m.html | 2 +- docs/functions_n.html | 2 +- docs/functions_o.html | 2 +- docs/functions_p.html | 3 +- docs/functions_r.html | 2 +- docs/functions_s.html | 2 +- docs/functions_t.html | 2 +- docs/functions_type.html | 2 +- docs/functions_u.html | 2 +- docs/functions_v.html | 2 +- docs/functions_vars.html | 2 +- docs/functions_w.html | 2 +- docs/functions_x.html | 2 +- docs/functions_~.html | 2 +- docs/hierarchy.html | 179 +- docs/index.html | 2 +- docs/namespacemembers.html | 2 +- docs/namespacemembers_func.html | 2 +- docs/namespaces.html | 2 +- docs/search/all_6.js | 2 +- docs/search/all_7.js | 1 + docs/search/all_a.js | 1 + docs/search/all_e.js | 2 +- docs/search/classes_6.js | 1 + docs/search/functions_6.js | 2 +- docs/search/functions_a.js | 1 + docs/search/functions_e.js | 2 +- 727 files changed, 4864 insertions(+), 4108 deletions(-) create mode 100644 docs/d5/d41/hevc__decoder__configuration_8cc_source.html create mode 100644 docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html create mode 100644 docs/da/d7f/hevc__decoder__configuration_8h_source.html create mode 100644 docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html diff --git a/docs/annotated.html b/docs/annotated.html index 8095e7516d..26ba01fc5d 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -253,22 +253,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); ||oCH264SEIRecoveryPoint ||oCH264SEIMessage ||oCH264Parser -||oCVPCodecConfigurationClass for parsing or writing VP codec configuration data -||oCCluster -||oCClusterBuilder -||oCOpusPacket -||oCTracksBuilder -||oCWebMAudioClientHelper class used to parse an Audio element inside a TrackEntry element -||oCWebMClusterParser -||oCContentEncoding -||oCWebMContentEncodingsClientParser for WebM ContentEncodings element -||oCWebMInfoParserParser for WebM Info element -||oCWebMMediaParser -||oCWebMParserClient -||oCWebMListParser -||oCWebMTracksParserParser for WebM Tracks element -||oCWebMVideoClientHelper class used to parse a Video element inside a TrackEntry element -||\CWebMWebVTTParser +||oCHEVCDecoderConfigurationClass for parsing HEVC decoder configuration +||oCVPCodecConfigurationClass for parsing or writing VP codec configuration data +||oCCluster +||oCClusterBuilder +||oCOpusPacket +||oCTracksBuilder +||oCWebMAudioClientHelper class used to parse an Audio element inside a TrackEntry element +||oCWebMClusterParser +||oCContentEncoding +||oCWebMContentEncodingsClientParser for WebM ContentEncodings element +||oCWebMInfoParserParser for WebM Info element +||oCWebMMediaParser +||oCWebMParserClient +||oCWebMListParser +||oCWebMTracksParserParser for WebM Tracks element +||oCWebMVideoClientHelper class used to parse a Video element inside a TrackEntry element +||\CWebMWebVTTParser |oNxml ||oCXmlDeleter ||oCScopedXmlPtrScoped_ptr for libxml2 resources @@ -299,7 +300,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index fa2c8bf8cb..6dc75d8328 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -89,82 +89,83 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
A | B | C | D | E | F | H | I | K | L | M | O | P | R | S | T | U | V | W | X
- - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + + - - + + + - +
  A  
-
DataReference (edash_packager::media::mp4)   
  K  
-
PrevSampleData (edash_packager::media::wvm)   ThreadedIoFile (edash_packager::media)   
DecodingTime (edash_packager::media::mp4)   ProducerConsumerQueue (edash_packager::media)   Track (edash_packager::media::mp4)   
AACAudioSpecificConfig (edash_packager::media::mp4)   DecodingTimeIterator (edash_packager::media::mp4)   KeyFetcher (edash_packager::media)   ProgressListener (edash_packager::media)   TrackEncryption (edash_packager::media::mp4)   
AdaptationSet (edash_packager)   DecodingTimeToSample (edash_packager::media::mp4)   KeyRotationFragmenter (edash_packager::media::mp4)   ProtectionSchemeInfo (edash_packager::media::mp4)   TrackExtends (edash_packager::media::mp4)   
AdaptationSetXmlNode (edash_packager::xml)   DecryptConfig (edash_packager::media)   KeySource (edash_packager::media)   ProtectionSystemSpecificHeader (edash_packager::media::mp4)   TrackFragment (edash_packager::media::mp4)   
AdtsHeader (edash_packager::media::mp2t)   DecryptorSource (edash_packager::media)   
  L  
-
  R  
-
TrackFragmentDecodeTime (edash_packager::media::mp4)   
AesCbcCtsDecryptor (edash_packager::media)   Demuxer (edash_packager::media)   TrackFragmentHeader (edash_packager::media::mp4)   
AesCbcCtsEncryptor (edash_packager::media)   DemuxStreamIdMediaSample (edash_packager::media::wvm)   LibcryptoThreading (edash_packager::media)   Representation (edash_packager)   TrackFragmentRun (edash_packager::media::mp4)   
AesCbcPkcs5Decryptor (edash_packager::media)   
  E  
-
LocalFile (edash_packager::media)   RepresentationBaseXmlNode (edash_packager::xml)   TrackHeader (edash_packager::media::mp4)   
AesCbcPkcs5Encryptor (edash_packager::media)   
  M  
-
RepresentationStateChangeListener (edash_packager)   TrackRunIterator (edash_packager::media::mp4)   
AesCtrEncryptor (edash_packager::media)   Edit (edash_packager::media::mp4)   RepresentationXmlNode (edash_packager::xml)   TracksBuilder (edash_packager::media)   
AesRequestSigner (edash_packager::media)   EditList (edash_packager::media::mp4)   Media (edash_packager::media::mp4)   RequestSigner (edash_packager::media)   TsPacket (edash_packager::media::mp2t)   
AudioSampleEntry (edash_packager::media::mp4)   EditListEntry (edash_packager::media::mp4)   MediaData (edash_packager::media::mp4)   RsaPrivateKey (edash_packager::media)   TsSection (edash_packager::media::mp2t)   
AudioStreamInfo (edash_packager::media)   Element (edash_packager)   MediaHeader (edash_packager::media::mp4)   RsaPublicKey (edash_packager::media)   TsSectionPat (edash_packager::media::mp2t)   
AudioTimestampHelper (edash_packager::media)   ElementaryStreamDescriptor (edash_packager::media::mp4)   MediaInformation (edash_packager::media::mp4)   RsaRequestSigner (edash_packager::media)   TsSectionPes (edash_packager::media::mp2t)   
AVCDecoderConfiguration (edash_packager::media)   EncryptingFragmenter (edash_packager::media::mp4)   MediaParser (edash_packager::media)   
  S  
-
TsSectionPmt (edash_packager::media::mp2t)   
DecodingTime (edash_packager::media::mp4)   KeyRotationFragmenter (edash_packager::media::mp4)   ProgressListener (edash_packager::media)   TrackExtends (edash_packager::media::mp4)   
DecodingTimeIterator (edash_packager::media::mp4)   KeySource (edash_packager::media)   ProtectionSchemeInfo (edash_packager::media::mp4)   TrackFragment (edash_packager::media::mp4)   
AACAudioSpecificConfig (edash_packager::media::mp4)   DecodingTimeToSample (edash_packager::media::mp4)   
  L  
+
ProtectionSystemSpecificHeader (edash_packager::media::mp4)   TrackFragmentDecodeTime (edash_packager::media::mp4)   
AdaptationSet (edash_packager)   DecryptConfig (edash_packager::media)   
  R  
+
TrackFragmentHeader (edash_packager::media::mp4)   
AdaptationSetXmlNode (edash_packager::xml)   DecryptorSource (edash_packager::media)   LibcryptoThreading (edash_packager::media)   TrackFragmentRun (edash_packager::media::mp4)   
AdtsHeader (edash_packager::media::mp2t)   Demuxer (edash_packager::media)   LocalFile (edash_packager::media)   Representation (edash_packager)   TrackHeader (edash_packager::media::mp4)   
AesCbcCtsDecryptor (edash_packager::media)   DemuxStreamIdMediaSample (edash_packager::media::wvm)   
  M  
+
RepresentationBaseXmlNode (edash_packager::xml)   TrackRunIterator (edash_packager::media::mp4)   
AesCbcCtsEncryptor (edash_packager::media)   
  E  
+
RepresentationStateChangeListener (edash_packager)   TracksBuilder (edash_packager::media)   
AesCbcPkcs5Decryptor (edash_packager::media)   Media (edash_packager::media::mp4)   RepresentationXmlNode (edash_packager::xml)   TsPacket (edash_packager::media::mp2t)   
AesCbcPkcs5Encryptor (edash_packager::media)   Edit (edash_packager::media::mp4)   MediaData (edash_packager::media::mp4)   RequestSigner (edash_packager::media)   TsSection (edash_packager::media::mp2t)   
AesCtrEncryptor (edash_packager::media)   EditList (edash_packager::media::mp4)   MediaHeader (edash_packager::media::mp4)   RsaPrivateKey (edash_packager::media)   TsSectionPat (edash_packager::media::mp2t)   
AesRequestSigner (edash_packager::media)   EditListEntry (edash_packager::media::mp4)   MediaInformation (edash_packager::media::mp4)   RsaPublicKey (edash_packager::media)   TsSectionPes (edash_packager::media::mp2t)   
AudioSampleEntry (edash_packager::media::mp4)   Element (edash_packager)   MediaParser (edash_packager::media)   RsaRequestSigner (edash_packager::media)   TsSectionPmt (edash_packager::media::mp2t)   
AudioStreamInfo (edash_packager::media)   ElementaryStreamDescriptor (edash_packager::media::mp4)   MediaSample (edash_packager::media)   
  S  
+
TsSectionPsi (edash_packager::media::mp2t)   
AudioTimestampHelper (edash_packager::media)   EncryptingFragmenter (edash_packager::media::mp4)   MediaStream (edash_packager::media)   
  U  
+
AVCDecoderConfiguration (edash_packager::media)   EncryptionKey (edash_packager::media)   MockAdaptationSet (edash_packager)   SampleAuxiliaryInformationOffset (edash_packager::media::mp4)   
  B  
-
EncryptionKey (edash_packager::media)   MediaSample (edash_packager::media)   TsSectionPsi (edash_packager::media::mp2t)   
ESDescriptor (edash_packager::media::mp4)   MediaStream (edash_packager::media)   SampleAuxiliaryInformationOffset (edash_packager::media::mp4)   
  U  
+
ESDescriptor (edash_packager::media::mp4)   MockMpdBuilder (edash_packager)   SampleAuxiliaryInformationSize (edash_packager::media::mp4)   UdpFile (edash_packager::media)   
EsParser (edash_packager::media::mp2t)   MockMpdNotifier (edash_packager)   SampleDescription (edash_packager::media::mp4)   
  V  
BandwidthEstimator   EsParser (edash_packager::media::mp2t)   MockAdaptationSet (edash_packager)   SampleAuxiliaryInformationSize (edash_packager::media::mp4)   
BitReader (edash_packager::media)   EsParserAdts (edash_packager::media::mp2t)   MockMpdBuilder (edash_packager)   SampleDescription (edash_packager::media::mp4)   UdpFile (edash_packager::media)   
Box (edash_packager::media::mp4)   EsParserH264 (edash_packager::media::mp2t)   MockMpdNotifier (edash_packager)   SampleGroupDescription (edash_packager::media::mp4)   
  V  
+
BandwidthEstimator   EsParserAdts (edash_packager::media::mp2t)   MockRepresentation (edash_packager)   SampleGroupDescription (edash_packager::media::mp4)   
BitReader (edash_packager::media)   EsParserH264 (edash_packager::media::mp2t)   Movie (edash_packager::media::mp4)   SampleSize (edash_packager::media::mp4)   VideoMediaHeader (edash_packager::media::mp4)   
Box (edash_packager::media::mp4)   
  F  
+
MovieExtends (edash_packager::media::mp4)   SampleTable (edash_packager::media::mp4)   VideoSampleEntry (edash_packager::media::mp4)   
BoxBuffer (edash_packager::media::mp4)   MovieExtendsHeader (edash_packager::media::mp4)   SampleToChunk (edash_packager::media::mp4)   VideoStreamInfo (edash_packager::media)   
BoxReader (edash_packager::media::mp4)   File (edash_packager::media)   MovieFragment (edash_packager::media::mp4)   SampleToGroup (edash_packager::media::mp4)   VideoStreamInfoParameters (edash_packager::media)   
BufferReader (edash_packager::media)   FileCloser (edash_packager::media)   MovieFragmentHeader (edash_packager::media::mp4)   SampleToGroupEntry (edash_packager::media::mp4)   VodMediaInfoDumpMuxerListener (edash_packager::media)   
BufferWriter (edash_packager::media)   FileType (edash_packager::media::mp4)   MovieHeader (edash_packager::media::mp4)   SchemeInfo (edash_packager::media::mp4)   VPCodecConfiguration (edash_packager::media)   
ByteQueue (edash_packager::media)   Fragmenter (edash_packager::media::mp4)   Mp2tMediaParser (edash_packager::media::mp2t)   SchemeType (edash_packager::media::mp4)   
  W  
BoxBuffer (edash_packager::media::mp4)   
  F  
-
MockRepresentation (edash_packager)   SampleSize (edash_packager::media::mp4)   
BoxReader (edash_packager::media::mp4)   Movie (edash_packager::media::mp4)   SampleTable (edash_packager::media::mp4)   VideoMediaHeader (edash_packager::media::mp4)   
BufferReader (edash_packager::media)   File (edash_packager::media)   MovieExtends (edash_packager::media::mp4)   SampleToChunk (edash_packager::media::mp4)   VideoSampleEntry (edash_packager::media::mp4)   
BufferWriter (edash_packager::media)   FileCloser (edash_packager::media)   MovieExtendsHeader (edash_packager::media::mp4)   SampleToGroup (edash_packager::media::mp4)   VideoStreamInfo (edash_packager::media)   
ByteQueue (edash_packager::media)   FileType (edash_packager::media::mp4)   MovieFragment (edash_packager::media::mp4)   SampleToGroupEntry (edash_packager::media::mp4)   VideoStreamInfoParameters (edash_packager::media)   
  C  
-
Fragmenter (edash_packager::media::mp4)   MovieFragmentHeader (edash_packager::media::mp4)   SchemeInfo (edash_packager::media::mp4)   VodMediaInfoDumpMuxerListener (edash_packager::media)   
FrameCENCInfo (edash_packager::media::mp4)   MovieHeader (edash_packager::media::mp4)   SchemeType (edash_packager::media::mp4)   VPCodecConfiguration (edash_packager::media)   
CencSampleEncryptionInfoEntry (edash_packager::media::mp4)   FullBox (edash_packager::media::mp4)   Mp2tMediaParser (edash_packager::media::mp2t)   ScopedXmlPtr (edash_packager::xml)   
  W  
-
ChunkInfo (edash_packager::media::mp4)   
  H  
-
MP4MediaParser (edash_packager::media::mp4)   Segmenter (edash_packager::media::mp4)   
ChunkInfoIterator (edash_packager::media::mp4)   MP4Muxer (edash_packager::media::mp4)   SegmentIndex (edash_packager::media::mp4)   WebMAudioClient (edash_packager::media)   
ChunkLargeOffset (edash_packager::media::mp4)   H264BitReader (edash_packager::media)   MpdBuilder (edash_packager)   SegmentInfo (edash_packager)   WebMClusterParser (edash_packager::media)   
ChunkOffset (edash_packager::media::mp4)   H264ByteToUnitStreamConverter (edash_packager::media)   MpdNotifier (edash_packager)   SegmentReference (edash_packager::media::mp4)   WebMContentEncodingsClient (edash_packager::media)   
ClosureThread (edash_packager::media)   H264DecRefPicMarking (edash_packager::media)   MpdNotifierFactory (edash_packager)   SegmentType (edash_packager::media::mp4)   WebMInfoParser (edash_packager::media)   
Cluster (edash_packager::media)   H264ModificationOfPicNum (edash_packager::media)   MpdNotifyMuxerListener (edash_packager::media)   SimpleMpdNotifier (edash_packager)   WebMListParser (edash_packager::media)   
ClusterBuilder (edash_packager::media)   H264NALU (edash_packager::media)   MpdOptions (edash_packager)   SingleSegmentSegmenter (edash_packager::media::mp4)   WebMMediaParser (edash_packager::media)   
CodecConfigurationRecord (edash_packager::media::mp4)   H264Parser (edash_packager::media)   MpdWriter (edash_packager)   SoundMediaHeader (edash_packager::media::mp4)   WebMParserClient (edash_packager::media)   
CompactSampleSize (edash_packager::media::mp4)   H264PPS (edash_packager::media)   MultiSegmentSegmenter (edash_packager::media::mp4)   Status (edash_packager::media)   WebMTracksParser (edash_packager::media)   
CompositionOffset (edash_packager::media::mp4)   H264SEIMessage (edash_packager::media)   Muxer (edash_packager::media)   StreamDescriptor (edash_packager::media)   WebMVideoClient (edash_packager::media)   
CompositionOffsetIterator (edash_packager::media::mp4)   H264SEIRecoveryPoint (edash_packager::media)   MuxerListener (edash_packager::media)   StreamDescriptorCompareFn (edash_packager::media)   WebMWebVTTParser (edash_packager::media)   
CompositionTimeToSample (edash_packager::media::mp4)   H264SliceHeader (edash_packager::media)   MuxerOptions (edash_packager::media)   StreamInfo (edash_packager::media)   WidevineKeySource (edash_packager::media)   
ContentEncoding (edash_packager::media)   H264SPS (edash_packager::media)   
  O  
-
SubsampleEntry (edash_packager::media)   WvmMediaParser (edash_packager::media::wvm)   
ContentProtectionElement (edash_packager)   H264WeightingFactors (edash_packager::media)   SyncSample (edash_packager::media::mp4)   
  X  
+
FrameCENCInfo (edash_packager::media::mp4)   MP4MediaParser (edash_packager::media::mp4)   ScopedXmlPtr (edash_packager::xml)   
FullBox (edash_packager::media::mp4)   MP4Muxer (edash_packager::media::mp4)   Segmenter (edash_packager::media::mp4)   WebMAudioClient (edash_packager::media)   
CencSampleEncryptionInfoEntry (edash_packager::media::mp4)   
  H  
+
MpdBuilder (edash_packager)   SegmentIndex (edash_packager::media::mp4)   WebMClusterParser (edash_packager::media)   
ChunkInfo (edash_packager::media::mp4)   MpdNotifier (edash_packager)   SegmentInfo (edash_packager)   WebMContentEncodingsClient (edash_packager::media)   
ChunkInfoIterator (edash_packager::media::mp4)   H264BitReader (edash_packager::media)   MpdNotifierFactory (edash_packager)   SegmentReference (edash_packager::media::mp4)   WebMInfoParser (edash_packager::media)   
ChunkLargeOffset (edash_packager::media::mp4)   H264ByteToUnitStreamConverter (edash_packager::media)   MpdNotifyMuxerListener (edash_packager::media)   SegmentType (edash_packager::media::mp4)   WebMListParser (edash_packager::media)   
ChunkOffset (edash_packager::media::mp4)   H264DecRefPicMarking (edash_packager::media)   MpdOptions (edash_packager)   SimpleMpdNotifier (edash_packager)   WebMMediaParser (edash_packager::media)   
ClosureThread (edash_packager::media)   H264ModificationOfPicNum (edash_packager::media)   MpdWriter (edash_packager)   SingleSegmentSegmenter (edash_packager::media::mp4)   WebMParserClient (edash_packager::media)   
Cluster (edash_packager::media)   H264NALU (edash_packager::media)   MultiSegmentSegmenter (edash_packager::media::mp4)   SoundMediaHeader (edash_packager::media::mp4)   WebMTracksParser (edash_packager::media)   
ClusterBuilder (edash_packager::media)   H264Parser (edash_packager::media)   Muxer (edash_packager::media)   Status (edash_packager::media)   WebMVideoClient (edash_packager::media)   
CodecConfigurationRecord (edash_packager::media::mp4)   H264PPS (edash_packager::media)   MuxerListener (edash_packager::media)   StreamDescriptor (edash_packager::media)   WebMWebVTTParser (edash_packager::media)   
CompactSampleSize (edash_packager::media::mp4)   H264SEIMessage (edash_packager::media)   MuxerOptions (edash_packager::media)   StreamDescriptorCompareFn (edash_packager::media)   WidevineKeySource (edash_packager::media)   
CompositionOffset (edash_packager::media::mp4)   H264SEIRecoveryPoint (edash_packager::media)   
  O  
+
StreamInfo (edash_packager::media)   WvmMediaParser (edash_packager::media::wvm)   
CompositionOffsetIterator (edash_packager::media::mp4)   H264SliceHeader (edash_packager::media)   SubsampleEntry (edash_packager::media)   
  X  
CompositionTimeToSample (edash_packager::media::mp4)   H264SPS (edash_packager::media)   OffsetByteQueue (edash_packager::media)   SyncSample (edash_packager::media::mp4)   
ContentEncoding (edash_packager::media)   H264WeightingFactors (edash_packager::media)   OnMediaEndParameters (edash_packager::media)   SyncSampleIterator (edash_packager::media::mp4)   XmlDeleter (edash_packager::xml)   
ContentProtectionElement (edash_packager)   HandlerReference (edash_packager::media::mp4)   OpusPacket (edash_packager::media)   
  T  
+
XmlNode (edash_packager::xml)   
  D  
-
HandlerReference (edash_packager::media::mp4)   OffsetByteQueue (edash_packager::media)   SyncSampleIterator (edash_packager::media::mp4)   
HttpKeyFetcher (edash_packager::media)   OnMediaEndParameters (edash_packager::media)   
  T  
-
XmlDeleter (edash_packager::xml)   
HEVCDecoderConfiguration (edash_packager::media)   OriginalFormat (edash_packager::media::mp4)   
HttpKeyFetcher (edash_packager::media)   
  P  
+
TextTrack (edash_packager::media)   
DashIopMpdNotifier (edash_packager)   
  I  
-
OpusPacket (edash_packager::media)   XmlNode (edash_packager::xml)   
DataEntryUrl (edash_packager::media::mp4)   OriginalFormat (edash_packager::media::mp4)   TextTrack (edash_packager::media)   
DataInformation (edash_packager::media::mp4)   IoCache (edash_packager::media)   
  P  
TextTrackConfig (edash_packager::media)   
DataEntryUrl (edash_packager::media::mp4)   PixelAspectRatioBox (edash_packager::media::mp4)   ThreadedIoFile (edash_packager::media)   
DataInformation (edash_packager::media::mp4)   IoCache (edash_packager::media)   PrevSampleData (edash_packager::media::wvm)   Track (edash_packager::media::mp4)   
DataReference (edash_packager::media::mp4)   
  K  
+
ProducerConsumerQueue (edash_packager::media)   TrackEncryption (edash_packager::media::mp4)   
PixelAspectRatioBox (edash_packager::media::mp4)   
KeyFetcher (edash_packager::media)   
A | B | C | D | E | F | H | I | K | L | M | O | P | R | S | T | U | V | W | X
diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index 073c71f453..3ee038c780 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 7ffed0118f..49005413fc 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 51fd9f8a87..a58b8f7f1c 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 7d7e5f8558..b99d9e999d 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 f116a871be..67899767c1 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 5ae990f6f9..7d3cd70f7e 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 87484c4269..d79fd9dddf 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 3b0ca770ac..0ebb114b96 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 1b91e947ab..f522f100b1 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 0c8c7ead86..a78d15c7ca 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 7c5f94a9a5..eb31cf83b8 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 f0ca5251bb..7832927487 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 15549ae72b..a43f12b91d 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 06b6c6c449..091d2b8a39 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 fe67869919..5302ce0821 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -121,92 +121,95 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
32  FOURCC_FRMA = 0x66726d61,
33  FOURCC_FTYP = 0x66747970,
34  FOURCC_HDLR = 0x68646c72,
-
35  FOURCC_HINT = 0x68696e74,
-
36  FOURCC_ISO6 = 0x69736f36,
-
37  FOURCC_IODS = 0x696f6473,
-
38  FOURCC_MDAT = 0x6d646174,
-
39  FOURCC_MDHD = 0x6d646864,
-
40  FOURCC_MDIA = 0x6d646961,
-
41  FOURCC_MECO = 0x6d65636f,
-
42  FOURCC_MEHD = 0x6d656864,
-
43  FOURCC_META = 0x6d657461,
-
44  FOURCC_MFHD = 0x6d666864,
-
45  FOURCC_MFRA = 0x6d667261,
-
46  FOURCC_MINF = 0x6d696e66,
-
47  FOURCC_MOOF = 0x6d6f6f66,
-
48  FOURCC_MOOV = 0x6d6f6f76,
-
49  FOURCC_MP41 = 0x6d703431,
-
50  FOURCC_MP4A = 0x6d703461,
-
51  FOURCC_MP4V = 0x6d703476,
-
52  FOURCC_MVEX = 0x6d766578,
-
53  FOURCC_MVHD = 0x6d766864,
-
54  FOURCC_PASP = 0x70617370,
-
55  FOURCC_PDIN = 0x7064696e,
-
56  FOURCC_PRFT = 0x70726674,
-
57  FOURCC_PSSH = 0x70737368,
-
58  FOURCC_SAIO = 0x7361696f,
-
59  FOURCC_SAIZ = 0x7361697a,
-
60  FOURCC_SBGP = 0x73626770,
-
61  FOURCC_SCHI = 0x73636869,
-
62  FOURCC_SCHM = 0x7363686d,
-
63  FOURCC_SDTP = 0x73647470,
-
64  FOURCC_SEIG = 0x73656967,
-
65  FOURCC_SGPD = 0x73677064,
-
66  FOURCC_SIDX = 0x73696478,
-
67  FOURCC_SINF = 0x73696e66,
-
68  FOURCC_SKIP = 0x736b6970,
-
69  FOURCC_SMHD = 0x736d6864,
-
70  FOURCC_SOUN = 0x736f756e,
-
71  FOURCC_SSIX = 0x73736978,
-
72  FOURCC_STBL = 0x7374626c,
-
73  FOURCC_STCO = 0x7374636f,
-
74  FOURCC_STSC = 0x73747363,
-
75  FOURCC_STSD = 0x73747364,
-
76  FOURCC_STSS = 0x73747373,
-
77  FOURCC_STSZ = 0x7374737a,
-
78  FOURCC_STTS = 0x73747473,
-
79  FOURCC_STYP = 0x73747970,
-
80  FOURCC_STZ2 = 0x73747a32,
-
81  FOURCC_TENC = 0x74656e63,
-
82  FOURCC_TFDT = 0x74666474,
-
83  FOURCC_TFHD = 0x74666864,
-
84  FOURCC_TKHD = 0x746b6864,
-
85  FOURCC_TRAF = 0x74726166,
-
86  FOURCC_TRAK = 0x7472616b,
-
87  FOURCC_TREX = 0x74726578,
-
88  FOURCC_TRUN = 0x7472756e,
-
89  FOURCC_UDTA = 0x75647461,
-
90  FOURCC_URL = 0x75726c20,
-
91  FOURCC_URN = 0x75726e20,
-
92  FOURCC_UUID = 0x75756964,
-
93  FOURCC_VIDE = 0x76696465,
-
94  FOURCC_VMHD = 0x766d6864,
-
95  FOURCC_VP08 = 0x76703038,
-
96  FOURCC_VP09 = 0x76703039,
-
97  FOURCC_VP10 = 0x76703130,
-
98  FOURCC_VPCC = 0x76706343,
-
99  FOURCC_WIDE = 0x77696465,
-
100 };
-
101 
-
102 const inline std::string FourCCToString(FourCC fourcc) {
-
103  char buf[5];
-
104  buf[0] = (fourcc >> 24) & 0xff;
-
105  buf[1] = (fourcc >> 16) & 0xff;
-
106  buf[2] = (fourcc >> 8) & 0xff;
-
107  buf[3] = (fourcc) & 0xff;
-
108  buf[4] = 0;
-
109  return std::string(buf);
-
110 }
-
111 
-
112 } // namespace mp4
-
113 } // namespace media
-
114 } // namespace edash_packager
-
115 
-
116 #endif // MEDIA_FORMATS_MP4_FOURCCS_H_
+
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_
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 2b20ea097b..eac502b769 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 @@ -227,7 +227,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 2ca82474f6..ad6f7421ee 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 7e72c34e69..364faa5c55 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 9061aea7f6..12c8e47f4d 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 9084b80d8d..1c3477ea32 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 eb32c39e18..ada442cf57 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 2080618e33..b45ae0bf6e 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 42ea2d5192..8f3837dc4c 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1469 of file box_definitions.cc.

+

Definition at line 1480 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 ea1912efa4..90fef9a047 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 a6475cd7bf..c59e9a0bd4 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 4f947ac41c..f54638ee75 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 b5974d884e..f7f4ffb5f1 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 b6920f0ee2..ed5da30e54 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 f03652da68..5e29b64724 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 60eb5e53ba..8038c6c281 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 1fcb93c559..65e47b5a45 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 c8ef4970d2..d41847235e 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 6f6f607d8d..eb3f1483ab 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 9bf4dbee67..28a5fce452 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 cc42b7aa4a..5840c646f1 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 5bdeab2330..6c7f5e8e07 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 426600bd5f..3f6d185337 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 f23ab2603a..a1d311a900 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 f4a6df7fae..4e0256f182 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 9b92c4e40a..9b80439e3a 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 c0e796c5dd..ba0d4290a5 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 e0ae592e39..3915428234 100644 --- a/docs/d1/d08/segmenter_8cc_source.html +++ b/docs/d1/d08/segmenter_8cc_source.html @@ -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 01804d18b9..53bd177b18 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 c3001a86a5..7aac65ab64 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 af232c2f1c..bcf347f9d0 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 0ed81a3738..ec906bdaa3 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 adba3d60e1..baa96d1c16 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 caecb87cf5..b1028d0364 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 4d279fad68..7c9d712ef6 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 231cc30d4d..544cdf41d4 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 @@ -164,7 +164,7 @@ Additional Inherited Members

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

-

Definition at line 898 of file box_definitions.cc.

+

Definition at line 899 of file box_definitions.cc.

@@ -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 1c7ca7e10d..3c0a348eab 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 1d6a414e9f..8bdbefa162 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 94999315a0..fcc15487dd 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 a738c266bc..b792b2f18a 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index d0fd411403..510e9b5c94 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 da4011d085..47e15d36f8 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 59070bb141..da46652e1d 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 a548c2cb36..bfdf967d40 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 7165ffc90c..9977f91e8c 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 1697 of file box_definitions.cc.

+

Definition at line 1710 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 47655b0c17..81c5efd781 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 4fcd345a51..1c62500791 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 @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index 00ccf1bfc4..e5151a0a22 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 6ce05f758c..3c5fe5960d 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 0bf30875bf..dc6a275d69 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 a3c6326130..6c61d910f9 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -280,12 +280,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
scoped_refptr< VideoStreamInfo > GetVideoStreamInfo(int64_t track_num, const std::string &codec_id, const std::vector< uint8_t > &codec_private, bool is_encrypted)
std::string GetCodecString(VideoCodec codec) const
void Reset()
Reset this object's state so it can process a new video track element.
-
Holds video stream information.
+
Holds video stream information.
Class for parsing or writing VP codec configuration data.
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 a45ca32730..20ba2c25fc 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 da6988024a..d75d282bf4 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 @@ -181,7 +181,7 @@ Additional Inherited Members

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

-

Definition at line 1921 of file box_definitions.cc.

+

Definition at line 1934 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 f87e3c8418..06da9e23aa 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 c6c599adf9..c93c2c043d 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 e702357ae4..3a17b3c7af 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 38d72a9d75..3a95ad8914 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -211,7 +211,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 77a437ae24..56c12d587e 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 cc63e33b18..f62da317e9 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 a684d24112..bef91263e9 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 @@ -114,7 +114,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 f6852120d3..541f3a8160 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 @@ -164,7 +164,7 @@ Additional Inherited Members

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

-

Definition at line 916 of file box_definitions.cc.

+

Definition at line 917 of file box_definitions.cc.

@@ -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 4f5cce3c85..d957536f06 100644 --- a/docs/d1/dcb/encrypting__fragmenter_8h_source.html +++ b/docs/d1/dcb/encrypting__fragmenter_8h_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 7cb518794a..1c341b4034 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 @@ -170,7 +170,7 @@ Additional Inherited Members

Reimplemented in edash_packager::media::mp4::SegmentType.

-

Definition at line 88 of file box_definitions.cc.

+

Definition at line 89 of file box_definitions.cc.

@@ -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 aa9ff55639..542f273aa2 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 4f57bb23ea..1f36323748 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/de2/composition__offset__iterator_8cc_source.html b/docs/d1/de2/composition__offset__iterator_8cc_source.html index 2f6deb00eb..2e5f82cb74 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df0/aes__encryptor_8h_source.html b/docs/d1/df0/aes__encryptor_8h_source.html index 10b076c633..3b6e65b58c 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 f3925809b6..25eec15dd7 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 292e866bcd..b5f1a8dd09 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 3182a91009..c7139142a4 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 b72c4fc40c..074f60289b 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 186f78c731..855bec1e51 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 e56b0f17cd..ad361a5e4f 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -272,7 +272,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 2c36c78b40..dd66126f64 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -143,7 +143,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 7d87fb874d..d7b0ae6305 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 @@ -173,7 +173,7 @@ Additional Inherited Members

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

-

Definition at line 1778 of file box_definitions.cc.

+

Definition at line 1791 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 e20549f8c7..39e107d6d4 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 1faa0db302..b3418e8f62 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 6f40b83f76..e5c4cd3e59 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 208e8f95eb..bbf6678f5e 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 0f7b08939a..c4040516b3 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -181,7 +181,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 a5aff4bc7f..19740e09af 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 ebe4319b11..167187d9a0 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 190 of file box_definitions.cc.

+

Definition at line 191 of file box_definitions.cc.

@@ -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 ad28360e21..8e0c1c3f00 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 b45140169b..9bbea5fc2e 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 9958fc2697..aef91b216d 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 0d1c4b5e45..8c49fc531b 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 869995e86b..545bef8fc4 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 @@ -161,7 +161,7 @@ Additional Inherited Members

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

-

Definition at line 277 of file box_definitions.cc.

+

Definition at line 278 of file box_definitions.cc.

@@ -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 1299af0c46..cc030e73a2 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -241,7 +241,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 6b634ca427..448c60041b 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 4f665a5773..51caec4994 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 d3d68eabca..cb089565b1 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 751289030b..d008d9d196 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 f2e2c222b7..9c929c8448 100644 --- a/docs/d2/da6/threaded__io__file_8h_source.html +++ b/docs/d2/da6/threaded__io__file_8h_source.html @@ -169,7 +169,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 27f3a6034c..7ee5d9c818 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 c5209e0d14..8b9cdb6277 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 1426d3b1ee..31f6527b7f 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -438,7 +438,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 439b36b4da..13dda2caa6 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 7ac2ed474f..1ae2f520d7 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 be1280236d..ed433ef9bc 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 5c3e7e7c14..2a9a499a63 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 657de3f6fd..e094ae6ce4 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/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html index d033857cbc..29db914558 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 f4e58c4e82..eeea3e9c1d 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 266e8014e7..cbf126d0f9 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 354d78d6df..674da6162b 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 eb38e30725..69bcd91de0 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 @@ -181,7 +181,7 @@ Additional Inherited Members

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

-

Definition at line 1389 of file box_definitions.cc.

+

Definition at line 1400 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 f31f4b0fc7..0b9cf481c0 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 4c7a6a1250..06370246e0 100644 --- a/docs/d3/d37/single__segment__segmenter_8cc_source.html +++ b/docs/d3/d37/single__segment__segmenter_8cc_source.html @@ -329,8 +329,8 @@ 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 bb435b5a92..f89ea167ef 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 be3def679d..a3018fce94 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 1019923c13..1bc676f377 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 5b39856a6e..a3a2ca3e1f 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 65774185f4..c9a07fe4d1 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 d7496f1ba9..2f78f7f06b 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 9dd7c36675..1dab5a49eb 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 e36202c411..6d9e0478c9 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 444 of file box_definitions.cc.

+

Definition at line 445 of file box_definitions.cc.

@@ -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 0573460fb7..e929fd1254 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 eb528dc228..278970add6 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 @@ -179,7 +179,7 @@ Additional Inherited Members

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

-

Definition at line 767 of file box_definitions.cc.

+

Definition at line 768 of file box_definitions.cc.

@@ -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 d484a83368..19cf70f0d3 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 b13b84e955..6a7aa22ff3 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 3ee0e4db67..e28e640c4e 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 3f8f8f70f3..8e2d028c0d 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 4f8f871227..2190ef6acf 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 b73e12c75a..40f8e4b244 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 e7f3f47fa1..0fab587b30 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 f79c241b9b..cafc7075e6 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 c12c911462..4231d0e85a 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 873 of file box_definitions.cc.

+

Definition at line 874 of file box_definitions.cc.

@@ -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 fbeb730a98..112f795550 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 3dfd4eaeb4..92c9318ea1 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 4ac8010f17..0ebc5ebf7b 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 d86ec42171..6904fcba01 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 7577c3a212..8ec93f4f47 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 c36ec6682c..ffbb6e729e 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 @@ -167,7 +167,7 @@ Additional Inherited Members

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

-

Definition at line 1343 of file box_definitions.cc.

+

Definition at line 1354 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 2c0acb9dbe..2911c68523 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 0f1d3745ff..74ad6cfccf 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 1343c0f530..0452f54555 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 5350413b79..6c95d4e246 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 b624842754..045cdb7959 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 3cf9b2210e..3820715719 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 2ac3c521b9..179ff8d10e 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 e22f6437c4..d65326193c 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 8347874923..62769eb5a9 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 4aceade0ba..9741a74240 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 9cc076b112..4b20bd771a 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/d71/structedash__packager_1_1xml_1_1ScopedXmlPtr-members.html b/docs/d4/d71/structedash__packager_1_1xml_1_1ScopedXmlPtr-members.html index 467dc837fd..88e67fc2bd 100644 --- a/docs/d4/d71/structedash__packager_1_1xml_1_1ScopedXmlPtr-members.html +++ b/docs/d4/d71/structedash__packager_1_1xml_1_1ScopedXmlPtr-members.html @@ -97,7 +97,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 b68c70b6a8..ffb3c32401 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 3681351802..9cd05bcab8 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 6d9aaa69a2..47fb40aa03 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 @@ -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 ee518694f7..d5e0133171 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 986da8b73a..6e9ecfe8cf 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 c0ed514313..d946306b1d 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 b793e62266..be6af60cea 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 7953a08b21..98283b9de4 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 59b74aeb08..f7b57cdb14 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 b74f179848..f84f71b61c 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 e823270713..00420d780c 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 @@ -172,7 +172,7 @@ Additional Inherited Members

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

-

Definition at line 225 of file box_definitions.cc.

+

Definition at line 226 of file box_definitions.cc.

@@ -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 e694d3d7eb..4e83de8571 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 12c202cd17..bf8e6112d5 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 @@ -143,7 +143,7 @@ uint64_t earliest_presenta diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index 17a0d703db..af9eae2bad 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 ce0a81f2e2..00651c6373 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 7e0dcc6d79..550592b35e 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 @@ -182,7 +182,7 @@ Additional Inherited Members

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

-

Definition at line 1831 of file box_definitions.cc.

+

Definition at line 1844 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 5de46cdc65..6fdf448252 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 d0915302f9..3dd88bdf03 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 60894fd2ef..ca0f44420d 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 21d6657128..fd5d200823 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 582decf645..49e65ca737 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 730a2a64e2..8d36684219 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 cb5d25e2ff..5bd19697fe 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 706830cdae..5610f22786 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 5bf7dc64ea..26d824f495 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 58dd7eb6f2..2bfb311943 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 a82b0633fa..336609e20f 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 26368bedd5..c416aeecbc 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 6e2ef5c1a3..341aaffc0d 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 a84537354c..63d412f966 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 9509d28371..5959e69c7b 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 new file mode 100644 index 0000000000..86aec49797 --- /dev/null +++ b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html @@ -0,0 +1,240 @@ + + + + + + +DASH Media Packaging SDK: media/filters/hevc_decoder_configuration.cc Source File + + + + + + + + + +
+
+ + + + + + +
+
DASH Media Packaging SDK +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
hevc_decoder_configuration.cc
+
+
+
1 // Copyright 2015 Google Inc. All rights reserved.
+
2 //
+
3 // Use of this source code is governed by a BSD-style
+
4 // license that can be found in the LICENSE file or at
+
5 // https://developers.google.com/open-source/licenses/bsd
+
6 
+
7 #include "packager/media/filters/hevc_decoder_configuration.h"
+
8 
+
9 #include "packager/base/stl_util.h"
+
10 #include "packager/base/strings/string_number_conversions.h"
+
11 #include "packager/base/strings/string_util.h"
+
12 #include "packager/media/base/buffer_reader.h"
+
13 #include "packager/media/formats/mp4/rcheck.h"
+
14 
+
15 namespace edash_packager {
+
16 namespace media {
+
17 
+
18 namespace {
+
19 
+
20 // ISO/IEC 14496-15:2014 Annex E.
+
21 std::string GeneralProfileSpaceAsString(uint8_t general_profile_space) {
+
22  switch (general_profile_space) {
+
23  case 0:
+
24  return "";
+
25  case 1:
+
26  return "A";
+
27  case 2:
+
28  return "B";
+
29  case 3:
+
30  return "C";
+
31  default:
+
32  LOG(WARNING) << "Unexpected general_profile_space "
+
33  << general_profile_space;
+
34  return "";
+
35  }
+
36 }
+
37 
+
38 std::string TrimLeadingZeros(const std::string& str) {
+
39  DCHECK_GT(str.size(), 0u);
+
40  for (size_t i = 0; i < str.size(); ++i) {
+
41  if (str[i] == '0') continue;
+
42  return str.substr(i);
+
43  }
+
44  return "0";
+
45 }
+
46 
+
47 // Encode the 32 bits input, but in reverse bit order, i.e. bit [31] as the most
+
48 // significant bit, followed by, bit [30], and down to bit [0] as the least
+
49 // significant bit, where bits [i] for i in the range of 0 to 31, inclusive, are
+
50 // specified in ISO/IEC 23008‐2, encoded in hexadecimal (leading zeroes may be
+
51 // omitted).
+
52 std::string ReverseBitsAndHexEncode(uint32_t x) {
+
53  x = ((x & 0x55555555) << 1) | ((x & 0xAAAAAAAA) >> 1);
+
54  x = ((x & 0x33333333) << 2) | ((x & 0xCCCCCCCC) >> 2);
+
55  x = ((x & 0x0F0F0F0F) << 4) | ((x & 0xF0F0F0F0) >> 4);
+
56  const uint8_t bytes[] = {static_cast<uint8_t>(x & 0xFF),
+
57  static_cast<uint8_t>((x >> 8) & 0xFF),
+
58  static_cast<uint8_t>((x >> 16) & 0xFF),
+
59  static_cast<uint8_t>((x >> 24) & 0xFF)};
+
60  return TrimLeadingZeros(base::HexEncode(bytes, arraysize(bytes)));
+
61 }
+
62 
+
63 std::string CodecAsString(VideoCodec codec) {
+
64  switch (codec) {
+
65  case kCodecHEV1:
+
66  return "hev1";
+
67  case kCodecHVC1:
+
68  return "hvc1";
+
69  default:
+
70  LOG(WARNING) << "Unknown codec: " << codec;
+
71  return std::string();
+
72  }
+
73 }
+
74 
+
75 } // namespace
+
76 
+
77 HEVCDecoderConfiguration::HEVCDecoderConfiguration()
+
78  : version_(0),
+
79  general_profile_space_(0),
+
80  general_tier_flag_(false),
+
81  general_profile_idc_(0),
+
82  general_profile_compatibility_flags_(0),
+
83  general_level_idc_(0),
+
84  length_size_(0) {}
+
85 
+
86 HEVCDecoderConfiguration::~HEVCDecoderConfiguration() {}
+
87 
+
88 bool HEVCDecoderConfiguration::Parse(const std::vector<uint8_t>& data) {
+
89  BufferReader reader(vector_as_array(&data), data.size());
+
90 
+
91  uint8_t profile_indication = 0;
+
92  uint8_t length_size_minus_one = 0;
+
93  uint8_t num_of_arrays = 0;
+
94  RCHECK(reader.Read1(&version_) && version_ == 1 &&
+
95  reader.Read1(&profile_indication) &&
+
96  reader.Read4(&general_profile_compatibility_flags_) &&
+
97  reader.ReadToVector(&general_constraint_indicator_flags_, 6) &&
+
98  reader.Read1(&general_level_idc_) &&
+
99  reader.SkipBytes(8) && // Skip uninterested fields.
+
100  reader.Read1(&length_size_minus_one) &&
+
101  reader.Read1(&num_of_arrays));
+
102 
+
103  general_profile_space_ = profile_indication >> 6;
+
104  RCHECK(general_profile_space_ <= 3u);
+
105  general_tier_flag_ = ((profile_indication >> 5) & 1) == 1;
+
106  general_profile_idc_ = profile_indication & 0x1f;
+
107 
+
108  length_size_ = (length_size_minus_one & 0x3) + 1;
+
109 
+
110  // TODO(kqyang): Parse SPS to get resolutions.
+
111  return true;
+
112 }
+
113 
+
114 std::string HEVCDecoderConfiguration::GetCodecString(VideoCodec codec) const {
+
115  // ISO/IEC 14496-15:2014 Annex E.
+
116  std::vector<std::string> fields;
+
117  fields.push_back(CodecAsString(codec));
+
118  fields.push_back(GeneralProfileSpaceAsString(general_profile_space_) +
+
119  base::IntToString(general_profile_idc_));
+
120  fields.push_back(
+
121  ReverseBitsAndHexEncode(general_profile_compatibility_flags_));
+
122  fields.push_back((general_tier_flag_ ? "H" : "L") +
+
123  base::IntToString(general_level_idc_));
+
124 
+
125  // Remove trailing bytes that are zero.
+
126  std::vector<uint8_t> constraints = general_constraint_indicator_flags_;
+
127  size_t size = constraints.size();
+
128  for (; size > 0; --size) {
+
129  if (constraints[size - 1] != 0) break;
+
130  }
+
131  constraints.resize(size);
+
132  for (uint8_t constraint : constraints)
+
133  fields.push_back(TrimLeadingZeros(base::HexEncode(&constraint, 1)));
+
134 
+
135  return base::JoinString(fields, ".");
+
136 }
+
137 
+
138 } // namespace media
+
139 } // namespace edash_packager
+ + +
bool Parse(const std::vector< uint8_t > &data)
+
+ + + + 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 6238aec4df..cb200b8e19 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 e263411413..053d8eb3cb 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 120aa7bb0b..12c36ea5ce 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 f6d398dcfa..ddc62af76a 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 b2b81b4004..ba9a229727 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 c7e53134e0..83a8654f8c 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 dbe210a48f..185134f2c7 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 efe6775c40..404230bda5 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 179798b7e5..4202eb73ed 100644 --- a/docs/d5/d73/vp__codec__configuration_8h_source.html +++ b/docs/d5/d73/vp__codec__configuration_8h_source.html @@ -157,7 +157,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 b00382fae8..ee3b174a20 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 c9628fe345..fe5170c4a1 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -747,7 +747,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d89/widevine__key__source_8cc_source.html b/docs/d5/d89/widevine__key__source_8cc_source.html index 465298f78f..a87baf212f 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 5f5c01fdb9..9ccdc8989d 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 cae5a8088e..8da391b6e4 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -374,7 +374,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html index 0bf32f3efd..2a60e5baa6 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 f4ce5603c1..b5be97005a 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 1cfd8ce834..91f5c5cf49 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 7d8b10c5dc..0995047aed 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 dac08b76b7..d3ce59a239 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 12d3d33930..01ec1b970b 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 d8b7cff7f0..6fb41bed65 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 1b46fd05b8..ae42711ad8 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 10f2133751..a8daab442c 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 7a5b5915e4..b7c429daf0 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 2ebef8ef06..c7aab7e992 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 f70ea6db41..583d3e7150 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 cde70c15c4..8a6ae3193b 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 9f272ebb1a..776289f36d 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 b9e6ba8a10..49943157c1 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -280,7 +280,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 78718aa76c..61e1dccc4a 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 487140dcea..42fa6cbcf2 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 0ed6508cf0..1a0e1511ae 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 68587e745d..132e1989e3 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 eafd999134..1292dbe078 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 a387b0e12f..6b4137cac0 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 1f2166610b..147c594805 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 555c093b64..58e5da2363 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 07d470ce1a..9d4c873615 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 27cb64f4da..97ba2bdf7d 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 cd2b3c9fe5..b4f3610b20 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 d73d9d8ad6..b333beb41c 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 f8e71dc15d..f08f6067a0 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -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 570a38ce09..270fe99bfd 100644 --- a/docs/d6/d41/encrypting__fragmenter_8cc_source.html +++ b/docs/d6/d41/encrypting__fragmenter_8cc_source.html @@ -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 61262eb4f6..8d3724bea6 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 f148d3232a..70030ca37c 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 4350e7e289..1126b313d8 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 @@ -161,7 +161,7 @@ Additional Inherited Members

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

-

Definition at line 1267 of file box_definitions.cc.

+

Definition at line 1278 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 new file mode 100644 index 0000000000..947d641765 --- /dev/null +++ b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html @@ -0,0 +1,193 @@ + + + + + + +DASH Media Packaging SDK: edash_packager::media::HEVCDecoderConfiguration Class Reference + + + + + + + + + +
+
+ + + + + + +
+
DASH Media Packaging SDK +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+ +
+
edash_packager::media::HEVCDecoderConfiguration Class Reference
+
+
+ +

Class for parsing HEVC decoder configuration. + More...

+ +

#include <hevc_decoder_configuration.h>

+ + + + + + + + +

+Public Member Functions

bool Parse (const std::vector< uint8_t > &data)
 
std::string GetCodecString (VideoCodec codec) const
 
uint8_t length_size ()
 
+

Detailed Description

+

Class for parsing HEVC decoder configuration.

+ +

Definition at line 21 of file hevc_decoder_configuration.h.

+

Member Function Documentation

+ +
+
+ + + + + + + + +
std::string edash_packager::media::HEVCDecoderConfiguration::GetCodecString (VideoCodec codec) const
+
+
Returns
The codec string.
+ +

Definition at line 114 of file hevc_decoder_configuration.cc.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
uint8_t edash_packager::media::HEVCDecoderConfiguration::length_size ()
+
+inline
+
+
Returns
The size of the NAL unit length field.
+ +

Definition at line 34 of file hevc_decoder_configuration.h.

+ +
+
+ +
+
+ + + + + + + + +
bool edash_packager::media::HEVCDecoderConfiguration::Parse (const std::vector< uint8_t > & data)
+
+

Parses input to extract HEVC decoder configuration data.

+
Returns
false if there is parsing errors.
+ +

Definition at line 88 of file hevc_decoder_configuration.cc.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + + 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 45c3e2a50b..134f7e8ce7 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 a0fba425ea..6b7c1145ab 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1227 of file box_definitions.cc.

+

Definition at line 1238 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 f12270594e..1d09a4f0f7 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 081df8deec..f9a4dd127c 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -136,7 +136,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 946584c0ae..d8eca80f77 100644 --- a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html +++ b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html @@ -217,7 +217,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 c7ad7a71db..fee208d3e9 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 @@ -167,7 +167,7 @@ uint32_t flagsReimplemented from edash_packager::media::mp4::ChunkLargeOffset.

-

Definition at line 656 of file box_definitions.cc.

+

Definition at line 657 of file box_definitions.cc.

@@ -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 c36978081b..02cc35ef85 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 0adcb4e9bc..a4644c3fee 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 cf105970ee..72af10369f 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 7aa5abd21f..6d92bfbe72 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/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html index b55c931acf..da2d0fef2b 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 @@ -164,7 +164,7 @@ Additional Inherited Members

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

-

Definition at line 1415 of file box_definitions.cc.

+

Definition at line 1426 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 2a2b558fb2..5bbd7279cd 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 bebd43d645..4f8de6d0c0 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 f45cd4d8a6..23d0261d4b 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 @@ -114,7 +114,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 eac67a165b..ceed5347c8 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 f029138e37..e8ea840079 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 a4df32b52a..43d322aff7 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 87d1a36d9e..a7729fc841 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 73d94335b1..37a47ac44e 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 ed6dddf7e6..228ccf9ebe 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -515,7 +515,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 dccd0ece0e..869448e131 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 1bedc71279..2bfcac0f4b 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 @@ -119,7 +119,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 4192207dc9..d5386d7c15 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 5716955dbe..a29bf3716a 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 3e453d514b..73d2b943c2 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 9be3cca5d1..04c06e590d 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 ecb29ad702..df4d88434a 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 ec9bae3f6b..fd77cb43a0 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 da7280ecfb..722db75e26 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 73e4dcbb81..adbe22e61f 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 99bcc19855..ac64822e99 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 @@ -171,7 +171,7 @@ Additional Inherited Members

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

-

Definition at line 1449 of file box_definitions.cc.

+

Definition at line 1460 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 eb5dd9be97..ee0ca4ece9 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 79c6a51739..90f729e60a 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 c2da8ac918..c5b1db2c4d 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 c09f4252c9..e88a6fe04d 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 cdb1b18c0d..9f03a6e0a6 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1249 of file box_definitions.cc.

+

Definition at line 1260 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 7eab094a09..d63b9af997 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 9488b1d141..79a92df764 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 062e00646f..236cc444db 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 e5ad707f20..9ab26fafcb 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 @@ -112,7 +112,7 @@ uint32_t sample_delta< diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index b3c3085472..0133f7bac9 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 967cbb51a6..6c3fdc77eb 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 6bf77610b0..9d306fbf0a 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 7fd4e22b64..21dd2837b5 100644 --- a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html +++ b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html @@ -192,7 +192,7 @@ void set_language (con

Detailed Description

Holds video stream information.

-

Definition at line 29 of file video_stream_info.h.

+

Definition at line 31 of file video_stream_info.h.

Constructor & Destructor Documentation

@@ -304,7 +304,7 @@ void set_language (con -

Definition at line 46 of file video_stream_info.cc.

+

Definition at line 50 of file video_stream_info.cc.

@@ -333,7 +333,7 @@ void set_language (con

Implements edash_packager::media::StreamInfo.

-

Definition at line 81 of file video_stream_info.cc.

+

Definition at line 85 of file video_stream_info.cc.

@@ -360,7 +360,7 @@ void set_language (con

Returns the pixel height.

Returns
0 if unknown.
-

Definition at line 64 of file video_stream_info.h.

+

Definition at line 66 of file video_stream_info.h.

@@ -387,7 +387,7 @@ void set_language (con

Returns the pixel width.

Returns
0 if unknown.
-

Definition at line 61 of file video_stream_info.h.

+

Definition at line 63 of file video_stream_info.h.

@@ -415,7 +415,7 @@ void set_language (con

Reimplemented from edash_packager::media::StreamInfo.

-

Definition at line 88 of file video_stream_info.cc.

+

Definition at line 92 of file video_stream_info.cc.

@@ -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 c560055a3f..1856bc55ff 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 8a6d46e61c..281defae3c 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 e3ae2ebffc..5cc3c8f2f2 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 @@ -161,7 +161,7 @@ Additional Inherited Members

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

-

Definition at line 825 of file box_definitions.cc.

+

Definition at line 826 of file box_definitions.cc.

@@ -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 1cf978fca0..cbbb4f4fcd 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 588ac4ef44..1a4fa901e7 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 c19a0f3ad8..926f470641 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 @@ -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 2a1de1df73..57d60c1e4d 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 78695115a6..e719f7f40d 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 fc4e617ccc..af6b3d45d6 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 219da2ef4c..7776473674 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 8b3dca4567..8b05f111c8 100644 --- a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html +++ b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html @@ -207,7 +207,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 4b5d353615..ac3073c5cb 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -104,88 +104,90 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
15 enum VideoCodec {
16  kUnknownVideoCodec = 0,
17  kCodecH264,
-
18  kCodecVC1,
-
19  kCodecMPEG2,
-
20  kCodecMPEG4,
-
21  kCodecTheora,
-
22  kCodecVP8,
-
23  kCodecVP9,
-
24  kCodecVP10,
-
25  kNumVideoCodec
-
26 };
-
27 
-
29 class VideoStreamInfo : public StreamInfo {
-
30  public:
-
34  VideoStreamInfo(int track_id,
-
35  uint32_t time_scale,
-
36  uint64_t duration,
-
37  VideoCodec codec,
-
38  const std::string& codec_string,
-
39  const std::string& language,
-
40  uint16_t width,
-
41  uint16_t height,
-
42  uint32_t pixel_width,
-
43  uint32_t pixel_height,
-
44  int16_t trick_play_rate,
-
45  uint8_t nalu_length_size,
-
46  const uint8_t* extra_data,
-
47  size_t extra_data_size,
-
48  bool is_encrypted);
-
49 
-
52  bool IsValidConfig() const override;
-
53  std::string ToString() const override;
-
55 
-
56  VideoCodec codec() const { return codec_; }
-
57  uint16_t width() const { return width_; }
-
58  uint16_t height() const { return height_; }
-
61  uint32_t pixel_width() const { return pixel_width_; }
-
64  uint32_t pixel_height() const { return pixel_height_; }
-
65  uint8_t nalu_length_size() const { return nalu_length_size_; }
-
66  int16_t trick_play_rate() const { return trick_play_rate_; }
-
67 
-
68  void set_width(uint32_t width) { width_ = width; }
-
69  void set_height(uint32_t height) { height_ = height; }
-
70  void set_pixel_width(uint32_t pixel_width) { pixel_width_ = pixel_width; }
-
71  void set_pixel_height(uint32_t pixel_height) { pixel_height_ = pixel_height; }
-
72 
-
73  private:
-
74  ~VideoStreamInfo() override;
-
75 
-
76  VideoCodec codec_;
-
77  uint16_t width_;
-
78  uint16_t height_;
-
79 
-
80  // pixel_width_:pixel_height_ is the sample aspect ratio.
-
81  // 0 means unknown.
-
82  uint32_t pixel_width_;
-
83  uint32_t pixel_height_;
-
84  int16_t trick_play_rate_; // Non-zero for trick-play streams.
-
85 
-
86  // Specifies the normalized size of the NAL unit length field. Can be 1, 2 or
-
87  // 4 bytes, or 0 if the size if unknown or the stream is not a AVC stream
-
88  // (H.264).
-
89  uint8_t nalu_length_size_;
-
90 
-
91  // Not using DISALLOW_COPY_AND_ASSIGN here intentionally to allow the compiler
-
92  // generated copy constructor and assignment operator. Since the extra data is
-
93  // typically small, the performance impact is minimal.
-
94 };
-
95 
-
96 } // namespace media
-
97 } // namespace edash_packager
-
98 
-
99 #endif // MEDIA_BASE_VIDEO_STREAM_INFO_H_
- -
std::string ToString() const override
+
18  kCodecHEV1,
+
19  kCodecHVC1,
+
20  kCodecVC1,
+
21  kCodecMPEG2,
+
22  kCodecMPEG4,
+
23  kCodecTheora,
+
24  kCodecVP8,
+
25  kCodecVP9,
+
26  kCodecVP10,
+
27  kNumVideoCodec
+
28 };
+
29 
+
31 class VideoStreamInfo : public StreamInfo {
+
32  public:
+
36  VideoStreamInfo(int track_id,
+
37  uint32_t time_scale,
+
38  uint64_t duration,
+
39  VideoCodec codec,
+
40  const std::string& codec_string,
+
41  const std::string& language,
+
42  uint16_t width,
+
43  uint16_t height,
+
44  uint32_t pixel_width,
+
45  uint32_t pixel_height,
+
46  int16_t trick_play_rate,
+
47  uint8_t nalu_length_size,
+
48  const uint8_t* extra_data,
+
49  size_t extra_data_size,
+
50  bool is_encrypted);
+
51 
+
54  bool IsValidConfig() const override;
+
55  std::string ToString() const override;
+
57 
+
58  VideoCodec codec() const { return codec_; }
+
59  uint16_t width() const { return width_; }
+
60  uint16_t height() const { return height_; }
+
63  uint32_t pixel_width() const { return pixel_width_; }
+
66  uint32_t pixel_height() const { return pixel_height_; }
+
67  uint8_t nalu_length_size() const { return nalu_length_size_; }
+
68  int16_t trick_play_rate() const { return trick_play_rate_; }
+
69 
+
70  void set_width(uint32_t width) { width_ = width; }
+
71  void set_height(uint32_t height) { height_ = height; }
+
72  void set_pixel_width(uint32_t pixel_width) { pixel_width_ = pixel_width; }
+
73  void set_pixel_height(uint32_t pixel_height) { pixel_height_ = pixel_height; }
+
74 
+
75  private:
+
76  ~VideoStreamInfo() override;
+
77 
+
78  VideoCodec codec_;
+
79  uint16_t width_;
+
80  uint16_t height_;
+
81 
+
82  // pixel_width_:pixel_height_ is the sample aspect ratio.
+
83  // 0 means unknown.
+
84  uint32_t pixel_width_;
+
85  uint32_t pixel_height_;
+
86  int16_t trick_play_rate_; // Non-zero for trick-play streams.
+
87 
+
88  // Specifies the normalized size of the NAL unit length field. Can be 1, 2 or
+
89  // 4 bytes, or 0 if the size if unknown or the stream is not a AVC stream
+
90  // (H.264).
+
91  uint8_t nalu_length_size_;
+
92 
+
93  // Not using DISALLOW_COPY_AND_ASSIGN here intentionally to allow the compiler
+
94  // generated copy constructor and assignment operator. Since the extra data is
+
95  // typically small, the performance impact is minimal.
+
96 };
+
97 
+
98 } // namespace media
+
99 } // namespace edash_packager
+
100 
+
101 #endif // MEDIA_BASE_VIDEO_STREAM_INFO_H_
+ +
std::string ToString() const override
Abstract class holds stream information.
Definition: stream_info.h:26
- -
Holds video stream information.
- -
VideoStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, VideoCodec codec, const std::string &codec_string, const std::string &language, uint16_t width, uint16_t height, uint32_t pixel_width, uint32_t pixel_height, int16_t trick_play_rate, uint8_t nalu_length_size, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
+ +
Holds video stream information.
+ +
VideoStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, VideoCodec codec, const std::string &codec_string, const std::string &language, uint16_t width, uint16_t height, uint32_t pixel_width, uint32_t pixel_height, int16_t trick_play_rate, uint8_t nalu_length_size, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
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 1b8b30a5a2..14524de26d 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 d842327985..e195975dba 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 284f67134a..cd2c9222fb 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -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 bc9df3d155..21ad5c89b0 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 579 of file box_definitions.cc.

+

Definition at line 580 of file box_definitions.cc.

@@ -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 a77a240098..f48fca8171 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 81224e1aef..f8ea870e32 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 2febc1b4cf..666cd3b11b 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 85485112e6..98bd605d5e 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 9c12fedc09..b108095e47 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 5d48421179..40a0e5404a 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 d21f457c3d..85080ef751 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 33855ae144..130b94e36d 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 21915fab64..21856725e6 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 @@ -181,7 +181,7 @@ Additional Inherited Members

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

-

Definition at line 1166 of file box_definitions.cc.

+

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

+

Definition at line 94 of file mp4_media_parser.cc.

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

Implements edash_packager::media::MediaParser.

-

Definition at line 68 of file mp4_media_parser.cc.

+

Definition at line 73 of file mp4_media_parser.cc.

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

Definition at line 129 of file mp4_media_parser.cc.

+

Definition at line 134 of file mp4_media_parser.cc.

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

Implements edash_packager::media::MediaParser.

-

Definition at line 95 of file mp4_media_parser.cc.

+

Definition at line 100 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 af61a22582..f5fcbfd187 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 58647e70c7..bb2017cf2e 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 ac7423821c..ca10b5073f 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 b2636816a8..dbc1364ab6 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 @@ -115,7 +115,7 @@ uint32_t sample_descriptio 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 6844164ae6..e8a633241a 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 cbc832cd86..cbb413814a 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 47e968fd7c..35d47204ef 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 311458c52f..8518a3e4e4 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 919f65faf5..378b307929 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 c4c7d9c123..733436e43d 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 ef648a3365..a9eb435bf1 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 ba18f9e16b..4b8da3e5a2 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 796 of file box_definitions.cc.

+

Definition at line 797 of file box_definitions.cc.

@@ -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 886cab0b1a..d1e38c5e12 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 2db164098e..b0a18259f4 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 5c8ce78076..05f68e0ebd 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 ff954df664..0bf2dc5f26 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 e62d32fdcf..0461156452 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 ed7e5480c7..8429a4a52b 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 97a7a3f14d..903b0416bb 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 c7cf234576..cadb522e08 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 70dd9ccb62..a2e8fd6a6e 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 06289856bf..c707b4ad70 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 ec7412ecbc..6efaa223ec 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 4526a47f58..72a8cfff02 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 0475d940de..4b02198c05 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 2eab541f55..2d0d744668 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -249,7 +249,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index 3ecf601c20..178a27cf2e 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 340a37ea69..376daa0fea 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 6b6d92dc40..9fc0fb97af 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 e1c0d895b2..78e5b24345 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 700e939832..d43592543f 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 f18de53a3a..452d24dbb0 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 8cdbaf2086..bdc9e1f8b8 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 b6bce479bb..bd4abb1e01 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 a1774c0f83..5a9eb0aac4 100644 --- a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html +++ b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html @@ -457,7 +457,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 0059b70e33..9f34c2dd91 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 985f45510e..15aaa49106 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 460c93d701..63d1de7fb7 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 6cb61e9036..c8753b4249 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 894bf70afb..20c190dc9b 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/df3/structedash__packager_1_1xml_1_1ScopedXmlPtr.html b/docs/d8/df3/structedash__packager_1_1xml_1_1ScopedXmlPtr.html index a1ba52c306..56868e11af 100644 --- a/docs/d8/df3/structedash__packager_1_1xml_1_1ScopedXmlPtr.html +++ b/docs/d8/df3/structedash__packager_1_1xml_1_1ScopedXmlPtr.html @@ -119,7 +119,7 @@ struct edash_packager::xml::ScopedXmlPtr< XmlType > diff --git a/docs/d9/d08/mock__mpd__builder_8h_source.html b/docs/d9/d08/mock__mpd__builder_8h_source.html index 30cb39e928..fcdfdb38ec 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -179,7 +179,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 88f2d497da..9e57205641 100644 --- a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html +++ b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html @@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html index 5ac7e00f37..c3d0308d28 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 54344fb206..cb4ebe28ee 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 714 of file box_definitions.cc.

+

Definition at line 715 of file box_definitions.cc.

@@ -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 afef8c0fc5..192d13639d 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 7cd13aa99f..841176ba30 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 735d22063d..a23ad4fc19 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 43e006f3be..1186d375cb 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 @@ -209,7 +209,7 @@ Additional Inherited Members

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

-

Definition at line 1537 of file box_definitions.cc.

+

Definition at line 1548 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 f586291017..3bcc10f491 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 4e5158354c..a3bcd6a93f 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 bb763a9901..c8e6271931 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 68a547cc1f..b9f91a745f 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 2ad3ed1235..63cb584c5d 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 36ef0fb1db..ac065d7aca 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 dc5a541657..d72ef5a7f6 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 ccca0596b6..fc5271f3ad 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 576c611570..eb8e506d18 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 db9380914a..c09e03be1f 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 8ba1f11cb4..e5b4474648 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 99f28755af..9191a12deb 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 7cb79dc73b..106aa6c5c0 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 3a21d7dfd4..1b3fa12383 100644 --- a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -201,7 +201,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 8169e7621d..0289dfcb3d 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 e347fbe962..8e32eb9886 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 ffe0e6763a..62b297a76e 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 af9dadf420..bb75a76460 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 @@ -172,7 +172,7 @@ Additional Inherited Members

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

-

Definition at line 1049 of file box_definitions.cc.

+

Definition at line 1060 of file box_definitions.cc.

@@ -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 69d16867a5..5026a6ee39 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 9c28e0b1fa..b56dd36df9 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 f034fad8b4..3587e7309c 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 d6136b8e3b..543c2bb663 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 9665c32e5d..b8f587b2df 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 e49615ab17..cf2e2dcd5c 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 79073639a1..9452c2a190 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 c1c29d7c29..e1ca149802 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 0a21a675cb..360b4493e2 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1360 of file box_definitions.cc.

+

Definition at line 1371 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 a6a991b964..511647909d 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 8795c33a85..79e50c9846 100644 --- a/docs/da/d22/key__rotation__fragmenter_8h_source.html +++ b/docs/da/d22/key__rotation__fragmenter_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 a261e6a9bc..88954ce528 100644 --- a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html @@ -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 008d2e6b4a..328113ea83 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 134 of file box_definitions.cc.

+

Definition at line 135 of file box_definitions.cc.

@@ -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 4f4018d400..a870795993 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 7d4b8a15f9..43fb1a2210 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 026dd1b4f6..32f5df5cf3 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 c916fb014f..7410e950f6 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 76f6c626c6..cd5e04fe90 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 7415cc2d2b..8438359839 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 @@ -161,7 +161,7 @@ Additional Inherited Members

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

-

Definition at line 209 of file box_definitions.cc.

+

Definition at line 210 of file box_definitions.cc.

@@ -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 16c74212cc..6e6bdf06ac 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 518 of file box_definitions.cc.

+

Definition at line 519 of file box_definitions.cc.

@@ -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 51507f8978..2c9d842026 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/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html index 9d0d10e13b..bb815a632a 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 44fde5f1a9..bd8f75111a 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 587912d865..580d5d2ba9 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 e3eccafde1..02306ff80f 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 df40ca036c..86de74ed05 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 2f84bf40ae..5ebbc21d55 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 new file mode 100644 index 0000000000..31e643a107 --- /dev/null +++ b/docs/da/d7f/hevc__decoder__configuration_8h_source.html @@ -0,0 +1,149 @@ + + + + + + +DASH Media Packaging SDK: media/filters/hevc_decoder_configuration.h Source File + + + + + + + + + +
+
+ + + + + + +
+
DASH Media Packaging SDK +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
hevc_decoder_configuration.h
+
+
+
1 // Copyright 2015 Google Inc. All rights reserved.
+
2 //
+
3 // Use of this source code is governed by a BSD-style
+
4 // license that can be found in the LICENSE file or at
+
5 // https://developers.google.com/open-source/licenses/bsd
+
6 
+
7 #ifndef MEDIA_FILTERS_HEVC_DECODER_CONFIGURATION_H_
+
8 #define MEDIA_FILTERS_HEVC_DECODER_CONFIGURATION_H_
+
9 
+
10 #include <stdint.h>
+
11 #include <string>
+
12 #include <vector>
+
13 
+
14 #include "packager/base/macros.h"
+
15 #include "packager/media/base/video_stream_info.h"
+
16 
+
17 namespace edash_packager {
+
18 namespace media {
+
19 
+ +
22  public:
+ + +
25 
+
28  bool Parse(const std::vector<uint8_t>& data);
+
29 
+
31  std::string GetCodecString(VideoCodec codec) const;
+
32 
+
34  uint8_t length_size() { return length_size_; }
+
35 
+
36  private:
+
37  uint8_t version_;
+
38  uint8_t general_profile_space_;
+
39  bool general_tier_flag_;
+
40  uint8_t general_profile_idc_;
+
41  uint32_t general_profile_compatibility_flags_;
+
42  std::vector<uint8_t> general_constraint_indicator_flags_;
+
43  uint8_t general_level_idc_;
+
44  uint8_t length_size_;
+
45 
+
46  DISALLOW_COPY_AND_ASSIGN(HEVCDecoderConfiguration);
+
47 };
+
48 
+
49 } // namespace media
+
50 } // namespace edash_packager
+
51 
+
52 #endif // MEDIA_FILTERS_HEVC_DECODER_CONFIGURATION_H_
+ + +
Class for parsing HEVC decoder configuration.
+
bool Parse(const std::vector< uint8_t > &data)
+
+ + + + 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 980640c5a3..7f2524a690 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 @@ -172,7 +172,7 @@ Additional Inherited Members

Reimplemented in edash_packager::media::mp4::ChunkOffset.

-

Definition at line 690 of file box_definitions.cc.

+

Definition at line 691 of file box_definitions.cc.

@@ -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 ca554ebb16..d69c81e9c8 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -133,291 +133,295 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
44  switch (codec) {
45  case kCodecH264:
46  return FOURCC_AVC1;
-
47  case kCodecVP8:
-
48  return FOURCC_VP08;
-
49  case kCodecVP9:
-
50  return FOURCC_VP09;
-
51  case kCodecVP10:
-
52  return FOURCC_VP10;
-
53  default:
-
54  return FOURCC_NULL;
-
55  }
-
56 }
-
57 
-
58 } // namespace
-
59 
-
60 MP4Muxer::MP4Muxer(const MuxerOptions& options) : Muxer(options) {}
-
61 MP4Muxer::~MP4Muxer() {}
-
62 
-
63 Status MP4Muxer::Initialize() {
-
64  DCHECK(!streams().empty());
-
65 
-
66  scoped_ptr<FileType> ftyp(new FileType);
-
67  scoped_ptr<Movie> moov(new Movie);
-
68 
-
69  ftyp->major_brand = FOURCC_DASH;
-
70  ftyp->compatible_brands.push_back(FOURCC_ISO6);
-
71  ftyp->compatible_brands.push_back(FOURCC_MP41);
-
72  if (streams().size() == 1 &&
-
73  streams()[0]->info()->stream_type() == kStreamVideo) {
-
74  const FourCC codec_fourcc = CodecToFourCC(
-
75  static_cast<VideoStreamInfo*>(streams()[0]->info().get())->codec());
-
76  if (codec_fourcc != FOURCC_NULL)
-
77  ftyp->compatible_brands.push_back(codec_fourcc);
-
78  }
-
79 
-
80  moov->header.creation_time = IsoTimeNow();
-
81  moov->header.modification_time = IsoTimeNow();
-
82  moov->header.next_track_id = streams().size() + 1;
+
47  case kCodecHEV1:
+
48  return FOURCC_HEV1;
+
49  case kCodecHVC1:
+
50  return FOURCC_HVC1;
+
51  case kCodecVP8:
+
52  return FOURCC_VP08;
+
53  case kCodecVP9:
+
54  return FOURCC_VP09;
+
55  case kCodecVP10:
+
56  return FOURCC_VP10;
+
57  default:
+
58  return FOURCC_NULL;
+
59  }
+
60 }
+
61 
+
62 } // namespace
+
63 
+
64 MP4Muxer::MP4Muxer(const MuxerOptions& options) : Muxer(options) {}
+
65 MP4Muxer::~MP4Muxer() {}
+
66 
+
67 Status MP4Muxer::Initialize() {
+
68  DCHECK(!streams().empty());
+
69 
+
70  scoped_ptr<FileType> ftyp(new FileType);
+
71  scoped_ptr<Movie> moov(new Movie);
+
72 
+
73  ftyp->major_brand = FOURCC_DASH;
+
74  ftyp->compatible_brands.push_back(FOURCC_ISO6);
+
75  ftyp->compatible_brands.push_back(FOURCC_MP41);
+
76  if (streams().size() == 1 &&
+
77  streams()[0]->info()->stream_type() == kStreamVideo) {
+
78  const FourCC codec_fourcc = CodecToFourCC(
+
79  static_cast<VideoStreamInfo*>(streams()[0]->info().get())->codec());
+
80  if (codec_fourcc != FOURCC_NULL)
+
81  ftyp->compatible_brands.push_back(codec_fourcc);
+
82  }
83 
-
84  moov->tracks.resize(streams().size());
-
85  moov->extends.tracks.resize(streams().size());
-
86 
-
87  // Initialize tracks.
-
88  for (uint32_t i = 0; i < streams().size(); ++i) {
-
89  Track& trak = moov->tracks[i];
-
90  trak.header.track_id = i + 1;
-
91 
-
92  TrackExtends& trex = moov->extends.tracks[i];
-
93  trex.track_id = trak.header.track_id;
-
94  trex.default_sample_description_index = 1;
+
84  moov->header.creation_time = IsoTimeNow();
+
85  moov->header.modification_time = IsoTimeNow();
+
86  moov->header.next_track_id = streams().size() + 1;
+
87 
+
88  moov->tracks.resize(streams().size());
+
89  moov->extends.tracks.resize(streams().size());
+
90 
+
91  // Initialize tracks.
+
92  for (uint32_t i = 0; i < streams().size(); ++i) {
+
93  Track& trak = moov->tracks[i];
+
94  trak.header.track_id = i + 1;
95 
-
96  switch (streams()[i]->info()->stream_type()) {
-
97  case kStreamVideo:
-
98  GenerateVideoTrak(
-
99  static_cast<VideoStreamInfo*>(streams()[i]->info().get()),
-
100  &trak,
-
101  i + 1);
-
102  break;
-
103  case kStreamAudio:
-
104  GenerateAudioTrak(
-
105  static_cast<AudioStreamInfo*>(streams()[i]->info().get()),
-
106  &trak,
-
107  i + 1);
-
108  break;
-
109  default:
-
110  NOTIMPLEMENTED() << "Not implemented for stream type: "
-
111  << streams()[i]->info()->stream_type();
-
112  }
-
113  }
-
114 
-
115  if (options().single_segment) {
-
116  segmenter_.reset(
-
117  new SingleSegmentSegmenter(options(), ftyp.Pass(), moov.Pass()));
-
118  } else {
-
119  segmenter_.reset(
-
120  new MultiSegmentSegmenter(options(), ftyp.Pass(), moov.Pass()));
-
121  }
-
122 
-
123  Status segmenter_initialized =
-
124  segmenter_->Initialize(streams(),
-
125  muxer_listener(),
-
126  progress_listener(),
-
127  encryption_key_source(),
-
128  max_sd_pixels(),
-
129  clear_lead_in_seconds(),
-
130  crypto_period_duration_in_seconds());
-
131 
-
132  if (!segmenter_initialized.ok())
-
133  return segmenter_initialized;
-
134 
-
135  FireOnMediaStartEvent();
-
136  return Status::OK;
-
137 }
+
96  TrackExtends& trex = moov->extends.tracks[i];
+
97  trex.track_id = trak.header.track_id;
+
98  trex.default_sample_description_index = 1;
+
99 
+
100  switch (streams()[i]->info()->stream_type()) {
+
101  case kStreamVideo:
+
102  GenerateVideoTrak(
+
103  static_cast<VideoStreamInfo*>(streams()[i]->info().get()),
+
104  &trak,
+
105  i + 1);
+
106  break;
+
107  case kStreamAudio:
+
108  GenerateAudioTrak(
+
109  static_cast<AudioStreamInfo*>(streams()[i]->info().get()),
+
110  &trak,
+
111  i + 1);
+
112  break;
+
113  default:
+
114  NOTIMPLEMENTED() << "Not implemented for stream type: "
+
115  << streams()[i]->info()->stream_type();
+
116  }
+
117  }
+
118 
+
119  if (options().single_segment) {
+
120  segmenter_.reset(
+
121  new SingleSegmentSegmenter(options(), ftyp.Pass(), moov.Pass()));
+
122  } else {
+
123  segmenter_.reset(
+
124  new MultiSegmentSegmenter(options(), ftyp.Pass(), moov.Pass()));
+
125  }
+
126 
+
127  Status segmenter_initialized =
+
128  segmenter_->Initialize(streams(),
+
129  muxer_listener(),
+
130  progress_listener(),
+
131  encryption_key_source(),
+
132  max_sd_pixels(),
+
133  clear_lead_in_seconds(),
+
134  crypto_period_duration_in_seconds());
+
135 
+
136  if (!segmenter_initialized.ok())
+
137  return segmenter_initialized;
138 
-
139 Status MP4Muxer::Finalize() {
-
140  DCHECK(segmenter_);
-
141  Status segmenter_finalized = segmenter_->Finalize();
+
139  FireOnMediaStartEvent();
+
140  return Status::OK;
+
141 }
142 
-
143  if (!segmenter_finalized.ok())
-
144  return segmenter_finalized;
-
145 
-
146  FireOnMediaEndEvent();
-
147  LOG(INFO) << "MP4 file '" << options().output_file_name << "' finalized.";
-
148  return Status::OK;
-
149 }
-
150 
-
151 Status MP4Muxer::DoAddSample(const MediaStream* stream,
-
152  scoped_refptr<MediaSample> sample) {
-
153  DCHECK(segmenter_);
-
154  return segmenter_->AddSample(stream, sample);
-
155 }
-
156 
-
157 void MP4Muxer::InitializeTrak(const StreamInfo* info, Track* trak) {
-
158  int64_t now = IsoTimeNow();
-
159  trak->header.creation_time = now;
-
160  trak->header.modification_time = now;
-
161  trak->header.duration = 0;
-
162  trak->media.header.creation_time = now;
-
163  trak->media.header.modification_time = now;
-
164  trak->media.header.timescale = info->time_scale();
-
165  trak->media.header.duration = 0;
-
166  if (!info->language().empty()) {
-
167  const size_t language_size = arraysize(trak->media.header.language) - 1;
-
168  if (info->language().size() != language_size) {
-
169  LOG(WARNING) << "'" << info->language() << "' is not a valid ISO-639-2 "
-
170  << "language code, ignoring.";
-
171  } else {
-
172  memcpy(trak->media.header.language, info->language().c_str(),
-
173  language_size + 1);
-
174  }
-
175  }
-
176 }
-
177 
-
178 void MP4Muxer::GenerateVideoTrak(const VideoStreamInfo* video_info,
-
179  Track* trak,
-
180  uint32_t track_id) {
-
181  InitializeTrak(video_info, trak);
-
182 
-
183  // width and height specify the track's visual presentation size as
-
184  // fixed-point 16.16 values.
-
185  uint32_t pixel_width = video_info->pixel_width();
-
186  uint32_t pixel_height = video_info->pixel_height();
-
187  if (pixel_width == 0 || pixel_height == 0) {
-
188  LOG(WARNING) << "pixel width/height are not set. Assuming 1:1.";
-
189  pixel_width = 1;
-
190  pixel_height = 1;
-
191  }
-
192  const double sample_aspect_ratio =
-
193  static_cast<double>(pixel_width) / pixel_height;
-
194  trak->header.width = video_info->width() * sample_aspect_ratio * 0x10000;
-
195  trak->header.height = video_info->height() * 0x10000;
-
196 
-
197  trak->media.handler.type = kVideo;
-
198 
-
199  VideoSampleEntry video;
-
200  video.format = CodecToFourCC(video_info->codec());
-
201  video.width = video_info->width();
-
202  video.height = video_info->height();
-
203  video.codec_config_record.data = video_info->extra_data();
-
204  if (pixel_width != 1 || pixel_height != 1) {
-
205  video.pixel_aspect.h_spacing = pixel_width;
-
206  video.pixel_aspect.v_spacing = pixel_height;
-
207  }
-
208 
-
209  SampleDescription& sample_description =
-
210  trak->media.information.sample_table.description;
-
211  sample_description.type = kVideo;
-
212  sample_description.video_entries.push_back(video);
-
213 }
-
214 
-
215 void MP4Muxer::GenerateAudioTrak(const AudioStreamInfo* audio_info,
-
216  Track* trak,
-
217  uint32_t track_id) {
-
218  InitializeTrak(audio_info, trak);
-
219 
-
220  trak->header.volume = 0x100;
-
221  trak->media.handler.type = kAudio;
-
222 
-
223  AudioSampleEntry audio;
-
224  audio.format = FOURCC_MP4A;
-
225  audio.channelcount = audio_info->num_channels();
-
226  audio.samplesize = audio_info->sample_bits();
-
227  audio.samplerate = audio_info->sampling_frequency();
-
228 
-
229  if (kCodecAAC) {
-
230  audio.esds.es_descriptor.set_object_type(kISO_14496_3); // MPEG4 AAC.
-
231  } else {
-
232  // Do we need to support other types?
-
233  NOTIMPLEMENTED();
-
234  }
-
235  audio.esds.es_descriptor.set_esid(track_id);
-
236  audio.esds.es_descriptor.set_decoder_specific_info(audio_info->extra_data());
-
237 
-
238  SampleDescription& sample_description =
-
239  trak->media.information.sample_table.description;
-
240  sample_description.type = kAudio;
-
241  sample_description.audio_entries.push_back(audio);
-
242 }
-
243 
-
244 bool MP4Muxer::GetInitRangeStartAndEnd(uint32_t* start, uint32_t* end) {
-
245  DCHECK(start && end);
-
246  size_t range_offset = 0;
-
247  size_t range_size = 0;
-
248  const bool has_range = segmenter_->GetInitRange(&range_offset, &range_size);
-
249 
-
250  if (!has_range)
-
251  return false;
-
252 
-
253  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
-
254  return true;
-
255 }
+
143 Status MP4Muxer::Finalize() {
+
144  DCHECK(segmenter_);
+
145  Status segmenter_finalized = segmenter_->Finalize();
+
146 
+
147  if (!segmenter_finalized.ok())
+
148  return segmenter_finalized;
+
149 
+
150  FireOnMediaEndEvent();
+
151  LOG(INFO) << "MP4 file '" << options().output_file_name << "' finalized.";
+
152  return Status::OK;
+
153 }
+
154 
+
155 Status MP4Muxer::DoAddSample(const MediaStream* stream,
+
156  scoped_refptr<MediaSample> sample) {
+
157  DCHECK(segmenter_);
+
158  return segmenter_->AddSample(stream, sample);
+
159 }
+
160 
+
161 void MP4Muxer::InitializeTrak(const StreamInfo* info, Track* trak) {
+
162  int64_t now = IsoTimeNow();
+
163  trak->header.creation_time = now;
+
164  trak->header.modification_time = now;
+
165  trak->header.duration = 0;
+
166  trak->media.header.creation_time = now;
+
167  trak->media.header.modification_time = now;
+
168  trak->media.header.timescale = info->time_scale();
+
169  trak->media.header.duration = 0;
+
170  if (!info->language().empty()) {
+
171  const size_t language_size = arraysize(trak->media.header.language) - 1;
+
172  if (info->language().size() != language_size) {
+
173  LOG(WARNING) << "'" << info->language() << "' is not a valid ISO-639-2 "
+
174  << "language code, ignoring.";
+
175  } else {
+
176  memcpy(trak->media.header.language, info->language().c_str(),
+
177  language_size + 1);
+
178  }
+
179  }
+
180 }
+
181 
+
182 void MP4Muxer::GenerateVideoTrak(const VideoStreamInfo* video_info,
+
183  Track* trak,
+
184  uint32_t track_id) {
+
185  InitializeTrak(video_info, trak);
+
186 
+
187  // width and height specify the track's visual presentation size as
+
188  // fixed-point 16.16 values.
+
189  uint32_t pixel_width = video_info->pixel_width();
+
190  uint32_t pixel_height = video_info->pixel_height();
+
191  if (pixel_width == 0 || pixel_height == 0) {
+
192  LOG(WARNING) << "pixel width/height are not set. Assuming 1:1.";
+
193  pixel_width = 1;
+
194  pixel_height = 1;
+
195  }
+
196  const double sample_aspect_ratio =
+
197  static_cast<double>(pixel_width) / pixel_height;
+
198  trak->header.width = video_info->width() * sample_aspect_ratio * 0x10000;
+
199  trak->header.height = video_info->height() * 0x10000;
+
200 
+
201  trak->media.handler.type = kVideo;
+
202 
+
203  VideoSampleEntry video;
+
204  video.format = CodecToFourCC(video_info->codec());
+
205  video.width = video_info->width();
+
206  video.height = video_info->height();
+
207  video.codec_config_record.data = video_info->extra_data();
+
208  if (pixel_width != 1 || pixel_height != 1) {
+
209  video.pixel_aspect.h_spacing = pixel_width;
+
210  video.pixel_aspect.v_spacing = pixel_height;
+
211  }
+
212 
+
213  SampleDescription& sample_description =
+
214  trak->media.information.sample_table.description;
+
215  sample_description.type = kVideo;
+
216  sample_description.video_entries.push_back(video);
+
217 }
+
218 
+
219 void MP4Muxer::GenerateAudioTrak(const AudioStreamInfo* audio_info,
+
220  Track* trak,
+
221  uint32_t track_id) {
+
222  InitializeTrak(audio_info, trak);
+
223 
+
224  trak->header.volume = 0x100;
+
225  trak->media.handler.type = kAudio;
+
226 
+
227  AudioSampleEntry audio;
+
228  audio.format = FOURCC_MP4A;
+
229  audio.channelcount = audio_info->num_channels();
+
230  audio.samplesize = audio_info->sample_bits();
+
231  audio.samplerate = audio_info->sampling_frequency();
+
232 
+
233  if (kCodecAAC) {
+
234  audio.esds.es_descriptor.set_object_type(kISO_14496_3); // MPEG4 AAC.
+
235  } else {
+
236  // Do we need to support other types?
+
237  NOTIMPLEMENTED();
+
238  }
+
239  audio.esds.es_descriptor.set_esid(track_id);
+
240  audio.esds.es_descriptor.set_decoder_specific_info(audio_info->extra_data());
+
241 
+
242  SampleDescription& sample_description =
+
243  trak->media.information.sample_table.description;
+
244  sample_description.type = kAudio;
+
245  sample_description.audio_entries.push_back(audio);
+
246 }
+
247 
+
248 bool MP4Muxer::GetInitRangeStartAndEnd(uint32_t* start, uint32_t* end) {
+
249  DCHECK(start && end);
+
250  size_t range_offset = 0;
+
251  size_t range_size = 0;
+
252  const bool has_range = segmenter_->GetInitRange(&range_offset, &range_size);
+
253 
+
254  if (!has_range)
+
255  return false;
256 
-
257 bool MP4Muxer::GetIndexRangeStartAndEnd(uint32_t* start, uint32_t* end) {
-
258  DCHECK(start && end);
-
259  size_t range_offset = 0;
-
260  size_t range_size = 0;
-
261  const bool has_range = segmenter_->GetIndexRange(&range_offset, &range_size);
-
262 
-
263  if (!has_range)
-
264  return false;
-
265 
-
266  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
-
267  return true;
-
268 }
+
257  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
+
258  return true;
+
259 }
+
260 
+
261 bool MP4Muxer::GetIndexRangeStartAndEnd(uint32_t* start, uint32_t* end) {
+
262  DCHECK(start && end);
+
263  size_t range_offset = 0;
+
264  size_t range_size = 0;
+
265  const bool has_range = segmenter_->GetIndexRange(&range_offset, &range_size);
+
266 
+
267  if (!has_range)
+
268  return false;
269 
-
270 void MP4Muxer::FireOnMediaStartEvent() {
-
271  if (!muxer_listener())
-
272  return;
+
270  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
+
271  return true;
+
272 }
273 
-
274  if (streams().size() > 1) {
-
275  LOG(ERROR) << "MuxerListener cannot take more than 1 stream.";
+
274 void MP4Muxer::FireOnMediaStartEvent() {
+
275  if (!muxer_listener())
276  return;
-
277  }
-
278  DCHECK(!streams().empty()) << "Media started without a stream.";
-
279 
-
280  const uint32_t timescale = segmenter_->GetReferenceTimeScale();
-
281  muxer_listener()->OnMediaStart(options(),
-
282  *streams().front()->info(),
-
283  timescale,
-
284  MuxerListener::kContainerMp4);
-
285 }
-
286 
-
287 void MP4Muxer::FireOnMediaEndEvent() {
-
288  if (!muxer_listener())
-
289  return;
+
277 
+
278  if (streams().size() > 1) {
+
279  LOG(ERROR) << "MuxerListener cannot take more than 1 stream.";
+
280  return;
+
281  }
+
282  DCHECK(!streams().empty()) << "Media started without a stream.";
+
283 
+
284  const uint32_t timescale = segmenter_->GetReferenceTimeScale();
+
285  muxer_listener()->OnMediaStart(options(),
+
286  *streams().front()->info(),
+
287  timescale,
+
288  MuxerListener::kContainerMp4);
+
289 }
290 
-
291  uint32_t init_range_start = 0;
-
292  uint32_t init_range_end = 0;
-
293  const bool has_init_range =
-
294  GetInitRangeStartAndEnd(&init_range_start, &init_range_end);
-
295 
-
296  uint32_t index_range_start = 0;
-
297  uint32_t index_range_end = 0;
-
298  const bool has_index_range =
-
299  GetIndexRangeStartAndEnd(&index_range_start, &index_range_end);
-
300 
-
301  const float duration_seconds = static_cast<float>(segmenter_->GetDuration());
-
302 
-
303  const int64_t file_size =
-
304  File::GetFileSize(options().output_file_name.c_str());
-
305  if (file_size <= 0) {
-
306  LOG(ERROR) << "Invalid file size: " << file_size;
-
307  return;
-
308  }
-
309 
-
310  muxer_listener()->OnMediaEnd(has_init_range,
-
311  init_range_start,
-
312  init_range_end,
-
313  has_index_range,
-
314  index_range_start,
-
315  index_range_end,
-
316  duration_seconds,
-
317  file_size);
-
318 }
-
319 
-
320 uint64_t MP4Muxer::IsoTimeNow() {
-
321  // Time in seconds from Jan. 1, 1904 to epoch time, i.e. Jan. 1, 1970.
-
322  const uint64_t kIsomTimeOffset = 2082844800l;
-
323  return kIsomTimeOffset +
-
324  (clock() ? clock()->Now() : base::Time::Now()).ToDoubleT();
-
325 }
-
326 
-
327 } // namespace mp4
-
328 } // namespace media
-
329 } // namespace edash_packager
+
291 void MP4Muxer::FireOnMediaEndEvent() {
+
292  if (!muxer_listener())
+
293  return;
+
294 
+
295  uint32_t init_range_start = 0;
+
296  uint32_t init_range_end = 0;
+
297  const bool has_init_range =
+
298  GetInitRangeStartAndEnd(&init_range_start, &init_range_end);
+
299 
+
300  uint32_t index_range_start = 0;
+
301  uint32_t index_range_end = 0;
+
302  const bool has_index_range =
+
303  GetIndexRangeStartAndEnd(&index_range_start, &index_range_end);
+
304 
+
305  const float duration_seconds = static_cast<float>(segmenter_->GetDuration());
+
306 
+
307  const int64_t file_size =
+
308  File::GetFileSize(options().output_file_name.c_str());
+
309  if (file_size <= 0) {
+
310  LOG(ERROR) << "Invalid file size: " << file_size;
+
311  return;
+
312  }
+
313 
+
314  muxer_listener()->OnMediaEnd(has_init_range,
+
315  init_range_start,
+
316  init_range_end,
+
317  has_index_range,
+
318  index_range_start,
+
319  index_range_end,
+
320  duration_seconds,
+
321  file_size);
+
322 }
+
323 
+
324 uint64_t MP4Muxer::IsoTimeNow() {
+
325  // Time in seconds from Jan. 1, 1904 to epoch time, i.e. Jan. 1, 1970.
+
326  const uint64_t kIsomTimeOffset = 2082844800l;
+
327  return kIsomTimeOffset +
+
328  (clock() ? clock()->Now() : base::Time::Now()).ToDoubleT();
+
329 }
+
330 
+
331 } // namespace mp4
+
332 } // namespace media
+
333 } // namespace edash_packager
-
MP4Muxer(const MuxerOptions &options)
Create a MP4Muxer object from MuxerOptions.
Definition: mp4_muxer.cc:60
+
MP4Muxer(const MuxerOptions &options)
Create a MP4Muxer object from MuxerOptions.
Definition: mp4_muxer.cc:64
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
@@ -425,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 5d19bad0ed..2e3ed3f709 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1763,7 +1763,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 02496ecbec..b85520333f 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1206 of file box_definitions.cc.

+

Definition at line 1217 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 189c09d3ca..e290117d4b 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 ce17386c85..28c4b78aa0 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd0/webm__info__parser_8h_source.html b/docs/da/dd0/webm__info__parser_8h_source.html index 0ca4647ccd..8214a66eeb 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 7e5d64974a..3d85216c6b 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -198,7 +198,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index d6bf4bacc5..3ba7604ff1 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 4c5fea22e7..f2326eee49 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 a57a0f78aa..0a2d9e4d8c 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 @@ -112,7 +112,7 @@ int64_t sample_offset< diff --git a/docs/db/d01/avc__decoder__configuration_8cc_source.html b/docs/db/d01/avc__decoder__configuration_8cc_source.html index 1e9e2b0df9..070bd6e364 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 acf7e90145..521ea7ea3c 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 77b39a5b9e..3d724a25e3 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 d73e33e434..cfa9a11c4b 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 a674481d19..ecc358486e 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 b3a150d173..b0e9cd07b9 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 55af62cc2c..47ba455c52 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 7ddb8b0276..412d4e5759 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 e6a4f85ab0..6d7f16c5d3 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -699,7 +699,7 @@ 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 bdcd7f17d3..db8eb673b8 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 928725dbd7..168dac3ead 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 2960162063..1a1763f74d 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 a3dd2ec34d..cbda743bed 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 246476da4e..5b58f85a48 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 da9ed9d1d5..ad3027c3f2 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 new file mode 100644 index 0000000000..5e5db166fc --- /dev/null +++ b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html @@ -0,0 +1,109 @@ + + + + + + +DASH Media Packaging SDK: Member List + + + + + + + + + +
+
+ + + + + + +
+
DASH Media Packaging SDK +
+
+
+ + + + + + + + + +
+ +
+ + +
+
+
+
edash_packager::media::HEVCDecoderConfiguration Member List
+
+ + + + + diff --git a/docs/db/d60/mpd__options_8h_source.html b/docs/db/d60/mpd__options_8h_source.html index c11687b579..fa051c5ed6 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 38f2baab62..907a181825 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 b77da7d0db..9aca0ff057 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 5a8cb25447..1af5b761e6 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 a8934638e8..7502f9e2be 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 3e22292683..79df5da7fd 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 0c7aff2092..8cbbee3ae8 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 7df47f00da..1a85b8d0f1 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 @@ -172,7 +172,7 @@ Additional Inherited Members

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

-

Definition at line 635 of file box_definitions.cc.

+

Definition at line 636 of file box_definitions.cc.

@@ -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 35aea55a60..ab7402dda0 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -162,20 +162,20 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
76 } // namespace edash_packager
77 
78 #endif // MEDIA_FORMATS_MP4_MP4_MUXER_H_
-
MP4Muxer(const MuxerOptions &options)
Create a MP4Muxer object from MuxerOptions.
Definition: mp4_muxer.cc:60
+
MP4Muxer(const MuxerOptions &options)
Create a MP4Muxer object from MuxerOptions.
Definition: mp4_muxer.cc:64
Holds audio stream information.
Abstract class holds stream information.
Definition: stream_info.h:26
-
Holds video stream information.
+
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 ba64b411a2..9d6a60460d 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 78040de15b..ca69398167 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 39c91ee850..17ed954acb 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 ce039d55ab..03d00acfda 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 95c6acd838..ebb0a51d0d 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 62b86f943f..c01ded569e 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 1943bcea92..0cbc3968d7 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 3c0d43567f..7fc40c902e 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 e7173760f5..637587747a 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -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 7dcdee6978..784aeb06af 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/de4/classedash__packager_1_1AdaptationSet.html b/docs/db/de4/classedash__packager_1_1AdaptationSet.html index f6ec07fa0d..ab22e17ecf 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 6caee10bf5..39a6eba52e 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 c941f7640d..fa14e943d2 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 748e592871..93f554bdba 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 dc82f71403..5aafbf4d71 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 fb5a8dfa71..cfd77a3358 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 41b1a6865d..46c8f37f60 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 8947bdc42a..7dc51cf5af 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 @@ -178,7 +178,7 @@ Additional Inherited Members

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

-

Definition at line 1190 of file box_definitions.cc.

+

Definition at line 1201 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 40863d9fc1..e901f8f49f 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 672af39eeb..c24b46d0ad 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 de02a0aef8..2430467b0b 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 c14d915822..77a48a0581 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 ae79614537..96938b4045 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 1e877ca0a4..81aac15578 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 4124e97a6a..4efdd2e1b7 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 bfe8b419ef..a9d709d65d 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -406,7 +406,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 b58109671c..ffbdad673f 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 83831df67c..87dab06a53 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 d03227a762..c95ad175ac 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 636fb36818..441c8eaeae 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 be4e903a0e..b513c85a2d 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 566e9e87fa..2969134b7f 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 38ea152dac..c79242ec62 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 d6fa391f02..0dccbfe704 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 144fce493a..b426ac3516 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 48b687bcaa..f8293a1a5c 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 2e27ebd84c..ccdb140e81 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 5dfd7abaef..b30e72cbf6 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 9377b73811..b910097625 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 74acd62871..34481dd8cc 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 989a87e348..bfd09e5103 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 61cd4e3fea..d6af3aa0f8 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 d759b5ffe0..5a2396203c 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 7688efb922..8f81fa8d3f 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 fef9c656ad..2a3f2ae617 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 3e32bf50bf..8fdf6dabf1 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 a41577e762..97338567ee 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 28847d19b6..b032bb83c8 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 473 of file box_definitions.cc.

+

Definition at line 474 of file box_definitions.cc.

@@ -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 f1be2399c2..0c8e0a5520 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 5bcc6dffcd..65401627ea 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 6c33a8de96..dc530916c5 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 dd332958b9..2427607279 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 bc43aef39b..d7103bbc8c 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 1877d21da4..c5fb49a11c 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 c6452a86ea..4ef29a1e3b 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 55e9d1306c..bc1a1301f7 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 6ceaf54500..422d1b18bc 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 f5490b4d5a..ca6f68654a 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 0bb169e94c..06ed0d0982 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 722e4aa4e4..b5f0c82fd7 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 894af39ce1..e7fa00b134 100644 --- a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html +++ b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html @@ -438,7 +438,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 100cc8be1b..fea1b4469a 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 415c2285e3..df98131bc6 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 1e8d09c84e..efd8d4fa60 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 c217aa46c2..c450938c38 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -1479,7 +1479,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 83d32492da..140ac3b258 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 7c20a40806..64e0f0a8dd 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 @@ -187,7 +187,7 @@ Additional Inherited Members

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

-

Definition at line 341 of file box_definitions.cc.

+

Definition at line 342 of file box_definitions.cc.

@@ -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 180c666f1a..fcfb2b7c91 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 @@ -202,7 +202,7 @@ Additional Inherited Members

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

-

Definition at line 393 of file box_definitions.cc.

+

Definition at line 394 of file box_definitions.cc.

@@ -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 3b0ba58127..d2e8b44b0a 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 025f52df89..3c6252f9ce 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -110,90 +110,94 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
21  switch (video_codec) {
22  case kCodecH264:
23  return "H264";
-
24  case kCodecVC1:
-
25  return "VC1";
-
26  case kCodecMPEG2:
-
27  return "MPEG2";
-
28  case kCodecMPEG4:
-
29  return "MPEG4";
-
30  case kCodecTheora:
-
31  return "Theora";
-
32  case kCodecVP8:
-
33  return "VP8";
-
34  case kCodecVP9:
-
35  return "VP9";
-
36  case kCodecVP10:
-
37  return "VP10";
-
38  default:
-
39  NOTIMPLEMENTED() << "Unknown Video Codec: " << video_codec;
-
40  return "UnknownVideoCodec";
-
41  }
-
42 }
-
43 
-
44 } // namespace
-
45 
- -
47  uint32_t time_scale,
-
48  uint64_t duration,
-
49  VideoCodec codec,
-
50  const std::string& codec_string,
-
51  const std::string& language,
-
52  uint16_t width,
-
53  uint16_t height,
-
54  uint32_t pixel_width,
-
55  uint32_t pixel_height,
-
56  int16_t trick_play_rate,
-
57  uint8_t nalu_length_size,
-
58  const uint8_t* extra_data,
-
59  size_t extra_data_size,
-
60  bool is_encrypted)
-
61  : StreamInfo(kStreamVideo,
-
62  track_id,
-
63  time_scale,
-
64  duration,
-
65  codec_string,
-
66  language,
-
67  extra_data,
-
68  extra_data_size,
-
69  is_encrypted),
-
70  codec_(codec),
-
71  width_(width),
-
72  height_(height),
-
73  pixel_width_(pixel_width),
-
74  pixel_height_(pixel_height),
-
75  trick_play_rate_(trick_play_rate),
-
76  nalu_length_size_(nalu_length_size) {
-
77 }
-
78 
-
79 VideoStreamInfo::~VideoStreamInfo() {}
-
80 
- -
82  return codec_ != kUnknownVideoCodec &&
-
83  width_ > 0 && width_ <= limits::kMaxDimension &&
-
84  height_ > 0 && height_ <= limits::kMaxDimension &&
-
85  (nalu_length_size_ <= 2 || nalu_length_size_ == 4);
-
86 }
-
87 
-
88 std::string VideoStreamInfo::ToString() const {
-
89  return base::StringPrintf(
-
90  "%s codec: %s\n width: %d\n height: %d\n pixel aspect ratio: %d:%d\n "
-
91  "trick_play_rate: %d\n nalu_length_size: %d\n",
-
92  StreamInfo::ToString().c_str(), VideoCodecToString(codec_).c_str(),
-
93  width_, height_, pixel_width_, pixel_height_, trick_play_rate_,
-
94  nalu_length_size_);
-
95 }
-
96 
-
97 } // namespace media
-
98 } // namespace edash_packager
-
std::string ToString() const override
+
24  case kCodecHEV1:
+
25  return "HEV1";
+
26  case kCodecHVC1:
+
27  return "HVC1";
+
28  case kCodecVC1:
+
29  return "VC1";
+
30  case kCodecMPEG2:
+
31  return "MPEG2";
+
32  case kCodecMPEG4:
+
33  return "MPEG4";
+
34  case kCodecTheora:
+
35  return "Theora";
+
36  case kCodecVP8:
+
37  return "VP8";
+
38  case kCodecVP9:
+
39  return "VP9";
+
40  case kCodecVP10:
+
41  return "VP10";
+
42  default:
+
43  NOTIMPLEMENTED() << "Unknown Video Codec: " << video_codec;
+
44  return "UnknownVideoCodec";
+
45  }
+
46 }
+
47 
+
48 } // namespace
+
49 
+ +
51  uint32_t time_scale,
+
52  uint64_t duration,
+
53  VideoCodec codec,
+
54  const std::string& codec_string,
+
55  const std::string& language,
+
56  uint16_t width,
+
57  uint16_t height,
+
58  uint32_t pixel_width,
+
59  uint32_t pixel_height,
+
60  int16_t trick_play_rate,
+
61  uint8_t nalu_length_size,
+
62  const uint8_t* extra_data,
+
63  size_t extra_data_size,
+
64  bool is_encrypted)
+
65  : StreamInfo(kStreamVideo,
+
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  width_(width),
+
76  height_(height),
+
77  pixel_width_(pixel_width),
+
78  pixel_height_(pixel_height),
+
79  trick_play_rate_(trick_play_rate),
+
80  nalu_length_size_(nalu_length_size) {
+
81 }
+
82 
+
83 VideoStreamInfo::~VideoStreamInfo() {}
+
84 
+ +
86  return codec_ != kUnknownVideoCodec &&
+
87  width_ > 0 && width_ <= limits::kMaxDimension &&
+
88  height_ > 0 && height_ <= limits::kMaxDimension &&
+
89  (nalu_length_size_ <= 2 || nalu_length_size_ == 4);
+
90 }
+
91 
+
92 std::string VideoStreamInfo::ToString() const {
+
93  return base::StringPrintf(
+
94  "%s codec: %s\n width: %d\n height: %d\n pixel aspect ratio: %d:%d\n "
+
95  "trick_play_rate: %d\n nalu_length_size: %d\n",
+
96  StreamInfo::ToString().c_str(), VideoCodecToString(codec_).c_str(),
+
97  width_, height_, pixel_width_, pixel_height_, trick_play_rate_,
+
98  nalu_length_size_);
+
99 }
+
100 
+
101 } // namespace media
+
102 } // namespace edash_packager
+
std::string ToString() const override
Abstract class holds stream information.
Definition: stream_info.h:26
- +
virtual std::string ToString() const
Definition: stream_info.cc:40
-
VideoStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, VideoCodec codec, const std::string &codec_string, const std::string &language, uint16_t width, uint16_t height, uint32_t pixel_width, uint32_t pixel_height, int16_t trick_play_rate, uint8_t nalu_length_size, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
+
VideoStreamInfo(int track_id, uint32_t time_scale, uint64_t duration, VideoCodec codec, const std::string &codec_string, const std::string &language, uint16_t width, uint16_t height, uint32_t pixel_width, uint32_t pixel_height, int16_t trick_play_rate, uint8_t nalu_length_size, const uint8_t *extra_data, size_t extra_data_size, bool is_encrypted)
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 cf83e23210..da87ecdc68 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 1ebfcaef56..7e2fe5fb2a 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 73c554edb3..b8c1a4722a 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 e80586a834..4ea8ab10f7 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1258,7 +1258,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 34c6d43306..a9b89b9429 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 942b227d6c..4b56d5cf40 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 f47caee6b9..09cc66e379 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 54cf432a77..72d8afddc7 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 221ee62945..27ab4b0456 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 5714250def..490b66e826 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 c97eebadde..6882bd51fd 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 8d65da5cbb..f14d917d26 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 674bb33b82..f70d0a5129 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 f9c7b743c2..6bfebbb898 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 40e9f258ff..0150d163cf 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 1d1420481e..063ca80c2a 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 6973087a20..d136544f6f 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 f7796d24c4..124e7739fd 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 6b9076e897..0a46f9b752 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 e0f08a0367..4464a3f03a 100644 --- a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html +++ b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html @@ -496,7 +496,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 229970999d..f68b01258a 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 e7945f4648..7731f4a10f 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 84ed44c9c4..7735808ef7 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 @@ -168,7 +168,7 @@ Additional Inherited Members

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

-

Definition at line 1863 of file box_definitions.cc.

+

Definition at line 1876 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 caa50ec688..ef60a57280 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 @@ -165,7 +165,7 @@ std::vector< FourCC > <

Reimplemented from edash_packager::media::mp4::FileType.

-

Definition at line 102 of file box_definitions.cc.

+

Definition at line 103 of file box_definitions.cc.

@@ -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 778c354794..b398bf7418 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 028f8eded7..427322beef 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 @@ -174,7 +174,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 be1a469d62..5a376b7b64 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 @@ -120,7 +120,7 @@ uint32_t group_description 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 9dec952b0c..3cddb3fd87 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 8ca5b519ca..e6cd5c8c8c 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 7639cd2a2e..f079426905 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 6acc9b4d85..a210fb4a2f 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 @@ -170,7 +170,7 @@ Additional Inherited Members

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

-

Definition at line 1291 of file box_definitions.cc.

+

Definition at line 1302 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 9315a429d0..fd5b176049 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 9988cc9e84..34c233d25b 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 6c57bbd308..9fbf5acb47 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 @@ -167,7 +167,7 @@ Additional Inherited Members

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

-

Definition at line 300 of file box_definitions.cc.

+

Definition at line 301 of file box_definitions.cc.

@@ -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 ec86d96cdb..639d4c740a 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 48a24fb48a..3f2ab40e58 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 8d9637bfea..bddb075a66 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 c677f7a782..915eaf08f2 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 4a314ebab3..5b065bf443 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 26b2a23a5e..0a6991de98 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -228,7 +228,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 7a3227cb01..28466e6853 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 38e3c21ad5..9fe162678f 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -126,2047 +126,2060 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
37 
38 const uint32_t kCompressorNameSize = 32u;
39 const char kAvcCompressorName[] = "\012AVC Coding";
-
40 const char kVpcCompressorName[] = "\012VPC Coding";
-
41 
-
42 // Utility functions to check if the 64bit integers can fit in 32bit integer.
-
43 bool IsFitIn32Bits(uint64_t a) {
-
44  return a <= std::numeric_limits<uint32_t>::max();
-
45 }
-
46 
-
47 bool IsFitIn32Bits(int64_t a) {
-
48  return a <= std::numeric_limits<int32_t>::max() &&
-
49  a >= std::numeric_limits<int32_t>::min();
-
50 }
-
51 
-
52 template <typename T1, typename T2>
-
53 bool IsFitIn32Bits(T1 a1, T2 a2) {
-
54  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2);
-
55 }
-
56 
-
57 template <typename T1, typename T2, typename T3>
-
58 bool IsFitIn32Bits(T1 a1, T2 a2, T3 a3) {
-
59  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2) && IsFitIn32Bits(a3);
-
60 }
-
61 
-
62 } // namespace
-
63 
-
64 namespace edash_packager {
-
65 namespace media {
-
66 namespace mp4 {
-
67 
-
68 FileType::FileType() : major_brand(FOURCC_NULL), minor_version(0) {}
-
69 FileType::~FileType() {}
-
70 FourCC FileType::BoxType() const { return FOURCC_FTYP; }
-
71 
- -
73  RCHECK(Box::ReadWrite(buffer) &&
-
74  buffer->ReadWriteFourCC(&major_brand) &&
-
75  buffer->ReadWriteUInt32(&minor_version));
-
76  size_t num_brands;
-
77  if (buffer->Reading()) {
-
78  num_brands = (buffer->Size() - buffer->Pos()) / sizeof(FourCC);
-
79  compatible_brands.resize(num_brands);
-
80  } else {
-
81  num_brands = compatible_brands.size();
-
82  }
-
83  for (size_t i = 0; i < num_brands; ++i)
-
84  RCHECK(buffer->ReadWriteFourCC(&compatible_brands[i]));
-
85  return true;
-
86 }
-
87 
- -
89  atom_size = kBoxSize + kFourCCSize + sizeof(minor_version) +
-
90  kFourCCSize * compatible_brands.size();
-
91  return atom_size;
-
92 }
-
93 
-
94 SegmentType::SegmentType() {}
-
95 SegmentType::~SegmentType() {}
-
96 FourCC SegmentType::BoxType() const { return FOURCC_STYP; }
-
97 
- -
99  return FileType::ReadWrite(buffer);
-
100 }
-
101 
- -
103  return FileType::ComputeSize();
-
104 }
-
105 
-
106 ProtectionSystemSpecificHeader::ProtectionSystemSpecificHeader() {}
-
107 ProtectionSystemSpecificHeader::~ProtectionSystemSpecificHeader() {}
-
108 FourCC ProtectionSystemSpecificHeader::BoxType() const { return FOURCC_PSSH; }
-
109 
- -
111  if (!buffer->Reading() && !raw_box.empty()) {
-
112  // Write the raw box directly.
-
113  buffer->writer()->AppendVector(raw_box);
-
114  return true;
-
115  }
-
116 
-
117  uint32_t size = data.size();
-
118  RCHECK(FullBox::ReadWrite(buffer) &&
-
119  buffer->ReadWriteVector(&system_id, 16) &&
-
120  buffer->ReadWriteUInt32(&size) &&
-
121  buffer->ReadWriteVector(&data, size));
-
122 
-
123  if (buffer->Reading()) {
-
124  // Copy the entire box, including the header, for passing to EME as
-
125  // initData.
-
126  DCHECK(raw_box.empty());
-
127  BoxReader* reader = buffer->reader();
-
128  DCHECK(reader);
-
129  raw_box.assign(reader->data(), reader->data() + reader->size());
-
130  }
-
131  return true;
-
132 }
-
133 
- -
135  if (!raw_box.empty()) {
-
136  atom_size = raw_box.size();
-
137  } else {
-
138  atom_size =
-
139  kFullBoxSize + system_id.size() + sizeof(uint32_t) + data.size();
-
140  }
-
141  return atom_size;
-
142 }
-
143 
-
144 SampleAuxiliaryInformationOffset::SampleAuxiliaryInformationOffset() {}
-
145 SampleAuxiliaryInformationOffset::~SampleAuxiliaryInformationOffset() {}
-
146 FourCC SampleAuxiliaryInformationOffset::BoxType() const { return FOURCC_SAIO; }
-
147 
- -
149  RCHECK(FullBox::ReadWrite(buffer));
-
150  if (flags & 1)
-
151  RCHECK(buffer->IgnoreBytes(8)); // aux_info_type and parameter.
-
152 
-
153  uint32_t count = offsets.size();
-
154  RCHECK(buffer->ReadWriteUInt32(&count));
-
155  offsets.resize(count);
-
156 
-
157  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
158  for (uint32_t i = 0; i < count; ++i)
-
159  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], num_bytes));
-
160  return true;
-
161 }
-
162 
- -
164  // This box is optional. Skip it if it is empty.
-
165  atom_size = 0;
-
166  if (offsets.size() != 0) {
-
167  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
168  atom_size = kFullBoxSize + sizeof(uint32_t) + num_bytes * offsets.size();
-
169  }
-
170  return atom_size;
-
171 }
-
172 
-
173 SampleAuxiliaryInformationSize::SampleAuxiliaryInformationSize()
-
174  : default_sample_info_size(0), sample_count(0) {}
-
175 SampleAuxiliaryInformationSize::~SampleAuxiliaryInformationSize() {}
-
176 FourCC SampleAuxiliaryInformationSize::BoxType() const { return FOURCC_SAIZ; }
-
177 
- -
179  RCHECK(FullBox::ReadWrite(buffer));
-
180  if (flags & 1)
-
181  RCHECK(buffer->IgnoreBytes(8));
-
182 
-
183  RCHECK(buffer->ReadWriteUInt8(&default_sample_info_size) &&
-
184  buffer->ReadWriteUInt32(&sample_count));
-
185  if (default_sample_info_size == 0)
-
186  RCHECK(buffer->ReadWriteVector(&sample_info_sizes, sample_count));
-
187  return true;
-
188 }
-
189 
- -
191  // This box is optional. Skip it if it is empty.
-
192  atom_size = 0;
-
193  if (sample_count != 0) {
-
194  atom_size = kFullBoxSize + sizeof(default_sample_info_size) +
-
195  sizeof(sample_count) +
-
196  (default_sample_info_size == 0 ? sample_info_sizes.size() : 0);
-
197  }
-
198  return atom_size;
-
199 }
-
200 
-
201 OriginalFormat::OriginalFormat() : format(FOURCC_NULL) {}
-
202 OriginalFormat::~OriginalFormat() {}
-
203 FourCC OriginalFormat::BoxType() const { return FOURCC_FRMA; }
-
204 
- -
206  return Box::ReadWrite(buffer) && buffer->ReadWriteFourCC(&format);
-
207 }
-
208 
- -
210  atom_size = kBoxSize + kFourCCSize;
-
211  return atom_size;
-
212 }
-
213 
-
214 SchemeType::SchemeType() : type(FOURCC_NULL), version(0) {}
-
215 SchemeType::~SchemeType() {}
-
216 FourCC SchemeType::BoxType() const { return FOURCC_SCHM; }
-
217 
- -
219  RCHECK(FullBox::ReadWrite(buffer) &&
-
220  buffer->ReadWriteFourCC(&type) &&
-
221  buffer->ReadWriteUInt32(&version));
-
222  return true;
-
223 }
-
224 
- -
226  atom_size = kFullBoxSize + kFourCCSize + sizeof(version);
-
227  return atom_size;
-
228 }
-
229 
-
230 TrackEncryption::TrackEncryption()
-
231  : is_encrypted(false), default_iv_size(0), default_kid(16, 0) {}
-
232 TrackEncryption::~TrackEncryption() {}
-
233 FourCC TrackEncryption::BoxType() const { return FOURCC_TENC; }
-
234 
- -
236  if (!buffer->Reading()) {
-
237  if (default_kid.size() != kCencKeyIdSize) {
-
238  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
-
239  << " bytes; got " << default_kid.size()
-
240  << ". Resized accordingly.";
-
241  default_kid.resize(kCencKeyIdSize);
-
242  }
-
243  }
-
244 
-
245  uint8_t flag = is_encrypted ? 1 : 0;
-
246  RCHECK(FullBox::ReadWrite(buffer) &&
-
247  buffer->IgnoreBytes(2) && // reserved.
-
248  buffer->ReadWriteUInt8(&flag) &&
-
249  buffer->ReadWriteUInt8(&default_iv_size) &&
-
250  buffer->ReadWriteVector(&default_kid, kCencKeyIdSize));
-
251  if (buffer->Reading()) {
-
252  is_encrypted = (flag != 0);
-
253  if (is_encrypted) {
-
254  RCHECK(default_iv_size == 8 || default_iv_size == 16);
-
255  } else {
-
256  RCHECK(default_iv_size == 0);
-
257  }
-
258  }
-
259  return true;
-
260 }
-
261 
- -
263  atom_size = kFullBoxSize + sizeof(uint32_t) + kCencKeyIdSize;
-
264  return atom_size;
-
265 }
-
266 
-
267 SchemeInfo::SchemeInfo() {}
-
268 SchemeInfo::~SchemeInfo() {}
-
269 FourCC SchemeInfo::BoxType() const { return FOURCC_SCHI; }
-
270 
- -
272  RCHECK(Box::ReadWrite(buffer) && buffer->PrepareChildren() &&
-
273  buffer->ReadWriteChild(&track_encryption));
-
274  return true;
-
275 }
-
276 
- -
278  atom_size = kBoxSize + track_encryption.ComputeSize();
-
279  return atom_size;
-
280 }
-
281 
-
282 ProtectionSchemeInfo::ProtectionSchemeInfo() {}
-
283 ProtectionSchemeInfo::~ProtectionSchemeInfo() {}
-
284 FourCC ProtectionSchemeInfo::BoxType() const { return FOURCC_SINF; }
-
285 
- -
287  RCHECK(Box::ReadWrite(buffer) &&
-
288  buffer->PrepareChildren() &&
-
289  buffer->ReadWriteChild(&format) &&
-
290  buffer->ReadWriteChild(&type));
-
291  if (type.type == FOURCC_CENC)
-
292  RCHECK(buffer->ReadWriteChild(&info));
-
293  // Other protection schemes are silently ignored. Since the protection scheme
-
294  // type can't be determined until this box is opened, we return 'true' for
-
295  // non-CENC protection scheme types. It is the parent box's responsibility to
-
296  // ensure that this scheme type is a supported one.
-
297  return true;
-
298 }
-
299 
- -
301  // Skip sinf box if it is not initialized.
-
302  atom_size = 0;
-
303  if (format.format != FOURCC_NULL) {
-
304  atom_size = kBoxSize + format.ComputeSize() + type.ComputeSize() +
-
305  info.ComputeSize();
-
306  }
-
307  return atom_size;
-
308 }
-
309 
-
310 MovieHeader::MovieHeader()
-
311  : creation_time(0),
-
312  modification_time(0),
-
313  timescale(0),
-
314  duration(0),
-
315  rate(1 << 16),
-
316  volume(1 << 8),
-
317  next_track_id(0) {}
-
318 MovieHeader::~MovieHeader() {}
-
319 FourCC MovieHeader::BoxType() const { return FOURCC_MVHD; }
-
320 
- -
322  RCHECK(FullBox::ReadWrite(buffer));
-
323 
-
324  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
325  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
-
326  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
-
327  buffer->ReadWriteUInt32(&timescale) &&
-
328  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
-
329 
-
330  std::vector<uint8_t> matrix(kUnityMatrix,
-
331  kUnityMatrix + arraysize(kUnityMatrix));
-
332  RCHECK(buffer->ReadWriteInt32(&rate) &&
-
333  buffer->ReadWriteInt16(&volume) &&
-
334  buffer->IgnoreBytes(10) && // reserved
-
335  buffer->ReadWriteVector(&matrix, matrix.size()) &&
-
336  buffer->IgnoreBytes(24) && // predefined zero
-
337  buffer->ReadWriteUInt32(&next_track_id));
-
338  return true;
-
339 }
-
340 
- -
342  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
-
343  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version) * 3 +
-
344  sizeof(timescale) + sizeof(rate) + sizeof(volume) +
-
345  sizeof(next_track_id) + sizeof(kUnityMatrix) + 10 +
-
346  24; // 10 bytes reserved, 24 bytes predefined.
-
347  return atom_size;
-
348 }
-
349 
-
350 TrackHeader::TrackHeader()
-
351  : creation_time(0),
-
352  modification_time(0),
-
353  track_id(0),
-
354  duration(0),
-
355  layer(0),
-
356  alternate_group(0),
-
357  volume(-1),
-
358  width(0),
-
359  height(0) {
-
360  flags = kTrackEnabled | kTrackInMovie;
-
361 }
-
362 TrackHeader::~TrackHeader() {}
-
363 FourCC TrackHeader::BoxType() const { return FOURCC_TKHD; }
-
364 
- -
366  RCHECK(FullBox::ReadWrite(buffer));
-
367 
-
368  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
369  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
-
370  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
-
371  buffer->ReadWriteUInt32(&track_id) &&
-
372  buffer->IgnoreBytes(4) && // reserved
-
373  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
-
374 
-
375  if (!buffer->Reading()) {
-
376  // Set default value for volume, if track is audio, 0x100 else 0.
-
377  if (volume == -1)
-
378  volume = (width != 0 && height != 0) ? 0 : 0x100;
-
379  }
-
380  std::vector<uint8_t> matrix(kUnityMatrix,
-
381  kUnityMatrix + arraysize(kUnityMatrix));
-
382  RCHECK(buffer->IgnoreBytes(8) && // reserved
-
383  buffer->ReadWriteInt16(&layer) &&
-
384  buffer->ReadWriteInt16(&alternate_group) &&
-
385  buffer->ReadWriteInt16(&volume) &&
-
386  buffer->IgnoreBytes(2) && // reserved
-
387  buffer->ReadWriteVector(&matrix, matrix.size()) &&
-
388  buffer->ReadWriteUInt32(&width) &&
-
389  buffer->ReadWriteUInt32(&height));
-
390  return true;
-
391 }
-
392 
- -
394  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
-
395  atom_size = kFullBoxSize + sizeof(track_id) +
-
396  sizeof(uint32_t) * (1 + version) * 3 + sizeof(layer) +
-
397  sizeof(alternate_group) + sizeof(volume) + sizeof(width) +
-
398  sizeof(height) + sizeof(kUnityMatrix) + 14; // 14 bytes reserved.
-
399  return atom_size;
-
400 }
-
401 
-
402 SampleDescription::SampleDescription() : type(kInvalid) {}
-
403 SampleDescription::~SampleDescription() {}
-
404 FourCC SampleDescription::BoxType() const { return FOURCC_STSD; }
-
405 
- -
407  uint32_t count = 0;
-
408  if (type == kVideo)
-
409  count = video_entries.size();
-
410  else
-
411  count = audio_entries.size();
-
412  RCHECK(FullBox::ReadWrite(buffer) &&
-
413  buffer->ReadWriteUInt32(&count));
-
414 
-
415  if (buffer->Reading()) {
-
416  BoxReader* reader = buffer->reader();
-
417  DCHECK(reader);
-
418  video_entries.clear();
-
419  audio_entries.clear();
-
420  // Note: this value is preset before scanning begins. See comments in the
-
421  // Parse(Media*) function.
-
422  if (type == kVideo) {
-
423  RCHECK(reader->ReadAllChildren(&video_entries));
-
424  RCHECK(video_entries.size() == count);
-
425  } else if (type == kAudio) {
-
426  RCHECK(reader->ReadAllChildren(&audio_entries));
-
427  RCHECK(audio_entries.size() == count);
-
428  }
-
429  } else {
-
430  DCHECK_LT(0u, count);
-
431  if (type == kVideo) {
-
432  for (uint32_t i = 0; i < count; ++i)
-
433  RCHECK(video_entries[i].ReadWrite(buffer));
-
434  } else if (type == kAudio) {
-
435  for (uint32_t i = 0; i < count; ++i)
-
436  RCHECK(audio_entries[i].ReadWrite(buffer));
-
437  } else {
-
438  NOTIMPLEMENTED();
-
439  }
-
440  }
-
441  return true;
-
442 }
-
443 
- -
445  atom_size = kFullBoxSize + sizeof(uint32_t);
-
446  if (type == kVideo) {
-
447  for (uint32_t i = 0; i < video_entries.size(); ++i)
-
448  atom_size += video_entries[i].ComputeSize();
-
449  } else if (type == kAudio) {
-
450  for (uint32_t i = 0; i < audio_entries.size(); ++i)
-
451  atom_size += audio_entries[i].ComputeSize();
-
452  }
-
453  return atom_size;
-
454 }
-
455 
-
456 DecodingTimeToSample::DecodingTimeToSample() {}
-
457 DecodingTimeToSample::~DecodingTimeToSample() {}
-
458 FourCC DecodingTimeToSample::BoxType() const { return FOURCC_STTS; }
-
459 
- -
461  uint32_t count = decoding_time.size();
-
462  RCHECK(FullBox::ReadWrite(buffer) &&
-
463  buffer->ReadWriteUInt32(&count));
-
464 
-
465  decoding_time.resize(count);
-
466  for (uint32_t i = 0; i < count; ++i) {
-
467  RCHECK(buffer->ReadWriteUInt32(&decoding_time[i].sample_count) &&
-
468  buffer->ReadWriteUInt32(&decoding_time[i].sample_delta));
-
469  }
-
470  return true;
-
471 }
-
472 
- -
474  atom_size = kFullBoxSize + sizeof(uint32_t) +
-
475  sizeof(DecodingTime) * decoding_time.size();
-
476  return atom_size;
-
477 }
-
478 
-
479 CompositionTimeToSample::CompositionTimeToSample() {}
-
480 CompositionTimeToSample::~CompositionTimeToSample() {}
-
481 FourCC CompositionTimeToSample::BoxType() const { return FOURCC_CTTS; }
-
482 
- -
484  uint32_t count = composition_offset.size();
-
485  if (!buffer->Reading()) {
-
486  // Determine whether version 0 or version 1 should be used.
-
487  // Use version 0 if possible, use version 1 if there is a negative
-
488  // sample_offset value.
-
489  version = 0;
-
490  for (uint32_t i = 0; i < count; ++i) {
-
491  if (composition_offset[i].sample_offset < 0) {
-
492  version = 1;
-
493  break;
-
494  }
-
495  }
-
496  }
-
497 
-
498  RCHECK(FullBox::ReadWrite(buffer) &&
-
499  buffer->ReadWriteUInt32(&count));
-
500 
-
501  composition_offset.resize(count);
-
502  for (uint32_t i = 0; i < count; ++i) {
-
503  RCHECK(buffer->ReadWriteUInt32(&composition_offset[i].sample_count));
-
504 
-
505  if (version == 0) {
-
506  uint32_t sample_offset = composition_offset[i].sample_offset;
-
507  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
-
508  composition_offset[i].sample_offset = sample_offset;
-
509  } else {
-
510  int32_t sample_offset = composition_offset[i].sample_offset;
-
511  RCHECK(buffer->ReadWriteInt32(&sample_offset));
-
512  composition_offset[i].sample_offset = sample_offset;
-
513  }
-
514  }
-
515  return true;
-
516 }
-
517 
- -
519  // This box is optional. Skip it if it is empty.
-
520  atom_size = 0;
-
521  if (!composition_offset.empty()) {
-
522  // Structure CompositionOffset contains |sample_offset| (uint32_t) and
-
523  // |sample_offset| (int64_t). The actual size of |sample_offset| is
-
524  // 4 bytes (uint32_t for version 0 and int32_t for version 1).
-
525  const uint32_t kCompositionOffsetSize = sizeof(uint32_t) * 2;
-
526  atom_size = kFullBoxSize + sizeof(uint32_t) +
-
527  kCompositionOffsetSize * composition_offset.size();
-
528  }
-
529  return atom_size;
-
530 }
-
531 
-
532 SampleToChunk::SampleToChunk() {}
-
533 SampleToChunk::~SampleToChunk() {}
-
534 FourCC SampleToChunk::BoxType() const { return FOURCC_STSC; }
-
535 
- -
537  uint32_t count = chunk_info.size();
-
538  RCHECK(FullBox::ReadWrite(buffer) &&
-
539  buffer->ReadWriteUInt32(&count));
-
540 
-
541  chunk_info.resize(count);
-
542  for (uint32_t i = 0; i < count; ++i) {
-
543  RCHECK(buffer->ReadWriteUInt32(&chunk_info[i].first_chunk) &&
-
544  buffer->ReadWriteUInt32(&chunk_info[i].samples_per_chunk) &&
-
545  buffer->ReadWriteUInt32(&chunk_info[i].sample_description_index));
-
546  // first_chunk values are always increasing.
-
547  RCHECK(i == 0 ? chunk_info[i].first_chunk == 1
-
548  : chunk_info[i].first_chunk > chunk_info[i - 1].first_chunk);
-
549  }
-
550  return true;
-
551 }
-
552 
- -
554  atom_size =
-
555  kFullBoxSize + sizeof(uint32_t) + sizeof(ChunkInfo) * chunk_info.size();
-
556  return atom_size;
-
557 }
-
558 
-
559 SampleSize::SampleSize() : sample_size(0), sample_count(0) {}
-
560 SampleSize::~SampleSize() {}
-
561 FourCC SampleSize::BoxType() const { return FOURCC_STSZ; }
-
562 
- -
564  RCHECK(FullBox::ReadWrite(buffer) &&
-
565  buffer->ReadWriteUInt32(&sample_size) &&
-
566  buffer->ReadWriteUInt32(&sample_count));
-
567 
-
568  if (sample_size == 0) {
-
569  if (buffer->Reading())
-
570  sizes.resize(sample_count);
-
571  else
-
572  DCHECK(sample_count == sizes.size());
-
573  for (uint32_t i = 0; i < sample_count; ++i)
-
574  RCHECK(buffer->ReadWriteUInt32(&sizes[i]));
-
575  }
-
576  return true;
-
577 }
-
578 
- -
580  atom_size = kFullBoxSize + sizeof(sample_size) + sizeof(sample_count) +
-
581  (sample_size == 0 ? sizeof(uint32_t) * sizes.size() : 0);
-
582  return atom_size;
-
583 }
-
584 
-
585 CompactSampleSize::CompactSampleSize() : field_size(0) {}
-
586 CompactSampleSize::~CompactSampleSize() {}
-
587 FourCC CompactSampleSize::BoxType() const { return FOURCC_STZ2; }
-
588 
- -
590  uint32_t sample_count = sizes.size();
-
591  RCHECK(FullBox::ReadWrite(buffer) &&
-
592  buffer->IgnoreBytes(3) &&
-
593  buffer->ReadWriteUInt8(&field_size) &&
-
594  buffer->ReadWriteUInt32(&sample_count));
-
595 
-
596  // Reserve one more entry if field size is 4 bits.
-
597  sizes.resize(sample_count + (field_size == 4 ? 1 : 0), 0);
-
598  switch (field_size) {
-
599  case 4:
-
600  for (uint32_t i = 0; i < sample_count; i += 2) {
-
601  if (buffer->Reading()) {
-
602  uint8_t size = 0;
-
603  RCHECK(buffer->ReadWriteUInt8(&size));
-
604  sizes[i] = size >> 4;
-
605  sizes[i + 1] = size & 0x0F;
-
606  } else {
-
607  DCHECK_LT(sizes[i], 16u);
-
608  DCHECK_LT(sizes[i + 1], 16u);
-
609  uint8_t size = (sizes[i] << 4) | sizes[i + 1];
-
610  RCHECK(buffer->ReadWriteUInt8(&size));
-
611  }
-
612  }
-
613  break;
-
614  case 8:
-
615  for (uint32_t i = 0; i < sample_count; ++i) {
-
616  uint8_t size = sizes[i];
-
617  RCHECK(buffer->ReadWriteUInt8(&size));
-
618  sizes[i] = size;
-
619  }
-
620  break;
-
621  case 16:
-
622  for (uint32_t i = 0; i < sample_count; ++i) {
-
623  uint16_t size = sizes[i];
-
624  RCHECK(buffer->ReadWriteUInt16(&size));
-
625  sizes[i] = size;
-
626  }
-
627  break;
-
628  default:
-
629  RCHECK(false);
-
630  }
-
631  sizes.resize(sample_count);
-
632  return true;
-
633 }
-
634 
- -
636  atom_size = kFullBoxSize + sizeof(uint32_t) + sizeof(uint32_t) +
-
637  (field_size * sizes.size() + 7) / 8;
-
638  return atom_size;
-
639 }
-
640 
-
641 ChunkOffset::ChunkOffset() {}
-
642 ChunkOffset::~ChunkOffset() {}
-
643 FourCC ChunkOffset::BoxType() const { return FOURCC_STCO; }
-
644 
- -
646  uint32_t count = offsets.size();
-
647  RCHECK(FullBox::ReadWrite(buffer) &&
-
648  buffer->ReadWriteUInt32(&count));
-
649 
-
650  offsets.resize(count);
-
651  for (uint32_t i = 0; i < count; ++i)
-
652  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], sizeof(uint32_t)));
-
653  return true;
-
654 }
-
655 
- -
657  atom_size =
-
658  kFullBoxSize + sizeof(uint32_t) + sizeof(uint32_t) * offsets.size();
-
659  return atom_size;
-
660 }
-
661 
-
662 ChunkLargeOffset::ChunkLargeOffset() {}
-
663 ChunkLargeOffset::~ChunkLargeOffset() {}
-
664 FourCC ChunkLargeOffset::BoxType() const { return FOURCC_CO64; }
-
665 
- -
667  uint32_t count = offsets.size();
-
668 
-
669  if (!buffer->Reading()) {
-
670  // Switch to ChunkOffset box if it is able to fit in 32 bits offset.
-
671  if (count == 0 || IsFitIn32Bits(offsets[count - 1])) {
-
672  ChunkOffset stco;
-
673  stco.offsets.swap(offsets);
-
674  DCHECK(buffer->writer());
-
675  stco.Write(buffer->writer());
-
676  stco.offsets.swap(offsets);
-
677  return true;
-
678  }
-
679  }
-
680 
-
681  RCHECK(FullBox::ReadWrite(buffer) &&
-
682  buffer->ReadWriteUInt32(&count));
-
683 
-
684  offsets.resize(count);
-
685  for (uint32_t i = 0; i < count; ++i)
-
686  RCHECK(buffer->ReadWriteUInt64(&offsets[i]));
-
687  return true;
-
688 }
-
689 
- -
691  uint32_t count = offsets.size();
-
692  int use_large_offset =
-
693  (count > 0 && !IsFitIn32Bits(offsets[count - 1])) ? 1 : 0;
-
694  atom_size = kFullBoxSize + sizeof(count) +
-
695  sizeof(uint32_t) * (1 + use_large_offset) * offsets.size();
-
696  return atom_size;
-
697 }
-
698 
-
699 SyncSample::SyncSample() {}
-
700 SyncSample::~SyncSample() {}
-
701 FourCC SyncSample::BoxType() const { return FOURCC_STSS; }
-
702 
- -
704  uint32_t count = sample_number.size();
-
705  RCHECK(FullBox::ReadWrite(buffer) &&
-
706  buffer->ReadWriteUInt32(&count));
-
707 
-
708  sample_number.resize(count);
-
709  for (uint32_t i = 0; i < count; ++i)
-
710  RCHECK(buffer->ReadWriteUInt32(&sample_number[i]));
-
711  return true;
-
712 }
-
713 
- -
715  // Sync sample box is optional. Skip it if it is empty.
-
716  atom_size = 0;
-
717  if (!sample_number.empty()) {
-
718  atom_size = kFullBoxSize + sizeof(uint32_t) +
-
719  sizeof(uint32_t) * sample_number.size();
-
720  }
-
721  return atom_size;
-
722 }
-
723 
-
724 SampleTable::SampleTable() {}
-
725 SampleTable::~SampleTable() {}
-
726 FourCC SampleTable::BoxType() const { return FOURCC_STBL; }
-
727 
- -
729  RCHECK(Box::ReadWrite(buffer) &&
-
730  buffer->PrepareChildren() &&
-
731  buffer->ReadWriteChild(&description) &&
-
732  buffer->ReadWriteChild(&decoding_time_to_sample) &&
-
733  buffer->TryReadWriteChild(&composition_time_to_sample) &&
-
734  buffer->ReadWriteChild(&sample_to_chunk));
-
735 
-
736  if (buffer->Reading()) {
-
737  BoxReader* reader = buffer->reader();
-
738  DCHECK(reader);
-
739 
-
740  // Either SampleSize or CompactSampleSize must present.
-
741  if (reader->ChildExist(&sample_size)) {
-
742  RCHECK(reader->ReadChild(&sample_size));
-
743  } else {
-
744  CompactSampleSize compact_sample_size;
-
745  RCHECK(reader->ReadChild(&compact_sample_size));
-
746  sample_size.sample_size = 0;
-
747  sample_size.sample_count = compact_sample_size.sizes.size();
-
748  sample_size.sizes.swap(compact_sample_size.sizes);
-
749  }
-
750 
-
751  // Either ChunkOffset or ChunkLargeOffset must present.
-
752  if (reader->ChildExist(&chunk_large_offset)) {
-
753  RCHECK(reader->ReadChild(&chunk_large_offset));
-
754  } else {
-
755  ChunkOffset chunk_offset;
-
756  RCHECK(reader->ReadChild(&chunk_offset));
-
757  chunk_large_offset.offsets.swap(chunk_offset.offsets);
-
758  }
-
759  } else {
-
760  RCHECK(sample_size.ReadWrite(buffer) &&
-
761  chunk_large_offset.ReadWrite(buffer));
-
762  }
-
763  RCHECK(buffer->TryReadWriteChild(&sync_sample));
-
764  return true;
-
765 }
-
766 
- -
768  atom_size = kBoxSize + description.ComputeSize() +
-
769  decoding_time_to_sample.ComputeSize() +
-
770  composition_time_to_sample.ComputeSize() +
-
771  sample_to_chunk.ComputeSize() + sample_size.ComputeSize() +
-
772  chunk_large_offset.ComputeSize() + sync_sample.ComputeSize();
-
773  return atom_size;
-
774 }
-
775 
-
776 EditList::EditList() {}
-
777 EditList::~EditList() {}
-
778 FourCC EditList::BoxType() const { return FOURCC_ELST; }
-
779 
- -
781  uint32_t count = edits.size();
-
782  RCHECK(FullBox::ReadWrite(buffer) && buffer->ReadWriteUInt32(&count));
-
783  edits.resize(count);
-
784 
-
785  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
786  for (uint32_t i = 0; i < count; ++i) {
-
787  RCHECK(
-
788  buffer->ReadWriteUInt64NBytes(&edits[i].segment_duration, num_bytes) &&
-
789  buffer->ReadWriteInt64NBytes(&edits[i].media_time, num_bytes) &&
-
790  buffer->ReadWriteInt16(&edits[i].media_rate_integer) &&
-
791  buffer->ReadWriteInt16(&edits[i].media_rate_fraction));
-
792  }
-
793  return true;
-
794 }
-
795 
- -
797  // EditList box is optional. Skip it if it is empty.
-
798  atom_size = 0;
-
799  if (edits.empty())
-
800  return 0;
-
801 
-
802  version = 0;
-
803  for (uint32_t i = 0; i < edits.size(); ++i) {
-
804  if (!IsFitIn32Bits(edits[i].segment_duration, edits[i].media_time)) {
-
805  version = 1;
-
806  break;
-
807  }
-
808  }
-
809  atom_size = kFullBoxSize + sizeof(uint32_t) +
-
810  (sizeof(uint32_t) * (1 + version) * 2 + sizeof(int16_t) * 2) *
-
811  edits.size();
-
812  return atom_size;
-
813 }
-
814 
-
815 Edit::Edit() {}
-
816 Edit::~Edit() {}
-
817 FourCC Edit::BoxType() const { return FOURCC_EDTS; }
-
818 
-
819 bool Edit::ReadWrite(BoxBuffer* buffer) {
-
820  return Box::ReadWrite(buffer) &&
-
821  buffer->PrepareChildren() &&
-
822  buffer->ReadWriteChild(&list);
-
823 }
-
824 
-
825 uint32_t Edit::ComputeSize() {
-
826  // Edit box is optional. Skip it if it is empty.
-
827  atom_size = 0;
-
828  if (!list.edits.empty())
-
829  atom_size = kBoxSize + list.ComputeSize();
-
830  return atom_size;
-
831 }
-
832 
-
833 HandlerReference::HandlerReference() : type(kInvalid) {}
-
834 HandlerReference::~HandlerReference() {}
-
835 FourCC HandlerReference::BoxType() const { return FOURCC_HDLR; }
-
836 
- -
838  FourCC hdlr_type = FOURCC_NULL;
-
839  std::vector<uint8_t> handler_name;
-
840  if (!buffer->Reading()) {
-
841  if (type == kVideo) {
-
842  hdlr_type = FOURCC_VIDE;
-
843  handler_name.assign(kVideoHandlerName,
-
844  kVideoHandlerName + arraysize(kVideoHandlerName));
-
845  } else if (type == kAudio) {
-
846  hdlr_type = FOURCC_SOUN;
-
847  handler_name.assign(kAudioHandlerName,
-
848  kAudioHandlerName + arraysize(kAudioHandlerName));
-
849  } else {
-
850  NOTIMPLEMENTED();
-
851  return false;
-
852  }
-
853  }
-
854  RCHECK(FullBox::ReadWrite(buffer) &&
-
855  buffer->IgnoreBytes(4) && // predefined.
-
856  buffer->ReadWriteFourCC(&hdlr_type));
-
857  if (buffer->Reading()) {
-
858  // Note: for reading, remaining fields in box ignored.
-
859  if (hdlr_type == FOURCC_VIDE) {
-
860  type = kVideo;
-
861  } else if (hdlr_type == FOURCC_SOUN) {
-
862  type = kAudio;
-
863  } else {
-
864  type = kInvalid;
-
865  }
-
866  } else {
-
867  RCHECK(buffer->IgnoreBytes(12) && // reserved.
-
868  buffer->ReadWriteVector(&handler_name, handler_name.size()));
-
869  }
-
870  return true;
-
871 }
-
872 
- -
874  atom_size =
-
875  kFullBoxSize + kFourCCSize + 16 + // 16 bytes Reserved
-
876  (type == kVideo ? sizeof(kVideoHandlerName) : sizeof(kAudioHandlerName));
-
877  return atom_size;
-
878 }
-
879 
-
880 CodecConfigurationRecord::CodecConfigurationRecord() : box_type(FOURCC_NULL) {}
-
881 CodecConfigurationRecord::~CodecConfigurationRecord() {}
-
882 FourCC CodecConfigurationRecord::BoxType() const {
-
883  // CodecConfigurationRecord should be parsed according to format recovered in
-
884  // VideoSampleEntry. |box_type| is determined dynamically there.
-
885  return box_type;
-
886 }
-
887 
- -
889  RCHECK(Box::ReadWrite(buffer));
-
890  if (buffer->Reading()) {
-
891  RCHECK(buffer->ReadWriteVector(&data, buffer->Size() - buffer->Pos()));
-
892  } else {
-
893  RCHECK(buffer->ReadWriteVector(&data, data.size()));
-
894  }
-
895  return true;
-
896 }
-
897 
- -
899  atom_size = 0;
-
900  if (!data.empty())
-
901  atom_size = kBoxSize + data.size();
-
902  return atom_size;
-
903 }
-
904 
-
905 PixelAspectRatioBox::PixelAspectRatioBox() : h_spacing(0), v_spacing(0) {}
-
906 PixelAspectRatioBox::~PixelAspectRatioBox() {}
-
907 FourCC PixelAspectRatioBox::BoxType() const { return FOURCC_PASP; }
-
908 
- -
910  RCHECK(Box::ReadWrite(buffer) &&
-
911  buffer->ReadWriteUInt32(&h_spacing) &&
-
912  buffer->ReadWriteUInt32(&v_spacing));
-
913  return true;
-
914 }
-
915 
- -
917  // This box is optional. Skip it if it is not initialized.
-
918  atom_size = 0;
-
919  if (h_spacing != 0 || v_spacing != 0) {
-
920  // Both values must be positive.
-
921  DCHECK(h_spacing != 0 && v_spacing != 0);
-
922  atom_size = kBoxSize + sizeof(h_spacing) + sizeof(v_spacing);
-
923  }
-
924  return atom_size;
-
925 }
-
926 
-
927 VideoSampleEntry::VideoSampleEntry()
-
928  : format(FOURCC_NULL), data_reference_index(1), width(0), height(0) {}
-
929 
-
930 VideoSampleEntry::~VideoSampleEntry() {}
-
931 FourCC VideoSampleEntry::BoxType() const {
-
932  LOG(ERROR) << "VideoSampleEntry should be parsed according to the "
-
933  << "handler type recovered in its Media ancestor.";
-
934  return FOURCC_NULL;
-
935 }
-
936 
- -
938  std::vector<uint8_t> compressor_name;
-
939  if (buffer->Reading()) {
-
940  DCHECK(buffer->reader());
-
941  format = buffer->reader()->type();
-
942  } else {
-
943  RCHECK(buffer->ReadWriteUInt32(&atom_size) &&
-
944  buffer->ReadWriteFourCC(&format));
-
945 
-
946  const FourCC actual_format = GetActualFormat();
-
947  switch (actual_format) {
-
948  case FOURCC_AVC1:
-
949  compressor_name.assign(
-
950  kAvcCompressorName,
-
951  kAvcCompressorName + arraysize(kAvcCompressorName));
-
952  break;
-
953  case FOURCC_VP08:
-
954  case FOURCC_VP09:
-
955  case FOURCC_VP10:
+
40 const char kHevcCompressorName[] = "\013HEVC Coding";
+
41 const char kVpcCompressorName[] = "\012VPC Coding";
+
42 
+
43 // Utility functions to check if the 64bit integers can fit in 32bit integer.
+
44 bool IsFitIn32Bits(uint64_t a) {
+
45  return a <= std::numeric_limits<uint32_t>::max();
+
46 }
+
47 
+
48 bool IsFitIn32Bits(int64_t a) {
+
49  return a <= std::numeric_limits<int32_t>::max() &&
+
50  a >= std::numeric_limits<int32_t>::min();
+
51 }
+
52 
+
53 template <typename T1, typename T2>
+
54 bool IsFitIn32Bits(T1 a1, T2 a2) {
+
55  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2);
+
56 }
+
57 
+
58 template <typename T1, typename T2, typename T3>
+
59 bool IsFitIn32Bits(T1 a1, T2 a2, T3 a3) {
+
60  return IsFitIn32Bits(a1) && IsFitIn32Bits(a2) && IsFitIn32Bits(a3);
+
61 }
+
62 
+
63 } // namespace
+
64 
+
65 namespace edash_packager {
+
66 namespace media {
+
67 namespace mp4 {
+
68 
+
69 FileType::FileType() : major_brand(FOURCC_NULL), minor_version(0) {}
+
70 FileType::~FileType() {}
+
71 FourCC FileType::BoxType() const { return FOURCC_FTYP; }
+
72 
+ +
74  RCHECK(Box::ReadWrite(buffer) &&
+
75  buffer->ReadWriteFourCC(&major_brand) &&
+
76  buffer->ReadWriteUInt32(&minor_version));
+
77  size_t num_brands;
+
78  if (buffer->Reading()) {
+
79  num_brands = (buffer->Size() - buffer->Pos()) / sizeof(FourCC);
+
80  compatible_brands.resize(num_brands);
+
81  } else {
+
82  num_brands = compatible_brands.size();
+
83  }
+
84  for (size_t i = 0; i < num_brands; ++i)
+
85  RCHECK(buffer->ReadWriteFourCC(&compatible_brands[i]));
+
86  return true;
+
87 }
+
88 
+ +
90  atom_size = kBoxSize + kFourCCSize + sizeof(minor_version) +
+
91  kFourCCSize * compatible_brands.size();
+
92  return atom_size;
+
93 }
+
94 
+
95 SegmentType::SegmentType() {}
+
96 SegmentType::~SegmentType() {}
+
97 FourCC SegmentType::BoxType() const { return FOURCC_STYP; }
+
98 
+ +
100  return FileType::ReadWrite(buffer);
+
101 }
+
102 
+ +
104  return FileType::ComputeSize();
+
105 }
+
106 
+
107 ProtectionSystemSpecificHeader::ProtectionSystemSpecificHeader() {}
+
108 ProtectionSystemSpecificHeader::~ProtectionSystemSpecificHeader() {}
+
109 FourCC ProtectionSystemSpecificHeader::BoxType() const { return FOURCC_PSSH; }
+
110 
+ +
112  if (!buffer->Reading() && !raw_box.empty()) {
+
113  // Write the raw box directly.
+
114  buffer->writer()->AppendVector(raw_box);
+
115  return true;
+
116  }
+
117 
+
118  uint32_t size = data.size();
+
119  RCHECK(FullBox::ReadWrite(buffer) &&
+
120  buffer->ReadWriteVector(&system_id, 16) &&
+
121  buffer->ReadWriteUInt32(&size) &&
+
122  buffer->ReadWriteVector(&data, size));
+
123 
+
124  if (buffer->Reading()) {
+
125  // Copy the entire box, including the header, for passing to EME as
+
126  // initData.
+
127  DCHECK(raw_box.empty());
+
128  BoxReader* reader = buffer->reader();
+
129  DCHECK(reader);
+
130  raw_box.assign(reader->data(), reader->data() + reader->size());
+
131  }
+
132  return true;
+
133 }
+
134 
+ +
136  if (!raw_box.empty()) {
+
137  atom_size = raw_box.size();
+
138  } else {
+
139  atom_size =
+
140  kFullBoxSize + system_id.size() + sizeof(uint32_t) + data.size();
+
141  }
+
142  return atom_size;
+
143 }
+
144 
+
145 SampleAuxiliaryInformationOffset::SampleAuxiliaryInformationOffset() {}
+
146 SampleAuxiliaryInformationOffset::~SampleAuxiliaryInformationOffset() {}
+
147 FourCC SampleAuxiliaryInformationOffset::BoxType() const { return FOURCC_SAIO; }
+
148 
+ +
150  RCHECK(FullBox::ReadWrite(buffer));
+
151  if (flags & 1)
+
152  RCHECK(buffer->IgnoreBytes(8)); // aux_info_type and parameter.
+
153 
+
154  uint32_t count = offsets.size();
+
155  RCHECK(buffer->ReadWriteUInt32(&count));
+
156  offsets.resize(count);
+
157 
+
158  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
+
159  for (uint32_t i = 0; i < count; ++i)
+
160  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], num_bytes));
+
161  return true;
+
162 }
+
163 
+ +
165  // This box is optional. Skip it if it is empty.
+
166  atom_size = 0;
+
167  if (offsets.size() != 0) {
+
168  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
+
169  atom_size = kFullBoxSize + sizeof(uint32_t) + num_bytes * offsets.size();
+
170  }
+
171  return atom_size;
+
172 }
+
173 
+
174 SampleAuxiliaryInformationSize::SampleAuxiliaryInformationSize()
+
175  : default_sample_info_size(0), sample_count(0) {}
+
176 SampleAuxiliaryInformationSize::~SampleAuxiliaryInformationSize() {}
+
177 FourCC SampleAuxiliaryInformationSize::BoxType() const { return FOURCC_SAIZ; }
+
178 
+ +
180  RCHECK(FullBox::ReadWrite(buffer));
+
181  if (flags & 1)
+
182  RCHECK(buffer->IgnoreBytes(8));
+
183 
+
184  RCHECK(buffer->ReadWriteUInt8(&default_sample_info_size) &&
+
185  buffer->ReadWriteUInt32(&sample_count));
+
186  if (default_sample_info_size == 0)
+
187  RCHECK(buffer->ReadWriteVector(&sample_info_sizes, sample_count));
+
188  return true;
+
189 }
+
190 
+ +
192  // This box is optional. Skip it if it is empty.
+
193  atom_size = 0;
+
194  if (sample_count != 0) {
+
195  atom_size = kFullBoxSize + sizeof(default_sample_info_size) +
+
196  sizeof(sample_count) +
+
197  (default_sample_info_size == 0 ? sample_info_sizes.size() : 0);
+
198  }
+
199  return atom_size;
+
200 }
+
201 
+
202 OriginalFormat::OriginalFormat() : format(FOURCC_NULL) {}
+
203 OriginalFormat::~OriginalFormat() {}
+
204 FourCC OriginalFormat::BoxType() const { return FOURCC_FRMA; }
+
205 
+ +
207  return Box::ReadWrite(buffer) && buffer->ReadWriteFourCC(&format);
+
208 }
+
209 
+ +
211  atom_size = kBoxSize + kFourCCSize;
+
212  return atom_size;
+
213 }
+
214 
+
215 SchemeType::SchemeType() : type(FOURCC_NULL), version(0) {}
+
216 SchemeType::~SchemeType() {}
+
217 FourCC SchemeType::BoxType() const { return FOURCC_SCHM; }
+
218 
+ +
220  RCHECK(FullBox::ReadWrite(buffer) &&
+
221  buffer->ReadWriteFourCC(&type) &&
+
222  buffer->ReadWriteUInt32(&version));
+
223  return true;
+
224 }
+
225 
+ +
227  atom_size = kFullBoxSize + kFourCCSize + sizeof(version);
+
228  return atom_size;
+
229 }
+
230 
+
231 TrackEncryption::TrackEncryption()
+
232  : is_encrypted(false), default_iv_size(0), default_kid(16, 0) {}
+
233 TrackEncryption::~TrackEncryption() {}
+
234 FourCC TrackEncryption::BoxType() const { return FOURCC_TENC; }
+
235 
+ +
237  if (!buffer->Reading()) {
+
238  if (default_kid.size() != kCencKeyIdSize) {
+
239  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
+
240  << " bytes; got " << default_kid.size()
+
241  << ". Resized accordingly.";
+
242  default_kid.resize(kCencKeyIdSize);
+
243  }
+
244  }
+
245 
+
246  uint8_t flag = is_encrypted ? 1 : 0;
+
247  RCHECK(FullBox::ReadWrite(buffer) &&
+
248  buffer->IgnoreBytes(2) && // reserved.
+
249  buffer->ReadWriteUInt8(&flag) &&
+
250  buffer->ReadWriteUInt8(&default_iv_size) &&
+
251  buffer->ReadWriteVector(&default_kid, kCencKeyIdSize));
+
252  if (buffer->Reading()) {
+
253  is_encrypted = (flag != 0);
+
254  if (is_encrypted) {
+
255  RCHECK(default_iv_size == 8 || default_iv_size == 16);
+
256  } else {
+
257  RCHECK(default_iv_size == 0);
+
258  }
+
259  }
+
260  return true;
+
261 }
+
262 
+ +
264  atom_size = kFullBoxSize + sizeof(uint32_t) + kCencKeyIdSize;
+
265  return atom_size;
+
266 }
+
267 
+
268 SchemeInfo::SchemeInfo() {}
+
269 SchemeInfo::~SchemeInfo() {}
+
270 FourCC SchemeInfo::BoxType() const { return FOURCC_SCHI; }
+
271 
+ +
273  RCHECK(Box::ReadWrite(buffer) && buffer->PrepareChildren() &&
+
274  buffer->ReadWriteChild(&track_encryption));
+
275  return true;
+
276 }
+
277 
+ +
279  atom_size = kBoxSize + track_encryption.ComputeSize();
+
280  return atom_size;
+
281 }
+
282 
+
283 ProtectionSchemeInfo::ProtectionSchemeInfo() {}
+
284 ProtectionSchemeInfo::~ProtectionSchemeInfo() {}
+
285 FourCC ProtectionSchemeInfo::BoxType() const { return FOURCC_SINF; }
+
286 
+ +
288  RCHECK(Box::ReadWrite(buffer) &&
+
289  buffer->PrepareChildren() &&
+
290  buffer->ReadWriteChild(&format) &&
+
291  buffer->ReadWriteChild(&type));
+
292  if (type.type == FOURCC_CENC)
+
293  RCHECK(buffer->ReadWriteChild(&info));
+
294  // Other protection schemes are silently ignored. Since the protection scheme
+
295  // type can't be determined until this box is opened, we return 'true' for
+
296  // non-CENC protection scheme types. It is the parent box's responsibility to
+
297  // ensure that this scheme type is a supported one.
+
298  return true;
+
299 }
+
300 
+ +
302  // Skip sinf box if it is not initialized.
+
303  atom_size = 0;
+
304  if (format.format != FOURCC_NULL) {
+
305  atom_size = kBoxSize + format.ComputeSize() + type.ComputeSize() +
+
306  info.ComputeSize();
+
307  }
+
308  return atom_size;
+
309 }
+
310 
+
311 MovieHeader::MovieHeader()
+
312  : creation_time(0),
+
313  modification_time(0),
+
314  timescale(0),
+
315  duration(0),
+
316  rate(1 << 16),
+
317  volume(1 << 8),
+
318  next_track_id(0) {}
+
319 MovieHeader::~MovieHeader() {}
+
320 FourCC MovieHeader::BoxType() const { return FOURCC_MVHD; }
+
321 
+ +
323  RCHECK(FullBox::ReadWrite(buffer));
+
324 
+
325  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
+
326  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
+
327  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
+
328  buffer->ReadWriteUInt32(&timescale) &&
+
329  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
+
330 
+
331  std::vector<uint8_t> matrix(kUnityMatrix,
+
332  kUnityMatrix + arraysize(kUnityMatrix));
+
333  RCHECK(buffer->ReadWriteInt32(&rate) &&
+
334  buffer->ReadWriteInt16(&volume) &&
+
335  buffer->IgnoreBytes(10) && // reserved
+
336  buffer->ReadWriteVector(&matrix, matrix.size()) &&
+
337  buffer->IgnoreBytes(24) && // predefined zero
+
338  buffer->ReadWriteUInt32(&next_track_id));
+
339  return true;
+
340 }
+
341 
+ +
343  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
+
344  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version) * 3 +
+
345  sizeof(timescale) + sizeof(rate) + sizeof(volume) +
+
346  sizeof(next_track_id) + sizeof(kUnityMatrix) + 10 +
+
347  24; // 10 bytes reserved, 24 bytes predefined.
+
348  return atom_size;
+
349 }
+
350 
+
351 TrackHeader::TrackHeader()
+
352  : creation_time(0),
+
353  modification_time(0),
+
354  track_id(0),
+
355  duration(0),
+
356  layer(0),
+
357  alternate_group(0),
+
358  volume(-1),
+
359  width(0),
+
360  height(0) {
+
361  flags = kTrackEnabled | kTrackInMovie;
+
362 }
+
363 TrackHeader::~TrackHeader() {}
+
364 FourCC TrackHeader::BoxType() const { return FOURCC_TKHD; }
+
365 
+ +
367  RCHECK(FullBox::ReadWrite(buffer));
+
368 
+
369  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
+
370  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
+
371  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
+
372  buffer->ReadWriteUInt32(&track_id) &&
+
373  buffer->IgnoreBytes(4) && // reserved
+
374  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
+
375 
+
376  if (!buffer->Reading()) {
+
377  // Set default value for volume, if track is audio, 0x100 else 0.
+
378  if (volume == -1)
+
379  volume = (width != 0 && height != 0) ? 0 : 0x100;
+
380  }
+
381  std::vector<uint8_t> matrix(kUnityMatrix,
+
382  kUnityMatrix + arraysize(kUnityMatrix));
+
383  RCHECK(buffer->IgnoreBytes(8) && // reserved
+
384  buffer->ReadWriteInt16(&layer) &&
+
385  buffer->ReadWriteInt16(&alternate_group) &&
+
386  buffer->ReadWriteInt16(&volume) &&
+
387  buffer->IgnoreBytes(2) && // reserved
+
388  buffer->ReadWriteVector(&matrix, matrix.size()) &&
+
389  buffer->ReadWriteUInt32(&width) &&
+
390  buffer->ReadWriteUInt32(&height));
+
391  return true;
+
392 }
+
393 
+ +
395  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
+
396  atom_size = kFullBoxSize + sizeof(track_id) +
+
397  sizeof(uint32_t) * (1 + version) * 3 + sizeof(layer) +
+
398  sizeof(alternate_group) + sizeof(volume) + sizeof(width) +
+
399  sizeof(height) + sizeof(kUnityMatrix) + 14; // 14 bytes reserved.
+
400  return atom_size;
+
401 }
+
402 
+
403 SampleDescription::SampleDescription() : type(kInvalid) {}
+
404 SampleDescription::~SampleDescription() {}
+
405 FourCC SampleDescription::BoxType() const { return FOURCC_STSD; }
+
406 
+ +
408  uint32_t count = 0;
+
409  if (type == kVideo)
+
410  count = video_entries.size();
+
411  else
+
412  count = audio_entries.size();
+
413  RCHECK(FullBox::ReadWrite(buffer) &&
+
414  buffer->ReadWriteUInt32(&count));
+
415 
+
416  if (buffer->Reading()) {
+
417  BoxReader* reader = buffer->reader();
+
418  DCHECK(reader);
+
419  video_entries.clear();
+
420  audio_entries.clear();
+
421  // Note: this value is preset before scanning begins. See comments in the
+
422  // Parse(Media*) function.
+
423  if (type == kVideo) {
+
424  RCHECK(reader->ReadAllChildren(&video_entries));
+
425  RCHECK(video_entries.size() == count);
+
426  } else if (type == kAudio) {
+
427  RCHECK(reader->ReadAllChildren(&audio_entries));
+
428  RCHECK(audio_entries.size() == count);
+
429  }
+
430  } else {
+
431  DCHECK_LT(0u, count);
+
432  if (type == kVideo) {
+
433  for (uint32_t i = 0; i < count; ++i)
+
434  RCHECK(video_entries[i].ReadWrite(buffer));
+
435  } else if (type == kAudio) {
+
436  for (uint32_t i = 0; i < count; ++i)
+
437  RCHECK(audio_entries[i].ReadWrite(buffer));
+
438  } else {
+
439  NOTIMPLEMENTED();
+
440  }
+
441  }
+
442  return true;
+
443 }
+
444 
+ +
446  atom_size = kFullBoxSize + sizeof(uint32_t);
+
447  if (type == kVideo) {
+
448  for (uint32_t i = 0; i < video_entries.size(); ++i)
+
449  atom_size += video_entries[i].ComputeSize();
+
450  } else if (type == kAudio) {
+
451  for (uint32_t i = 0; i < audio_entries.size(); ++i)
+
452  atom_size += audio_entries[i].ComputeSize();
+
453  }
+
454  return atom_size;
+
455 }
+
456 
+
457 DecodingTimeToSample::DecodingTimeToSample() {}
+
458 DecodingTimeToSample::~DecodingTimeToSample() {}
+
459 FourCC DecodingTimeToSample::BoxType() const { return FOURCC_STTS; }
+
460 
+ +
462  uint32_t count = decoding_time.size();
+
463  RCHECK(FullBox::ReadWrite(buffer) &&
+
464  buffer->ReadWriteUInt32(&count));
+
465 
+
466  decoding_time.resize(count);
+
467  for (uint32_t i = 0; i < count; ++i) {
+
468  RCHECK(buffer->ReadWriteUInt32(&decoding_time[i].sample_count) &&
+
469  buffer->ReadWriteUInt32(&decoding_time[i].sample_delta));
+
470  }
+
471  return true;
+
472 }
+
473 
+ +
475  atom_size = kFullBoxSize + sizeof(uint32_t) +
+
476  sizeof(DecodingTime) * decoding_time.size();
+
477  return atom_size;
+
478 }
+
479 
+
480 CompositionTimeToSample::CompositionTimeToSample() {}
+
481 CompositionTimeToSample::~CompositionTimeToSample() {}
+
482 FourCC CompositionTimeToSample::BoxType() const { return FOURCC_CTTS; }
+
483 
+ +
485  uint32_t count = composition_offset.size();
+
486  if (!buffer->Reading()) {
+
487  // Determine whether version 0 or version 1 should be used.
+
488  // Use version 0 if possible, use version 1 if there is a negative
+
489  // sample_offset value.
+
490  version = 0;
+
491  for (uint32_t i = 0; i < count; ++i) {
+
492  if (composition_offset[i].sample_offset < 0) {
+
493  version = 1;
+
494  break;
+
495  }
+
496  }
+
497  }
+
498 
+
499  RCHECK(FullBox::ReadWrite(buffer) &&
+
500  buffer->ReadWriteUInt32(&count));
+
501 
+
502  composition_offset.resize(count);
+
503  for (uint32_t i = 0; i < count; ++i) {
+
504  RCHECK(buffer->ReadWriteUInt32(&composition_offset[i].sample_count));
+
505 
+
506  if (version == 0) {
+
507  uint32_t sample_offset = composition_offset[i].sample_offset;
+
508  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
+
509  composition_offset[i].sample_offset = sample_offset;
+
510  } else {
+
511  int32_t sample_offset = composition_offset[i].sample_offset;
+
512  RCHECK(buffer->ReadWriteInt32(&sample_offset));
+
513  composition_offset[i].sample_offset = sample_offset;
+
514  }
+
515  }
+
516  return true;
+
517 }
+
518 
+ +
520  // This box is optional. Skip it if it is empty.
+
521  atom_size = 0;
+
522  if (!composition_offset.empty()) {
+
523  // Structure CompositionOffset contains |sample_offset| (uint32_t) and
+
524  // |sample_offset| (int64_t). The actual size of |sample_offset| is
+
525  // 4 bytes (uint32_t for version 0 and int32_t for version 1).
+
526  const uint32_t kCompositionOffsetSize = sizeof(uint32_t) * 2;
+
527  atom_size = kFullBoxSize + sizeof(uint32_t) +
+
528  kCompositionOffsetSize * composition_offset.size();
+
529  }
+
530  return atom_size;
+
531 }
+
532 
+
533 SampleToChunk::SampleToChunk() {}
+
534 SampleToChunk::~SampleToChunk() {}
+
535 FourCC SampleToChunk::BoxType() const { return FOURCC_STSC; }
+
536 
+ +
538  uint32_t count = chunk_info.size();
+
539  RCHECK(FullBox::ReadWrite(buffer) &&
+
540  buffer->ReadWriteUInt32(&count));
+
541 
+
542  chunk_info.resize(count);
+
543  for (uint32_t i = 0; i < count; ++i) {
+
544  RCHECK(buffer->ReadWriteUInt32(&chunk_info[i].first_chunk) &&
+
545  buffer->ReadWriteUInt32(&chunk_info[i].samples_per_chunk) &&
+
546  buffer->ReadWriteUInt32(&chunk_info[i].sample_description_index));
+
547  // first_chunk values are always increasing.
+
548  RCHECK(i == 0 ? chunk_info[i].first_chunk == 1
+
549  : chunk_info[i].first_chunk > chunk_info[i - 1].first_chunk);
+
550  }
+
551  return true;
+
552 }
+
553 
+ +
555  atom_size =
+
556  kFullBoxSize + sizeof(uint32_t) + sizeof(ChunkInfo) * chunk_info.size();
+
557  return atom_size;
+
558 }
+
559 
+
560 SampleSize::SampleSize() : sample_size(0), sample_count(0) {}
+
561 SampleSize::~SampleSize() {}
+
562 FourCC SampleSize::BoxType() const { return FOURCC_STSZ; }
+
563 
+ +
565  RCHECK(FullBox::ReadWrite(buffer) &&
+
566  buffer->ReadWriteUInt32(&sample_size) &&
+
567  buffer->ReadWriteUInt32(&sample_count));
+
568 
+
569  if (sample_size == 0) {
+
570  if (buffer->Reading())
+
571  sizes.resize(sample_count);
+
572  else
+
573  DCHECK(sample_count == sizes.size());
+
574  for (uint32_t i = 0; i < sample_count; ++i)
+
575  RCHECK(buffer->ReadWriteUInt32(&sizes[i]));
+
576  }
+
577  return true;
+
578 }
+
579 
+ +
581  atom_size = kFullBoxSize + sizeof(sample_size) + sizeof(sample_count) +
+
582  (sample_size == 0 ? sizeof(uint32_t) * sizes.size() : 0);
+
583  return atom_size;
+
584 }
+
585 
+
586 CompactSampleSize::CompactSampleSize() : field_size(0) {}
+
587 CompactSampleSize::~CompactSampleSize() {}
+
588 FourCC CompactSampleSize::BoxType() const { return FOURCC_STZ2; }
+
589 
+ +
591  uint32_t sample_count = sizes.size();
+
592  RCHECK(FullBox::ReadWrite(buffer) &&
+
593  buffer->IgnoreBytes(3) &&
+
594  buffer->ReadWriteUInt8(&field_size) &&
+
595  buffer->ReadWriteUInt32(&sample_count));
+
596 
+
597  // Reserve one more entry if field size is 4 bits.
+
598  sizes.resize(sample_count + (field_size == 4 ? 1 : 0), 0);
+
599  switch (field_size) {
+
600  case 4:
+
601  for (uint32_t i = 0; i < sample_count; i += 2) {
+
602  if (buffer->Reading()) {
+
603  uint8_t size = 0;
+
604  RCHECK(buffer->ReadWriteUInt8(&size));
+
605  sizes[i] = size >> 4;
+
606  sizes[i + 1] = size & 0x0F;
+
607  } else {
+
608  DCHECK_LT(sizes[i], 16u);
+
609  DCHECK_LT(sizes[i + 1], 16u);
+
610  uint8_t size = (sizes[i] << 4) | sizes[i + 1];
+
611  RCHECK(buffer->ReadWriteUInt8(&size));
+
612  }
+
613  }
+
614  break;
+
615  case 8:
+
616  for (uint32_t i = 0; i < sample_count; ++i) {
+
617  uint8_t size = sizes[i];
+
618  RCHECK(buffer->ReadWriteUInt8(&size));
+
619  sizes[i] = size;
+
620  }
+
621  break;
+
622  case 16:
+
623  for (uint32_t i = 0; i < sample_count; ++i) {
+
624  uint16_t size = sizes[i];
+
625  RCHECK(buffer->ReadWriteUInt16(&size));
+
626  sizes[i] = size;
+
627  }
+
628  break;
+
629  default:
+
630  RCHECK(false);
+
631  }
+
632  sizes.resize(sample_count);
+
633  return true;
+
634 }
+
635 
+ +
637  atom_size = kFullBoxSize + sizeof(uint32_t) + sizeof(uint32_t) +
+
638  (field_size * sizes.size() + 7) / 8;
+
639  return atom_size;
+
640 }
+
641 
+
642 ChunkOffset::ChunkOffset() {}
+
643 ChunkOffset::~ChunkOffset() {}
+
644 FourCC ChunkOffset::BoxType() const { return FOURCC_STCO; }
+
645 
+ +
647  uint32_t count = offsets.size();
+
648  RCHECK(FullBox::ReadWrite(buffer) &&
+
649  buffer->ReadWriteUInt32(&count));
+
650 
+
651  offsets.resize(count);
+
652  for (uint32_t i = 0; i < count; ++i)
+
653  RCHECK(buffer->ReadWriteUInt64NBytes(&offsets[i], sizeof(uint32_t)));
+
654  return true;
+
655 }
+
656 
+ +
658  atom_size =
+
659  kFullBoxSize + sizeof(uint32_t) + sizeof(uint32_t) * offsets.size();
+
660  return atom_size;
+
661 }
+
662 
+
663 ChunkLargeOffset::ChunkLargeOffset() {}
+
664 ChunkLargeOffset::~ChunkLargeOffset() {}
+
665 FourCC ChunkLargeOffset::BoxType() const { return FOURCC_CO64; }
+
666 
+ +
668  uint32_t count = offsets.size();
+
669 
+
670  if (!buffer->Reading()) {
+
671  // Switch to ChunkOffset box if it is able to fit in 32 bits offset.
+
672  if (count == 0 || IsFitIn32Bits(offsets[count - 1])) {
+
673  ChunkOffset stco;
+
674  stco.offsets.swap(offsets);
+
675  DCHECK(buffer->writer());
+
676  stco.Write(buffer->writer());
+
677  stco.offsets.swap(offsets);
+
678  return true;
+
679  }
+
680  }
+
681 
+
682  RCHECK(FullBox::ReadWrite(buffer) &&
+
683  buffer->ReadWriteUInt32(&count));
+
684 
+
685  offsets.resize(count);
+
686  for (uint32_t i = 0; i < count; ++i)
+
687  RCHECK(buffer->ReadWriteUInt64(&offsets[i]));
+
688  return true;
+
689 }
+
690 
+ +
692  uint32_t count = offsets.size();
+
693  int use_large_offset =
+
694  (count > 0 && !IsFitIn32Bits(offsets[count - 1])) ? 1 : 0;
+
695  atom_size = kFullBoxSize + sizeof(count) +
+
696  sizeof(uint32_t) * (1 + use_large_offset) * offsets.size();
+
697  return atom_size;
+
698 }
+
699 
+
700 SyncSample::SyncSample() {}
+
701 SyncSample::~SyncSample() {}
+
702 FourCC SyncSample::BoxType() const { return FOURCC_STSS; }
+
703 
+ +
705  uint32_t count = sample_number.size();
+
706  RCHECK(FullBox::ReadWrite(buffer) &&
+
707  buffer->ReadWriteUInt32(&count));
+
708 
+
709  sample_number.resize(count);
+
710  for (uint32_t i = 0; i < count; ++i)
+
711  RCHECK(buffer->ReadWriteUInt32(&sample_number[i]));
+
712  return true;
+
713 }
+
714 
+ +
716  // Sync sample box is optional. Skip it if it is empty.
+
717  atom_size = 0;
+
718  if (!sample_number.empty()) {
+
719  atom_size = kFullBoxSize + sizeof(uint32_t) +
+
720  sizeof(uint32_t) * sample_number.size();
+
721  }
+
722  return atom_size;
+
723 }
+
724 
+
725 SampleTable::SampleTable() {}
+
726 SampleTable::~SampleTable() {}
+
727 FourCC SampleTable::BoxType() const { return FOURCC_STBL; }
+
728 
+ +
730  RCHECK(Box::ReadWrite(buffer) &&
+
731  buffer->PrepareChildren() &&
+
732  buffer->ReadWriteChild(&description) &&
+
733  buffer->ReadWriteChild(&decoding_time_to_sample) &&
+
734  buffer->TryReadWriteChild(&composition_time_to_sample) &&
+
735  buffer->ReadWriteChild(&sample_to_chunk));
+
736 
+
737  if (buffer->Reading()) {
+
738  BoxReader* reader = buffer->reader();
+
739  DCHECK(reader);
+
740 
+
741  // Either SampleSize or CompactSampleSize must present.
+
742  if (reader->ChildExist(&sample_size)) {
+
743  RCHECK(reader->ReadChild(&sample_size));
+
744  } else {
+
745  CompactSampleSize compact_sample_size;
+
746  RCHECK(reader->ReadChild(&compact_sample_size));
+
747  sample_size.sample_size = 0;
+
748  sample_size.sample_count = compact_sample_size.sizes.size();
+
749  sample_size.sizes.swap(compact_sample_size.sizes);
+
750  }
+
751 
+
752  // Either ChunkOffset or ChunkLargeOffset must present.
+
753  if (reader->ChildExist(&chunk_large_offset)) {
+
754  RCHECK(reader->ReadChild(&chunk_large_offset));
+
755  } else {
+
756  ChunkOffset chunk_offset;
+
757  RCHECK(reader->ReadChild(&chunk_offset));
+
758  chunk_large_offset.offsets.swap(chunk_offset.offsets);
+
759  }
+
760  } else {
+
761  RCHECK(sample_size.ReadWrite(buffer) &&
+
762  chunk_large_offset.ReadWrite(buffer));
+
763  }
+
764  RCHECK(buffer->TryReadWriteChild(&sync_sample));
+
765  return true;
+
766 }
+
767 
+ +
769  atom_size = kBoxSize + description.ComputeSize() +
+
770  decoding_time_to_sample.ComputeSize() +
+
771  composition_time_to_sample.ComputeSize() +
+
772  sample_to_chunk.ComputeSize() + sample_size.ComputeSize() +
+
773  chunk_large_offset.ComputeSize() + sync_sample.ComputeSize();
+
774  return atom_size;
+
775 }
+
776 
+
777 EditList::EditList() {}
+
778 EditList::~EditList() {}
+
779 FourCC EditList::BoxType() const { return FOURCC_ELST; }
+
780 
+ +
782  uint32_t count = edits.size();
+
783  RCHECK(FullBox::ReadWrite(buffer) && buffer->ReadWriteUInt32(&count));
+
784  edits.resize(count);
+
785 
+
786  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
+
787  for (uint32_t i = 0; i < count; ++i) {
+
788  RCHECK(
+
789  buffer->ReadWriteUInt64NBytes(&edits[i].segment_duration, num_bytes) &&
+
790  buffer->ReadWriteInt64NBytes(&edits[i].media_time, num_bytes) &&
+
791  buffer->ReadWriteInt16(&edits[i].media_rate_integer) &&
+
792  buffer->ReadWriteInt16(&edits[i].media_rate_fraction));
+
793  }
+
794  return true;
+
795 }
+
796 
+ +
798  // EditList box is optional. Skip it if it is empty.
+
799  atom_size = 0;
+
800  if (edits.empty())
+
801  return 0;
+
802 
+
803  version = 0;
+
804  for (uint32_t i = 0; i < edits.size(); ++i) {
+
805  if (!IsFitIn32Bits(edits[i].segment_duration, edits[i].media_time)) {
+
806  version = 1;
+
807  break;
+
808  }
+
809  }
+
810  atom_size = kFullBoxSize + sizeof(uint32_t) +
+
811  (sizeof(uint32_t) * (1 + version) * 2 + sizeof(int16_t) * 2) *
+
812  edits.size();
+
813  return atom_size;
+
814 }
+
815 
+
816 Edit::Edit() {}
+
817 Edit::~Edit() {}
+
818 FourCC Edit::BoxType() const { return FOURCC_EDTS; }
+
819 
+
820 bool Edit::ReadWrite(BoxBuffer* buffer) {
+
821  return Box::ReadWrite(buffer) &&
+
822  buffer->PrepareChildren() &&
+
823  buffer->ReadWriteChild(&list);
+
824 }
+
825 
+
826 uint32_t Edit::ComputeSize() {
+
827  // Edit box is optional. Skip it if it is empty.
+
828  atom_size = 0;
+
829  if (!list.edits.empty())
+
830  atom_size = kBoxSize + list.ComputeSize();
+
831  return atom_size;
+
832 }
+
833 
+
834 HandlerReference::HandlerReference() : type(kInvalid) {}
+
835 HandlerReference::~HandlerReference() {}
+
836 FourCC HandlerReference::BoxType() const { return FOURCC_HDLR; }
+
837 
+ +
839  FourCC hdlr_type = FOURCC_NULL;
+
840  std::vector<uint8_t> handler_name;
+
841  if (!buffer->Reading()) {
+
842  if (type == kVideo) {
+
843  hdlr_type = FOURCC_VIDE;
+
844  handler_name.assign(kVideoHandlerName,
+
845  kVideoHandlerName + arraysize(kVideoHandlerName));
+
846  } else if (type == kAudio) {
+
847  hdlr_type = FOURCC_SOUN;
+
848  handler_name.assign(kAudioHandlerName,
+
849  kAudioHandlerName + arraysize(kAudioHandlerName));
+
850  } else {
+
851  NOTIMPLEMENTED();
+
852  return false;
+
853  }
+
854  }
+
855  RCHECK(FullBox::ReadWrite(buffer) &&
+
856  buffer->IgnoreBytes(4) && // predefined.
+
857  buffer->ReadWriteFourCC(&hdlr_type));
+
858  if (buffer->Reading()) {
+
859  // Note: for reading, remaining fields in box ignored.
+
860  if (hdlr_type == FOURCC_VIDE) {
+
861  type = kVideo;
+
862  } else if (hdlr_type == FOURCC_SOUN) {
+
863  type = kAudio;
+
864  } else {
+
865  type = kInvalid;
+
866  }
+
867  } else {
+
868  RCHECK(buffer->IgnoreBytes(12) && // reserved.
+
869  buffer->ReadWriteVector(&handler_name, handler_name.size()));
+
870  }
+
871  return true;
+
872 }
+
873 
+ +
875  atom_size =
+
876  kFullBoxSize + kFourCCSize + 16 + // 16 bytes Reserved
+
877  (type == kVideo ? sizeof(kVideoHandlerName) : sizeof(kAudioHandlerName));
+
878  return atom_size;
+
879 }
+
880 
+
881 CodecConfigurationRecord::CodecConfigurationRecord() : box_type(FOURCC_NULL) {}
+
882 CodecConfigurationRecord::~CodecConfigurationRecord() {}
+
883 FourCC CodecConfigurationRecord::BoxType() const {
+
884  // CodecConfigurationRecord should be parsed according to format recovered in
+
885  // VideoSampleEntry. |box_type| is determined dynamically there.
+
886  return box_type;
+
887 }
+
888 
+ +
890  RCHECK(Box::ReadWrite(buffer));
+
891  if (buffer->Reading()) {
+
892  RCHECK(buffer->ReadWriteVector(&data, buffer->Size() - buffer->Pos()));
+
893  } else {
+
894  RCHECK(buffer->ReadWriteVector(&data, data.size()));
+
895  }
+
896  return true;
+
897 }
+
898 
+ +
900  atom_size = 0;
+
901  if (!data.empty())
+
902  atom_size = kBoxSize + data.size();
+
903  return atom_size;
+
904 }
+
905 
+
906 PixelAspectRatioBox::PixelAspectRatioBox() : h_spacing(0), v_spacing(0) {}
+
907 PixelAspectRatioBox::~PixelAspectRatioBox() {}
+
908 FourCC PixelAspectRatioBox::BoxType() const { return FOURCC_PASP; }
+
909 
+ +
911  RCHECK(Box::ReadWrite(buffer) &&
+
912  buffer->ReadWriteUInt32(&h_spacing) &&
+
913  buffer->ReadWriteUInt32(&v_spacing));
+
914  return true;
+
915 }
+
916 
+ +
918  // This box is optional. Skip it if it is not initialized.
+
919  atom_size = 0;
+
920  if (h_spacing != 0 || v_spacing != 0) {
+
921  // Both values must be positive.
+
922  DCHECK(h_spacing != 0 && v_spacing != 0);
+
923  atom_size = kBoxSize + sizeof(h_spacing) + sizeof(v_spacing);
+
924  }
+
925  return atom_size;
+
926 }
+
927 
+
928 VideoSampleEntry::VideoSampleEntry()
+
929  : format(FOURCC_NULL), data_reference_index(1), width(0), height(0) {}
+
930 
+
931 VideoSampleEntry::~VideoSampleEntry() {}
+
932 FourCC VideoSampleEntry::BoxType() const {
+
933  LOG(ERROR) << "VideoSampleEntry should be parsed according to the "
+
934  << "handler type recovered in its Media ancestor.";
+
935  return FOURCC_NULL;
+
936 }
+
937 
+ +
939  std::vector<uint8_t> compressor_name;
+
940  if (buffer->Reading()) {
+
941  DCHECK(buffer->reader());
+
942  format = buffer->reader()->type();
+
943  } else {
+
944  RCHECK(buffer->ReadWriteUInt32(&atom_size) &&
+
945  buffer->ReadWriteFourCC(&format));
+
946 
+
947  const FourCC actual_format = GetActualFormat();
+
948  switch (actual_format) {
+
949  case FOURCC_AVC1:
+
950  compressor_name.assign(
+
951  kAvcCompressorName,
+
952  kAvcCompressorName + arraysize(kAvcCompressorName));
+
953  break;
+
954  case FOURCC_HEV1:
+
955  case FOURCC_HVC1:
956  compressor_name.assign(
-
957  kVpcCompressorName,
-
958  kVpcCompressorName + arraysize(kVpcCompressorName));
+
957  kHevcCompressorName,
+
958  kHevcCompressorName + arraysize(kHevcCompressorName));
959  break;
-
960  default:
-
961  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
-
962  return false;
-
963  }
-
964  compressor_name.resize(kCompressorNameSize);
-
965  }
-
966 
-
967  uint32_t video_resolution = kVideoResolution;
-
968  uint16_t video_frame_count = kVideoFrameCount;
-
969  uint16_t video_depth = kVideoDepth;
-
970  int16_t predefined = -1;
-
971  RCHECK(buffer->IgnoreBytes(6) && // reserved.
-
972  buffer->ReadWriteUInt16(&data_reference_index) &&
-
973  buffer->IgnoreBytes(16) && // predefined 0.
-
974  buffer->ReadWriteUInt16(&width) &&
-
975  buffer->ReadWriteUInt16(&height) &&
-
976  buffer->ReadWriteUInt32(&video_resolution) &&
-
977  buffer->ReadWriteUInt32(&video_resolution) &&
-
978  buffer->IgnoreBytes(4) && // reserved.
-
979  buffer->ReadWriteUInt16(&video_frame_count) &&
-
980  buffer->ReadWriteVector(&compressor_name, kCompressorNameSize) &&
-
981  buffer->ReadWriteUInt16(&video_depth) &&
-
982  buffer->ReadWriteInt16(&predefined));
-
983 
-
984  RCHECK(buffer->PrepareChildren());
-
985 
-
986  if (format == FOURCC_ENCV) {
-
987  if (buffer->Reading()) {
-
988  // Continue scanning until a recognized protection scheme is found,
-
989  // or until we run out of protection schemes.
-
990  while (sinf.type.type != FOURCC_CENC) {
-
991  if (!buffer->ReadWriteChild(&sinf))
-
992  return false;
-
993  }
-
994  } else {
-
995  RCHECK(buffer->ReadWriteChild(&sinf));
-
996  }
-
997  }
-
998 
-
999  const FourCC actual_format = GetActualFormat();
-
1000  switch (actual_format) {
-
1001  case FOURCC_AVC1:
-
1002  codec_config_record.box_type = FOURCC_AVCC;
-
1003  break;
-
1004  case FOURCC_VP08:
-
1005  case FOURCC_VP09:
-
1006  case FOURCC_VP10:
-
1007  codec_config_record.box_type = FOURCC_VPCC;
-
1008  break;
-
1009  default:
-
1010  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
-
1011  return false;
-
1012  }
-
1013  RCHECK(buffer->ReadWriteChild(&codec_config_record));
-
1014  RCHECK(buffer->TryReadWriteChild(&pixel_aspect));
-
1015  return true;
-
1016 }
-
1017 
- -
1019  atom_size = kBoxSize + sizeof(data_reference_index) + sizeof(width) +
-
1020  sizeof(height) + sizeof(kVideoResolution) * 2 +
-
1021  sizeof(kVideoFrameCount) + sizeof(kVideoDepth) +
-
1022  pixel_aspect.ComputeSize() + sinf.ComputeSize() +
-
1023  codec_config_record.ComputeSize() + kCompressorNameSize +
-
1024  6 + 4 + 16 + 2; // 6 + 4 bytes reserved, 16 + 2 bytes predefined.
-
1025  return atom_size;
-
1026 }
-
1027 
-
1028 ElementaryStreamDescriptor::ElementaryStreamDescriptor() {}
-
1029 ElementaryStreamDescriptor::~ElementaryStreamDescriptor() {}
-
1030 FourCC ElementaryStreamDescriptor::BoxType() const { return FOURCC_ESDS; }
-
1031 
- -
1033  RCHECK(FullBox::ReadWrite(buffer));
-
1034  if (buffer->Reading()) {
-
1035  std::vector<uint8_t> data;
-
1036  RCHECK(buffer->ReadWriteVector(&data, buffer->Size() - buffer->Pos()));
-
1037  RCHECK(es_descriptor.Parse(data));
-
1038  if (es_descriptor.IsAAC()) {
-
1039  RCHECK(aac_audio_specific_config.Parse(
-
1040  es_descriptor.decoder_specific_info()));
-
1041  }
-
1042  } else {
-
1043  DCHECK(buffer->writer());
-
1044  es_descriptor.Write(buffer->writer());
-
1045  }
-
1046  return true;
-
1047 }
-
1048 
- -
1050  // This box is optional. Skip it if not initialized.
-
1051  atom_size = 0;
-
1052  if (es_descriptor.object_type() != kForbidden)
-
1053  atom_size = kFullBoxSize + es_descriptor.ComputeSize();
-
1054  return atom_size;
-
1055 }
-
1056 
-
1057 AudioSampleEntry::AudioSampleEntry()
-
1058  : format(FOURCC_NULL),
-
1059  data_reference_index(1),
-
1060  channelcount(2),
-
1061  samplesize(16),
-
1062  samplerate(0) {}
-
1063 
-
1064 AudioSampleEntry::~AudioSampleEntry() {}
-
1065 
-
1066 FourCC AudioSampleEntry::BoxType() const {
-
1067  LOG(ERROR) << "AudioSampleEntry should be parsed according to the "
-
1068  << "handler type recovered in its Media ancestor.";
-
1069  return FOURCC_NULL;
-
1070 }
-
1071 
- -
1073  if (buffer->Reading()) {
-
1074  DCHECK(buffer->reader());
-
1075  format = buffer->reader()->type();
-
1076  } else {
-
1077  RCHECK(buffer->ReadWriteUInt32(&atom_size) &&
-
1078  buffer->ReadWriteFourCC(&format));
-
1079  }
-
1080 
-
1081  // Convert from integer to 16.16 fixed point for writing.
-
1082  samplerate <<= 16;
-
1083  RCHECK(buffer->IgnoreBytes(6) && // reserved.
-
1084  buffer->ReadWriteUInt16(&data_reference_index) &&
-
1085  buffer->IgnoreBytes(8) && // reserved.
-
1086  buffer->ReadWriteUInt16(&channelcount) &&
-
1087  buffer->ReadWriteUInt16(&samplesize) &&
-
1088  buffer->IgnoreBytes(4) && // predefined.
-
1089  buffer->ReadWriteUInt32(&samplerate));
-
1090  // Convert from 16.16 fixed point to integer.
-
1091  samplerate >>= 16;
-
1092 
-
1093  RCHECK(buffer->PrepareChildren());
-
1094  if (format == FOURCC_ENCA) {
-
1095  if (buffer->Reading()) {
-
1096  // Continue scanning until a recognized protection scheme is found,
-
1097  // or until we run out of protection schemes.
-
1098  while (sinf.type.type != FOURCC_CENC) {
-
1099  if (!buffer->ReadWriteChild(&sinf))
-
1100  return false;
-
1101  }
-
1102  } else {
-
1103  RCHECK(buffer->ReadWriteChild(&sinf));
-
1104  }
-
1105  }
-
1106 
-
1107  // ESDS is not valid in case of EAC3.
-
1108  RCHECK(buffer->TryReadWriteChild(&esds));
-
1109  return true;
-
1110 }
-
1111 
- -
1113  atom_size = kBoxSize + sizeof(data_reference_index) + sizeof(channelcount) +
-
1114  sizeof(samplesize) + sizeof(samplerate) + sinf.ComputeSize() +
-
1115  esds.ComputeSize() + 6 + 8 + // 6 + 8 bytes reserved.
-
1116  4; // 4 bytes predefined.
-
1117  return atom_size;
-
1118 }
-
1119 
-
1120 MediaHeader::MediaHeader()
-
1121  : creation_time(0), modification_time(0), timescale(0), duration(0) {
-
1122  language[0] = 0;
-
1123 }
-
1124 MediaHeader::~MediaHeader() {}
-
1125 FourCC MediaHeader::BoxType() const { return FOURCC_MDHD; }
-
1126 
- -
1128  RCHECK(FullBox::ReadWrite(buffer));
-
1129 
-
1130  uint8_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
1131  RCHECK(buffer->ReadWriteUInt64NBytes(&creation_time, num_bytes) &&
-
1132  buffer->ReadWriteUInt64NBytes(&modification_time, num_bytes) &&
-
1133  buffer->ReadWriteUInt32(&timescale) &&
-
1134  buffer->ReadWriteUInt64NBytes(&duration, num_bytes));
-
1135 
-
1136  if (buffer->Reading()) {
-
1137  // Read language codes into temp first then use BitReader to read the
-
1138  // values. ISO-639-2/T language code: unsigned int(5)[3] language (2 bytes).
-
1139  std::vector<uint8_t> temp;
-
1140  RCHECK(buffer->ReadWriteVector(&temp, 2));
-
1141 
-
1142  BitReader bit_reader(&temp[0], 2);
-
1143  bit_reader.SkipBits(1);
-
1144  for (int i = 0; i < 3; ++i) {
-
1145  CHECK(bit_reader.ReadBits(5, &language[i]));
-
1146  language[i] += 0x60;
-
1147  }
-
1148  language[3] = '\0';
-
1149  } else {
-
1150  // Set up default language if it is not set.
-
1151  const char kUndefinedLanguage[] = "und";
-
1152  if (language[0] == 0)
-
1153  strcpy(language, kUndefinedLanguage);
-
1154 
-
1155  // Lang format: bit(1) pad, unsigned int(5)[3] language.
-
1156  uint16_t lang = 0;
-
1157  for (int i = 0; i < 3; ++i)
-
1158  lang |= (language[i] - 0x60) << ((2 - i) * 5);
-
1159  RCHECK(buffer->ReadWriteUInt16(&lang));
-
1160  }
-
1161 
-
1162  RCHECK(buffer->IgnoreBytes(2)); // predefined.
-
1163  return true;
-
1164 }
+
960  case FOURCC_VP08:
+
961  case FOURCC_VP09:
+
962  case FOURCC_VP10:
+
963  compressor_name.assign(
+
964  kVpcCompressorName,
+
965  kVpcCompressorName + arraysize(kVpcCompressorName));
+
966  break;
+
967  default:
+
968  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
+
969  return false;
+
970  }
+
971  compressor_name.resize(kCompressorNameSize);
+
972  }
+
973 
+
974  uint32_t video_resolution = kVideoResolution;
+
975  uint16_t video_frame_count = kVideoFrameCount;
+
976  uint16_t video_depth = kVideoDepth;
+
977  int16_t predefined = -1;
+
978  RCHECK(buffer->IgnoreBytes(6) && // reserved.
+
979  buffer->ReadWriteUInt16(&data_reference_index) &&
+
980  buffer->IgnoreBytes(16) && // predefined 0.
+
981  buffer->ReadWriteUInt16(&width) &&
+
982  buffer->ReadWriteUInt16(&height) &&
+
983  buffer->ReadWriteUInt32(&video_resolution) &&
+
984  buffer->ReadWriteUInt32(&video_resolution) &&
+
985  buffer->IgnoreBytes(4) && // reserved.
+
986  buffer->ReadWriteUInt16(&video_frame_count) &&
+
987  buffer->ReadWriteVector(&compressor_name, kCompressorNameSize) &&
+
988  buffer->ReadWriteUInt16(&video_depth) &&
+
989  buffer->ReadWriteInt16(&predefined));
+
990 
+
991  RCHECK(buffer->PrepareChildren());
+
992 
+
993  if (format == FOURCC_ENCV) {
+
994  if (buffer->Reading()) {
+
995  // Continue scanning until a recognized protection scheme is found,
+
996  // or until we run out of protection schemes.
+
997  while (sinf.type.type != FOURCC_CENC) {
+
998  if (!buffer->ReadWriteChild(&sinf))
+
999  return false;
+
1000  }
+
1001  } else {
+
1002  RCHECK(buffer->ReadWriteChild(&sinf));
+
1003  }
+
1004  }
+
1005 
+
1006  const FourCC actual_format = GetActualFormat();
+
1007  switch (actual_format) {
+
1008  case FOURCC_AVC1:
+
1009  codec_config_record.box_type = FOURCC_AVCC;
+
1010  break;
+
1011  case FOURCC_HEV1:
+
1012  case FOURCC_HVC1:
+
1013  codec_config_record.box_type = FOURCC_HVCC;
+
1014  break;
+
1015  case FOURCC_VP08:
+
1016  case FOURCC_VP09:
+
1017  case FOURCC_VP10:
+
1018  codec_config_record.box_type = FOURCC_VPCC;
+
1019  break;
+
1020  default:
+
1021  LOG(ERROR) << FourCCToString(actual_format) << " is not supported.";
+
1022  return false;
+
1023  }
+
1024  RCHECK(buffer->ReadWriteChild(&codec_config_record));
+
1025  RCHECK(buffer->TryReadWriteChild(&pixel_aspect));
+
1026  return true;
+
1027 }
+
1028 
+ +
1030  atom_size = kBoxSize + sizeof(data_reference_index) + sizeof(width) +
+
1031  sizeof(height) + sizeof(kVideoResolution) * 2 +
+
1032  sizeof(kVideoFrameCount) + sizeof(kVideoDepth) +
+
1033  pixel_aspect.ComputeSize() + sinf.ComputeSize() +
+
1034  codec_config_record.ComputeSize() + kCompressorNameSize +
+
1035  6 + 4 + 16 + 2; // 6 + 4 bytes reserved, 16 + 2 bytes predefined.
+
1036  return atom_size;
+
1037 }
+
1038 
+
1039 ElementaryStreamDescriptor::ElementaryStreamDescriptor() {}
+
1040 ElementaryStreamDescriptor::~ElementaryStreamDescriptor() {}
+
1041 FourCC ElementaryStreamDescriptor::BoxType() const { return FOURCC_ESDS; }
+
1042 
+ +
1044  RCHECK(FullBox::ReadWrite(buffer));
+
1045  if (buffer->Reading()) {
+
1046  std::vector<uint8_t> data;
+
1047  RCHECK(buffer->ReadWriteVector(&data, buffer->Size() - buffer->Pos()));
+
1048  RCHECK(es_descriptor.Parse(data));
+
1049  if (es_descriptor.IsAAC()) {
+
1050  RCHECK(aac_audio_specific_config.Parse(
+
1051  es_descriptor.decoder_specific_info()));
+
1052  }
+
1053  } else {
+
1054  DCHECK(buffer->writer());
+
1055  es_descriptor.Write(buffer->writer());
+
1056  }
+
1057  return true;
+
1058 }
+
1059 
+ +
1061  // This box is optional. Skip it if not initialized.
+
1062  atom_size = 0;
+
1063  if (es_descriptor.object_type() != kForbidden)
+
1064  atom_size = kFullBoxSize + es_descriptor.ComputeSize();
+
1065  return atom_size;
+
1066 }
+
1067 
+
1068 AudioSampleEntry::AudioSampleEntry()
+
1069  : format(FOURCC_NULL),
+
1070  data_reference_index(1),
+
1071  channelcount(2),
+
1072  samplesize(16),
+
1073  samplerate(0) {}
+
1074 
+
1075 AudioSampleEntry::~AudioSampleEntry() {}
+
1076 
+
1077 FourCC AudioSampleEntry::BoxType() const {
+
1078  LOG(ERROR) << "AudioSampleEntry should be parsed according to the "
+
1079  << "handler type recovered in its Media ancestor.";
+
1080  return FOURCC_NULL;
+
1081 }
+
1082 
+ +
1084  if (buffer->Reading()) {
+
1085  DCHECK(buffer->reader());
+
1086  format = buffer->reader()->type();
+
1087  } else {
+
1088  RCHECK(buffer->ReadWriteUInt32(&atom_size) &&
+
1089  buffer->ReadWriteFourCC(&format));
+
1090  }
+
1091 
+
1092  // Convert from integer to 16.16 fixed point for writing.
+
1093  samplerate <<= 16;
+
1094  RCHECK(buffer->IgnoreBytes(6) && // reserved.
+
1095  buffer->ReadWriteUInt16(&data_reference_index) &&
+
1096  buffer->IgnoreBytes(8) && // reserved.
+
1097  buffer->ReadWriteUInt16(&channelcount) &&
+
1098  buffer->ReadWriteUInt16(&samplesize) &&
+
1099  buffer->IgnoreBytes(4) && // predefined.
+
1100  buffer->ReadWriteUInt32(&samplerate));
+
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 }
+
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);
1165 
- -
1167  version = IsFitIn32Bits(creation_time, modification_time, duration) ? 0 : 1;
-
1168  atom_size = kFullBoxSize + sizeof(timescale) +
-
1169  sizeof(uint32_t) * (1 + version) * 3 + 2 + // 2 bytes language.
-
1170  2; // 2 bytes predefined.
-
1171  return atom_size;
-
1172 }
-
1173 
-
1174 VideoMediaHeader::VideoMediaHeader()
-
1175  : graphicsmode(0), opcolor_red(0), opcolor_green(0), opcolor_blue(0) {
-
1176  const uint32_t kVideoMediaHeaderFlags = 1;
-
1177  flags = kVideoMediaHeaderFlags;
-
1178 }
-
1179 VideoMediaHeader::~VideoMediaHeader() {}
-
1180 FourCC VideoMediaHeader::BoxType() const { return FOURCC_VMHD; }
- -
1182  RCHECK(FullBox::ReadWrite(buffer) &&
-
1183  buffer->ReadWriteUInt16(&graphicsmode) &&
-
1184  buffer->ReadWriteUInt16(&opcolor_red) &&
-
1185  buffer->ReadWriteUInt16(&opcolor_green) &&
-
1186  buffer->ReadWriteUInt16(&opcolor_blue));
-
1187  return true;
-
1188 }
-
1189 
- -
1191  atom_size = kFullBoxSize + sizeof(graphicsmode) + sizeof(opcolor_red) +
-
1192  sizeof(opcolor_green) + sizeof(opcolor_blue);
-
1193  return atom_size;
-
1194 }
-
1195 
-
1196 SoundMediaHeader::SoundMediaHeader() : balance(0) {}
-
1197 SoundMediaHeader::~SoundMediaHeader() {}
-
1198 FourCC SoundMediaHeader::BoxType() const { return FOURCC_SMHD; }
- -
1200  RCHECK(FullBox::ReadWrite(buffer) &&
-
1201  buffer->ReadWriteUInt16(&balance) &&
-
1202  buffer->IgnoreBytes(2)); // reserved.
-
1203  return true;
-
1204 }
-
1205 
- -
1207  atom_size = kFullBoxSize + sizeof(balance) + sizeof(uint16_t);
-
1208  return atom_size;
-
1209 }
-
1210 
-
1211 DataEntryUrl::DataEntryUrl() {
-
1212  const uint32_t kDataEntryUrlFlags = 1;
-
1213  flags = kDataEntryUrlFlags;
-
1214 }
-
1215 DataEntryUrl::~DataEntryUrl() {}
-
1216 FourCC DataEntryUrl::BoxType() const { return FOURCC_URL; }
- -
1218  RCHECK(FullBox::ReadWrite(buffer));
-
1219  if (buffer->Reading()) {
-
1220  RCHECK(buffer->ReadWriteVector(&location, buffer->Size() - buffer->Pos()));
-
1221  } else {
-
1222  RCHECK(buffer->ReadWriteVector(&location, location.size()));
-
1223  }
-
1224  return true;
+
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 
- -
1228  atom_size = kBoxSize + sizeof(flags) + location.size();
-
1229  return atom_size;
-
1230 }
-
1231 
-
1232 DataReference::DataReference() {
-
1233  // Default 1 entry.
-
1234  data_entry.resize(1);
-
1235 }
-
1236 DataReference::~DataReference() {}
-
1237 FourCC DataReference::BoxType() const { return FOURCC_DREF; }
- -
1239  uint32_t entry_count = data_entry.size();
-
1240  RCHECK(FullBox::ReadWrite(buffer) &&
-
1241  buffer->ReadWriteUInt32(&entry_count));
-
1242  data_entry.resize(entry_count);
-
1243  RCHECK(buffer->PrepareChildren());
-
1244  for (uint32_t i = 0; i < entry_count; ++i)
-
1245  RCHECK(buffer->ReadWriteChild(&data_entry[i]));
-
1246  return true;
-
1247 }
-
1248 
- -
1250  uint32_t count = data_entry.size();
-
1251  atom_size = kFullBoxSize + sizeof(count);
-
1252  for (uint32_t i = 0; i < count; ++i)
-
1253  atom_size += data_entry[i].ComputeSize();
-
1254  return atom_size;
-
1255 }
-
1256 
-
1257 DataInformation::DataInformation() {}
-
1258 DataInformation::~DataInformation() {}
-
1259 FourCC DataInformation::BoxType() const { return FOURCC_DINF; }
-
1260 
- -
1262  return Box::ReadWrite(buffer) &&
-
1263  buffer->PrepareChildren() &&
-
1264  buffer->ReadWriteChild(&dref);
-
1265 }
-
1266 
- -
1268  atom_size = kBoxSize + dref.ComputeSize();
-
1269  return atom_size;
-
1270 }
+
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 
-
1272 MediaInformation::MediaInformation() {}
-
1273 MediaInformation::~MediaInformation() {}
-
1274 FourCC MediaInformation::BoxType() const { return FOURCC_MINF; }
-
1275 
- -
1277  RCHECK(Box::ReadWrite(buffer) &&
-
1278  buffer->PrepareChildren() &&
-
1279  buffer->ReadWriteChild(&dinf) &&
-
1280  buffer->ReadWriteChild(&sample_table));
-
1281  if (sample_table.description.type == kVideo)
-
1282  RCHECK(buffer->ReadWriteChild(&vmhd));
-
1283  else if (sample_table.description.type == kAudio)
-
1284  RCHECK(buffer->ReadWriteChild(&smhd));
-
1285  else
-
1286  NOTIMPLEMENTED();
-
1287  // Hint is not supported for now.
-
1288  return true;
-
1289 }
-
1290 
- -
1292  atom_size = kBoxSize + dinf.ComputeSize() + sample_table.ComputeSize();
-
1293  if (sample_table.description.type == kVideo)
-
1294  atom_size += vmhd.ComputeSize();
-
1295  else if (sample_table.description.type == kAudio)
-
1296  atom_size += smhd.ComputeSize();
-
1297  return atom_size;
-
1298 }
-
1299 
-
1300 Media::Media() {}
-
1301 Media::~Media() {}
-
1302 FourCC Media::BoxType() const { return FOURCC_MDIA; }
-
1303 
- -
1305  RCHECK(Box::ReadWrite(buffer) &&
-
1306  buffer->PrepareChildren() &&
-
1307  buffer->ReadWriteChild(&header) &&
-
1308  buffer->ReadWriteChild(&handler));
-
1309  if (buffer->Reading()) {
-
1310  // Maddeningly, the HandlerReference box specifies how to parse the
-
1311  // SampleDescription box, making the latter the only box (of those that we
-
1312  // support) which cannot be parsed correctly on its own (or even with
-
1313  // information from its strict ancestor tree). We thus copy the handler type
-
1314  // to the sample description box *before* parsing it to provide this
-
1315  // information while parsing.
-
1316  information.sample_table.description.type = handler.type;
-
1317  } else {
-
1318  DCHECK_EQ(information.sample_table.description.type, handler.type);
-
1319  }
-
1320  RCHECK(buffer->ReadWriteChild(&information));
-
1321  return true;
-
1322 }
-
1323 
- -
1325  atom_size = kBoxSize + header.ComputeSize() + handler.ComputeSize() +
-
1326  information.ComputeSize();
-
1327  return atom_size;
-
1328 }
-
1329 
-
1330 Track::Track() {}
-
1331 Track::~Track() {}
-
1332 FourCC Track::BoxType() const { return FOURCC_TRAK; }
-
1333 
- -
1335  RCHECK(Box::ReadWrite(buffer) &&
-
1336  buffer->PrepareChildren() &&
-
1337  buffer->ReadWriteChild(&header) &&
-
1338  buffer->ReadWriteChild(&media) &&
-
1339  buffer->TryReadWriteChild(&edit));
-
1340  return true;
-
1341 }
-
1342 
- -
1344  atom_size = kBoxSize + header.ComputeSize() + media.ComputeSize() +
-
1345  edit.ComputeSize();
-
1346  return atom_size;
-
1347 }
-
1348 
-
1349 MovieExtendsHeader::MovieExtendsHeader() : fragment_duration(0) {}
-
1350 MovieExtendsHeader::~MovieExtendsHeader() {}
-
1351 FourCC MovieExtendsHeader::BoxType() const { return FOURCC_MEHD; }
-
1352 
- -
1354  RCHECK(FullBox::ReadWrite(buffer));
-
1355  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
1356  RCHECK(buffer->ReadWriteUInt64NBytes(&fragment_duration, num_bytes));
-
1357  return true;
+ +
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; }
+
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;
+
1352 }
+
1353 
+ +
1355  atom_size = kBoxSize + header.ComputeSize() + media.ComputeSize() +
+
1356  edit.ComputeSize();
+
1357  return atom_size;
1358 }
1359 
- -
1361  atom_size = 0;
-
1362  // This box is optional. Skip it if it is not used.
-
1363  if (fragment_duration != 0) {
-
1364  version = IsFitIn32Bits(fragment_duration) ? 0 : 1;
-
1365  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
-
1366  }
-
1367  return atom_size;
-
1368 }
-
1369 
-
1370 TrackExtends::TrackExtends()
-
1371  : track_id(0),
-
1372  default_sample_description_index(0),
-
1373  default_sample_duration(0),
-
1374  default_sample_size(0),
-
1375  default_sample_flags(0) {}
-
1376 TrackExtends::~TrackExtends() {}
-
1377 FourCC TrackExtends::BoxType() const { return FOURCC_TREX; }
-
1378 
- -
1380  RCHECK(FullBox::ReadWrite(buffer) &&
-
1381  buffer->ReadWriteUInt32(&track_id) &&
-
1382  buffer->ReadWriteUInt32(&default_sample_description_index) &&
-
1383  buffer->ReadWriteUInt32(&default_sample_duration) &&
-
1384  buffer->ReadWriteUInt32(&default_sample_size) &&
-
1385  buffer->ReadWriteUInt32(&default_sample_flags));
-
1386  return true;
-
1387 }
-
1388 
- -
1390  atom_size = kFullBoxSize + sizeof(track_id) +
-
1391  sizeof(default_sample_description_index) +
-
1392  sizeof(default_sample_duration) + sizeof(default_sample_size) +
-
1393  sizeof(default_sample_flags);
-
1394  return atom_size;
-
1395 }
-
1396 
-
1397 MovieExtends::MovieExtends() {}
-
1398 MovieExtends::~MovieExtends() {}
-
1399 FourCC MovieExtends::BoxType() const { return FOURCC_MVEX; }
-
1400 
- -
1402  RCHECK(Box::ReadWrite(buffer) &&
-
1403  buffer->PrepareChildren() &&
-
1404  buffer->TryReadWriteChild(&header));
-
1405  if (buffer->Reading()) {
-
1406  DCHECK(buffer->reader());
-
1407  RCHECK(buffer->reader()->ReadChildren(&tracks));
-
1408  } else {
-
1409  for (uint32_t i = 0; i < tracks.size(); ++i)
-
1410  RCHECK(tracks[i].ReadWrite(buffer));
-
1411  }
-
1412  return true;
-
1413 }
-
1414 
- -
1416  // This box is optional. Skip it if it does not contain any track.
-
1417  atom_size = 0;
-
1418  if (tracks.size() != 0) {
-
1419  atom_size = kBoxSize + header.ComputeSize();
+
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  atom_size += tracks[i].ComputeSize();
+
1421  RCHECK(tracks[i].ReadWrite(buffer));
1422  }
-
1423  return atom_size;
+
1423  return true;
1424 }
1425 
-
1426 Movie::Movie() {}
-
1427 Movie::~Movie() {}
-
1428 FourCC Movie::BoxType() const { return FOURCC_MOOV; }
-
1429 
- -
1431  RCHECK(Box::ReadWrite(buffer) &&
-
1432  buffer->PrepareChildren() &&
-
1433  buffer->ReadWriteChild(&header) &&
-
1434  buffer->TryReadWriteChild(&extends));
-
1435  if (buffer->Reading()) {
-
1436  BoxReader* reader = buffer->reader();
-
1437  DCHECK(reader);
-
1438  RCHECK(reader->ReadChildren(&tracks) &&
-
1439  reader->TryReadChildren(&pssh));
-
1440  } else {
-
1441  for (uint32_t i = 0; i < tracks.size(); ++i)
-
1442  RCHECK(tracks[i].ReadWrite(buffer));
-
1443  for (uint32_t i = 0; i < pssh.size(); ++i)
-
1444  RCHECK(pssh[i].ReadWrite(buffer));
-
1445  }
-
1446  return true;
-
1447 }
-
1448 
- -
1450  atom_size = kBoxSize + header.ComputeSize() + extends.ComputeSize();
-
1451  for (uint32_t i = 0; i < tracks.size(); ++i)
-
1452  atom_size += tracks[i].ComputeSize();
-
1453  for (uint32_t i = 0; i < pssh.size(); ++i)
-
1454  atom_size += pssh[i].ComputeSize();
-
1455  return atom_size;
-
1456 }
-
1457 
-
1458 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
-
1459 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
-
1460 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_TFDT; }
-
1461 
- -
1463  RCHECK(FullBox::ReadWrite(buffer));
-
1464  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
1465  RCHECK(buffer->ReadWriteUInt64NBytes(&decode_time, num_bytes));
-
1466  return true;
+ +
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 
- -
1470  version = IsFitIn32Bits(decode_time) ? 0 : 1;
-
1471  atom_size = kFullBoxSize + sizeof(uint32_t) * (1 + version);
-
1472  return atom_size;
-
1473 }
-
1474 
-
1475 MovieFragmentHeader::MovieFragmentHeader() : sequence_number(0) {}
-
1476 MovieFragmentHeader::~MovieFragmentHeader() {}
-
1477 FourCC MovieFragmentHeader::BoxType() const { return FOURCC_MFHD; }
-
1478 
- -
1480  return FullBox::ReadWrite(buffer) &&
-
1481  buffer->ReadWriteUInt32(&sequence_number);
-
1482 }
-
1483 
- -
1485  atom_size = kFullBoxSize + sizeof(sequence_number);
-
1486  return atom_size;
-
1487 }
-
1488 
-
1489 TrackFragmentHeader::TrackFragmentHeader()
-
1490  : track_id(0),
-
1491  sample_description_index(0),
-
1492  default_sample_duration(0),
-
1493  default_sample_size(0),
-
1494  default_sample_flags(0) {}
-
1495 
-
1496 TrackFragmentHeader::~TrackFragmentHeader() {}
-
1497 FourCC TrackFragmentHeader::BoxType() const { return FOURCC_TFHD; }
-
1498 
- -
1500  RCHECK(FullBox::ReadWrite(buffer) &&
-
1501  buffer->ReadWriteUInt32(&track_id));
-
1502 
-
1503  if (flags & kBaseDataOffsetPresentMask) {
-
1504  // MSE requires 'default-base-is-moof' to be set and
-
1505  // 'base-data-offset-present' not to be set. We omit these checks as some
-
1506  // valid files in the wild don't follow these rules, though they use moof as
-
1507  // base.
-
1508  uint64_t base_data_offset;
-
1509  RCHECK(buffer->ReadWriteUInt64(&base_data_offset));
-
1510  DLOG(WARNING) << "base-data-offset-present is not expected. Assumes "
-
1511  "default-base-is-moof.";
-
1512  }
+
1469 TrackFragmentDecodeTime::TrackFragmentDecodeTime() : decode_time(0) {}
+
1470 TrackFragmentDecodeTime::~TrackFragmentDecodeTime() {}
+
1471 FourCC TrackFragmentDecodeTime::BoxType() const { return FOURCC_TFDT; }
+
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 }
+
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 & kSampleDescriptionIndexPresentMask) {
-
1515  RCHECK(buffer->ReadWriteUInt32(&sample_description_index));
-
1516  } else if (buffer->Reading()) {
-
1517  sample_description_index = 0;
-
1518  }
-
1519 
-
1520  if (flags & kDefaultSampleDurationPresentMask) {
-
1521  RCHECK(buffer->ReadWriteUInt32(&default_sample_duration));
-
1522  } else if (buffer->Reading()) {
-
1523  default_sample_duration = 0;
-
1524  }
-
1525 
-
1526  if (flags & kDefaultSampleSizePresentMask) {
-
1527  RCHECK(buffer->ReadWriteUInt32(&default_sample_size));
-
1528  } else if (buffer->Reading()) {
-
1529  default_sample_size = 0;
-
1530  }
-
1531 
-
1532  if (flags & kDefaultSampleFlagsPresentMask)
-
1533  RCHECK(buffer->ReadWriteUInt32(&default_sample_flags));
-
1534  return true;
-
1535 }
+
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 
- -
1538  atom_size = kFullBoxSize + sizeof(track_id);
-
1539  if (flags & kSampleDescriptionIndexPresentMask)
-
1540  atom_size += sizeof(sample_description_index);
-
1541  if (flags & kDefaultSampleDurationPresentMask)
-
1542  atom_size += sizeof(default_sample_duration);
-
1543  if (flags & kDefaultSampleSizePresentMask)
-
1544  atom_size += sizeof(default_sample_size);
-
1545  if (flags & kDefaultSampleFlagsPresentMask)
-
1546  atom_size += sizeof(default_sample_flags);
-
1547  return atom_size;
-
1548 }
-
1549 
-
1550 TrackFragmentRun::TrackFragmentRun() : sample_count(0), data_offset(0) {}
-
1551 TrackFragmentRun::~TrackFragmentRun() {}
-
1552 FourCC TrackFragmentRun::BoxType() const { return FOURCC_TRUN; }
-
1553 
- -
1555  if (!buffer->Reading()) {
-
1556  // Determine whether version 0 or version 1 should be used.
-
1557  // Use version 0 if possible, use version 1 if there is a negative
-
1558  // sample_offset value.
-
1559  version = 0;
-
1560  if (flags & kSampleCompTimeOffsetsPresentMask) {
-
1561  for (uint32_t i = 0; i < sample_count; ++i) {
-
1562  if (sample_composition_time_offsets[i] < 0) {
-
1563  version = 1;
-
1564  break;
-
1565  }
-
1566  }
-
1567  }
-
1568  }
-
1569 
-
1570  RCHECK(FullBox::ReadWrite(buffer) &&
-
1571  buffer->ReadWriteUInt32(&sample_count));
-
1572 
-
1573  bool data_offset_present = (flags & kDataOffsetPresentMask) != 0;
-
1574  bool first_sample_flags_present = (flags & kFirstSampleFlagsPresentMask) != 0;
-
1575  bool sample_duration_present = (flags & kSampleDurationPresentMask) != 0;
-
1576  bool sample_size_present = (flags & kSampleSizePresentMask) != 0;
-
1577  bool sample_flags_present = (flags & kSampleFlagsPresentMask) != 0;
-
1578  bool sample_composition_time_offsets_present =
-
1579  (flags & kSampleCompTimeOffsetsPresentMask) != 0;
+
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);
+
1556  if (flags & kDefaultSampleFlagsPresentMask)
+
1557  atom_size += sizeof(default_sample_flags);
+
1558  return atom_size;
+
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  if (data_offset_present) {
-
1582  RCHECK(buffer->ReadWriteUInt32(&data_offset));
-
1583  } else {
-
1584  // NOTE: If the data-offset is not present, then the data for this run
-
1585  // starts immediately after the data of the previous run, or at the
-
1586  // base-data-offset defined by the track fragment header if this is the
-
1587  // first run in a track fragment. If the data-offset is present, it is
-
1588  // relative to the base-data-offset established in the track fragment
-
1589  // header.
-
1590  NOTIMPLEMENTED();
-
1591  }
-
1592 
-
1593  uint32_t first_sample_flags;
-
1594 
-
1595  if (buffer->Reading()) {
-
1596  if (first_sample_flags_present)
-
1597  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
-
1598 
-
1599  if (sample_duration_present)
-
1600  sample_durations.resize(sample_count);
-
1601  if (sample_size_present)
-
1602  sample_sizes.resize(sample_count);
-
1603  if (sample_flags_present)
-
1604  sample_flags.resize(sample_count);
-
1605  if (sample_composition_time_offsets_present)
-
1606  sample_composition_time_offsets.resize(sample_count);
-
1607  } else {
-
1608  if (first_sample_flags_present) {
-
1609  first_sample_flags = sample_flags[0];
-
1610  DCHECK(sample_flags.size() == 1);
-
1611  RCHECK(buffer->ReadWriteUInt32(&first_sample_flags));
-
1612  }
-
1613 
-
1614  if (sample_duration_present)
-
1615  DCHECK(sample_durations.size() == sample_count);
-
1616  if (sample_size_present)
-
1617  DCHECK(sample_sizes.size() == sample_count);
-
1618  if (sample_flags_present)
-
1619  DCHECK(sample_flags.size() == sample_count);
-
1620  if (sample_composition_time_offsets_present)
-
1621  DCHECK(sample_composition_time_offsets.size() == sample_count);
-
1622  }
-
1623 
-
1624  for (uint32_t i = 0; i < sample_count; ++i) {
+
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  RCHECK(buffer->ReadWriteUInt32(&sample_durations[i]));
+
1626  DCHECK(sample_durations.size() == sample_count);
1627  if (sample_size_present)
-
1628  RCHECK(buffer->ReadWriteUInt32(&sample_sizes[i]));
+
1628  DCHECK(sample_sizes.size() == sample_count);
1629  if (sample_flags_present)
-
1630  RCHECK(buffer->ReadWriteUInt32(&sample_flags[i]));
-
1631 
-
1632  if (sample_composition_time_offsets_present) {
-
1633  if (version == 0) {
-
1634  uint32_t sample_offset = sample_composition_time_offsets[i];
-
1635  RCHECK(buffer->ReadWriteUInt32(&sample_offset));
-
1636  sample_composition_time_offsets[i] = sample_offset;
-
1637  } else {
-
1638  int32_t sample_offset = sample_composition_time_offsets[i];
-
1639  RCHECK(buffer->ReadWriteInt32(&sample_offset));
-
1640  sample_composition_time_offsets[i] = sample_offset;
-
1641  }
-
1642  }
-
1643  }
-
1644 
-
1645  if (buffer->Reading()) {
-
1646  if (first_sample_flags_present) {
-
1647  if (sample_flags.size() == 0) {
-
1648  sample_flags.push_back(first_sample_flags);
-
1649  } else {
-
1650  sample_flags[0] = first_sample_flags;
-
1651  }
-
1652  }
-
1653  }
-
1654  return true;
-
1655 }
-
1656 
- -
1658  atom_size = kFullBoxSize + sizeof(sample_count);
-
1659  if (flags & kDataOffsetPresentMask)
-
1660  atom_size += sizeof(data_offset);
-
1661  if (flags & kFirstSampleFlagsPresentMask)
-
1662  atom_size += sizeof(uint32_t);
-
1663  uint32_t fields = (flags & kSampleDurationPresentMask ? 1 : 0) +
-
1664  (flags & kSampleSizePresentMask ? 1 : 0) +
-
1665  (flags & kSampleFlagsPresentMask ? 1 : 0) +
-
1666  (flags & kSampleCompTimeOffsetsPresentMask ? 1 : 0);
-
1667  atom_size += fields * sizeof(uint32_t) * sample_count;
-
1668  return atom_size;
-
1669 }
-
1670 
-
1671 SampleToGroup::SampleToGroup() : grouping_type(0), grouping_type_parameter(0) {}
-
1672 SampleToGroup::~SampleToGroup() {}
-
1673 FourCC SampleToGroup::BoxType() const { return FOURCC_SBGP; }
-
1674 
- -
1676  RCHECK(FullBox::ReadWrite(buffer) &&
-
1677  buffer->ReadWriteUInt32(&grouping_type));
-
1678  if (version == 1)
-
1679  RCHECK(buffer->ReadWriteUInt32(&grouping_type_parameter));
-
1680 
-
1681  if (grouping_type != FOURCC_SEIG) {
-
1682  DCHECK(buffer->Reading());
-
1683  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
-
1684  return true;
-
1685  }
-
1686 
-
1687  uint32_t count = entries.size();
-
1688  RCHECK(buffer->ReadWriteUInt32(&count));
-
1689  entries.resize(count);
-
1690  for (uint32_t i = 0; i < count; ++i) {
-
1691  RCHECK(buffer->ReadWriteUInt32(&entries[i].sample_count) &&
-
1692  buffer->ReadWriteUInt32(&entries[i].group_description_index));
-
1693  }
-
1694  return true;
-
1695 }
-
1696 
- -
1698  // This box is optional. Skip it if it is not used.
-
1699  atom_size = 0;
-
1700  if (!entries.empty()) {
-
1701  atom_size = kFullBoxSize + sizeof(grouping_type) +
-
1702  (version == 1 ? sizeof(grouping_type_parameter) : 0) +
-
1703  sizeof(uint32_t) + entries.size() * sizeof(entries[0]);
-
1704  }
-
1705  return atom_size;
-
1706 }
-
1707 
-
1708 CencSampleEncryptionInfoEntry::CencSampleEncryptionInfoEntry()
-
1709  : is_encrypted(false), iv_size(0) {
-
1710 }
-
1711 CencSampleEncryptionInfoEntry::~CencSampleEncryptionInfoEntry() {};
-
1712 
-
1713 SampleGroupDescription::SampleGroupDescription() : grouping_type(0) {}
-
1714 SampleGroupDescription::~SampleGroupDescription() {}
-
1715 FourCC SampleGroupDescription::BoxType() const { return FOURCC_SGPD; }
-
1716 
- -
1718  RCHECK(FullBox::ReadWrite(buffer) &&
-
1719  buffer->ReadWriteUInt32(&grouping_type));
+
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  }
+
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  if (grouping_type != FOURCC_SEIG) {
-
1722  DCHECK(buffer->Reading());
-
1723  DLOG(WARNING) << "Sample group '" << grouping_type << "' is not supported.";
-
1724  return true;
-
1725  }
-
1726 
-
1727  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
-
1728  uint32_t default_length = 0;
-
1729  if (version == 1) {
-
1730  if (buffer->Reading()) {
-
1731  RCHECK(buffer->ReadWriteUInt32(&default_length));
-
1732  RCHECK(default_length == 0 || default_length >= kEntrySize);
-
1733  } else {
-
1734  default_length = kEntrySize;
-
1735  RCHECK(buffer->ReadWriteUInt32(&default_length));
-
1736  }
-
1737  }
-
1738 
-
1739  uint32_t count = entries.size();
-
1740  RCHECK(buffer->ReadWriteUInt32(&count));
-
1741  entries.resize(count);
-
1742  for (uint32_t i = 0; i < count; ++i) {
-
1743  if (version == 1) {
-
1744  if (buffer->Reading() && default_length == 0) {
-
1745  uint32_t description_length = 0;
-
1746  RCHECK(buffer->ReadWriteUInt32(&description_length));
-
1747  RCHECK(description_length >= kEntrySize);
-
1748  }
+
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));
+
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  if (!buffer->Reading()) {
-
1752  if (entries[i].key_id.size() != kCencKeyIdSize) {
-
1753  LOG(WARNING) << "CENC defines key id length of " << kCencKeyIdSize
-
1754  << " bytes; got " << entries[i].key_id.size()
-
1755  << ". Resized accordingly.";
-
1756  entries[i].key_id.resize(kCencKeyIdSize);
-
1757  }
-
1758  }
-
1759 
-
1760  uint8_t flag = entries[i].is_encrypted ? 1 : 0;
-
1761  RCHECK(buffer->IgnoreBytes(2) && // reserved.
-
1762  buffer->ReadWriteUInt8(&flag) &&
-
1763  buffer->ReadWriteUInt8(&entries[i].iv_size) &&
-
1764  buffer->ReadWriteVector(&entries[i].key_id, kCencKeyIdSize));
-
1765 
-
1766  if (buffer->Reading()) {
-
1767  entries[i].is_encrypted = (flag != 0);
-
1768  if (entries[i].is_encrypted) {
-
1769  RCHECK(entries[i].iv_size == 8 || entries[i].iv_size == 16);
-
1770  } else {
-
1771  RCHECK(entries[i].iv_size == 0);
-
1772  }
-
1773  }
-
1774  }
-
1775  return true;
-
1776 }
-
1777 
- -
1779  // Version 0 is obsoleted, so always generate version 1 box.
-
1780  version = 1;
-
1781  // This box is optional. Skip it if it is not used.
-
1782  atom_size = 0;
-
1783  if (!entries.empty()) {
-
1784  const size_t kEntrySize = sizeof(uint32_t) + kCencKeyIdSize;
-
1785  atom_size = kFullBoxSize + sizeof(grouping_type) +
-
1786  (version == 1 ? sizeof(uint32_t) : 0) + sizeof(uint32_t) +
-
1787  entries.size() * kEntrySize;
-
1788  }
-
1789  return atom_size;
-
1790 }
-
1791 
-
1792 TrackFragment::TrackFragment() : decode_time_absent(false) {}
-
1793 TrackFragment::~TrackFragment() {}
-
1794 FourCC TrackFragment::BoxType() const { return FOURCC_TRAF; }
-
1795 
- -
1797  RCHECK(Box::ReadWrite(buffer) &&
-
1798  buffer->PrepareChildren() &&
-
1799  buffer->ReadWriteChild(&header));
-
1800  if (buffer->Reading()) {
-
1801  DCHECK(buffer->reader());
-
1802  decode_time_absent = !buffer->reader()->ChildExist(&decode_time);
-
1803  if (!decode_time_absent)
-
1804  RCHECK(buffer->ReadWriteChild(&decode_time));
-
1805  RCHECK(buffer->reader()->TryReadChildren(&runs));
-
1806 
-
1807  // There could be multiple SampleGroupDescription and SampleToGroup boxes
-
1808  // with different grouping types. For common encryption, the relevant
-
1809  // grouping type is 'seig'. Continue reading until 'seig' is found, or
-
1810  // until running out of child boxes.
-
1811  while (sample_to_group.grouping_type != FOURCC_SEIG &&
-
1812  buffer->reader()->ChildExist(&sample_to_group)) {
-
1813  RCHECK(buffer->reader()->ReadChild(&sample_to_group));
-
1814  }
-
1815  while (sample_group_description.grouping_type != FOURCC_SEIG &&
-
1816  buffer->reader()->ChildExist(&sample_group_description)) {
-
1817  RCHECK(buffer->reader()->ReadChild(&sample_group_description));
-
1818  }
-
1819  } else {
-
1820  if (!decode_time_absent)
-
1821  RCHECK(buffer->ReadWriteChild(&decode_time));
-
1822  for (uint32_t i = 0; i < runs.size(); ++i)
-
1823  RCHECK(runs[i].ReadWrite(buffer));
-
1824  RCHECK(buffer->TryReadWriteChild(&sample_to_group) &&
-
1825  buffer->TryReadWriteChild(&sample_group_description));
-
1826  }
-
1827  return buffer->TryReadWriteChild(&auxiliary_size) &&
-
1828  buffer->TryReadWriteChild(&auxiliary_offset);
-
1829 }
-
1830 
- -
1832  atom_size = kBoxSize + header.ComputeSize() + decode_time.ComputeSize() +
-
1833  sample_to_group.ComputeSize() +
-
1834  sample_group_description.ComputeSize() +
-
1835  auxiliary_size.ComputeSize() + auxiliary_offset.ComputeSize();
-
1836  for (uint32_t i = 0; i < runs.size(); ++i)
-
1837  atom_size += runs[i].ComputeSize();
-
1838  return atom_size;
-
1839 }
-
1840 
-
1841 MovieFragment::MovieFragment() {}
-
1842 MovieFragment::~MovieFragment() {}
-
1843 FourCC MovieFragment::BoxType() const { return FOURCC_MOOF; }
-
1844 
- -
1846  RCHECK(Box::ReadWrite(buffer) &&
-
1847  buffer->PrepareChildren() &&
-
1848  buffer->ReadWriteChild(&header));
-
1849  if (buffer->Reading()) {
-
1850  BoxReader* reader = buffer->reader();
-
1851  DCHECK(reader);
-
1852  RCHECK(reader->ReadChildren(&tracks) &&
-
1853  reader->TryReadChildren(&pssh));
-
1854  } else {
-
1855  for (uint32_t i = 0; i < tracks.size(); ++i)
-
1856  RCHECK(tracks[i].ReadWrite(buffer));
-
1857  for (uint32_t i = 0; i < pssh.size(); ++i)
-
1858  RCHECK(pssh[i].ReadWrite(buffer));
-
1859  }
-
1860  return true;
-
1861 }
-
1862 
- -
1864  atom_size = kBoxSize + header.ComputeSize();
-
1865  for (uint32_t i = 0; i < tracks.size(); ++i)
-
1866  atom_size += tracks[i].ComputeSize();
-
1867  for (uint32_t i = 0; i < pssh.size(); ++i)
-
1868  atom_size += pssh[i].ComputeSize();
-
1869  return atom_size;
-
1870 }
-
1871 
-
1872 SegmentIndex::SegmentIndex()
-
1873  : reference_id(0),
-
1874  timescale(0),
-
1875  earliest_presentation_time(0),
-
1876  first_offset(0) {}
-
1877 SegmentIndex::~SegmentIndex() {}
-
1878 FourCC SegmentIndex::BoxType() const { return FOURCC_SIDX; }
-
1879 
- -
1881  RCHECK(FullBox::ReadWrite(buffer) &&
-
1882  buffer->ReadWriteUInt32(&reference_id) &&
-
1883  buffer->ReadWriteUInt32(&timescale));
+
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  }
+
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  size_t num_bytes = (version == 1) ? sizeof(uint64_t) : sizeof(uint32_t);
-
1886  RCHECK(
-
1887  buffer->ReadWriteUInt64NBytes(&earliest_presentation_time, num_bytes) &&
-
1888  buffer->ReadWriteUInt64NBytes(&first_offset, num_bytes));
-
1889 
-
1890  uint16_t reference_count = references.size();
-
1891  RCHECK(buffer->IgnoreBytes(2) && // reserved.
-
1892  buffer->ReadWriteUInt16(&reference_count));
-
1893  references.resize(reference_count);
-
1894 
-
1895  uint32_t reference_type_size;
-
1896  uint32_t sap;
-
1897  for (uint32_t i = 0; i < reference_count; ++i) {
-
1898  if (!buffer->Reading()) {
-
1899  reference_type_size = references[i].referenced_size;
-
1900  if (references[i].reference_type)
-
1901  reference_type_size |= (1 << 31);
-
1902  sap = (references[i].sap_type << 28) | references[i].sap_delta_time;
-
1903  if (references[i].starts_with_sap)
-
1904  sap |= (1 << 31);
-
1905  }
-
1906  RCHECK(buffer->ReadWriteUInt32(&reference_type_size) &&
-
1907  buffer->ReadWriteUInt32(&references[i].subsegment_duration) &&
-
1908  buffer->ReadWriteUInt32(&sap));
-
1909  if (buffer->Reading()) {
-
1910  references[i].reference_type = (reference_type_size >> 31) ? true : false;
-
1911  references[i].referenced_size = reference_type_size & ~(1 << 31);
-
1912  references[i].starts_with_sap = (sap >> 31) ? true : false;
-
1913  references[i].sap_type =
-
1914  static_cast<SegmentReference::SAPType>((sap >> 28) & 0x07);
-
1915  references[i].sap_delta_time = sap & ~(0xF << 28);
-
1916  }
-
1917  }
-
1918  return true;
-
1919 }
-
1920 
- -
1922  version = IsFitIn32Bits(earliest_presentation_time, first_offset) ? 0 : 1;
-
1923  atom_size = kFullBoxSize + sizeof(reference_id) + sizeof(timescale) +
-
1924  sizeof(uint32_t) * (1 + version) * 2 + 2 * sizeof(uint16_t) +
-
1925  3 * sizeof(uint32_t) * references.size();
-
1926  return atom_size;
-
1927 }
-
1928 
-
1929 MediaData::MediaData() : data_size(0) {}
-
1930 MediaData::~MediaData() {}
-
1931 FourCC MediaData::BoxType() const { return FOURCC_MDAT; }
-
1932 
-
1933 void MediaData::Write(BufferWriter* buffer) {
-
1934  buffer->AppendInt(ComputeSize());
-
1935  buffer->AppendInt(static_cast<uint32_t>(BoxType()));
-
1936 }
-
1937 
-
1938 uint32_t MediaData::ComputeSize() {
-
1939  return kBoxSize + data_size;
+
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));
+
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 } // namespace mp4
-
1943 } // namespace media
-
1944 } // namespace edash_packager
-
bool ReadWrite(BoxBuffer *buffer) override
Read/write the mp4 box from/to BoxBuffer.
- +
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;
+
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.
+
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 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.
+
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
- + -
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 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 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.
+ + + + + +
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 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.
+ + + +
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 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.
- - +
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.
+
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 84512db31d..6a2117910a 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 999fdfb842..b8ada23831 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 71b9a7e7ec..9853847ab0 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 42326d5608..ef3b6170ce 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 50a244ef0a..567f838c54 100644 --- a/docs/de/d12/container__names_8h_source.html +++ b/docs/de/d12/container__names_8h_source.html @@ -150,7 +150,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 cdc46a0b94..7b7f2795ec 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 39cf485df2..6e7a9ac8e5 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 f7aefdff62..03042d5815 100644 --- a/docs/de/d19/classedash__packager_1_1media_1_1File.html +++ b/docs/de/d19/classedash__packager_1_1media_1_1File.html @@ -662,7 +662,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 865cd1786c..bdebee2992 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 dfb3933024..9c6dac439b 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 5783bd0fe6..7b1a115201 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 9207f44baa..2028f10cb7 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 @@ -175,7 +175,7 @@ Additional Inherited Members

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

-

Definition at line 262 of file box_definitions.cc.

+

Definition at line 263 of file box_definitions.cc.

@@ -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 f0459964b1..d4c3daf21a 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 0e6d1a941d..f959aaa539 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 857979b957..855137cfe8 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 f6e3a058d3..42cce2b291 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 07f325510d..bcd5df5b52 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 35eadfd158..102febf7ed 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 962c03d396..e6660289f1 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 d7972c4f81..42febb5e8a 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 9c0c6fe202..7c99ba038b 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 e8dbb519bb..9dc7c9e316 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 5a9f62d548..a03bca048d 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 @@ -111,7 +111,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 a8ce8f6cc9..77af812774 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 a1d48c9c58..56e4c9f2d1 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 3638ee9bbc..5f004b1cb1 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -457,7 +457,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 4cf362ce56..d5307e4ea3 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 f9ac91162b..474a778b20 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 ceaf3d0d68..cef9770d0c 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 43722b550c..d5712ff5c8 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 f343a25ffa..1d83d37e5a 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 4c816b09d2..2599da866a 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 365d598a58..258c16c0e2 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 b36d33cc00..b5d68e0660 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 05c91c8060..9016ef599c 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 7fddb1950f..291352e397 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 1633ec80f5..24a39ac987 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 18054c0ca7..b8d782bca7 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 d059b29d14..10847b9e61 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 9c7efe475a..e801960a18 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 @@ -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 8cf8dd9af1..b011b1719f 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 c9471e269d..1aeefb63a2 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 d0faf1fb4d..e4aacb1d3c 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 163 of file box_definitions.cc.

+

Definition at line 164 of file box_definitions.cc.

@@ -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 65324f43b4..2d8831cb5e 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 5215f1554d..7dc49744e6 100644 --- a/docs/de/dcf/file__closer_8h_source.html +++ b/docs/de/dcf/file__closer_8h_source.html @@ -122,7 +122,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 c9e49f8cdb..480bc0789f 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 6f5dfa090c..2c78127f96 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 245a3a5622..85a39a8613 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 5be839d493..c67ca7a127 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 @@ -167,7 +167,7 @@ Additional Inherited Members

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

-

Definition at line 1324 of file box_definitions.cc.

+

Definition at line 1335 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 524ae17965..eccff4eee7 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 2f863ef784..b0b7caac1d 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 ef96fce05a..81e50a86fd 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 aaa0e5cb6f..b01e98ea9f 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 28cd348d39..2a7743e80c 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 e3de3c793a..10fd3eb0e2 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 @@ -109,7 +109,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 3b2091e852..8b156c7861 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 28a0c52303..eeb2b87352 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 1e5ad6b10e..603c3d09f8 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 3f6df22cdd..4a8cf917aa 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 @@ -199,7 +199,7 @@ Additional Inherited Members

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

-

Definition at line 1657 of file box_definitions.cc.

+

Definition at line 1668 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 d326918ec2..dfb1b92b14 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 15fa66b71d..b017818e7c 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 23d79762ab..e499120fff 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 8e60920972..1a857b4e0c 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -183,7 +183,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); 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 52124cd8cd..c5f52e152d 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 46105e9637..d2dbf89d60 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 1f5aeb4697..509c078c6b 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 4e02879105..5292d87fda 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 9c0995183d..e2176e28b2 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 6da81bbfe4..3d32d1d811 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 @@ -182,7 +182,7 @@ Additional Inherited Members

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

-

Definition at line 1112 of file box_definitions.cc.

+

Definition at line 1123 of file box_definitions.cc.

@@ -193,7 +193,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 6ab445df54..7f950e9ccb 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 35d3140d51..5f92970022 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 @@ -182,7 +182,7 @@ Additional Inherited Members

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

-

Definition at line 1018 of file box_definitions.cc.

+

Definition at line 1029 of file box_definitions.cc.

@@ -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 8ccef30bf9..b4b92c2ab0 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 553 of file box_definitions.cc.

+

Definition at line 554 of file box_definitions.cc.

@@ -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 9eee479ab9..45ec25da39 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 4fc06da9fa..8f28a57cd9 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 @@ -169,7 +169,7 @@ Additional Inherited Members

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

-

Definition at line 1484 of file box_definitions.cc.

+

Definition at line 1495 of file box_definitions.cc.

@@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/df/d96/xml__node_8cc_source.html b/docs/df/d96/xml__node_8cc_source.html index 0db1c27dae..e7bde73829 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -469,7 +469,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 6e338b658d..1680f13691 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 27b6517029..f9103c3e11 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 8d4c9a9144..d92d950766 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 f11fff0e6a..c124473029 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 fb5e897a21..9b17054906 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 418e4526e1..f703f9c8fd 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 355bb38dbc..19ee760d4d 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 fdd43941c2..89e53ac92e 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 74373c030f..f31fa0fb38 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 d3849a2416..39830ccec9 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 aba49f0804..7728c79b8b 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 bc3fff99a5..01830e8362 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 3cda378aab..85ceca95b1 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 53f9ec95ae..f4922c3347 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 33665a05a7..839035fb3f 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 43ff1ba857..6e00c41c4f 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 ad51abb950..9917b462fd 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 3603a70e6f..0672d2b7fc 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 e0e43909f8..b2f461e29d 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 d45c00bc45..f83921b8c9 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 936da87f28..35e0a8fc7b 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 09df46d4fe..ec361779e9 100644 --- a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html +++ b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html @@ -101,6 +101,10 @@ Files   file  h264_parser.h [code]   +file  hevc_decoder_configuration.cc [code] +  +file  hevc_decoder_configuration.h [code] +  file  vp_codec_configuration.cc [code]   file  vp_codec_configuration.h [code] @@ -111,7 +115,7 @@ Files diff --git a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html index 17667dd9f3..1cbecae079 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 14857bec0e..9549ec8731 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 ca4f8be032..722e9c41cd 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 3c71223dcc..bbeaf9f504 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 d5f8871297..0be196a17a 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 7a1f1dadef..ce2fc8347b 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 1a42611a07..a0cffcee35 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 10bba32a32..ede4f5d720 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 de4fa527b5..d1250ef779 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 06b264cb13..0bc45e0ed9 100644 --- a/docs/files.html +++ b/docs/files.html @@ -204,9 +204,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); ||o*h264_byte_to_unit_stream_converter.h ||o*h264_parser.cc ||o*h264_parser.h -||o*vp_codec_configuration.cc -||o*vp_codec_configuration.h -||\*webvtt_util.h +||o*hevc_decoder_configuration.cc +||o*hevc_decoder_configuration.h +||o*vp_codec_configuration.cc +||o*vp_codec_configuration.h +||\*webvtt_util.h |\+formats | o+mp2t | |o*adts_header.cc @@ -347,7 +349,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index 8d725112b7..64050e406a 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 54413a6cbc..068aebb157 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 d7c2a984ba..7c467799a2 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -254,7 +254,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index 0de4136f22..3a0767814d 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 778fd9aefc..b53c5b5429 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 244efe5d12..b4c4871c0a 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 35b89c8589..e70d12ebea 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 8db8d8bfde..298c9e32ea 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 54b0eca7b3..ec82ebdb92 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 18385e8f95..60bb8d17c5 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -254,7 +254,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index 270de2f147..e4ac322542 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 33f90dcf9d..398f81bef5 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 09722f2cc6..a71c266117 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 e8a973e32c..0d85b4da68 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -154,6 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • GetCodecString() : edash_packager::media::AudioStreamInfo , edash_packager::media::AVCDecoderConfiguration +, edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::VPCodecConfiguration
  • GetCryptoPeriodKey() @@ -219,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 11a2123f88..34812f06b0 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 ff7510015e..e70f29fc9b 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 b4e304d2b4..4abf3de275 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 b8ad809f14..e286610732 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -124,6 +124,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • LastFirstChunk() : edash_packager::media::mp4::ChunkInfoIterator
  • +
  • length_size() +: edash_packager::media::HEVCDecoderConfiguration +
  • LoadMoov() : edash_packager::media::mp4::MP4MediaParser
  • @@ -134,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 08b32c2ebf..3b355c048a 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 9246574609..3cc87a38d2 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 4a80419b6a..ab001a15b1 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 a68dc50a11..b8b92cfcc6 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -124,6 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • Parse() : edash_packager::media::AVCDecoderConfiguration , edash_packager::media::Demuxer +, edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::MediaParser , edash_packager::media::mp2t::AdtsHeader , edash_packager::media::mp2t::Mp2tMediaParser @@ -192,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index 1c059401c1..a741e8c41b 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 4ba1a282d2..4f9bc35d7a 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 1a991cc658..d23f00e9dc 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 21e651c940..0ddaeafca8 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 09c2973df9..16ebe54a9b 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 10ac680c4e..729966f208 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index 4531501a26..daef1d8c91 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 c5fa42987b..b0d8009751 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 aab9c040c0..d8568af8eb 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -154,6 +154,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • GetCodecString() : edash_packager::media::AudioStreamInfo , edash_packager::media::AVCDecoderConfiguration +, edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::VPCodecConfiguration
  • GetCryptoPeriodKey() @@ -219,7 +220,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index ec76d174f4..8ffd74ae5d 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 88f04b9c0b..3a80fc7810 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 233dc4b2f7..16e3a3828f 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 23b04c7152..47a13d083c 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -124,6 +124,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • LastFirstChunk() : edash_packager::media::mp4::ChunkInfoIterator
  • +
  • length_size() +: edash_packager::media::HEVCDecoderConfiguration +
  • LoadMoov() : edash_packager::media::mp4::MP4MediaParser
  • @@ -134,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_m.html b/docs/functions_m.html index 0722e1b1bd..5da7cfb478 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 092f3efa48..56be29a4a4 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 2e3af4c013..6a51c27574 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 29f1d87e25..bb2dbd70ce 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -124,6 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
  • Parse() : edash_packager::media::AVCDecoderConfiguration , edash_packager::media::Demuxer +, edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::MediaParser , edash_packager::media::mp2t::AdtsHeader , edash_packager::media::mp2t::Mp2tMediaParser @@ -192,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index e16ffa47dd..b2970a31b4 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 cf1fad5888..a17b1c63c8 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 5d8fd58395..d6c5088a70 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 4202e9a3a4..a50a2e027b 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 44e26c7114..640d69dc06 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 c5f10b0aa8..70f47172c0 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 d9129185d5..1cfca8ff4a 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 f0de14e81c..3ba6cb64d7 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_x.html b/docs/functions_x.html index 2ac2f14ed3..ea0e6acd74 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 1d99fe7c45..de85423dc5 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 6e002bdc19..c2090cf0b4 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -203,100 +203,101 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); oCedash_packager::media::H264SliceHeader oCedash_packager::media::H264SPS oCedash_packager::media::H264WeightingFactors -oCedash_packager::media::IoCacheDeclaration of class which implements a thread-safe circular buffer -oCedash_packager::media::KeyFetcherBase class for fetching keys from the license service -|\Cedash_packager::media::HttpKeyFetcher -oCedash_packager::media::KeySourceKeySource is responsible for encryption key acquisition -|\Cedash_packager::media::WidevineKeySource -oCedash_packager::media::LibcryptoThreadingConvenience class which initializes and terminates libcrypto threading -oCedash_packager::media::mp4::MediaData -oCedash_packager::media::MediaParser -|oCedash_packager::media::mp2t::Mp2tMediaParser -|oCedash_packager::media::mp4::MP4MediaParser -|oCedash_packager::media::WebMMediaParser -|\Cedash_packager::media::wvm::WvmMediaParser -oCedash_packager::media::MediaStream -oCedash_packager::MpdBuilderThis class generates DASH MPDs (Media Presentation Descriptions) -|\Cedash_packager::MockMpdBuilder -oCedash_packager::MpdNotifier -|oCedash_packager::DashIopMpdNotifier -|oCedash_packager::MockMpdNotifier -|\Cedash_packager::SimpleMpdNotifier -oCedash_packager::MpdNotifierFactory -oCedash_packager::MpdOptionsDefines Mpd Options -oCedash_packager::MpdWriter -oCedash_packager::media::Muxer -|\Cedash_packager::media::mp4::MP4Muxer -oCedash_packager::media::MuxerListener -|oCedash_packager::media::MpdNotifyMuxerListener -|\Cedash_packager::media::VodMediaInfoDumpMuxerListener -oCedash_packager::media::MuxerOptionsThis structure contains the list of configuration options for Muxer -oCedash_packager::media::OffsetByteQueue -oCedash_packager::media::OnMediaEndParameters -oCedash_packager::media::OpusPacket -oCedash_packager::media::wvm::PrevSampleData -oCedash_packager::media::ProducerConsumerQueue< T > -oCedash_packager::media::ProgressListenerThis class listens to progress updates events -oCRefCountedThreadSafe -|oCedash_packager::media::MediaSampleClass to hold a media sample -|\Cedash_packager::media::StreamInfoAbstract class holds stream information -| oCedash_packager::media::AudioStreamInfoHolds audio stream information -| \Cedash_packager::media::VideoStreamInfoHolds video stream information -oCedash_packager::Representation -|\Cedash_packager::MockRepresentation -oCedash_packager::RepresentationStateChangeListener -oCedash_packager::media::RequestSignerAbstract class used for signature generation -|oCedash_packager::media::AesRequestSignerAesRequestSigner uses AES-CBC signing -|\Cedash_packager::media::RsaRequestSignerRsaRequestSigner uses RSA-PSS signing -oCedash_packager::media::RsaPrivateKeyRsa private key, used for message signing and decryption -oCedash_packager::media::RsaPublicKeyRsa public key, used for signature verification and encryption -oCedash_packager::media::mp4::SampleToGroupEntry -oCedash_packager::xml::ScopedXmlPtr< XmlType >Scoped_ptr for libxml2 resources -oCedash_packager::xml::ScopedXmlPtr< xmlNode > -oCedash_packager::media::mp4::Segmenter -|oCedash_packager::media::mp4::MultiSegmentSegmenter -|\Cedash_packager::media::mp4::SingleSegmentSegmenter -oCedash_packager::SegmentInfo -oCedash_packager::media::mp4::SegmentReference -oCSimpleThread -|\Cedash_packager::media::ClosureThread -oCedash_packager::media::Status -oCedash_packager::media::StreamDescriptor -oCedash_packager::media::StreamDescriptorCompareFn -oCedash_packager::media::SubsampleEntry -oCedash_packager::media::mp4::SyncSampleIterator -oCedash_packager::media::TextTrack -oCedash_packager::media::TextTrackConfig -oCedash_packager::media::mp4::TrackRunIterator -oCedash_packager::media::TracksBuilder -oCedash_packager::media::mp2t::TsPacket -oCedash_packager::media::mp2t::TsSection -|oCedash_packager::media::mp2t::TsSectionPes -|\Cedash_packager::media::mp2t::TsSectionPsi -| oCedash_packager::media::mp2t::TsSectionPat -| \Cedash_packager::media::mp2t::TsSectionPmt -oCedash_packager::media::VideoStreamInfoParameters -oCedash_packager::media::VPCodecConfigurationClass for parsing or writing VP codec configuration data -oCedash_packager::media::WebMListParser -oCedash_packager::media::WebMParserClient -|oCedash_packager::media::WebMAudioClientHelper class used to parse an Audio element inside a TrackEntry element -|oCedash_packager::media::WebMClusterParser -|oCedash_packager::media::WebMContentEncodingsClientParser for WebM ContentEncodings element -|oCedash_packager::media::WebMInfoParserParser for WebM Info element -|oCedash_packager::media::WebMTracksParserParser for WebM Tracks element -|\Cedash_packager::media::WebMVideoClientHelper class used to parse a Video element inside a TrackEntry element -oCedash_packager::media::WebMWebVTTParser -oCedash_packager::xml::XmlDeleter -\Cedash_packager::xml::XmlNode - \Cedash_packager::xml::RepresentationBaseXmlNode -  oCedash_packager::xml::AdaptationSetXmlNodeAdaptationSetType specified in MPD -  \Cedash_packager::xml::RepresentationXmlNodeRepresentationType in MPD +oCedash_packager::media::HEVCDecoderConfigurationClass for parsing HEVC decoder configuration +oCedash_packager::media::IoCacheDeclaration of class which implements a thread-safe circular buffer +oCedash_packager::media::KeyFetcherBase class for fetching keys from the license service +|\Cedash_packager::media::HttpKeyFetcher +oCedash_packager::media::KeySourceKeySource is responsible for encryption key acquisition +|\Cedash_packager::media::WidevineKeySource +oCedash_packager::media::LibcryptoThreadingConvenience class which initializes and terminates libcrypto threading +oCedash_packager::media::mp4::MediaData +oCedash_packager::media::MediaParser +|oCedash_packager::media::mp2t::Mp2tMediaParser +|oCedash_packager::media::mp4::MP4MediaParser +|oCedash_packager::media::WebMMediaParser +|\Cedash_packager::media::wvm::WvmMediaParser +oCedash_packager::media::MediaStream +oCedash_packager::MpdBuilderThis class generates DASH MPDs (Media Presentation Descriptions) +|\Cedash_packager::MockMpdBuilder +oCedash_packager::MpdNotifier +|oCedash_packager::DashIopMpdNotifier +|oCedash_packager::MockMpdNotifier +|\Cedash_packager::SimpleMpdNotifier +oCedash_packager::MpdNotifierFactory +oCedash_packager::MpdOptionsDefines Mpd Options +oCedash_packager::MpdWriter +oCedash_packager::media::Muxer +|\Cedash_packager::media::mp4::MP4Muxer +oCedash_packager::media::MuxerListener +|oCedash_packager::media::MpdNotifyMuxerListener +|\Cedash_packager::media::VodMediaInfoDumpMuxerListener +oCedash_packager::media::MuxerOptionsThis structure contains the list of configuration options for Muxer +oCedash_packager::media::OffsetByteQueue +oCedash_packager::media::OnMediaEndParameters +oCedash_packager::media::OpusPacket +oCedash_packager::media::wvm::PrevSampleData +oCedash_packager::media::ProducerConsumerQueue< T > +oCedash_packager::media::ProgressListenerThis class listens to progress updates events +oCRefCountedThreadSafe +|oCedash_packager::media::MediaSampleClass to hold a media sample +|\Cedash_packager::media::StreamInfoAbstract class holds stream information +| oCedash_packager::media::AudioStreamInfoHolds audio stream information +| \Cedash_packager::media::VideoStreamInfoHolds video stream information +oCedash_packager::Representation +|\Cedash_packager::MockRepresentation +oCedash_packager::RepresentationStateChangeListener +oCedash_packager::media::RequestSignerAbstract class used for signature generation +|oCedash_packager::media::AesRequestSignerAesRequestSigner uses AES-CBC signing +|\Cedash_packager::media::RsaRequestSignerRsaRequestSigner uses RSA-PSS signing +oCedash_packager::media::RsaPrivateKeyRsa private key, used for message signing and decryption +oCedash_packager::media::RsaPublicKeyRsa public key, used for signature verification and encryption +oCedash_packager::media::mp4::SampleToGroupEntry +oCedash_packager::xml::ScopedXmlPtr< XmlType >Scoped_ptr for libxml2 resources +oCedash_packager::xml::ScopedXmlPtr< xmlNode > +oCedash_packager::media::mp4::Segmenter +|oCedash_packager::media::mp4::MultiSegmentSegmenter +|\Cedash_packager::media::mp4::SingleSegmentSegmenter +oCedash_packager::SegmentInfo +oCedash_packager::media::mp4::SegmentReference +oCSimpleThread +|\Cedash_packager::media::ClosureThread +oCedash_packager::media::Status +oCedash_packager::media::StreamDescriptor +oCedash_packager::media::StreamDescriptorCompareFn +oCedash_packager::media::SubsampleEntry +oCedash_packager::media::mp4::SyncSampleIterator +oCedash_packager::media::TextTrack +oCedash_packager::media::TextTrackConfig +oCedash_packager::media::mp4::TrackRunIterator +oCedash_packager::media::TracksBuilder +oCedash_packager::media::mp2t::TsPacket +oCedash_packager::media::mp2t::TsSection +|oCedash_packager::media::mp2t::TsSectionPes +|\Cedash_packager::media::mp2t::TsSectionPsi +| oCedash_packager::media::mp2t::TsSectionPat +| \Cedash_packager::media::mp2t::TsSectionPmt +oCedash_packager::media::VideoStreamInfoParameters +oCedash_packager::media::VPCodecConfigurationClass for parsing or writing VP codec configuration data +oCedash_packager::media::WebMListParser +oCedash_packager::media::WebMParserClient +|oCedash_packager::media::WebMAudioClientHelper class used to parse an Audio element inside a TrackEntry element +|oCedash_packager::media::WebMClusterParser +|oCedash_packager::media::WebMContentEncodingsClientParser for WebM ContentEncodings element +|oCedash_packager::media::WebMInfoParserParser for WebM Info element +|oCedash_packager::media::WebMTracksParserParser for WebM Tracks element +|\Cedash_packager::media::WebMVideoClientHelper class used to parse a Video element inside a TrackEntry element +oCedash_packager::media::WebMWebVTTParser +oCedash_packager::xml::XmlDeleter +\Cedash_packager::xml::XmlNode + \Cedash_packager::xml::RepresentationBaseXmlNode +  oCedash_packager::xml::AdaptationSetXmlNodeAdaptationSetType specified in MPD +  \Cedash_packager::xml::RepresentationXmlNodeRepresentationType in MPD diff --git a/docs/index.html b/docs/index.html index 7d5285467c..5ccc78b324 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 3a09d36ccd..4dcf01b310 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 c8b01e0731..39c2f9664a 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 adb03d5dfe..b51fc33645 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/search/all_6.js b/docs/search/all_6.js index dde6f28dc6..c81ba2aaac 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -9,7 +9,7 @@ var searchData= ['getaudiospecificconfig',['GetAudioSpecificConfig',['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a65c36a606121daa90c44b44632b634ec',1,'edash_packager::media::mp2t::AdtsHeader']]], ['getaudiostreaminfo',['GetAudioStreamInfo',['../de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html#aa1adf8eaedbb721b663e67630e54e36a',1,'edash_packager::media::WebMAudioClient']]], ['getavcdecoderconfigurationrecord',['GetAVCDecoderConfigurationRecord',['../d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html#a0f4d8f75700dc0674eb6eb9c7d6dd393',1,'edash_packager::media::H264ByteToUnitStreamConverter']]], - ['getcodecstring',['GetCodecString',['../da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html#aa62e486f463c867b8e2f41ebb4ecea34',1,'edash_packager::media::AudioStreamInfo::GetCodecString()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#ad03be6192998b36ef2364266e5604c19',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString() const '],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a88c2e4c0fd4dd99f6a1b02649a6b5831',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString(uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a56c474703175b9a323ef24553da42704',1,'edash_packager::media::VPCodecConfiguration::GetCodecString()']]], + ['getcodecstring',['GetCodecString',['../da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html#aa62e486f463c867b8e2f41ebb4ecea34',1,'edash_packager::media::AudioStreamInfo::GetCodecString()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#ad03be6192998b36ef2364266e5604c19',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString() const '],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a88c2e4c0fd4dd99f6a1b02649a6b5831',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString(uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#abe707416639b9382c680647d6970eda5',1,'edash_packager::media::HEVCDecoderConfiguration::GetCodecString()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a56c474703175b9a323ef24553da42704',1,'edash_packager::media::VPCodecConfiguration::GetCodecString()']]], ['getcontenttype',['GetContentType',['../db/d09/namespaceedash__packager.html#a7f479c5670e5c9f721772e0bd316bff9',1,'edash_packager']]], ['getcryptoperiodkey',['GetCryptoPeriodKey',['../d9/d8b/classedash__packager_1_1media_1_1KeySource.html#a349381b866a37df15a931980636621ac',1,'edash_packager::media::KeySource::GetCryptoPeriodKey()'],['../db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html#a35023c0b18a2db012027d4cf22c7bf1b',1,'edash_packager::media::WidevineKeySource::GetCryptoPeriodKey()']]], ['getdecryptconfig',['GetDecryptConfig',['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#ae62fc9fe719f4432d4043ea2f43963c6',1,'edash_packager::media::mp4::TrackRunIterator']]], diff --git a/docs/search/all_7.js b/docs/search/all_7.js index f54f16ca85..40f588f32f 100644 --- a/docs/search/all_7.js +++ b/docs/search/all_7.js @@ -16,6 +16,7 @@ var searchData= ['hasbytes',['HasBytes',['../d9/d46/classedash__packager_1_1media_1_1BufferReader.html#a61ac255662b847f0ef25a8228c4ba009',1,'edash_packager::media::BufferReader']]], ['head',['head',['../d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html#aa9d018636705cab1759978cd7c6d17da',1,'edash_packager::media::OffsetByteQueue']]], ['headpos',['HeadPos',['../d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html#a7af8ad77c837db03402ac0947cc73ebf',1,'edash_packager::media::ProducerConsumerQueue']]], + ['hevcdecoderconfiguration',['HEVCDecoderConfiguration',['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html',1,'edash_packager::media']]], ['hextouuid',['HexToUUID',['../db/d09/namespaceedash__packager.html#a7015ba137f31c7ae734dc7abb254be64',1,'edash_packager']]], ['httpkeyfetcher',['HttpKeyFetcher',['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html',1,'edash_packager::media']]], ['httpkeyfetcher',['HttpKeyFetcher',['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html#a2dc7f2f968a87e5c532d1e3d6516237b',1,'edash_packager::media::HttpKeyFetcher::HttpKeyFetcher()'],['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html#a5fdf1c838667e9280eb71e1682692a80',1,'edash_packager::media::HttpKeyFetcher::HttpKeyFetcher(uint32_t timeout_in_seconds)']]] diff --git a/docs/search/all_a.js b/docs/search/all_a.js index a2b56d693f..b0396077f6 100644 --- a/docs/search/all_a.js +++ b/docs/search/all_a.js @@ -3,6 +3,7 @@ var searchData= ['languagetoiso_5f639_5f2',['LanguageToISO_639_2',['../db/d09/namespaceedash__packager.html#a1082a6ff7615e61946ce7d6616f21dde',1,'edash_packager']]], ['languagetoshortestform',['LanguageToShortestForm',['../db/d09/namespaceedash__packager.html#a4f8cf77ef5242943e88811962c2870e5',1,'edash_packager']]], ['lastfirstchunk',['LastFirstChunk',['../d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a378cfea9333aba7b810d1b7a575a28cd',1,'edash_packager::media::mp4::ChunkInfoIterator']]], + ['length_5fsize',['length_size',['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#a9140aaa99d87ada57a34562d6d191f45',1,'edash_packager::media::HEVCDecoderConfiguration']]], ['libcryptothreading',['LibcryptoThreading',['../de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html',1,'edash_packager::media']]], ['loadmoov',['LoadMoov',['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#a6dafe794d755100428ed427791ae0e43',1,'edash_packager::media::mp4::MP4MediaParser']]], ['localfile',['LocalFile',['../dd/d98/classedash__packager_1_1media_1_1LocalFile.html#a0167e3eb79bc5f86cb1484b8da828fcc',1,'edash_packager::media::LocalFile']]], diff --git a/docs/search/all_e.js b/docs/search/all_e.js index b71a34ba6f..4ca415aee7 100644 --- a/docs/search/all_e.js +++ b/docs/search/all_e.js @@ -1,6 +1,6 @@ var searchData= [ - ['parse',['Parse',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#adb6c35974c24809c715380a99ac7cc78',1,'edash_packager::media::Demuxer::Parse()'],['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a6bc31ca2303d340a11a63a6f4bbb8b0a',1,'edash_packager::media::MediaParser::Parse()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a8ac1cb50516b99f6ecafbdcb2705b1cc',1,'edash_packager::media::AVCDecoderConfiguration::Parse()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a3428d45e1b7c31fc6dd3bef0c8dc46c7',1,'edash_packager::media::VPCodecConfiguration::Parse()'],['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a12f7811f1539361980a13517f948f9fb',1,'edash_packager::media::mp2t::AdtsHeader::Parse()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a8e01eb8219dfd9a649ee5a153f9bbabb',1,'edash_packager::media::mp2t::Mp2tMediaParser::Parse()'],['../dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html#a90a58afc9e6b20b9a6909d54f94dafc9',1,'edash_packager::media::mp4::AACAudioSpecificConfig::Parse()'],['../d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html#a7b62a3983faafbea54a32486df60ed96',1,'edash_packager::media::mp4::Box::Parse()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#ade36e7fd4daf8c6a98c16b6a94bafd28',1,'edash_packager::media::mp4::MP4MediaParser::Parse()'],['../db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html#a060661d4a0bfc01543fa025fb4b09a7d',1,'edash_packager::media::WebMClusterParser::Parse()'],['../dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html#ab2f2dd920214bf7942e374d4c9843243',1,'edash_packager::media::WebMInfoParser::Parse()'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a5a95d3879a9a96830fdcf4f866879143',1,'edash_packager::media::WebMMediaParser::Parse()'],['../d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html#a5b3b0c8fd0423044d0090357428b8ee0',1,'edash_packager::media::WebMListParser::Parse()'],['../db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html#a8719ba4bc187c32a73f133c0a67a19ab',1,'edash_packager::media::WebMTracksParser::Parse()'],['../dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html#a979168b11e59b863de2d3ba3fbb60815',1,'edash_packager::media::WebMWebVTTParser::Parse()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#af2a6c8b62df30b6515eee30389b271d7',1,'edash_packager::media::wvm::WvmMediaParser::Parse()']]], + ['parse',['Parse',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#adb6c35974c24809c715380a99ac7cc78',1,'edash_packager::media::Demuxer::Parse()'],['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a6bc31ca2303d340a11a63a6f4bbb8b0a',1,'edash_packager::media::MediaParser::Parse()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a8ac1cb50516b99f6ecafbdcb2705b1cc',1,'edash_packager::media::AVCDecoderConfiguration::Parse()'],['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#a2b5bd2af5583ef512e8620aabf6afce6',1,'edash_packager::media::HEVCDecoderConfiguration::Parse()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a3428d45e1b7c31fc6dd3bef0c8dc46c7',1,'edash_packager::media::VPCodecConfiguration::Parse()'],['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a12f7811f1539361980a13517f948f9fb',1,'edash_packager::media::mp2t::AdtsHeader::Parse()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a8e01eb8219dfd9a649ee5a153f9bbabb',1,'edash_packager::media::mp2t::Mp2tMediaParser::Parse()'],['../dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html#a90a58afc9e6b20b9a6909d54f94dafc9',1,'edash_packager::media::mp4::AACAudioSpecificConfig::Parse()'],['../d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html#a7b62a3983faafbea54a32486df60ed96',1,'edash_packager::media::mp4::Box::Parse()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#ade36e7fd4daf8c6a98c16b6a94bafd28',1,'edash_packager::media::mp4::MP4MediaParser::Parse()'],['../db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html#a060661d4a0bfc01543fa025fb4b09a7d',1,'edash_packager::media::WebMClusterParser::Parse()'],['../dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html#ab2f2dd920214bf7942e374d4c9843243',1,'edash_packager::media::WebMInfoParser::Parse()'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a5a95d3879a9a96830fdcf4f866879143',1,'edash_packager::media::WebMMediaParser::Parse()'],['../d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html#a5b3b0c8fd0423044d0090357428b8ee0',1,'edash_packager::media::WebMListParser::Parse()'],['../db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html#a8719ba4bc187c32a73f133c0a67a19ab',1,'edash_packager::media::WebMTracksParser::Parse()'],['../dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html#a979168b11e59b863de2d3ba3fbb60815',1,'edash_packager::media::WebMWebVTTParser::Parse()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#af2a6c8b62df30b6515eee30389b271d7',1,'edash_packager::media::wvm::WvmMediaParser::Parse()']]], ['passscopedptr',['PassScopedPtr',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#a07d40d8fe27a2d1c3470f16ef0df3864',1,'edash_packager::xml::XmlNode']]], ['peek',['Peek',['../d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html#a8253df160751462f3b75290a7c525e56',1,'edash_packager::media::ByteQueue::Peek()'],['../d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html#acf87e686e78d6cb962f39bb2acca7180',1,'edash_packager::media::ProducerConsumerQueue::Peek()']]], ['peekat',['PeekAt',['../d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html#a32b06f514ebfd5aef820a9b91228a854',1,'edash_packager::media::OffsetByteQueue']]], diff --git a/docs/search/classes_6.js b/docs/search/classes_6.js index 03687318e1..17c36ce0cd 100644 --- a/docs/search/classes_6.js +++ b/docs/search/classes_6.js @@ -13,5 +13,6 @@ var searchData= ['h264sps',['H264SPS',['../d8/db0/structedash__packager_1_1media_1_1H264SPS.html',1,'edash_packager::media']]], ['h264weightingfactors',['H264WeightingFactors',['../d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html',1,'edash_packager::media']]], ['handlerreference',['HandlerReference',['../d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html',1,'edash_packager::media::mp4']]], + ['hevcdecoderconfiguration',['HEVCDecoderConfiguration',['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html',1,'edash_packager::media']]], ['httpkeyfetcher',['HttpKeyFetcher',['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html',1,'edash_packager::media']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index dde6f28dc6..c81ba2aaac 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -9,7 +9,7 @@ var searchData= ['getaudiospecificconfig',['GetAudioSpecificConfig',['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a65c36a606121daa90c44b44632b634ec',1,'edash_packager::media::mp2t::AdtsHeader']]], ['getaudiostreaminfo',['GetAudioStreamInfo',['../de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html#aa1adf8eaedbb721b663e67630e54e36a',1,'edash_packager::media::WebMAudioClient']]], ['getavcdecoderconfigurationrecord',['GetAVCDecoderConfigurationRecord',['../d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html#a0f4d8f75700dc0674eb6eb9c7d6dd393',1,'edash_packager::media::H264ByteToUnitStreamConverter']]], - ['getcodecstring',['GetCodecString',['../da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html#aa62e486f463c867b8e2f41ebb4ecea34',1,'edash_packager::media::AudioStreamInfo::GetCodecString()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#ad03be6192998b36ef2364266e5604c19',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString() const '],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a88c2e4c0fd4dd99f6a1b02649a6b5831',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString(uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a56c474703175b9a323ef24553da42704',1,'edash_packager::media::VPCodecConfiguration::GetCodecString()']]], + ['getcodecstring',['GetCodecString',['../da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html#aa62e486f463c867b8e2f41ebb4ecea34',1,'edash_packager::media::AudioStreamInfo::GetCodecString()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#ad03be6192998b36ef2364266e5604c19',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString() const '],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a88c2e4c0fd4dd99f6a1b02649a6b5831',1,'edash_packager::media::AVCDecoderConfiguration::GetCodecString(uint8_t profile_indication, uint8_t profile_compatibility, uint8_t avc_level)'],['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#abe707416639b9382c680647d6970eda5',1,'edash_packager::media::HEVCDecoderConfiguration::GetCodecString()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a56c474703175b9a323ef24553da42704',1,'edash_packager::media::VPCodecConfiguration::GetCodecString()']]], ['getcontenttype',['GetContentType',['../db/d09/namespaceedash__packager.html#a7f479c5670e5c9f721772e0bd316bff9',1,'edash_packager']]], ['getcryptoperiodkey',['GetCryptoPeriodKey',['../d9/d8b/classedash__packager_1_1media_1_1KeySource.html#a349381b866a37df15a931980636621ac',1,'edash_packager::media::KeySource::GetCryptoPeriodKey()'],['../db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html#a35023c0b18a2db012027d4cf22c7bf1b',1,'edash_packager::media::WidevineKeySource::GetCryptoPeriodKey()']]], ['getdecryptconfig',['GetDecryptConfig',['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#ae62fc9fe719f4432d4043ea2f43963c6',1,'edash_packager::media::mp4::TrackRunIterator']]], diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js index 567d6b5e77..9675c5f16e 100644 --- a/docs/search/functions_a.js +++ b/docs/search/functions_a.js @@ -3,6 +3,7 @@ var searchData= ['languagetoiso_5f639_5f2',['LanguageToISO_639_2',['../db/d09/namespaceedash__packager.html#a1082a6ff7615e61946ce7d6616f21dde',1,'edash_packager']]], ['languagetoshortestform',['LanguageToShortestForm',['../db/d09/namespaceedash__packager.html#a4f8cf77ef5242943e88811962c2870e5',1,'edash_packager']]], ['lastfirstchunk',['LastFirstChunk',['../d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html#a378cfea9333aba7b810d1b7a575a28cd',1,'edash_packager::media::mp4::ChunkInfoIterator']]], + ['length_5fsize',['length_size',['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#a9140aaa99d87ada57a34562d6d191f45',1,'edash_packager::media::HEVCDecoderConfiguration']]], ['loadmoov',['LoadMoov',['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#a6dafe794d755100428ed427791ae0e43',1,'edash_packager::media::mp4::MP4MediaParser']]], ['localfile',['LocalFile',['../dd/d98/classedash__packager_1_1media_1_1LocalFile.html#a0167e3eb79bc5f86cb1484b8da828fcc',1,'edash_packager::media::LocalFile']]] ]; diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js index 9977204847..bc2f42979c 100644 --- a/docs/search/functions_e.js +++ b/docs/search/functions_e.js @@ -1,6 +1,6 @@ var searchData= [ - ['parse',['Parse',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#adb6c35974c24809c715380a99ac7cc78',1,'edash_packager::media::Demuxer::Parse()'],['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a6bc31ca2303d340a11a63a6f4bbb8b0a',1,'edash_packager::media::MediaParser::Parse()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a8ac1cb50516b99f6ecafbdcb2705b1cc',1,'edash_packager::media::AVCDecoderConfiguration::Parse()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a3428d45e1b7c31fc6dd3bef0c8dc46c7',1,'edash_packager::media::VPCodecConfiguration::Parse()'],['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a12f7811f1539361980a13517f948f9fb',1,'edash_packager::media::mp2t::AdtsHeader::Parse()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a8e01eb8219dfd9a649ee5a153f9bbabb',1,'edash_packager::media::mp2t::Mp2tMediaParser::Parse()'],['../dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html#a90a58afc9e6b20b9a6909d54f94dafc9',1,'edash_packager::media::mp4::AACAudioSpecificConfig::Parse()'],['../d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html#a7b62a3983faafbea54a32486df60ed96',1,'edash_packager::media::mp4::Box::Parse()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#ade36e7fd4daf8c6a98c16b6a94bafd28',1,'edash_packager::media::mp4::MP4MediaParser::Parse()'],['../db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html#a060661d4a0bfc01543fa025fb4b09a7d',1,'edash_packager::media::WebMClusterParser::Parse()'],['../dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html#ab2f2dd920214bf7942e374d4c9843243',1,'edash_packager::media::WebMInfoParser::Parse()'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a5a95d3879a9a96830fdcf4f866879143',1,'edash_packager::media::WebMMediaParser::Parse()'],['../d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html#a5b3b0c8fd0423044d0090357428b8ee0',1,'edash_packager::media::WebMListParser::Parse()'],['../db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html#a8719ba4bc187c32a73f133c0a67a19ab',1,'edash_packager::media::WebMTracksParser::Parse()'],['../dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html#a979168b11e59b863de2d3ba3fbb60815',1,'edash_packager::media::WebMWebVTTParser::Parse()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#af2a6c8b62df30b6515eee30389b271d7',1,'edash_packager::media::wvm::WvmMediaParser::Parse()']]], + ['parse',['Parse',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#adb6c35974c24809c715380a99ac7cc78',1,'edash_packager::media::Demuxer::Parse()'],['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a6bc31ca2303d340a11a63a6f4bbb8b0a',1,'edash_packager::media::MediaParser::Parse()'],['../d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html#a8ac1cb50516b99f6ecafbdcb2705b1cc',1,'edash_packager::media::AVCDecoderConfiguration::Parse()'],['../d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html#a2b5bd2af5583ef512e8620aabf6afce6',1,'edash_packager::media::HEVCDecoderConfiguration::Parse()'],['../d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html#a3428d45e1b7c31fc6dd3bef0c8dc46c7',1,'edash_packager::media::VPCodecConfiguration::Parse()'],['../db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html#a12f7811f1539361980a13517f948f9fb',1,'edash_packager::media::mp2t::AdtsHeader::Parse()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#a8e01eb8219dfd9a649ee5a153f9bbabb',1,'edash_packager::media::mp2t::Mp2tMediaParser::Parse()'],['../dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html#a90a58afc9e6b20b9a6909d54f94dafc9',1,'edash_packager::media::mp4::AACAudioSpecificConfig::Parse()'],['../d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html#a7b62a3983faafbea54a32486df60ed96',1,'edash_packager::media::mp4::Box::Parse()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#ade36e7fd4daf8c6a98c16b6a94bafd28',1,'edash_packager::media::mp4::MP4MediaParser::Parse()'],['../db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html#a060661d4a0bfc01543fa025fb4b09a7d',1,'edash_packager::media::WebMClusterParser::Parse()'],['../dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html#ab2f2dd920214bf7942e374d4c9843243',1,'edash_packager::media::WebMInfoParser::Parse()'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a5a95d3879a9a96830fdcf4f866879143',1,'edash_packager::media::WebMMediaParser::Parse()'],['../d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html#a5b3b0c8fd0423044d0090357428b8ee0',1,'edash_packager::media::WebMListParser::Parse()'],['../db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html#a8719ba4bc187c32a73f133c0a67a19ab',1,'edash_packager::media::WebMTracksParser::Parse()'],['../dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html#a979168b11e59b863de2d3ba3fbb60815',1,'edash_packager::media::WebMWebVTTParser::Parse()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#af2a6c8b62df30b6515eee30389b271d7',1,'edash_packager::media::wvm::WvmMediaParser::Parse()']]], ['passscopedptr',['PassScopedPtr',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#a07d40d8fe27a2d1c3470f16ef0df3864',1,'edash_packager::xml::XmlNode']]], ['peek',['Peek',['../d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html#a8253df160751462f3b75290a7c525e56',1,'edash_packager::media::ByteQueue::Peek()'],['../d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html#acf87e686e78d6cb962f39bb2acca7180',1,'edash_packager::media::ProducerConsumerQueue::Peek()']]], ['peekat',['PeekAt',['../d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html#a32b06f514ebfd5aef820a9b91228a854',1,'edash_packager::media::OffsetByteQueue']]],