[FFmpeg-devel] [PATCH 1/3] lavc/utils: disallow zero sized packets with data set in avcodec_send_packet

Marton Balint cus at passwd.hu
Mon Oct 3 23:37:26 EEST 2016


On Fri, 30 Sep 2016, Hendrik Leppkes wrote:

> On Fri, Sep 30, 2016 at 11:40 AM, wm4 <nfxjfg at googlemail.com> wrote:
>> On Fri, 30 Sep 2016 11:29:05 +0200
>> Marton Balint <cus at passwd.hu> wrote:
>>
>>> Signed-off-by: Marton Balint <cus at passwd.hu>
>>> ---
>>>  libavcodec/utils.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
>>> index cf85300..d0a6817 100644
>>> --- a/libavcodec/utils.c
>>> +++ b/libavcodec/utils.c
>>> @@ -2813,6 +2813,9 @@ int attribute_align_arg avcodec_send_packet(AVCodecContext *avctx, const AVPacke
>>>      if (avctx->internal->draining)
>>>          return AVERROR_EOF;
>>>
>>> +    if (avpkt && !avpkt->size && avpkt->data)
>>> +        return AVERROR(EINVAL);
>>> +
>>>      if (!avpkt || !avpkt->size) {
>>>          avctx->internal->draining = 1;
>>>          avpkt = NULL;
>>
>> This means packet with size==0 with data!=NULL will be rejected,
>> instead of being interpreted as flush packets.
>>
>> Fine with me. Still allows "normal" flush packets, and probably
>> prevents that API users accidentally enter the EOF state by sending such
>> packets.
>
> I agree, such a packet would likely not be meant as a flush packet,
> and may induce unexpected behavior.
>

Thanks, pushed.

Regards,
Marton


More information about the ffmpeg-devel mailing list