On 02/17/2012 06:35 PM, Ronald S. Bultje wrote: > Hi, > > On Fri, Feb 17, 2012 at 3:27 PM, Justin Ruggles > <[email protected]> wrote: >> On 02/17/2012 05:49 PM, Ronald S. Bultje wrote: >> >>> From: "Ronald S. Bultje" <[email protected]> >>> >>> Prevents crash when trying to copy from a non-existing plane in e.g. >>> a RGB32 reference image to a YUV420P target image >>> >>> Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind >>> CC: [email protected] >>> --- >>> libavcodec/fraps.c | 16 ++++++++++++++++ >>> 1 files changed, 16 insertions(+), 0 deletions(-) >>> >>> diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c >>> index 3643325..1c1a451 100644 >>> --- a/libavcodec/fraps.c >>> +++ b/libavcodec/fraps.c >>> @@ -160,6 +160,10 @@ static int decode_frame(AVCodecContext *avctx, >>> case 0: >>> default: >>> /* Fraps v0 is a reordered YUV420 */ >>> + if (avctx->pix_fmt != PIX_FMT_NONE && >>> + avctx->pix_fmt != PIX_FMT_YUVJ420P && >>> + f->data[0]) >>> + avctx->release_buffer(avctx, f); >>> avctx->pix_fmt = PIX_FMT_YUVJ420P; >> >> >> Would checking the current avctx->pix_fmt against f->format not work? > > No, for the first frame, that is zero'ed (i.e. PIX_FMT_YUV420P), not > PIX_FMT_NONE (-1).
When is it set to zero? The defaults for both AVCodecContext and AVFrame are -1. -Justin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
