[FFmpeg-devel] [PATCH] avcodec/h264_refs: reset MMCO when invalid mmco code is found

Paul B Mahol onemda at gmail.com
Fri Dec 7 11:31:46 EET 2018


On 12/7/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> On Thu, Dec 06, 2018 at 03:26:41PM +0100, Paul B Mahol wrote:
>> This recovers state with #7374 linked sample.
>>
>> Work funded by Open Broadcast Systems.
>>
>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> ---
>>  libavcodec/h264_refs.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
>> index eaf965e43d..5645a203a7 100644
>> --- a/libavcodec/h264_refs.c
>> +++ b/libavcodec/h264_refs.c
>> @@ -718,6 +718,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h)
>>              }
>>              break;
>>          case MMCO_RESET:
>> +        default:
>>              while (h->short_ref_count) {
>>                  remove_short(h, h->short_ref[0]->frame_num, 0);
>>              }
>> @@ -730,7 +731,6 @@ int ff_h264_execute_ref_pic_marking(H264Context *h)
>>              for (j = 0; j < MAX_DELAYED_PIC_COUNT; j++)
>>                  h->last_pocs[j] = INT_MIN;
>>              break;
>> -        default: assert(0);
>>          }
>>      }
>
> mmco[i].opcode should not be invalid, its checked around the point where
> this
> array is filled.
> unless there is something iam missing

Yes, you are missing big time.
If you think by "checked" about those nice asserts they are not enabled at all.


More information about the ffmpeg-devel mailing list