From 9c4943e6710d9e57dac7547d7136b619cfff23a2 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 3 May 2016 15:20:48 -0400 Subject: ffmpeg: copy color properties in case of -c:v copy. I have no idea why the first hunk uses ost->enc_ctx, because as far as I understand, that is never used in case of -c:v copy, but this code block is only entered if encoding_needed=0, which means stream_copy=1. My point being: review from someone that knows this really well would be appreciated. --- ffmpeg.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'ffmpeg.c') diff --git a/ffmpeg.c b/ffmpeg.c index 03ac34e4cb..002705ac2c 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2678,7 +2678,7 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) ost->st->time_base = av_add_q(ost->enc_ctx->time_base, (AVRational){0, 1}); ost->st->codec->codec= ost->enc_ctx->codec; } else { - ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts); + ret = av_opt_set_dict(ost->st->codec, &ost->encoder_opts); if (ret < 0) { av_log(NULL, AV_LOG_FATAL, "Error setting up codec context options.\n"); @@ -3011,6 +3011,10 @@ static int transcode_init(void) break; case AVMEDIA_TYPE_VIDEO: enc_ctx->pix_fmt = dec_ctx->pix_fmt; + enc_ctx->colorspace = dec_ctx->colorspace; + enc_ctx->color_range = dec_ctx->color_range; + enc_ctx->color_primaries = dec_ctx->color_primaries; + enc_ctx->color_trc = dec_ctx->color_trc; enc_ctx->width = dec_ctx->width; enc_ctx->height = dec_ctx->height; enc_ctx->has_b_frames = dec_ctx->has_b_frames; -- cgit v1.2.3