Commit aac6ca69 authored by Stefano Sabatini's avatar Stefano Sabatini

Add libavcore.

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/trunk
parent ac1a31ab
...@@ -23,6 +23,7 @@ version <next>: ...@@ -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 ...@@ -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 @@ ...@@ -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) ...@@ -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) ...@@ -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)))) ...@@ -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: ...@@ -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=" ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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(){ ...@@ -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 ...@@ -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"
......
include $(SUBDIR)../config.mak
NAME = avcore
HEADERS = avcore.h \
OBJS = utils.o \
include $(SUBDIR)../subdir.mak
/*
* 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 */
LIBAVCORE_$MAJOR {
global: av_*; ff_*; avcore*;
local: *;
};
/*
* 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment