GStreamer multimedia framework
Find a file
Matthew Waters f166c9d234 viddec: don't configure and incorrect buffer pool when receiving a gap event
Scenario is this:
1. libav receives enough data to want a buffer with get_buffer2()
   which wants a buffer pool with a certain format, say Y42B but does
   not negotiate and therefore GstVideoDecoder does not have any output
   state configured
2. A gap event is received which GstVideoDecoder wants to forward.  It
   needs caps to forward the gap event so attempts to negotiate with some
   default information which chooses e.g. I420 and overwrites the
   previously configured bufferpool decided on by get_buffer2()
3. There is a mismatch between what ensure_internal_pool() check for
   consistency and what decide_allocation() sets when overriding the
   internal pool with the downstream pool.
4. FFMpeg then requests a Y42B buffer from an I420 pool and predictably
   crashes writing past the contents of the buffer

This is fixed by keeping track of the internal pool states correctly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/116>
2021-02-17 03:13:21 +00:00
docs avviddec: Support for alternate-field interlacing 2021-02-03 15:42:58 +02:00
ext/libav viddec: don't configure and incorrect buffer pool when receiving a gap event 2021-02-17 03:13:21 +00:00
hooks meson: Setup pre-commit hooks when configuring 2016-09-30 11:38:37 -03:00
scripts meson: set release date from .doap file for releases 2020-07-08 17:23:12 +01:00
tests tests: Add audio/video encoder test 2020-10-07 19:08:34 +09:00
.gitignore Remove autotools build system 2019-10-13 14:36:06 +01:00
.gitlab-ci.yml ci: include template from gst-ci master branch again 2020-09-08 17:30:46 +01:00
AUTHORS releasing 2004-03-16 13:09:23 +00:00
ChangeLog Release 1.18.0 2020-09-08 00:08:12 +01:00
COPYING All code in this repository is now LGPL-2.1+ 2020-04-30 17:13:00 +05:30
gst-libav.doap Release 1.18.0 2020-09-08 00:08:12 +01:00
meson.build meson: Enable some MSVC warnings for parity with GCC/Clang 2020-11-04 18:44:54 +05:30
meson_options.txt build: Re-enable unit tests 2020-10-07 19:08:30 +09:00
NEWS Release 1.18.0 2020-09-08 00:08:12 +01:00
README.md README: Convert to markdown, clarify licensing 2020-04-30 18:12:19 +05:30
RELEASE Release 1.18.0 2020-09-08 00:08:12 +01:00

gst-libav

This module contains a GStreamer plugin for using the encoders, decoders, muxers, and demuxers provided by FFmpeg. It is called gst-libav for historical reasons.

Plugin Dependencies and Licenses

GStreamer is developed under the terms of the LGPL-2.1 (see COPYING file for details), and that includes the code in this repository.

However, this repository depends on FFmpeg, which can be built in the following modes using various ./configure switches: LGPL-2.1, LGPL-3, GPL, or non-free.

This can mean, for example, that if you are distributing an application which has a non-GPL compatible license (like a closed-source application) with GStreamer, you have to make sure not to build FFmpeg with GPL code enabled.

Overall, when using plugins that link to GPL libraries, GStreamer is for all practical reasons under the GPL itself.

The above recommendations are not legal advice, and you are responsible for ensuring that you meet your licensing obligations.