7 #ifndef PACKAGER_MEDIA_FORMATS_MP4_MP4_MUXER_H_
8 #define PACKAGER_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;
43 Status FinalizeSegment(
size_t stream_id,
46 Status DelayInitializeMuxer();
57 base::Optional<Range> GetInitRangeStartAndEnd();
61 base::Optional<Range> GetIndexRangeStartAndEnd();
64 void FireOnMediaStartEvent();
65 void FireOnMediaEndEvent();
68 uint64_t IsoTimeNow();
71 bool to_be_initialized_ =
true;
72 base::Optional<int64_t> edit_list_offset_;
74 std::unique_ptr<Segmenter> segmenter_;
All the methods that are virtual are virtual for mocking.