The new library is meant to contain the core multimedia utilities for FFmpeg, to make them shareable between more libav* libraries. See thread: Subject: [FFmpeg-devel] [RFC] New library for shared non-generic libav* utils Date: Fri, 9 Jul 2010 01:07:40 +0200 Originally committed as revision 24393 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
| @@ -23,6 +23,7 @@ version <next>: | |||||
| - RTP depacketization of QDM2 | - RTP depacketization of QDM2 | ||||
| - ANSI/ASCII art playback system | - ANSI/ASCII art playback system | ||||
| - Lego Mindstorms RSO de/muxer | - Lego Mindstorms RSO de/muxer | ||||
| - libavcore added | |||||
| @@ -29,6 +29,7 @@ FFLIBS-$(CONFIG_AVFORMAT) += avformat | |||||
| FFLIBS-$(CONFIG_AVCODEC) += avcodec | FFLIBS-$(CONFIG_AVCODEC) += avcodec | ||||
| FFLIBS-$(CONFIG_POSTPROC) += postproc | FFLIBS-$(CONFIG_POSTPROC) += postproc | ||||
| FFLIBS-$(CONFIG_SWSCALE) += swscale | FFLIBS-$(CONFIG_SWSCALE) += swscale | ||||
| FFLIBS-$(CONFIG_AVCORE) += avcore | |||||
| FFLIBS := avutil | FFLIBS := avutil | ||||
| @@ -38,6 +38,7 @@ | |||||
| #include "libavutil/pixdesc.h" | #include "libavutil/pixdesc.h" | ||||
| #include "libavutil/eval.h" | #include "libavutil/eval.h" | ||||
| #include "libavcodec/opt.h" | #include "libavcodec/opt.h" | ||||
| #include "libavcore/avcore.h" | |||||
| #include "cmdutils.h" | #include "cmdutils.h" | ||||
| #include "version.h" | #include "version.h" | ||||
| #if CONFIG_NETWORK | #if CONFIG_NETWORK | ||||
| @@ -314,6 +315,7 @@ void print_error(const char *filename, int err) | |||||
| static void print_all_lib_versions(FILE* outstream, int indent) | static void print_all_lib_versions(FILE* outstream, int indent) | ||||
| { | { | ||||
| PRINT_LIB_VERSION(outstream, avutil, AVUTIL, indent); | PRINT_LIB_VERSION(outstream, avutil, AVUTIL, indent); | ||||
| PRINT_LIB_VERSION(outstream, avcore, AVCORE, indent); | |||||
| PRINT_LIB_VERSION(outstream, avcodec, AVCODEC, indent); | PRINT_LIB_VERSION(outstream, avcodec, AVCODEC, indent); | ||||
| PRINT_LIB_VERSION(outstream, avformat, AVFORMAT, indent); | PRINT_LIB_VERSION(outstream, avformat, AVFORMAT, indent); | ||||
| PRINT_LIB_VERSION(outstream, avdevice, AVDEVICE, indent); | PRINT_LIB_VERSION(outstream, avdevice, AVDEVICE, indent); | ||||
| @@ -348,6 +350,7 @@ void show_banner(void) | |||||
| __DATE__, __TIME__, CC_TYPE, CC_VERSION); | __DATE__, __TIME__, CC_TYPE, CC_VERSION); | ||||
| fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); | fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); | ||||
| PRINT_LIB_CONFIG(AVUTIL, "libavutil", avutil_configuration()); | PRINT_LIB_CONFIG(AVUTIL, "libavutil", avutil_configuration()); | ||||
| PRINT_LIB_CONFIG(AVCORE, "libavcore", avcore_configuration()); | |||||
| PRINT_LIB_CONFIG(AVCODEC, "libavcodec", avcodec_configuration()); | PRINT_LIB_CONFIG(AVCODEC, "libavcodec", avcodec_configuration()); | ||||
| PRINT_LIB_CONFIG(AVFORMAT, "libavformat", avformat_configuration()); | PRINT_LIB_CONFIG(AVFORMAT, "libavformat", avformat_configuration()); | ||||
| PRINT_LIB_CONFIG(AVDEVICE, "libavdevice", avdevice_configuration()); | PRINT_LIB_CONFIG(AVDEVICE, "libavdevice", avdevice_configuration()); | ||||
| @@ -31,7 +31,7 @@ $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) | |||||
| $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) | $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) | ||||
| endif | endif | ||||
| ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale | |||||
| ALLFFLIBS = avcodec avcore avdevice avfilter avformat avutil postproc swscale | |||||
| IFLAGS := -I$(BUILD_ROOT_REL) -I$(SRC_PATH) | IFLAGS := -I$(BUILD_ROOT_REL) -I$(SRC_PATH) | ||||
| CPPFLAGS := $(IFLAGS) $(CPPFLAGS) | CPPFLAGS := $(IFLAGS) $(CPPFLAGS) | ||||
| @@ -86,6 +86,7 @@ Configuration options: | |||||
| --disable-ffserver disable ffserver build | --disable-ffserver disable ffserver build | ||||
| --disable-avdevice disable libavdevice build | --disable-avdevice disable libavdevice build | ||||
| --disable-avcodec disable libavcodec build | --disable-avcodec disable libavcodec build | ||||
| --disable-avcore disable libavcore build | |||||
| --disable-avformat disable libavformat build | --disable-avformat disable libavformat build | ||||
| --disable-swscale disable libswscale build | --disable-swscale disable libswscale build | ||||
| --enable-postproc enable GPLed postprocessing support [no] | --enable-postproc enable GPLed postprocessing support [no] | ||||
| @@ -845,6 +846,7 @@ CONFIG_LIST=" | |||||
| $COMPONENT_LIST | $COMPONENT_LIST | ||||
| aandct | aandct | ||||
| avcodec | avcodec | ||||
| avcore | |||||
| avdevice | avdevice | ||||
| avfilter | avfilter | ||||
| avfilter_lavf | avfilter_lavf | ||||
| @@ -1524,6 +1526,7 @@ host_os=$target_os_default | |||||
| # configurable options | # configurable options | ||||
| enable avcodec | enable avcodec | ||||
| enable avcore | |||||
| enable avdevice | enable avdevice | ||||
| enable avfilter | enable avfilter | ||||
| enable avformat | enable avformat | ||||
| @@ -2774,7 +2777,7 @@ enabled extra_warnings && check_cflags -Winline | |||||
| # add some linker flags | # add some linker flags | ||||
| check_ldflags -Wl,--warn-common | check_ldflags -Wl,--warn-common | ||||
| check_ldflags -Wl,--as-needed | check_ldflags -Wl,--as-needed | ||||
| check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' | |||||
| check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavcore -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' | |||||
| check_ldflags -Wl,-Bsymbolic | check_ldflags -Wl,-Bsymbolic | ||||
| echo "X{};" > $TMPV | echo "X{};" > $TMPV | ||||
| @@ -2969,6 +2972,7 @@ if enabled source_path_used; then | |||||
| doc | doc | ||||
| libavcodec | libavcodec | ||||
| libavcodec/$arch | libavcodec/$arch | ||||
| libavcore | |||||
| libavdevice | libavdevice | ||||
| libavfilter | libavfilter | ||||
| libavformat | libavformat | ||||
| @@ -2987,6 +2991,7 @@ if enabled source_path_used; then | |||||
| doc/texi2pod.pl | doc/texi2pod.pl | ||||
| libavcodec/Makefile | libavcodec/Makefile | ||||
| libavcodec/${arch}/Makefile | libavcodec/${arch}/Makefile | ||||
| libavcore/Makefile | |||||
| libavdevice/Makefile | libavdevice/Makefile | ||||
| libavfilter/Makefile | libavfilter/Makefile | ||||
| libavformat/Makefile | libavformat/Makefile | ||||
| @@ -3085,6 +3090,7 @@ get_version(){ | |||||
| get_version LIBSWSCALE libswscale/swscale.h | get_version LIBSWSCALE libswscale/swscale.h | ||||
| get_version LIBPOSTPROC libpostproc/postprocess.h | get_version LIBPOSTPROC libpostproc/postprocess.h | ||||
| get_version LIBAVCODEC libavcodec/avcodec.h | get_version LIBAVCODEC libavcodec/avcodec.h | ||||
| get_version LIBAVCORE libavcore/avcore.h | |||||
| get_version LIBAVDEVICE libavdevice/avdevice.h | get_version LIBAVDEVICE libavdevice/avdevice.h | ||||
| get_version LIBAVFORMAT libavformat/avformat.h | get_version LIBAVFORMAT libavformat/avformat.h | ||||
| get_version LIBAVUTIL libavutil/avutil.h | get_version LIBAVUTIL libavutil/avutil.h | ||||
| @@ -3200,6 +3206,7 @@ EOF | |||||
| } | } | ||||
| pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" | pkgconfig_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION" | ||||
| pkgconfig_generate libavcore "FFmpeg multimedia shared core utilities library" "$LIBAVCORE_VERSION" "$extralibs" "libavcore = $LIBAVCORE_VERSION" | |||||
| pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" | pkgconfig_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION" "$extralibs" "libavutil = $LIBAVUTIL_VERSION" | ||||
| pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" | pkgconfig_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" | ||||
| pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" | pkgconfig_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" | ||||
| @@ -0,0 +1,9 @@ | |||||
| include $(SUBDIR)../config.mak | |||||
| NAME = avcore | |||||
| HEADERS = avcore.h \ | |||||
| OBJS = utils.o \ | |||||
| include $(SUBDIR)../subdir.mak | |||||
| @@ -0,0 +1,58 @@ | |||||
| /* | |||||
| * 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 | |||||
| */ | |||||
| #ifndef AVCORE_AVCORE_H | |||||
| #define AVCORE_AVCORE_H | |||||
| /** | |||||
| * @file | |||||
| * shared media utilities for the libav* libraries | |||||
| */ | |||||
| #include <libavutil/avutil.h> | |||||
| #define LIBAVCORE_VERSION_MAJOR 0 | |||||
| #define LIBAVCORE_VERSION_MINOR 0 | |||||
| #define LIBAVCORE_VERSION_MICRO 0 | |||||
| #define LIBAVCORE_VERSION_INT AV_VERSION_INT(LIBAVCORE_VERSION_MAJOR, \ | |||||
| LIBAVCORE_VERSION_MINOR, \ | |||||
| LIBAVCORE_VERSION_MICRO) | |||||
| #define LIBAVCORE_VERSION AV_VERSION(LIBAVCORE_VERSION_MAJOR, \ | |||||
| LIBAVCORE_VERSION_MINOR, \ | |||||
| LIBAVCORE_VERSION_MICRO) | |||||
| #define LIBAVCORE_BUILD LIBAVCORE_VERSION_INT | |||||
| #define LIBAVCORE_IDENT "Lavcore" AV_STRINGIFY(LIBAVCORE_VERSION) | |||||
| /** | |||||
| * Return the LIBAVCORE_VERSION_INT constant. | |||||
| */ | |||||
| unsigned avcore_version(void); | |||||
| /** | |||||
| * Return the libavcore build-time configuration. | |||||
| */ | |||||
| const char *avcore_configuration(void); | |||||
| /** | |||||
| * Return the libavcore license. | |||||
| */ | |||||
| const char *avcore_license(void); | |||||
| #endif /* AVCORE_AVCORE_H */ | |||||
| @@ -0,0 +1,4 @@ | |||||
| LIBAVCORE_$MAJOR { | |||||
| global: av_*; ff_*; avcore*; | |||||
| local: *; | |||||
| }; | |||||
| @@ -0,0 +1,41 @@ | |||||
| /* | |||||
| * 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 "config.h" | |||||
| #include "avcore.h" | |||||
| /** | |||||
| * @file | |||||
| * various utility functions | |||||
| */ | |||||
| unsigned avcore_version(void) | |||||
| { | |||||
| return LIBAVCORE_VERSION_INT; | |||||
| } | |||||
| const char *avcore_configuration(void) | |||||
| { | |||||
| return FFMPEG_CONFIGURATION; | |||||
| } | |||||
| const char *avcore_license(void) | |||||
| { | |||||
| #define LICENSE_PREFIX "libavcore license: " | |||||
| return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1; | |||||
| } | |||||