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: | 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 | 2010-11-02 - r25652 - lavcore 0.10.0 - samplefmt.h | ||||
| Define enum AVSampleFormat in libavcore/samplefmt.h, deprecate enum | Define enum AVSampleFormat in libavcore/samplefmt.h, deprecate enum | ||||
| SampleFormat. | SampleFormat. | ||||
| @@ -27,50 +27,26 @@ | |||||
| #include "libavutil/avstring.h" | #include "libavutil/avstring.h" | ||||
| #include "libavutil/libm.h" | #include "libavutil/libm.h" | ||||
| #include "libavcore/samplefmt.h" | |||||
| #include "avcodec.h" | #include "avcodec.h" | ||||
| #include "audioconvert.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) | 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) | 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) | 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[]={ | static const char* const channel_names[]={ | ||||
| "FL", "FR", "FC", "LFE", "BL", "BR", "FLC", "FRC", | "FL", "FR", "FC", "LFE", "BL", "BR", "FLC", "FRC", | ||||
| @@ -32,28 +32,25 @@ | |||||
| #include "libavutil/cpu.h" | #include "libavutil/cpu.h" | ||||
| #include "avcodec.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); | 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); | 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); | enum SampleFormat avcodec_get_sample_fmt(const char* name); | ||||
| #endif | |||||
| /** | /** | ||||
| * @return NULL on error | * @return NULL on error | ||||
| @@ -33,7 +33,7 @@ | |||||
| #define LIBAVCODEC_VERSION_MAJOR 52 | #define LIBAVCODEC_VERSION_MAJOR 52 | ||||
| #define LIBAVCODEC_VERSION_MINOR 94 | #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, \ | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
| LIBAVCODEC_VERSION_MINOR, \ | LIBAVCODEC_VERSION_MINOR, \ | ||||
| @@ -10,6 +10,7 @@ HEADERS = avcore.h \ | |||||
| OBJS = imgutils.o \ | OBJS = imgutils.o \ | ||||
| parseutils.o \ | parseutils.o \ | ||||
| samplefmt.o \ | |||||
| utils.o \ | utils.o \ | ||||
| include $(SUBDIR)../subdir.mak | include $(SUBDIR)../subdir.mak | ||||
| @@ -27,7 +27,7 @@ | |||||
| #include "libavutil/avutil.h" | #include "libavutil/avutil.h" | ||||
| #define LIBAVCORE_VERSION_MAJOR 0 | #define LIBAVCORE_VERSION_MAJOR 0 | ||||
| #define LIBAVCORE_VERSION_MINOR 10 | |||||
| #define LIBAVCORE_VERSION_MINOR 11 | |||||
| #define LIBAVCORE_VERSION_MICRO 0 | #define LIBAVCORE_VERSION_MICRO 0 | ||||
| #define LIBAVCORE_VERSION_INT AV_VERSION_INT(LIBAVCORE_VERSION_MAJOR, \ | #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 | 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 */ | #endif /* AVCORE_SAMPLEFMT_H */ | ||||