[FFmpeg-devel] [RFC] Expose more legal encoding parameters from AVCodec

Michael Niedermayer michaelni
Tue Apr 8 15:20:24 CEST 2008


On Tue, Apr 08, 2008 at 01:17:45PM +0200, Stefano Sabatini wrote:
> On date Monday 2008-04-07 17:47:06 +0200, Michael Niedermayer encoded:
> > On Mon, Apr 07, 2008 at 04:35:27PM +0200, Stefano Sabatini wrote:
> > > Hi all,
> > > 
> > > AVCodec already contains the capabilities, pix_fmts and
> > > supported_framerates fields, which tell (if specified) some of the
> > > parameters which are supported for encoding/decoding.
> > > 
> > > I would like to extend such features, for example to expose: 
> > > * a more verbose description of the codec, similiar to the
> > >   long_description already implemented in libavformat.  Also relevant
> > >   is [1].
> > > 
> > > * valid sizes for the video streams, for example as in the case of
> > >   H263 which only supports a limited legal set of sizes
> > > 
> > > * legal audio samplerates (e.g. as in MP2)
> > > 
> > > * others?
> > > 
> > > This would be useful both for the command line user (if we provide
> > > some way to convey this information to the user, I'm thinking for
> > > example to extend ffprobe for this) and in a scenario of adaptive
> > > encoding, where you have to programmatically choose which parameters
> > > is better to use in function of the available
> > > storage/computing/bandwidth resources, and reimplementing this in
> > > every application doesn't sound that good.
> > > 
> > > If maintainers see this like a good idea I could start to elaborate
> > > more on this.
> > 
> > I think its a good idea in principle ...
> 
> :-)
> 
> Excellent, here it is a list of the fields I would like to see
> implemented each one with a corresponding braindump, please comment on
> them if you have suggestions/blames regarding them.

first comment: seperate patches!


> 
> long_name
> =========
> 
> As in AV{Input|Output}Format, the names could sound
> something like:
> 

> mpeg1video -> "Mpeg 1 video",
> "wmv2" -> "Windows Media Video version 8"
> "msmpeg4v2" -> "Mpeg 4 part 2 Microsoft variant version 2"
> "flv" -> "Flash video"
> "h264" -> "H.264 aka Mpeg 4 part 10 aka AVC (Advanced Video Codec)"

Please leave choosing long names to others! Iam fine with adding a long name
field but i will not waste my time to think about good names and your
long names are bad with the exception of flash video.


[...]
> supported_video_sizes
> =====================
> 
> There isn't a structure used to define a video size in libavcodec, we
> could create such thing then have a list as in supported_framerates,
> otherwise we could use a simple array of strings then use
> av_parse_video_frame_size() to parse them.

array of int[2]!


> 
> {min|max}_audio_channels
> ========================
> 
> Should express the maximum and minimum number of channels supported by
> the stream.
> 
> I don't know if it makes sense a min_audio_channels field, maybe there
> is some codec which doesn't support for example less than 2 channels.

This is rejected until we have proper multichannel support. A min/max is
almost certainly not usefull.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080408/487d053f/attachment.pgp>



More information about the ffmpeg-devel mailing list