On Sat, Nov 18, 2017 at 09:50:33AM +0100, Hendrik Leppkes wrote:
> On Sat, Nov 18, 2017 at 3:05 AM, Michael Niedermayer
> <mich...@niedermayer.cc> wrote:
> > On Fri, Nov 17, 2017 at 09:55:47AM +0100, Hendrik Leppkes wrote:
> >> On Fri, Nov 17, 2017 at 5:00 AM, Michael Niedermayer
> >> <mich...@niedermayer.cc> wrote:
> >> > On Thu, Nov 16, 2017 at 01:51:34PM +0100, Carl Eugen Hoyos wrote:
> >> >> 2017-11-16 13:44 GMT+01:00 Michael Niedermayer <mich...@niedermayer.cc>:
> >> >> > On Thu, Nov 16, 2017 at 01:04:27AM +0100, Carl Eugen Hoyos wrote:
> >> >> >> 2017-11-15 13:34 GMT+01:00 Michael Niedermayer 
> >> >> >> <mich...@niedermayer.cc>:
> >> >> >> > Hi all
> >> >> >> >
> >> >> >> > I intend to make 3.4.1 very soon
> >> >> >>
> >> >> >> Shouldn't we first decide on how to proceed with #6775?
> >> >> >
> >> >> > This would be ideal.
> >> >> >
> >> >> > IIUC this is a regression from 
> >> >> > bddb2343b6e594e312dadb5d21b408702929ae04
> >> >>
> >> >> This was confirmed by more than one developer, yes.
> >> >>
> >> >> > I see a patch that is said to improve 6775, can that be applied and
> >> >> > would that resolve this ?
> >> >>
> >> >> Iiuc, it would not completely resolve the issue, see:
> >> >> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881536
> >> >>
> >> >> > If so why was it not applied yet ?
> >> >>
> >> >> The patch did not get support here, see:
> >> >> [FFmpeg-devel] [PATCH] lavc: reset codec on receiving packet after EOF
> >> >> in compat_decode
> >> >
> >> >
> >> > Is someone working on fixing this better than with the available patch ?
> >> >
> >>
> >> I don't even agree this needs fixing. Those projects use the API wrong.
> >
> > Had we documented the correct/wrong use precissely in the past when
> > these wrong uses where written ?
> >
> > Because if it was documented then few should have made the mistake.
> > But it seems this affects multiple projects, so i wonder if our API
> > really excluded the use
> >
> 
> Apparently not well enough, but I also don't even understand why you
> would *want* to drain in the middle of decoding.
> 
> The only mention of sending NULL/0 packets (in 3.0 docs, before the
> new API was introduced) do include the "at the end", however.
> 
> From CODEC_CAP_DELAY:
>  * Decoders:
>  * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,
>  * avpkt->size=0 at the end to get the delayed data until the decoder no 
> longer
>  * returns frames.
> 
> From avcodec_decode_video2
> * @note Codecs which have the AV_CODEC_CAP_DELAY capability set have a delay
> * between input and output, these need to be fed with avpkt->data=NULL,
> * avpkt->size=0 at the end to return the remaining frames.
> 
> There is a few more mentions of the same concept, but as far as I can
> see all include the key words "at the end".
> 

> For the suggested patch, draining and flushing in the middle of a
> bitstream is still going to result in problems, though, since it
> removes all reference frames, for example.
> The original behavior cannot really be stored, which was to just keep
> feeding frames into the decoder after a drain without a flush.
> However, some decoders actually crashed when you did this, so this was
> a rather unsafe action to begin with (not an issue any longer, since
> this pattern is now blocked).

Did the previous code really work if the frame after a flush was not a
new keyframe or there was some use of previous references ?


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to