[FFmpeg-devel] lavfi: Audio Link Negotiation

Stefano Sabatini stefano.sabatini-lala at poste.it
Fri May 27 13:13:54 CEST 2011

On date Friday 2011-05-27 10:27:10 +0300, Mina Nagy Zaki encoded:
> As the first objective of my GSoC project I'm to implement channel layout and 
> planar/packed negotiation between audio filter links.
> The current idea is to simply add in/out_chlayout and in/out_mode to 
> AVFilterLink and have them set by the filters, then add conversion filters as 
> necessary after initializing the graph. I have three choices here:

> 1- Add this config stage into query_formats(), keeping the now misleading name
> 2- Add to query_formats() and rename it(!) 
> 3- Add a new API function.

I agree that the query_formats() name is not particularly happy even
with the current semantics, maybe configure_formats() (or
configure_formats_and_layout()?) would be more appropriate.

For video we need to configure:
* in/out pixel formats. Channel layout is specified in the pixel
  format itself.

For audio:
* in/out sample formats
* planar/packed mode
* number of channels and channel layout

In oder to avoid to complicate the API maybe the best solution is to
extend query_formats() and make it configure also mode/layout.

You may possibly need to extend AVFilterLink with fields telling the
supported modes and channel layouts. For layouts maybe you'll need the
corresponding of the AVFilterFormats struct and API.
> Or perhaps a completely different approach to negotiation? I'm unsure on what 
> to do so any input would be appreciated.
FFmpeg = Frightening and Freak Miracolous Peaceless Easy Guide

More information about the ffmpeg-devel mailing list