[FFmpeg-devel] [PATCH 6/8] avcodec/decode: Do not overwrite AVFrame.pkt_pos if its already set

James Almer jamrial at gmail.com
Tue Aug 13 03:03:22 EEST 2019


On 8/12/2019 5:31 PM, Michael Niedermayer wrote:
> On Mon, Aug 12, 2019 at 09:21:59PM +0200, Vittorio Giovara wrote:
>> On Mon, Aug 12, 2019 at 9:19 PM Michael Niedermayer <michael at niedermayer.cc>
>> wrote:
>>
>>> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>>> ---
>>>  libavcodec/decode.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
>>> index 6c31166ec2..09a509d659 100644
>>> --- a/libavcodec/decode.c
>>> +++ b/libavcodec/decode.c
>>> @@ -435,7 +435,7 @@ static int decode_simple_internal(AVCodecContext
>>> *avctx, AVFrame *frame)
>>>          if (!(avctx->codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS))
>>>              frame->pkt_dts = pkt->dts;
>>>          if (avctx->codec->type == AVMEDIA_TYPE_VIDEO) {
>>> -            if(!avctx->has_b_frames)
>>> +            if(!avctx->has_b_frames && frame->pkt_pos < 0)
>>>                  frame->pkt_pos = pkt->pos;
>>>              //FIXME these should be under if(!avctx->has_b_frames)
>>>              /* get_buffer is supposed to set frame parameters */
>>> --
>>>
>>
>> sure but why?
> 
> the next 2 patches need this
> [FFmpeg-devel] [PATCH 7/8] avcodec/qtrle: return last frame even if unchanged
> [FFmpeg-devel] [PATCH 8/8] avcodec/nuv: Avoid duplicating frames
> 
> without it the common code overwrites the pkt_pos set by the decoder

What about rawdec.c? It's also setting frame->pkt_pos.

And cant' this be handled with a new internal codec cap like the pkt_dts
one used above?

> 
> thx
> 
> [...]
> 
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
> 



More information about the ffmpeg-devel mailing list