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 | |||
| - ANSI/ASCII art playback system | |||
| - Lego Mindstorms RSO de/muxer | |||
| - libavcore added | |||
| @@ -29,6 +29,7 @@ FFLIBS-$(CONFIG_AVFORMAT) += avformat | |||
| FFLIBS-$(CONFIG_AVCODEC) += avcodec | |||
| FFLIBS-$(CONFIG_POSTPROC) += postproc | |||
| FFLIBS-$(CONFIG_SWSCALE) += swscale | |||
| FFLIBS-$(CONFIG_AVCORE) += avcore | |||
| FFLIBS := avutil | |||
| @@ -38,6 +38,7 @@ | |||
| #include "libavutil/pixdesc.h" | |||
| #include "libavutil/eval.h" | |||
| #include "libavcodec/opt.h" | |||
| #include "libavcore/avcore.h" | |||
| #include "cmdutils.h" | |||
| #include "version.h" | |||
| #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) | |||
| { | |||
| 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, avformat, AVFORMAT, indent); | |||
| PRINT_LIB_VERSION(outstream, avdevice, AVDEVICE, indent); | |||
| @@ -348,6 +350,7 @@ void show_banner(void) | |||
| __DATE__, __TIME__, CC_TYPE, CC_VERSION); | |||
| fprintf(stderr, " configuration: " FFMPEG_CONFIGURATION "\n"); | |||
| PRINT_LIB_CONFIG(AVUTIL, "libavutil", avutil_configuration()); | |||
| PRINT_LIB_CONFIG(AVCORE, "libavcore", avcore_configuration()); | |||
| PRINT_LIB_CONFIG(AVCODEC, "libavcodec", avcodec_configuration()); | |||
| PRINT_LIB_CONFIG(AVFORMAT, "libavformat", avformat_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)) | |||
| 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) | |||
| CPPFLAGS := $(IFLAGS) $(CPPFLAGS) | |||
| @@ -86,6 +86,7 @@ Configuration options: | |||
| --disable-ffserver disable ffserver build | |||
| --disable-avdevice disable libavdevice build | |||
| --disable-avcodec disable libavcodec build | |||
| --disable-avcore disable libavcore build | |||
| --disable-avformat disable libavformat build | |||
| --disable-swscale disable libswscale build | |||
| --enable-postproc enable GPLed postprocessing support [no] | |||
| @@ -845,6 +846,7 @@ CONFIG_LIST=" | |||
| $COMPONENT_LIST | |||
| aandct | |||
| avcodec | |||
| avcore | |||
| avdevice | |||
| avfilter | |||
| avfilter_lavf | |||
| @@ -1524,6 +1526,7 @@ host_os=$target_os_default | |||
| # configurable options | |||
| enable avcodec | |||
| enable avcore | |||
| enable avdevice | |||
| enable avfilter | |||
| enable avformat | |||
| @@ -2774,7 +2777,7 @@ enabled extra_warnings && check_cflags -Winline | |||
| # add some linker flags | |||
| check_ldflags -Wl,--warn-common | |||
| 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 | |||
| echo "X{};" > $TMPV | |||
| @@ -2969,6 +2972,7 @@ if enabled source_path_used; then | |||
| doc | |||
| libavcodec | |||
| libavcodec/$arch | |||
| libavcore | |||
| libavdevice | |||
| libavfilter | |||
| libavformat | |||
| @@ -2987,6 +2991,7 @@ if enabled source_path_used; then | |||
| doc/texi2pod.pl | |||
| libavcodec/Makefile | |||
| libavcodec/${arch}/Makefile | |||
| libavcore/Makefile | |||
| libavdevice/Makefile | |||
| libavfilter/Makefile | |||
| libavformat/Makefile | |||
| @@ -3085,6 +3090,7 @@ get_version(){ | |||
| get_version LIBSWSCALE libswscale/swscale.h | |||
| get_version LIBPOSTPROC libpostproc/postprocess.h | |||
| get_version LIBAVCODEC libavcodec/avcodec.h | |||
| get_version LIBAVCORE libavcore/avcore.h | |||
| get_version LIBAVDEVICE libavdevice/avdevice.h | |||
| get_version LIBAVFORMAT libavformat/avformat.h | |||
| get_version LIBAVUTIL libavutil/avutil.h | |||
| @@ -3200,6 +3206,7 @@ EOF | |||
| } | |||
| 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 libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_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; | |||
| } | |||