...
 
Commits (287)
......@@ -27,7 +27,6 @@ autoregen.sh
autom4te.cache
aclocal.m4
INSTALL
gst-libav.spec
-
m4/libtool.m4
m4/ltoptions.m4
......
include: "https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/ci_template.yml"
[submodule "common"]
path = common
url = git://anongit.freedesktop.org/gstreamer/common
url = https://gitlab.freedesktop.org/gstreamer/common.git
[submodule "gst-libs/ext/libav"]
path = gst-libs/ext/libav
url = git://source.ffmpeg.org/ffmpeg.git
url = https://git.ffmpeg.org/ffmpeg.git
[submodule "gst-libs/ext/gas-preprocessor"]
path = gst-libs/ext/gas-preprocessor
url = git://git.libav.org/gas-preprocessor.git
This diff is collapsed.
DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc
COMMON_SUBDIRS = ext docs common tests
COMMON_SUBDIRS = ext common tests
SUBDIRS = $(LIBAV_SUBDIRS) $(COMMON_SUBDIRS) pkgconfig
DIST_SUBDIRS = $(COMMON_SUBDIRS) gst-libs pkgconfig
EXTRA_DIST = \
gst-libav.spec depcomp autogen.sh \
AUTHORS COPYING NEWS README ChangeLog gst-libav.doap
depcomp autogen.sh \
AUTHORS COPYING NEWS README ChangeLog gst-libav.doap \
meson_options.txt \
$(shell find "$(top_srcdir)" -type f -name meson.build ! -path "$(top_srcdir)/$(PACKAGE_TARNAME)-*" )
ACLOCAL_AMFLAGS = -I m4 -I common/m4
include $(top_srcdir)/common/release.mak
......@@ -32,6 +33,7 @@ build-checks:
endif
CRUFT_FILES = \
$(top_builddir)/gst-libav.spec \
$(top_builddir)/common/shave \
$(top_builddir)/common/shave-libtool \
$(top_builddir)/common/m4/libtool.m4 \
......@@ -40,9 +42,6 @@ CRUFT_FILES = \
$(top_builddir)/common/m4/ltversion.m4 \
$(top_builddir)/common/m4/lt~obsolete.m4
CRUFT_DIRS = \
$(top_srcdir)/docs/plugins/tmpl
include $(top_srcdir)/common/cruft.mak
all-local: check-cruft
This diff is collapsed.
This is GStreamer gst-libav 1.17.0.1.
Release notes for GStreamer libav Plugins 1.8.0
The GStreamer team is thrilled to announce a new major feature release in the
stable 1.0 API series of your favourite cross-platform multimedia framework!
The GStreamer team is pleased to announce the first release of the new stable
1.8 release series. The 1.8 release series is adding new features on top of
the 1.0, 1.2, 1.4 and 1.6 series and is part of the API and ABI-stable 1.x
release series of the GStreamer multimedia framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
The 1.16 release series adds new features on top of the 1.14 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
Binaries for Android, iOS, Mac OS X and Windows will be provided shortly after
the source release by the GStreamer project during the stable 1.8 release
series.
Full release notes will one day be found at:
https://gstreamer.freedesktop.org/releases/1.16/
This module contains plugins based on the libav project, including codecs.
Binaries for Android, iOS, Mac OS X and Windows will usually be provided
shortly after the release.
This module will not be very useful by itself and should be used in conjunction
with other GStreamer modules for a complete multimedia experience.
- gstreamer: provides the core GStreamer libraries and some generic plugins
Other modules containing plugins are:
- gst-plugins-base: a basic set of well-supported plugins and additional
media-specific GStreamer helper libraries for audio,
video, rtsp, rtp, tags, OpenGL, etc.
- gst-plugins-good: a set of well-supported plugins under our preferred
license
gst-plugins-base
contains a basic set of well-supported plugins
gst-plugins-good
contains a set of well-supported plugins under our preferred license
gst-plugins-ugly
contains a set of well-supported plugins, but might pose problems for
distributors
gst-plugins-bad
contains a set of less supported plugins that haven't passed the
rigorous quality testing we expect, or are still missing documentation
and/or unit tests
- gst-plugins-ugly: a set of well-supported plugins which might pose
problems for distributors
- gst-plugins-bad: a set of plugins of varying quality that have not made
their way into one of core/base/good/ugly yet, for one
reason or another. Many of these are are production quality
elements, but may still be missing documentation or unit
tests; others haven't passed the rigorous quality testing
we expect yet.
- gst-libav: a set of codecs plugins based on the ffmpeg library. This is
where you can find audio and video decoders and encoders
for a wide variety of formats including H.264, AAC, etc.
- gstreamer-vaapi: hardware-accelerated video decoding and encoding using
VA-API on Linux. Primarily for Intel graphics hardware.
Bugs fixed in this release
* 763940 : 'configure' using system libav always fails with " Uncompatible libavcodec found "
- gst-omx: hardware-accelerated video decoding and encoding, primarily for
embedded Linux systems that provide an OpenMax
implementation layer such as the Raspberry Pi.
- gst-rtsp-server: library to serve files or streaming pipelines via RTSP
- gst-editing-services: library an plugins for non-linear editing
==== Download ====
You can find source releases of gst-libav in the download
directory: https://gstreamer.freedesktop.org/src/gst-libav/
You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
http://cgit.freedesktop.org/gstreamer/gst-libav/
https://cgit.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
......@@ -53,10 +68,16 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We use GNOME's bugzilla for bug reports and feature requests:
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
https://gitlab.freedesktop.org/gstreamer
Please submit patches via GitLab as well, in form of Merge Requests. See
Please submit patches via bugzilla as well.
https://gstreamer.freedesktop.org/documentation/contribute/
for more details.
For help and support, please subscribe to and send questions to the
gstreamer-devel mailing list (see below for details).
......@@ -65,14 +86,14 @@ There is also a #gstreamer IRC channel on the Freenode IRC network.
==== Developers ====
GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned
from there (see link above).
GStreamer source code repositories can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.
Interested developers of the core library, plugins, and applications should
subscribe to the gstreamer-devel list.
subscribe to the gstreamer-devel list:
Contributors to this release
* Egor Zaharov
 
