Skip to content

Commit

Permalink
Add libavcore.
Browse files Browse the repository at this point in the history
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

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@24393 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
  • Loading branch information
stefano committed Jul 21, 2010
1 parent 1e71d3b commit 5b9b347
Show file tree
Hide file tree
Showing 9 changed files with 126 additions and 2 deletions.
1 change: 1 addition & 0 deletions Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ version <next>:
- RTP depacketization of QDM2
- ANSI/ASCII art playback system
- Lego Mindstorms RSO de/muxer
- libavcore added



Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 3 additions & 0 deletions cmdutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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());
Expand Down
2 changes: 1 addition & 1 deletion common.mak
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
9 changes: 8 additions & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -845,6 +846,7 @@ CONFIG_LIST="
$COMPONENT_LIST
aandct
avcodec
avcore
avdevice
avfilter
avfilter_lavf
Expand Down Expand Up @@ -1524,6 +1526,7 @@ host_os=$target_os_default

# configurable options
enable avcodec
enable avcore
enable avdevice
enable avfilter
enable avformat
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -2969,6 +2972,7 @@ if enabled source_path_used; then
doc
libavcodec
libavcodec/$arch
libavcore
libavdevice
libavfilter
libavformat
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down
9 changes: 9 additions & 0 deletions libavcore/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
include $(SUBDIR)../config.mak

NAME = avcore

HEADERS = avcore.h \

OBJS = utils.o \

include $(SUBDIR)../subdir.mak
58 changes: 58 additions & 0 deletions libavcore/avcore.h
Original file line number Diff line number Diff line change
@@ -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 */
4 changes: 4 additions & 0 deletions libavcore/libavcore.v
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
LIBAVCORE_$MAJOR {
global: av_*; ff_*; avcore*;
local: *;
};
41 changes: 41 additions & 0 deletions libavcore/utils.c
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 5b9b347

Please sign in to comment.