From 0949ff93c03a92214a76aad1663c1a04bf36e8f4 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 1 Jun 2014 16:06:18 +0200 Subject: [PATCH] ffmpeg_filter: fix choose_pix_fmts() so it uses the correct encoding context Signed-off-by: Michael Niedermayer --- ffmpeg_filter.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index ae28034590..25d925a231 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -102,18 +102,18 @@ static char *choose_pix_fmts(OutputStream *ost) AVDictionaryEntry *strict_dict = av_dict_get(ost->encoder_opts, "strict", NULL, 0); if (strict_dict) // used by choose_pixel_fmt() and below - av_opt_set(ost->st->codec, "strict", strict_dict->value, 0); + av_opt_set(ost->enc_ctx, "strict", strict_dict->value, 0); if (ost->keep_pix_fmt) { if (ost->filter) avfilter_graph_set_auto_convert(ost->filter->graph->graph, AVFILTER_AUTO_CONVERT_NONE); - if (ost->st->codec->pix_fmt == AV_PIX_FMT_NONE) + if (ost->enc_ctx->pix_fmt == AV_PIX_FMT_NONE) return NULL; - return av_strdup(av_get_pix_fmt_name(ost->st->codec->pix_fmt)); + return av_strdup(av_get_pix_fmt_name(ost->enc_ctx->pix_fmt)); } - if (ost->st->codec->pix_fmt != AV_PIX_FMT_NONE) { - return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc, ost->st->codec->pix_fmt))); + if (ost->enc_ctx->pix_fmt != AV_PIX_FMT_NONE) { + return av_strdup(av_get_pix_fmt_name(choose_pixel_fmt(ost->st, ost->enc, ost->enc_ctx->pix_fmt))); } else if (ost->enc && ost->enc->pix_fmts) { const enum AVPixelFormat *p; AVIOContext *s = NULL; @@ -124,10 +124,10 @@ static char *choose_pix_fmts(OutputStream *ost) exit_program(1); p = ost->enc->pix_fmts; - if (ost->st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { - if (ost->st->codec->codec_id == AV_CODEC_ID_MJPEG) { + if (ost->enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { + if (ost->enc_ctx->codec_id == AV_CODEC_ID_MJPEG) { p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_NONE }; - } else if (ost->st->codec->codec_id == AV_CODEC_ID_LJPEG) { + } else if (ost->enc_ctx->codec_id == AV_CODEC_ID_LJPEG) { p = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE }; }