av_get_sample_fmt_name() av_get_sample_fmt() av_get_sample_fmt_string() in libavcore, and deprecate the corresponding libavcodec/audioconvert.h functions: avcodec_get_sample_fmt_name() avcodec_get_sample_fmt() avcodec_sample_fmt_string() Originally committed as revision 25653 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
| @@ -13,6 +13,16 @@ libavutil: 2009-03-08 | |||
| API changes, most recent first: | |||
| 2010-11-02 - r25653 - lavcore 0.11.0 - samplefmt.h | |||
| Add sample format functions in libavcore/samplefmt.h: | |||
| av_get_sample_fmt_name(), | |||
| av_get_sample_fmt(), | |||
| av_get_sample_fmt_string(), | |||
| and deprecate the corresponding libavcodec/audioconvert.h functions: | |||
| avcodec_get_sample_fmt_name(), | |||
| avcodec_get_sample_fmt(), | |||
| avcodec_sample_fmt_string(). | |||
| 2010-11-02 - r25652 - lavcore 0.10.0 - samplefmt.h | |||
| Define enum AVSampleFormat in libavcore/samplefmt.h, deprecate enum | |||
| SampleFormat. | |||
| @@ -27,50 +27,26 @@ | |||
| #include "libavutil/avstring.h" | |||
| #include "libavutil/libm.h" | |||
| #include "libavcore/samplefmt.h" | |||
| #include "avcodec.h" | |||
| #include "audioconvert.h" | |||
| typedef struct SampleFmtInfo { | |||
| const char *name; | |||
| int bits; | |||
| } SampleFmtInfo; | |||
| /** this table gives more information about formats */ | |||
| static const SampleFmtInfo sample_fmt_info[SAMPLE_FMT_NB] = { | |||
| [SAMPLE_FMT_U8] = { .name = "u8", .bits = 8 }, | |||
| [SAMPLE_FMT_S16] = { .name = "s16", .bits = 16 }, | |||
| [SAMPLE_FMT_S32] = { .name = "s32", .bits = 32 }, | |||
| [SAMPLE_FMT_FLT] = { .name = "flt", .bits = 32 }, | |||
| [SAMPLE_FMT_DBL] = { .name = "dbl", .bits = 64 }, | |||
| }; | |||
| #if FF_API_OLD_SAMPLE_FMT | |||
| const char *avcodec_get_sample_fmt_name(int sample_fmt) | |||
| { | |||
| if (sample_fmt < 0 || sample_fmt >= SAMPLE_FMT_NB) | |||
| return NULL; | |||
| return sample_fmt_info[sample_fmt].name; | |||
| return av_get_sample_fmt_name(sample_fmt); | |||
| } | |||
| enum SampleFormat avcodec_get_sample_fmt(const char* name) | |||
| { | |||
| int i; | |||
| for (i=0; i < SAMPLE_FMT_NB; i++) | |||
| if (!strcmp(sample_fmt_info[i].name, name)) | |||
| return i; | |||
| return SAMPLE_FMT_NONE; | |||
| return av_get_sample_fmt(name); | |||
| } | |||
| void avcodec_sample_fmt_string (char *buf, int buf_size, int sample_fmt) | |||
| { | |||
| /* print header */ | |||
| if (sample_fmt < 0) | |||
| snprintf (buf, buf_size, "name " " depth"); | |||
| else if (sample_fmt < SAMPLE_FMT_NB) { | |||
| SampleFmtInfo info= sample_fmt_info[sample_fmt]; | |||
| snprintf (buf, buf_size, "%-6s" " %2d ", info.name, info.bits); | |||
| } | |||
| av_get_sample_fmt_string(buf, buf_size, sample_fmt); | |||
| } | |||
| #endif | |||
| static const char* const channel_names[]={ | |||
| "FL", "FR", "FC", "LFE", "BL", "BR", "FLC", "FRC", | |||
| @@ -32,28 +32,25 @@ | |||
| #include "libavutil/cpu.h" | |||
| #include "avcodec.h" | |||
| #if FF_API_OLD_SAMPLE_FMT | |||
| /** | |||
| * Generate string corresponding to the sample format with | |||
| * number sample_fmt, or a header if sample_fmt is negative. | |||
| * | |||
| * @param[in] buf the buffer where to write the string | |||
| * @param[in] buf_size the size of buf | |||
| * @param[in] sample_fmt the number of the sample format to print the corresponding info string, or | |||
| * a negative value to print the corresponding header. | |||
| * Meaningful values for obtaining a sample format info vary from 0 to SAMPLE_FMT_NB -1. | |||
| * @deprecated Use av_get_sample_fmt_string() instead. | |||
| */ | |||
| attribute_deprecated | |||
| void avcodec_sample_fmt_string(char *buf, int buf_size, int sample_fmt); | |||
| /** | |||
| * @return NULL on error | |||
| * @deprecated Use av_get_sample_fmt_name() instead. | |||
| */ | |||
| attribute_deprecated | |||
| const char *avcodec_get_sample_fmt_name(int sample_fmt); | |||
| /** | |||
| * @return SAMPLE_FMT_NONE on error | |||
| * @deprecated Use av_get_sample_fmt() instead. | |||
| */ | |||
| attribute_deprecated | |||
| enum SampleFormat avcodec_get_sample_fmt(const char* name); | |||
| #endif | |||
| /** | |||
| * @return NULL on error | |||
| @@ -33,7 +33,7 @@ | |||
| #define LIBAVCODEC_VERSION_MAJOR 52 | |||
| #define LIBAVCODEC_VERSION_MINOR 94 | |||
| #define LIBAVCODEC_VERSION_MICRO 1 | |||
| #define LIBAVCODEC_VERSION_MICRO 2 | |||
| #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | |||
| LIBAVCODEC_VERSION_MINOR, \ | |||
| @@ -10,6 +10,7 @@ HEADERS = avcore.h \ | |||
| OBJS = imgutils.o \ | |||
| parseutils.o \ | |||
| samplefmt.o \ | |||
| utils.o \ | |||
| include $(SUBDIR)../subdir.mak | |||
| @@ -27,7 +27,7 @@ | |||
| #include "libavutil/avutil.h" | |||
| #define LIBAVCORE_VERSION_MAJOR 0 | |||
| #define LIBAVCORE_VERSION_MINOR 10 | |||
| #define LIBAVCORE_VERSION_MINOR 11 | |||
| #define LIBAVCORE_VERSION_MICRO 0 | |||
| #define LIBAVCORE_VERSION_INT AV_VERSION_INT(LIBAVCORE_VERSION_MAJOR, \ | |||
| @@ -0,0 +1,64 @@ | |||
| /* | |||
| * This file is part of FFmpeg. | |||
| * | |||
| * FFmpeg is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU Lesser General Public | |||
| * License as published by the Free Software Foundation; either | |||
| * version 2.1 of the License, or (at your option) any later version. | |||
| * | |||
| * FFmpeg is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
| * Lesser General Public License for more details. | |||
| * | |||
| * You should have received a copy of the GNU Lesser General Public | |||
| * License along with FFmpeg; if not, write to the Free Software | |||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
| */ | |||
| #include "avcore.h" | |||
| #include "samplefmt.h" | |||
| typedef struct SampleFmtInfo { | |||
| const char *name; | |||
| int bits; | |||
| } SampleFmtInfo; | |||
| /** this table gives more information about formats */ | |||
| static const SampleFmtInfo sample_fmt_info[AV_SAMPLE_FMT_NB] = { | |||
| [AV_SAMPLE_FMT_U8] = { .name = "u8", .bits = 8 }, | |||
| [AV_SAMPLE_FMT_S16] = { .name = "s16", .bits = 16 }, | |||
| [AV_SAMPLE_FMT_S32] = { .name = "s32", .bits = 32 }, | |||
| [AV_SAMPLE_FMT_FLT] = { .name = "flt", .bits = 32 }, | |||
| [AV_SAMPLE_FMT_DBL] = { .name = "dbl", .bits = 64 }, | |||
| }; | |||
| const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt) | |||
| { | |||
| if (sample_fmt < 0 || sample_fmt >= AV_SAMPLE_FMT_NB) | |||
| return NULL; | |||
| return sample_fmt_info[sample_fmt].name; | |||
| } | |||
| enum AVSampleFormat av_get_sample_fmt(const char *name) | |||
| { | |||
| int i; | |||
| for (i = 0; i < AV_SAMPLE_FMT_NB; i++) | |||
| if (!strcmp(sample_fmt_info[i].name, name)) | |||
| return i; | |||
| return AV_SAMPLE_FMT_NONE; | |||
| } | |||
| char *av_get_sample_fmt_string (char *buf, int buf_size, enum AVSampleFormat sample_fmt) | |||
| { | |||
| /* print header */ | |||
| if (sample_fmt < 0) | |||
| snprintf(buf, buf_size, "name " " depth"); | |||
| else if (sample_fmt < AV_SAMPLE_FMT_NB) { | |||
| SampleFmtInfo info = sample_fmt_info[sample_fmt]; | |||
| snprintf (buf, buf_size, "%-6s" " %2d ", info.name, info.bits); | |||
| } | |||
| return buf; | |||
| } | |||
| @@ -32,4 +32,30 @@ enum AVSampleFormat { | |||
| AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if dynamically linking to libavcore | |||
| }; | |||
| /** | |||
| * Return the name of sample_fmt, or NULL if sample_fmt is not | |||
| * recognized. | |||
| */ | |||
| const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt); | |||
| /** | |||
| * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE | |||
| * on error. | |||
| */ | |||
| enum AVSampleFormat av_get_sample_fmt(const char *name); | |||
| /** | |||
| * Generate a string corresponding to the sample format with | |||
| * sample_fmt, or a header if sample_fmt is negative. | |||
| * | |||
| * @param buf the buffer where to write the string | |||
| * @param buf_size the size of buf | |||
| * @param sample_fmt the number of the sample format to print the | |||
| * corresponding info string, or a negative value to print the | |||
| * corresponding header. | |||
| * @return the pointer to the filled buffer or NULL if sample_fmt is | |||
| * unknown or in case of other errors | |||
| */ | |||
| char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt); | |||
| #endif /* AVCORE_SAMPLEFMT_H */ | |||