summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_file_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-11-06 23:06:21 +0000
committerCarl Hetherington <cth@carlh.net>2018-11-06 23:06:21 +0000
commitf41310384889e4cfb6e709d098b316e212d8bf22 (patch)
tree01db47dfe9da145e5428b2ce3df6d23ffcda69c4 /src/lib/ffmpeg_file_encoder.cc
parented68bfad5c795afb342c5228f3c1dc7770a6d646 (diff)
Do image crop/scale/window in the butler prepare threads.
Diffstat (limited to 'src/lib/ffmpeg_file_encoder.cc')
-rw-r--r--src/lib/ffmpeg_file_encoder.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/ffmpeg_file_encoder.cc b/src/lib/ffmpeg_file_encoder.cc
index 7cc4d26a4..804022f0b 100644
--- a/src/lib/ffmpeg_file_encoder.cc
+++ b/src/lib/ffmpeg_file_encoder.cc
@@ -26,7 +26,6 @@
#include "log.h"
#include "image.h"
#include "cross.h"
-#include "butler.h"
#include "compose.hpp"
#include <iostream>
@@ -61,9 +60,10 @@ FFmpegFileEncoder::FFmpegFileEncoder (
, _audio_frame_rate (audio_frame_rate)
, _log (log)
{
+ _pixel_format = pixel_format (format);
+
switch (format) {
case EXPORT_FORMAT_PRORES:
- _pixel_format = AV_PIX_FMT_YUV422P10;
_sample_format = AV_SAMPLE_FMT_S16;
_video_codec_name = "prores_ks";
_audio_codec_name = "pcm_s16le";
@@ -71,7 +71,6 @@ FFmpegFileEncoder::FFmpegFileEncoder (
av_dict_set (&_video_options, "threads", "auto", 0);
break;
case EXPORT_FORMAT_H264:
- _pixel_format = AV_PIX_FMT_YUV420P;
_sample_format = AV_SAMPLE_FMT_FLTP;
_video_codec_name = "libx264";
_audio_codec_name = "aac";
@@ -125,6 +124,21 @@ FFmpegFileEncoder::FFmpegFileEncoder (
_pending_audio.reset (new AudioBuffers(channels, 0));
}
+AVPixelFormat
+FFmpegFileEncoder::pixel_format (ExportFormat format)
+{
+ switch (format) {
+ case EXPORT_FORMAT_PRORES:
+ return AV_PIX_FMT_YUV422P10;
+ case EXPORT_FORMAT_H264:
+ return AV_PIX_FMT_YUV420P;
+ default:
+ DCPOMATIC_ASSERT (false);
+ }
+
+ return AV_PIX_FMT_YUV422P10;
+}
+
void
FFmpegFileEncoder::setup_video ()
{