7 #include "packager/app/muxer_factory.h" 9 #include "packager/base/time/clock.h" 10 #include "packager/media/base/muxer.h" 11 #include "packager/media/base/muxer_options.h" 12 #include "packager/media/formats/mp2t/ts_muxer.h" 13 #include "packager/media/formats/mp4/mp4_muxer.h" 14 #include "packager/media/formats/packed_audio/packed_audio_writer.h" 15 #include "packager/media/formats/webm/webm_muxer.h" 16 #include "packager/packager.h" 21 MuxerFactory::MuxerFactory(
const PackagingParams& packaging_params)
22 : mp4_params_(packaging_params.mp4_output_params),
23 transport_stream_timestamp_offset_ms_(
24 packaging_params.transport_stream_timestamp_offset_ms),
25 temp_dir_(packaging_params.temp_dir) {}
28 MediaContainerName output_format,
32 options.transport_stream_timestamp_offset_ms =
33 transport_stream_timestamp_offset_ms_;
39 std::shared_ptr<Muxer> muxer;
41 switch (output_format) {
45 muxer = std::make_shared<PackedAudioWriter>(options);
48 muxer = std::make_shared<webm::WebMMuxer>(options);
50 case CONTAINER_MPEG2TS:
51 muxer = std::make_shared<mp2t::TsMuxer>(options);
54 muxer = std::make_shared<mp4::MP4Muxer>(options);
57 LOG(ERROR) <<
"Cannot support muxing to " << output_format;
68 muxer->set_clock(clock_);
Defines a single input/output stream.
std::string segment_template
Specifies segment template. Can be empty.
All the methods that are virtual are virtual for mocking.