7 #ifndef MEDIA_FORMATS_MP4_MP4_MUXER_H_
8 #define MEDIA_FORMATS_MP4_MP4_MUXER_H_
12 #include "packager/base/optional.h"
13 #include "packager/media/base/muxer.h"
18 class AudioStreamInfo;
21 class VideoStreamInfo;
27 struct ProtectionSchemeInfo;
40 Status InitializeMuxer()
override;
41 Status Finalize()
override;
42 Status AddSample(
size_t stream_id,
43 std::shared_ptr<MediaSample> sample)
override;
44 Status FinalizeSegment(
size_t stream_id,
45 std::shared_ptr<SegmentInfo> segment_info)
override;
61 base::Optional<Range> GetInitRangeStartAndEnd();
65 base::Optional<Range> GetIndexRangeStartAndEnd();
68 void FireOnMediaStartEvent();
69 void FireOnMediaEndEvent();
72 uint64_t IsoTimeNow();
74 std::unique_ptr<Segmenter> segmenter_;
83 #endif // MEDIA_FORMATS_MP4_MP4_MUXER_H_