[FFmpeg-devel] [libav-devel] [PATCH] h264: check frame properties for consistency before copying

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Mon Jun 15 18:37:16 CEST 2015


On 15.06.2015 12:57, Vittorio Giovara wrote:
> On Sun, Jun 14, 2015 at 11:40 AM, Andreas Cadhalpun
> <andreas.cadhalpun at googlemail.com> wrote:
>> Also use the frame pixel format instead of the one from the codec
>> context, which is more robust.
> 
> Does this fix anything in particular or is just as precaution?

This fixes SIGABRT crashes in FFmpeg. (Libav's av_image_copy_plane
doesn't have the asserts.)

>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
>> ---
>>  libavcodec/h264_slice.c | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
>> index 0c0812f..0183b9c 100644
>> --- a/libavcodec/h264_slice.c
>> +++ b/libavcodec/h264_slice.c
>> @@ -1552,12 +1552,14 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
>>               * vectors.  Given we are concealing a lost frame, this probably
>>               * is not noticeable by comparison, but it should be fixed. */
>>              if (h->short_ref_count) {
>> -                if (prev) {
>> +                if (prev && h->short_ref[0]->f->width == prev->f->width
>> +                    && h->short_ref[0]->f->height == prev->f->height
>> +                    && h->short_ref[0]->f->format == prev->f->format) {
> 
> nit: the && should be at the end of the line (if alignment is a
> concern, prev may be on its own line)
> no need to resend, it will be fixed by whoever pushes this

Whatever you prefer. (I'm also fine with Luca's commit message.)

Best regards,
Andreas



More information about the ffmpeg-devel mailing list