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>:
- 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"
......
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