[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