[FFmpeg-devel] [PATCHv4] ffplay: add -af option

Stefano Sabatini stefasab at gmail.com
Sun Mar 17 00:58:33 CET 2013


On date Saturday 2013-03-16 00:56:29 +0100, Stefano Sabatini encoded:
> On date Saturday 2013-03-16 00:30:44 +0100, Marton Balint encoded:
> > Based on a patch by Stefano Sabatini <stefasab at gmail.com>:
> > http://ffmpeg.org/pipermail/ffmpeg-devel/2013-February/138452.html
> > 
> > Signed-off-by: Marton Balint <cus at passwd.hu>
> > ---
> >  doc/ffplay.texi |   6 ++
> >  ffplay.c        | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> 
> Missing Changelog entry.
> 
> >  2 files changed, 173 insertions(+), 2 deletions(-)
> > 
> > diff --git a/doc/ffplay.texi b/doc/ffplay.texi
> > index 5f17902..ee160a0 100644
> > --- a/doc/ffplay.texi
> > +++ b/doc/ffplay.texi
> > @@ -84,6 +84,12 @@ output. In the filter graph, the input is associated to the label
> >  ffmpeg-filters manual for more information about the filtergraph
> >  syntax.
> >  
> > + at item -af @var{filter_graph}
> > + at var{filter_graph} is a description of the filter graph to apply to
> > +the input audio.
> > +Use the option "-filters" to show all the available filters (including
> > +sources and sinks).
> > +
> >  @item -i @var{input_file}
> >  Read @var{input_file}.
> >  @end table
> > diff --git a/ffplay.c b/ffplay.c
> > index 8adac1c..ab1ce0b 100644
> > --- a/ffplay.c
> > +++ b/ffplay.c
> > @@ -191,7 +191,11 @@ typedef struct VideoState {
> >      AVPacket audio_pkt_temp;
> >      AVPacket audio_pkt;
> >      int audio_pkt_temp_serial;
> > +    int audio_last_serial;
> >      struct AudioParams audio_src;
> > +#if CONFIG_AVFILTER
> > +    struct AudioParams audio_filter_src;
> > +#endif
> >      struct AudioParams audio_tgt;
> >      struct SwrContext *swr_ctx;
> >      double audio_current_pts;
> > @@ -253,6 +257,9 @@ typedef struct VideoState {
> >  #if CONFIG_AVFILTER
> >      AVFilterContext *in_video_filter;   // the first filter in the video chain
> >      AVFilterContext *out_video_filter;  // the last filter in the video chain
> 
> > +    AVFilterContext *in_audio_filter;   ///<the first filter in the audio chain
> > +    AVFilterContext *out_audio_filter;  ///<the last filter in the audio chain
> > +    AVFilterGraph *agraph;              ///<audio filter graph
> 
> nit+++: ///< is weird here (but really no need to send another patch)
> 
> [...]
> > +static int configure_audio_filters(VideoState *is, const char *afilters, int force_output_format)
> > +{
> > +    static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_S16, PIX_FMT_NONE };
> > +    int sample_rates[2] = { 0, -1 };
> > +    int64_t channel_layouts[2] = { 0, -1 };
> > +    int channels[2] = { 0, -1 };
> > +    AVFilterContext *filt_asrc = NULL, *filt_asink = NULL;
> 
> > +    char abuffer_args[256];
> 
> nit: asrc_args?
> 
> [...]
> 
> No more comments from me, I'll push tomorrow with the nits addressed
> if I read no comments from other people (I don't know if you have push
> rights). Thanks again.

Uhm patch doesn't apply cleanly here. So I think I'll let you rebase,
fix the nits if you want and ask for a merge. Sorry for the noise.
-- 
FFmpeg = Fiendish & Fierce Mere Problematic Ecumenical Gladiator


More information about the ffmpeg-devel mailing list