Commit 0949ff93 authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg_filter: fix choose_pix_fmts() so it uses the correct encoding context

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 862120f9
...@@ -102,18 +102,18 @@ static char *choose_pix_fmts(OutputStream *ost) ...@@ -102,18 +102,18 @@ static char *choose_pix_fmts(OutputStream *ost)
AVDictionaryEntry *strict_dict = av_dict_get(ost->encoder_opts, "strict", NULL, 0); AVDictionaryEntry *strict_dict = av_dict_get(ost->encoder_opts, "strict", NULL, 0);
if (strict_dict) if (strict_dict)
// used by choose_pixel_fmt() and below // 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->keep_pix_fmt) {
if (ost->filter) if (ost->filter)
avfilter_graph_set_auto_convert(ost->filter->graph->graph, avfilter_graph_set_auto_convert(ost->filter->graph->graph,
AVFILTER_AUTO_CONVERT_NONE); 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 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) { 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->st->codec->pix_fmt))); 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) { } else if (ost->enc && ost->enc->pix_fmts) {
const enum AVPixelFormat *p; const enum AVPixelFormat *p;
AVIOContext *s = NULL; AVIOContext *s = NULL;
...@@ -124,10 +124,10 @@ static char *choose_pix_fmts(OutputStream *ost) ...@@ -124,10 +124,10 @@ static char *choose_pix_fmts(OutputStream *ost)
exit_program(1); exit_program(1);
p = ost->enc->pix_fmts; p = ost->enc->pix_fmts;
if (ost->st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { if (ost->enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) {
if (ost->st->codec->codec_id == AV_CODEC_ID_MJPEG) { 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 }; 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, 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 }; AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_BGRA, AV_PIX_FMT_NONE };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment