#ifndef MEDIA_FORMATS_MP4_WRITABLE_BOX_DEFINITIONS_H_
#define MEDIA_FORMATS_MP4_WRITABLE_BOX_DEFINITIONS_H_
#include <optional>
#include <string>
#include <vector>
#include "base/containers/span.h"
#include "base/time/time.h"
#include "media/base/audio_codecs.h"
#include "media/base/media_export.h"
#include "media/base/video_codecs.h"
#include "media/formats/mp4/box_definitions.h"
#include "media/formats/mp4/fourccs.h"
#include "media/media_buildflags.h"
#include "ui/gfx/geometry/size.h"
namespace media::mp4::writable_boxes {
enum class TrackHeaderFlags : uint16_t { … };
enum class TrackFragmentHeaderFlags : uint32_t { … };
enum class TrackFragmentRunFlags : uint16_t { … };
enum class FragmentSampleFlags : uint32_t { … };
struct MEDIA_EXPORT Box { … };
struct MEDIA_EXPORT FullBox : Box { … };
struct MEDIA_EXPORT PixelAspectRatioBox : Box { … };
struct MEDIA_EXPORT BitRate : Box { … };
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
struct MEDIA_EXPORT ElementaryStreamDescriptor : FullBox {
ElementaryStreamDescriptor();
~ElementaryStreamDescriptor();
ElementaryStreamDescriptor(const ElementaryStreamDescriptor&);
ElementaryStreamDescriptor& operator=(const ElementaryStreamDescriptor&);
std::vector<uint8_t> aac_codec_description;
};
struct MEDIA_EXPORT AVCDecoderConfiguration : Box {
AVCDecoderConfigurationRecord avc_config_record;
};
#endif
struct MEDIA_EXPORT VPCodecConfiguration : FullBox { … };
struct MEDIA_EXPORT AV1CodecConfiguration : FullBox { … };
struct MEDIA_EXPORT VisualSampleEntry : Box { … };
struct MEDIA_EXPORT OpusSpecificBox : Box { … };
struct MEDIA_EXPORT AudioSampleEntry : Box { … };
struct MEDIA_EXPORT SampleDescription : FullBox { … };
struct MEDIA_EXPORT SampleChunkOffset : FullBox { … };
struct MEDIA_EXPORT SampleSize : FullBox { … };
struct MEDIA_EXPORT DecodingTimeToSample : FullBox { … };
struct MEDIA_EXPORT SampleToChunk : FullBox { … };
struct MEDIA_EXPORT SampleTable : Box { … };
struct MEDIA_EXPORT DataUrlEntry : FullBox { … };
struct MEDIA_EXPORT DataReference : FullBox { … };
struct MEDIA_EXPORT DataInformation : Box { … };
struct MEDIA_EXPORT SoundMediaHeader : FullBox { … };
struct MEDIA_EXPORT VideoMediaHeader : FullBox { … };
struct MEDIA_EXPORT MediaInformation : Box { … };
struct MEDIA_EXPORT MediaHandler : FullBox { … };
struct MEDIA_EXPORT MediaHeader : FullBox { … };
struct MEDIA_EXPORT Media : Box { … };
struct MEDIA_EXPORT TrackHeader : FullBox { … };
struct MEDIA_EXPORT Track : Box { … };
struct MEDIA_EXPORT TrackExtends : FullBox { … };
struct MEDIA_EXPORT MovieExtends : Box { … };
struct MEDIA_EXPORT MovieHeader : FullBox { … };
struct MEDIA_EXPORT Movie : Box { … };
struct MEDIA_EXPORT TrackFragmentRun : FullBox { … };
struct MEDIA_EXPORT TrackFragmentDecodeTime : Box { … };
struct MEDIA_EXPORT TrackFragmentHeader : FullBox { … };
struct MEDIA_EXPORT TrackFragment : Box { … };
struct MEDIA_EXPORT MovieFragmentHeader : FullBox { … };
struct MEDIA_EXPORT MovieFragment : Box { … };
struct MEDIA_EXPORT MediaData : Box { … };
struct MEDIA_EXPORT FileType : Box { … };
struct TrackFragmentRandomAccessEntry { … };
struct MEDIA_EXPORT TrackFragmentRandomAccess : FullBox { … };
struct MEDIA_EXPORT FragmentRandomAccessOffset : Box { … };
struct MEDIA_EXPORT FragmentRandomAccess : Box { … };
}
#endif