[FFmpeg-devel] [PATCH 1/3] lavc/utils: disallow zero sized packets with data set in avcodec_send_packet
Hendrik Leppkes
h.leppkes at gmail.com
Fri Sep 30 14:04:48 EEST 2016
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.
- Hendrik
More information about the ffmpeg-devel
mailing list