Add Prores 4444 support (#2263).
[dcpomatic.git] / src / lib / ffmpeg_file_encoder.cc
index 17f6f55cb01413ddebdda3b52df944ce95f8c092..307a30aca340227cc9ec2ed5246aec8c162f73d1 100644 (file)
@@ -228,6 +228,13 @@ FFmpegFileEncoder::FFmpegFileEncoder (
        _pixel_format = pixel_format (format);
 
        switch (format) {
        _pixel_format = pixel_format (format);
 
        switch (format) {
+       case ExportFormat::PRORES_4444:
+               _sample_format = AV_SAMPLE_FMT_S16;
+               _video_codec_name = "prores_ks";
+               _audio_codec_name = "pcm_s16le";
+               av_dict_set(&_video_options, "profile", "4", 0);
+               av_dict_set(&_video_options, "threads", "auto", 0);
+               break;
        case ExportFormat::PRORES_HQ:
                _sample_format = AV_SAMPLE_FMT_S16;
                _video_codec_name = "prores_ks";
        case ExportFormat::PRORES_HQ:
                _sample_format = AV_SAMPLE_FMT_S16;
                _video_codec_name = "prores_ks";
@@ -281,6 +288,8 @@ AVPixelFormat
 FFmpegFileEncoder::pixel_format (ExportFormat format)
 {
        switch (format) {
 FFmpegFileEncoder::pixel_format (ExportFormat format)
 {
        switch (format) {
+       case ExportFormat::PRORES_4444:
+               return AV_PIX_FMT_YUV444P10;
        case ExportFormat::PRORES_HQ:
                return AV_PIX_FMT_YUV422P10;
        case ExportFormat::H264_AAC:
        case ExportFormat::PRORES_HQ:
                return AV_PIX_FMT_YUV422P10;
        case ExportFormat::H264_AAC: