[FFmpeg-devel] [PATCH] avfilter/src_movie: add various commands

wm4 nfxjfg at googlemail.com
Wed Feb 17 16:58:31 CET 2016


On Wed, 17 Feb 2016 22:55:47 +0700
Muhammad Faiz <mfcc64 at gmail.com> wrote:

> On Wed, Feb 17, 2016 at 10:20 PM, wm4 <nfxjfg at googlemail.com> wrote:
> > On Wed, 17 Feb 2016 21:30:20 +0700
> > Muhammad Faiz <mfcc64 at gmail.com> wrote:
> >  
> >> From 6291c06dacbe2aa48a97bf36835ec8a3bce8a40a Mon Sep 17 00:00:00 2001
> >> From: Muhammad Faiz <mfcc64 at gmail.com>
> >> Date: Wed, 17 Feb 2016 21:21:12 +0700
> >> Subject: [PATCH] avfilter/src_movie: add various commands
> >>
> >> add seek command
> >> add get_duration command
> >> ---
> >>  doc/filters.texi        | 24 ++++++++++++++++++++++++
> >>  libavfilter/src_movie.c | 37 +++++++++++++++++++++++++++++++++++++
> >>  2 files changed, 61 insertions(+)
> >>  
> >  
> >> +static int process_command(AVFilterContext *ctx, const char *cmd, const char *args,
> >> +                           char *res, int res_len, int flags)
> >> +{
> >> +    MovieContext *movie = ctx->priv;
> >> +    int ret = AVERROR(ENOSYS);
> >> +
> >> +    if (!strcmp(cmd, "seek")) {
> >> +        int idx, flags;
> >> +        int64_t ts;
> >> +        char tail[2];
> >> +
> >> +        if (sscanf(args, "%i|%"SCNi64"|%i %1s", &idx, &ts, &flags, tail) != 3)
> >> +            return AVERROR(EINVAL);
> >> +
> >> +        return av_seek_frame(movie->format_ctx, idx, ts, flags);  
> >
> > This can't work correctly. You have to flush the decoder (which you
> > could easily do, but fail to do here), and the filters (which you can't
> > do unless you add seeking and/or flushing support to libavfilter).  
> I don't see avformat_flush or avio_flush call on ffplay

No, the decoders.

> >
> > Possibly it happens to work for you because there are no filters with
> > much buffering and you didn't try video.
> >  
> I don't mean that it will be supported by all filters. On filters with
> much buffering, probably there will be huge delay between seek command
> and their new output pts (It is tolerable). On filters which assume linear
> pts, probably it will fail.

How is that even a reasonable argument?

libavfilter already has enough "works in maybe 10% of all cases"
solutions.


More information about the ffmpeg-devel mailing list