On Wed, Oct 01, 2014 at 07:59:12AM +0200, Reimar Döffinger wrote: > 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. Changed the text to this Thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB When you are offended at any man's fault, turn to yourself and study your own failings. Then you will forget your anger. -- Epictetus
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel