On 30.09.2014, at 22:25, wm4 <nfx...@googlemail.com> wrote: > On Tue, 30 Sep 2014 08:06:16 +0200 > Reimar Döffinger <reimar.doeffin...@gmx.de> wrote: > >> On 29.09.2014, at 22:02, Michael Niedermayer <michae...@gmx.at> wrote: >>> On Mon, Sep 29, 2014 at 08:34:44PM +0200, wm4 wrote: >>>> On Mon, 29 Sep 2014 20:25:47 +0200 >>>> Michael Niedermayer <michae...@gmx.at> wrote: >>>> >>>>> On Mon, Sep 29, 2014 at 07:41:28PM +0200, wm4 wrote: >>>>>> Useful for Bluray and DVD, since the libraries used to read them just >>>>>> change the byte stream under your feet on seeking. >>>>>> >>>>>> Maybe there should be a AVInputFormat callback for this. But the >>>>>> mpeg-ps (DVD) and the mpeg-ts (Bluray) demuxers don't change much >>>>>> state during seeking - they just try to find a new packet with >>>>>> timestamps (in read_timestamp), so I haven't found a need for this >>>>>> yet. I don't want to add unused things. >>>>>> >>>>>> I've also thought about adding a flush callback, and implementing >>>>>> them in mpeg.c and mpegts.c by just calling ff_read_frame_flush(). >>>>>> Might be slightly better, because you can have avformat_flush() fail >>>>>> on formats which don't support this? >>>>>> >>>>>> Or maybe a flag? >>>>>> >>>>>> TODO: add entry to APIchanges, bump minor version. >>>>>> --- >>>>>> libavformat/avformat.h | 13 +++++++++++++ >>>>>> libavformat/utils.c | 6 ++++++ >>>>>> 2 files changed, 19 insertions(+) >>>>>> >>>>>> diff --git a/libavformat/avformat.h b/libavformat/avformat.h >>>>>> index 78054de..eaa52fa 100644 >>>>>> --- a/libavformat/avformat.h >>>>>> +++ b/libavformat/avformat.h >>>>>> @@ -2173,6 +2173,19 @@ int av_seek_frame(AVFormatContext *s, int >>>>>> stream_index, int64_t timestamp, >>>>>> int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t >>>>>> min_ts, int64_t ts, int64_t max_ts, int flags); >>>>>> >>>>>> /** >>>>>> + * Discard all internally buffered data. This can be useful when >>>>>> dealing with >>>>>> + * discontinuities in the byte stream. Generally works only with some >>>>>> simple >>>>>> + * formats. >>>>> >>>>> id call them stream based or without a central header instead of >>>>> simple. >>>> >>>> I can change that and replace "simple" with "headerless". >>> >>> please do, headerless is more specific >> >> Why does it require headerless? >> I would have expected this feature to work for e.g. Ogg as well, which >> clearly is not headerless. >> As such I'd claim headerless may be more specific, but it is also wrong. >> It should work for all formats that can be read without index and can resync >> reliably at least. > > Do you have any concrete suggestions? I'm not sure what documentation > would be most appropriate.
Maybe "formats that can resync. This includes headerless formats like MPEG-TS/TS but should also work with NUT, Ogg and in a limited way AVI for example" Not sure that's the best way to do it either though. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel