[FFmpeg-devel] [PATCH] Move sample format definitions from libavcodec to libavcore.

Stefano Sabatini stefano.sabatini-lala
Sat Oct 30 02:16:38 CEST 2010


On date Thursday 2010-10-28 20:22:18 +0200, Michael Niedermayer encoded:
> On Thu, Oct 28, 2010 at 04:28:18PM -0700, Stefano Sabatini wrote:
> > On date Wednesday 2010-10-27 11:22:43 +0200, Michael Niedermayer encoded:
> > > On Mon, Oct 25, 2010 at 08:12:43PM -0700, Stefano Sabatini wrote:
> > > > On date Monday 2010-10-25 14:53:59 +0200, Michael Niedermayer encoded:
> > > > > On Sun, Oct 24, 2010 at 11:38:20PM -0700, Stefano Sabatini wrote:
> > > > > > ---
> > > > > >  libavcodec/avcodec.h  |   27 +++++++++++++++------------
> > > > > >  libavcore/Makefile    |    1 +
> > > > > >  libavcore/samplefmt.h |   35 +++++++++++++++++++++++++++++++++++
> > > > > >  3 files changed, 51 insertions(+), 12 deletions(-)
> > > > > >  create mode 100644 libavcore/samplefmt.h
> > > > [...]
> > > > > > --- /dev/null
> > > > > > +++ b/libavcore/samplefmt.h
> > > > > 
> > > > > do we really want a header per enum ?
> > > > 
> > > > No, I'm also planning to move there these functions from
> > > > libavcodec/audioconvert.h (with some renamings):
> > > > 
> > > > void avcodec_sample_fmt_string(char *buf, int buf_size, int sample_fmt);
> > > > const char *avcodec_get_sample_fmt_name(int sample_fmt);
> > > > enum SampleFormat avcodec_get_sample_fmt(const char* name);
> > > > const char *avcodec_get_channel_name(int channel_id);
> > > > int64_t avcodec_get_channel_layout(const char *name);
> > > > void avcodec_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout);
> > > > int64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
> > > > int avcodec_channel_layout_num_channels(int64_t channel_layout);
> > > > 
> > > > suggest a better name for the file or place where to move them.
> > > 
> > > audio.h maybe?
> > 
> > Not that I care much about the name, but audio.h seems a bit too
> > generic while samplefmt.h is more specific and is symmetric to
> > pixfmt.h, which is in my opinion a nice feature.
> 
> the channel stuff has nothing to do with sample formats

OK but please let's try not to waste time bikeshedding on the
names. This is my overall plan:

1. move sample format enum and related functions
 (av_get_sample_fmt_string, av_get_sample_fmt_name(),
 av_get_sample_fmt(), av_get_bits_per_sample_fmt()), they may go to
 libavcore/samplefmt.h.

2. move the channel related functions to libavcore

3. move the audio resample and convert functions from libavcodec to
  libavcore and make them public.

I don't know a good name for 2. and 3., maybe audioconvert.h or
sndutils.h, while I don't like the name audio.h as it sounds too
generic (the same reason for which I wouldn't like to have a video.h
header in place of pixfmt.h, pixdesc.h, imgutils.h).
-- 
FFmpeg = Fabulous & Fundamentalist Mastering Powerful Elegant Guru



More information about the ffmpeg-devel mailing list