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

Muhammad Faiz mfcc64 at gmail.com
Wed Feb 17 16:55:47 CET 2016


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
>
> 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.


More information about the ffmpeg-devel mailing list