diff mbox series

[FFmpeg-devel,2/2] avcodec/mpeg12dec: Fix got_output

Message ID 20200528121234.15270-2-michael@niedermayer.cc
State Accepted
Commit 4f33a9803a3068ce2d52289fc1db60375dc8b7a5
Headers show
Series [FFmpeg-devel,1/2] avcodec/adpcm_data: extend ff_adpcm_ima_cunning_index_table | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Michael Niedermayer May 28, 2020, 12:12 p.m. UTC
Fixes: assertion failure
Fixes: 22178/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG1VIDEO_fuzzer-5664234440753152

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavcodec/mpeg12dec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Niedermayer June 7, 2020, 8:27 p.m. UTC | #1
On Thu, May 28, 2020 at 02:12:34PM +0200, Michael Niedermayer wrote:
> Fixes: assertion failure
> Fixes: 22178/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG1VIDEO_fuzzer-5664234440753152
> 
> Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
>  libavcodec/mpeg12dec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

will apply

[...]
Kieran Kunhya June 7, 2020, 10:07 p.m. UTC | #2
Needs some more explanation IMO

Sent from my mobile device

On Sun, 7 Jun 2020, 21:27 Michael Niedermayer, <michael@niedermayer.cc>
wrote:

> On Thu, May 28, 2020 at 02:12:34PM +0200, Michael Niedermayer wrote:
> > Fixes: assertion failure
> > Fixes:
> 22178/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG1VIDEO_fuzzer-5664234440753152
> >
> > Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> >  libavcodec/mpeg12dec.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
>
> will apply
>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> If a bugfix only changes things apparently unrelated to the bug with no
> further explanation, that is a good sign that the bugfix is wrong.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Kieran Kunhya June 8, 2020, 3:18 p.m. UTC | #3
On Sun, 7 Jun 2020 at 23:33, Michael Niedermayer <michael@niedermayer.cc>
wrote:

> On Sun, Jun 07, 2020 at 11:07:13PM +0100, Kieran Kunhya wrote:
> > Needs some more explanation IMO
>
> If you look at the code which sets the outputed picture
> in slice_end()
> if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
>     int ret = av_frame_ref(pict, s->current_picture_ptr->f);
>     ...
> } else {
>
> this patch just makes got_output consistent with that.
>
> ok if i add this to the commit message or where you thinking
> of some other explanation ?
>
> thx
>

Ok.

Kieran
Michael Niedermayer June 8, 2020, 6:41 p.m. UTC | #4
On Mon, Jun 08, 2020 at 04:18:08PM +0100, Kieran Kunhya wrote:
> On Sun, 7 Jun 2020 at 23:33, Michael Niedermayer <michael@niedermayer.cc>
> wrote:
> 
> > On Sun, Jun 07, 2020 at 11:07:13PM +0100, Kieran Kunhya wrote:
> > > Needs some more explanation IMO
> >
> > If you look at the code which sets the outputed picture
> > in slice_end()
> > if (s->pict_type == AV_PICTURE_TYPE_B || s->low_delay) {
> >     int ret = av_frame_ref(pict, s->current_picture_ptr->f);
> >     ...
> > } else {
> >
> > this patch just makes got_output consistent with that.
> >
> > ok if i add this to the commit message or where you thinking
> > of some other explanation ?
> >
> > thx
> >
> 
> Ok.

will apply with that

thx
diff mbox series

Patch

diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index 40d054def5..54e122cd9d 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -2497,7 +2497,7 @@  static int decode_chunks(AVCodecContext *avctx, AVFrame *picture,
                     return ret;
                 else if (ret) {
                     // FIXME: merge with the stuff in mpeg_decode_slice
-                    if (s2->last_picture_ptr || s2->low_delay)
+                    if (s2->last_picture_ptr || s2->low_delay || s2->pict_type == AV_PICTURE_TYPE_B)
                         *got_output = 1;
                 }
             }