[FFmpeg-devel] [FFmpeg-cvslog] Merge commit '061a0c14bb5767bca72e3a7227ca400de439ba09'

James Almer jamrial at gmail.com
Mon Apr 24 01:31:00 EEST 2017


On 4/23/2017 7:00 PM, Michael Niedermayer wrote:
> On Sat, Apr 22, 2017 at 11:32:41PM +0000, James Almer wrote:
>> ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Apr 22 20:08:42 2017 -0300| [bddb2343b6e594e312dadb5d21b408702929ae04] | committer: James Almer
>>
>> Merge commit '061a0c14bb5767bca72e3a7227ca400de439ba09'
>>
>> * commit '061a0c14bb5767bca72e3a7227ca400de439ba09':
>>    decode: restructure the core decoding code
>>
>> CUVID decoder adapted by wm4.
>>
>> Merged-by: James Almer <jamrial at gmail.com>
>>
> [...]
> 
>> +static int compat_decode(AVCodecContext *avctx, AVFrame *frame,
>> +                         int *got_frame, const AVPacket *pkt)
>> +{
>> +    AVCodecInternal *avci = avctx->internal;
>> +    int ret;
>> +
>> +    av_assert0(avci->compat_decode_consumed == 0);
>> +
>> +    *got_frame = 0;
>> +    avci->compat_decode = 1;
>> +
>> +    if (avci->compat_decode_partial_size > 0 &&
>> +        avci->compat_decode_partial_size != pkt->size) {
>> +        av_log(avctx, AV_LOG_ERROR,
>> +               "Got unexpected packet size after a partial decode\n");
>> +        ret = AVERROR(EINVAL);
>> +        goto finish;
>> +    }
>> +
>> +    if (!avci->compat_decode_partial_size) {
>> +        ret = avcodec_send_packet(avctx, pkt);
>> +        if (ret == AVERROR_EOF)
>> +            ret = 0;
>> +        else if (ret == AVERROR(EAGAIN)) {
>> +            /* we fully drain all the output in each decode call, so this should not
>> +             * ever happen */
>> +            ret = AVERROR_BUG;
>> +            goto finish;
>> +        } else if (ret < 0)
>> +            goto finish;
>> +    }
>> +
> 
>> +    while (ret >= 0) {
> 
> ret is uninitialized if compat_decode_partial_size != 0

Cherry picked a libav commit far away in the queue that dealt
with this.


More information about the ffmpeg-devel mailing list