diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-06-24 23:01:13 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-06-24 23:01:13 +0200 |
| commit | 6675bba6ab7d5cee50fa4d8c892af69d054c6804 (patch) | |
| tree | feee88dc93797235a1b19d02851f93a3161c1851 /src/lib | |
| parent | cb6b0865614761df9c0ecc0f9dabc6b41de65659 (diff) | |
Add ProRes LT export option (#2834).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/export_config.cc | 6 | ||||
| -rw-r--r-- | src/lib/ffmpeg_file_encoder.cc | 8 | ||||
| -rw-r--r-- | src/lib/ffmpeg_file_encoder.h | 1 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/lib/export_config.cc b/src/lib/export_config.cc index 4dfbb9027..79042e59c 100644 --- a/src/lib/export_config.cc +++ b/src/lib/export_config.cc @@ -65,6 +65,8 @@ ExportConfig::read(cxml::ConstNodePtr node) _format = ExportFormat::H264_AAC; } else if (format == "prores-4444") { _format = ExportFormat::PRORES_4444; + } else if (format == "prores-lt") { + _format = ExportFormat::PRORES_LT; } else { _format = ExportFormat::PRORES_HQ; } @@ -89,6 +91,9 @@ ExportConfig::write(xmlpp::Element* element) const /* Write this but we also accept 'prores' for backwards compatibility */ name = "prores-hq"; break; + case ExportFormat::PRORES_LT: + name = "prores-lt"; + break; case ExportFormat::H264_AAC: name = "h264-aac"; break; @@ -138,4 +143,3 @@ ExportConfig::set_x264_crf(int crf) { _config->maybe_set(_x264_crf, crf); } - diff --git a/src/lib/ffmpeg_file_encoder.cc b/src/lib/ffmpeg_file_encoder.cc index 4547a8e8e..dfc0205ac 100644 --- a/src/lib/ffmpeg_file_encoder.cc +++ b/src/lib/ffmpeg_file_encoder.cc @@ -241,6 +241,13 @@ FFmpegFileEncoder::FFmpegFileEncoder ( av_dict_set (&_video_options, "profile", "3", 0); av_dict_set (&_video_options, "threads", "auto", 0); break; + case ExportFormat::PRORES_LT: + _sample_format = AV_SAMPLE_FMT_S32; + _video_codec_name = "prores_ks"; + _audio_codec_name = "pcm_s24le"; + av_dict_set(&_video_options, "profile", "1", 0); + av_dict_set(&_video_options, "threads", "auto", 0); + break; case ExportFormat::H264_AAC: _sample_format = AV_SAMPLE_FMT_FLTP; _video_codec_name = "libx264"; @@ -292,6 +299,7 @@ FFmpegFileEncoder::pixel_format (ExportFormat format) case ExportFormat::PRORES_4444: return AV_PIX_FMT_YUV444P10; case ExportFormat::PRORES_HQ: + case ExportFormat::PRORES_LT: return AV_PIX_FMT_YUV422P10; case ExportFormat::H264_AAC: return AV_PIX_FMT_YUV420P; diff --git a/src/lib/ffmpeg_file_encoder.h b/src/lib/ffmpeg_file_encoder.h index 907eca53d..a365f463a 100644 --- a/src/lib/ffmpeg_file_encoder.h +++ b/src/lib/ffmpeg_file_encoder.h @@ -48,6 +48,7 @@ enum class ExportFormat { PRORES_4444, PRORES_HQ, + PRORES_LT, H264_AAC, SUBTITLES_DCP }; |
