[FFmpeg-devel] [PATCH] mmaldec: Set the output pix_fmt after detecting format
Julian Scheel
julian at jusst.de
Wed Oct 21 15:55:09 CEST 2015
Wait for the first decoded frame to be returned by mmal before setting
pix_fmt. This is important for avformat probing to work properly as it is one
of the criterions to decide whether to decode a frame or not for probing.
Signed-off-by: Julian Scheel <julian at jusst.de>
---
libavcodec/mmaldec.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c
index 7db90d2..429990a 100644
--- a/libavcodec/mmaldec.c
+++ b/libavcodec/mmaldec.c
@@ -338,11 +338,6 @@ static av_cold int ffmmal_init_decoder(AVCodecContext *avctx)
return AVERROR(ENOSYS);
}
- if ((ret = ff_get_format(avctx, avctx->codec->pix_fmts)) < 0)
- return ret;
-
- avctx->pix_fmt = ret;
-
if ((status = mmal_component_create(MMAL_COMPONENT_DEFAULT_VIDEO_DECODER, &ctx->decoder)))
goto fail;
@@ -678,6 +673,11 @@ static int ffmmal_read_frame(AVCodecContext *avctx, AVFrame *frame, int *got_fra
av_log(avctx, AV_LOG_INFO, "Changing output format.\n");
+ if ((ret = ff_get_format(avctx, avctx->codec->pix_fmts)) < 0)
+ return ret;
+
+ avctx->pix_fmt = ret;
+
if ((status = mmal_port_disable(decoder->output[0])))
goto done;
--
2.6.0
More information about the ffmpeg-devel
mailing list