\ No newline at end of file
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
......@@ -53,7 +53,7 @@ fi
CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc'
if test "x$package" = "xgstreamer"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-docbook --enable-failing-tests --enable-poisoning"
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --enable-failing-tests --enable-poisoning"
elif test "x$package" = "xgst-plugins-bad"; then
CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-player-tests"
fi
......
Subproject commit 6f2d2093e84cc0eb99b634fa281822ebb9507285
Subproject commit 59cb678164719ff59dcf6c8b93df4617a1075d11
This diff is collapsed.
if ENABLE_GTK_DOC
if ENABLE_PLUGIN_DOCS
PLUGIN_DOCS_DIRS = plugins
else
PLUGIN_DOCS_DIRS =
endif
else
PLUGIN_DOCS_DIRS = plugins
endif
SUBDIRS = $(PLUGIN_DOCS_DIRS)
DIST_SUBDIRS = plugins
EXTRA_DIST = \
version.entities.in
upload:
@if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
This diff is collapsed.
---
short-description: GStreamer plugins from gst-ffmpeg
...
# FFMPEG plugin
build_hotdoc = false
if meson.is_cross_build()
if get_option('doc').enabled()
error('Documentation enabled but building the doc while cross building is not supported yet.')
endif
message('Documentation not built as building it while cross building is not supported yet.')
subdir_done()
endif
required_hotdoc_extensions = ['gst-extension']
if gst_dep.type_name() == 'internal'
gst_proj = subproject('gstreamer')
plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator')
else
plugins_cache_generator = find_program(join_paths(gst_dep.get_pkgconfig_variable('libexecdir'), 'gstreamer-' + api_version, 'gst-plugins-doc-cache-generator'),
required: false)
endif
plugins_cache = join_paths(meson.current_source_dir(), 'gst_plugins_cache.json')
if plugins_cache_generator.found()
plugins_doc_dep = custom_target('libav-plugins-doc-cache',
command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', '@INPUT@'],
input: plugins,
output: 'gst_plugins_cache.json',
)
else
warning('GStreamer plugin inspector for documentation not found, can\'t update the cache')
endif
hotdoc_p = find_program('hotdoc', required: get_option('doc'))
if not hotdoc_p.found()
message('Hotdoc not found, not building the documentation')
subdir_done()
endif
build_hotdoc = true
hotdoc = import('hotdoc')
docconf = configuration_data()
docconf.set('GST_API_VERSION', api_version)
foreach extension: required_hotdoc_extensions
if not hotdoc.has_extensions(extension)
if get_option('doc').enabled()
error('Documentation enabled but gi-extension missing')
endif
message('@0@ extensions not found, not building documentation requiring it'.format(extension))
subdir_done()
endif
endforeach
libs_doc = []
plugins_doc = [hotdoc.generate_doc('libav',
project_version: api_version,
sitemap: 'sitemap.txt',
index: 'index.md',
gst_index: 'index.md',
gst_smart_index: true,
gst_c_sources: ['../ext/*/*.[ch]',],
gst_cache_file: plugins_cache,
gst_plugin_name: 'libav',
dependencies: [gst_dep, gstlibav_plugin, plugins_doc_dep],
disable_incremental_build: true,
)]
*-plugins-decl-list.txt
*-plugins-decl.txt
*-plugins-overrides.txt
*-plugins-undocumented.txt
*-plugins.args.new
*-plugins.signals.new
*-plugins-unused.txt
html
html-build.stamp
html.stamp
scan-build.stamp
sgml-build.stamp
sgml.stamp
tmpl
tmpl-build.stamp
tmpl.stamp
xml
GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj
## Process this file with automake to produce Makefile.in
# The name of the module, e.g. 'glib'.
#DOC_MODULE=gst-plugins-libs-@GST_API_VERSION@
MODULE=gst-libav
DOC_MODULE=$(MODULE)-plugins
# for upload-doc.mak
DOC=$(MODULE)-plugins
FORMATS=html
html: html-build.stamp
include $(srcdir)/../../common/upload-doc.mak
# The top-level SGML file. Change it if you want.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# The directory containing the source code.
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting functions and macros.
DOC_SOURCE_DIR = $(top_srcdir)/ext/libav
# Extra options to supply to gtkdoc-scan.
SCAN_OPTIONS=--rebuild-sections
# Extra options to supply to gtkdoc-mkdb.
MKDB_OPTIONS=--sgml-mode
# Extra options to supply to gtkdoc-fixref.
# FIXME get the location of the installed gstreamer docs
#FIXXREF_OPTIONS=--extra-dir=../gst/html
# Used for dependencies.
HFILE_GLOB=$(top_srcdir)/ext/libav/*.h
CFILE_GLOB=$(top_srcdir)/ext/libav/*.c
# Header files to ignore when scanning.
IGNORE_HFILES =
IGNORE_CFILES =
# we add all .h files of elements that have signals/args we want
# sadly this also pulls in the private methods - maybe we should
# move those around in the source ?
# also, we should add some stuff here conditionally based on whether
# or not the plugin will actually build
# but I'm not sure about that - it might be this Just Works given that
# the registry won't have the element
# Images to copy into HTML directory.
HTML_IMAGES =
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
content_files =
# Other files to distribute.
extra_files =
# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
# contains GtkObjects/GObjects and you want to document signals and properties.
GTKDOC_CFLAGS = $(LIBAV_CFLAGS) $(GST_CFLAGS) -I$(top_builddir) -I$(top_builddir)/ext/libav
GTKDOC_LIBS = -L$(top_builddir)/ext/libav -lgstlibav \
$(LIBAV_LIBS) $(GST_BASE_LIBS)
# If you need to override some of the declarations, place them in this file
# and uncomment this line.
#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
DOC_OVERRIDES =
include $(top_srcdir)/common/gtk-doc-plugins.mak
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>GStreamer libav &GST_API_VERSION; Plugins Reference Manual</title>
<releaseinfo>
for GStreamer libav Plugins &GST_API_VERSION; (&GST_VERSION;)
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-ffmpeg-plugins/html/</ulink>.
</releaseinfo>
</bookinfo>
<chapter>
<title>gst-libav Base and Support classes</title>
<xi:include href="xml/gstav.xml" />
<xi:include href="xml/gstavauddec.xml" />
<xi:include href="xml/gstavaudenc.xml" />
<xi:include href="xml/gstavcfg.xml" />
<xi:include href="xml/gstavcodecmap.xml" />
<xi:include href="xml/gstavprotocol.xml" />
<xi:include href="xml/gstavutils.xml" />
<xi:include href="xml/gstavviddec.xml" />
<xi:include href="xml/gstavvidenc.xml" />
</chapter>
<chapter>
<title>gst-libav Plugins</title>
<xi:include href="xml/plugin-libav.xml" />
</chapter>
<chapter>
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml" />
</chapter>
</book>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
GstChildProxy GObject
GstChildProxy GstObject
GstTagSetter GstElement
GstTagSetter GstObject GstElement
This diff is collapsed.
<!ENTITY GST_API_VERSION "@GST_API_VERSION@">
<!ENTITY GST_VERSION "@VERSION@">
# disable/skip avvideoscale until someone makes it work
SUBDIRS = libav
DIST_SUBDIRS = libav libswscale
DIST_SUBDIRS = libav
plugin_LTLIBRARIES = libgstlibav.la
if HAVE_BZ2
BZ2_LIBS = -lbz2
else
BZ2_LIBS =
endif
if HAVE_LZMA
LZMA_LIBS = -llzma
else
LZMA_LIBS =
endif
libgstlibav_la_SOURCES = gstav.c \
gstavprotocol.c \
gstavcodecmap.c \
......@@ -29,16 +17,22 @@ libgstlibav_la_SOURCES = gstav.c \
# \
# gstavscale.c
libgstlibav_la_CPPFLAGS = $(LIBAV_CPPFLAGS) $(GST_PLUGINS_BASE_CPPFLAGS) $(GST_CPPFLAGS)
libgstlibav_la_CFLAGS = $(LIBAV_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
libgstlibav_la_LIBADD = $(LIBAV_LIBS) $(GST_PLUGINS_BASE_LIBS) \
libgstlibav_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
-lgstaudio-$(GST_API_VERSION) -lgstvideo-$(GST_API_VERSION) \
-lgstpbutils-$(GST_API_VERSION) $(GST_BASE_LIBS) \
$(LIBM) $(WIN32_LIBS) -lz $(BZ2_LIBS) $(LZMA_LIBS)
$(LIBAV_LIBS) $(WIN32_LIBS) -lz $(BZ2_LIBS) $(LZMA_LIBS)
libgstlibav_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DARWIN_LDFLAGS)
libgstlibav_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
if HAVE_LIBAV_UNINSTALLED
libgstlibav_la_DEPENDENCIES = $(LIBAV_DEPS)
# FIXME: For some reason libtool ignores libavfilter.la, add it
install-data-hook:
$(AM_V_at)cd $(DESTDIR)$(plugindir) \
&& sed -e "s|\($(libdir)/libavformat.la\)|$(libdir)/libavfilter.la \1|" \
libgstlibav.la > libgstlibav.la.tmp && cp libgstlibav.la.tmp libgstlibav.la && rm libgstlibav.la.tmp
endif
......
......@@ -28,14 +28,17 @@
#include <string.h>
#include <gst/gst.h>
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include "gstav.h"
#include "gstavutils.h"
#include "gstavcfg.h"
#ifdef GST_LIBAV_ENABLE_GPL
#define LICENSE "GPL"
#else
#define LICENSE "LGPL"
#endif
GST_DEBUG_CATEGORY (ffmpeg_debug);
GST_DEBUG_CATEGORY (CAT_PERFORMANCE);
static GMutex gst_avcodec_mutex;
......@@ -45,7 +48,7 @@ static GMutex gst_avcodec_mutex;
static inline gboolean
gst_ffmpeg_avcodec_is_ffmpeg (void)
{
guint av_version = avutil_version ();
guint av_version = avcodec_version ();
GST_DEBUG ("Using libavcodec version %d.%d.%d",
av_version >> 16, (av_version & 0x00ff00) >> 8, av_version & 0xff);
......@@ -136,7 +139,6 @@ static gboolean
plugin_init (GstPlugin * plugin)
{
GST_DEBUG_CATEGORY_INIT (ffmpeg_debug, "libav", 0, "libav elements");
GST_DEBUG_CATEGORY_GET (CAT_PERFORMANCE, "GST_PERFORMANCE");
/* Bail if not FFmpeg. We can no longer ensure operation with Libav */
if (!gst_ffmpeg_avcodec_is_ffmpeg ()) {
......@@ -150,7 +152,8 @@ plugin_init (GstPlugin * plugin)
gst_ffmpeg_init_pix_fmt_info ();
av_register_all ();
/* build global ffmpeg param/property info */
gst_ffmpeg_cfg_init ();
gst_ffmpegaudenc_register (plugin);
gst_ffmpegvidenc_register (plugin);
......@@ -159,12 +162,6 @@ plugin_init (GstPlugin * plugin)
gst_ffmpegdemux_register (plugin);
gst_ffmpegmux_register (plugin);
gst_ffmpegdeinterlace_register (plugin);
#if 0
gst_ffmpegscale_register (plugin);
#endif
#if 0
gst_ffmpegaudioresample_register (plugin);
#endif
/* Now we can return the pointer to the newly created Plugin object. */
return TRUE;
......@@ -174,10 +171,4 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
libav,
"All libav codecs and formats (" LIBAV_SOURCE ")",
plugin_init, PACKAGE_VERSION,
#ifdef GST_LIBAV_ENABLE_GPL
"GPL",
#else
"LGPL",
#endif
"libav", "http://www.libav.org")
plugin_init, PACKAGE_VERSION, LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
......@@ -34,8 +34,6 @@
GST_DEBUG_CATEGORY_EXTERN (ffmpeg_debug);
#define GST_CAT_DEFAULT ffmpeg_debug
GST_DEBUG_CATEGORY_EXTERN (CAT_PERFORMANCE);
G_BEGIN_DECLS
extern gboolean gst_ffmpegdemux_register (GstPlugin * plugin);
......@@ -44,10 +42,6 @@ extern gboolean gst_ffmpegviddec_register (GstPlugin * plugin);
extern gboolean gst_ffmpegaudenc_register (GstPlugin * plugin);
extern gboolean gst_ffmpegvidenc_register (GstPlugin * plugin);
extern gboolean gst_ffmpegmux_register (GstPlugin * plugin);
#if 0
extern gboolean gst_ffmpegscale_register (GstPlugin * plugin);
extern gboolean gst_ffmpegaudioresample_register (GstPlugin * plugin);
#endif
extern gboolean gst_ffmpegdeinterlace_register (GstPlugin * plugin);
int gst_ffmpeg_avcodec_open (AVCodecContext *avctx, AVCodec *codec);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -37,17 +37,9 @@ struct _GstFFMpegAudEnc
GstAudioEncoder parent;
AVCodecContext *context;
AVCodecContext *refcontext;
gboolean opened;
/* cache */
gint bitrate;
gint rtp_payload_size;
gint compliance;
/* other settings are copied over straight,
* include a context here, rather than copy-and-past it from avcodec.h */
AVCodecContext config;
AVFrame *frame;
GstAudioChannelPosition ffmpeg_layout[64];
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
gas-preprocessor @ f8a2d8c1
Subproject commit f8a2d8c155bda8d925a7ee2ed8315c553a2b865f
libav @ 4154f896
Subproject commit c40983a6f631d22fede713d535bb9c31d5c9740c
Subproject commit 4154f8967820ca734a77ce91bb590cd77649dee8
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.