Commit graph

2304 commits

Author SHA1 Message Date
Sebastian Dröge
e30cef4129 avvidenc: Call avcodec_flush_buffers() after draining to allow accepting new input again
This is already done in all other codec elements.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/97>
2020-10-01 11:18:58 +03:00
Sebastian Dröge
1d671c7b89 avauddec/audenc/videnc: Don't return GST_FLOW_EOS when draining
Same behaviour as for avviddec now. FFmpeg will return AVERROR_EOF when it's
completely drained but we should not return that here or otherwise
upstream will receive EOS and not forward us more data.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/97>
2020-09-30 16:31:16 +03:00
Seungha Yang
72933810f5 avviddec: Don't return GST_FLOW_EOS from drain()/finish()
AVERROR_EOF means that it's fully drained, but it doesn't
mean that that end of stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/90>
2020-09-16 03:13:09 +09:00
Seungha Yang
7388b14423 avauddec: Ensure finish_subframe() and finish_frame() are paired
audiodecoder baseclass implementation is expecting that
finish_subframe() is followed by finish_frame() in order clear
its internal state related to subframe.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/90>
2020-09-15 02:13:34 +09:00
Sebastian Dröge
6ea6f1545b avauddec: Forward flow returns from draining instead of assuming OK
It might be useful for upstream to know that draining/finishing didn't
succeed, and why.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/90>
2020-09-14 14:30:35 +03:00
Sebastian Dröge
90a079cc8d avviddec: Forward flow returns from draining instead of assuming OK
It might be useful for upstream to know that draining/finishing didn't
succeed, and why.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/90>
2020-09-14 14:24:51 +03:00
Edward Hervey
c6e51f404d avauddec: Avoid dropping non-OK flow return
When sucessfully finishing out frames (or finishing configuration), we must make
sure we don't override any failing GstFlowReturn that might have been detected
previously.

Failure to do this would result in not propagating not-linked, flushing,
etc...

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/90>
2020-09-14 14:22:24 +03:00
Olivier Crête
c77e13b9b3 avcodecmap: Enable 24 bit WMA Lossless decoding
This now works with not so recent ffmpeg.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/88>
2020-09-09 15:25:41 -04:00
Tim-Philipp Müller
59828fe523 ci: include template from gst-ci master branch again 2020-09-08 17:30:46 +01:00
Tim-Philipp Müller
976b70730b Back to development 2020-09-08 16:58:56 +01:00
Tim-Philipp Müller
215b3ed959 Release 1.18.0 2020-09-08 00:08:12 +01:00
Sebastian Dröge
6a9b42557e Update for gst_video_transfer_function_*() function renaming
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/89>
2020-09-07 12:15:17 +03:00
Tim-Philipp Müller
93f78bc76b Release 1.17.90 2020-08-20 16:14:50 +01:00
Jordan Petridis
8d3c0a1f8a gstavcfg.c: fix max->min typo in limits and implict double conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/86>
2020-08-04 18:56:45 +03:00
Jordan Petridis
edce08b526 Revert "docs: update plugins doc cache"
This reverts commit d1b20eb655.

See https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/324

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/85>
2020-07-23 15:37:05 +03:00
Jordan Petridis
d1b20eb655 docs: update plugins doc cache
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/80>
2020-07-23 06:58:17 +00:00
Tim-Philipp Müller
f7fc58112e meson: set release date from .doap file for releases
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/84>
2020-07-08 17:23:12 +01:00
Vivia Nikolaidou
88fa030ab1 avviddec: Fix typo that duplicated closed caption meta
We examined the output buffer, instead of the input buffer, for
existence of cc meta.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/83>
2020-07-07 00:33:22 +03:00
Vivia Nikolaidou
83190c4ec0 gstavviddec: Only allow a single closed caption meta
Following discussion in
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1396#note_556068

While it is technically possible to store multiple closed caption metas
in the same buffer, we don't currently do that anywhere and for
H264/MPEG2 both parts have to be stored in the same packet, and also the
number of CC bytes you can store per frame is rather limited. This
restriction might be relaxed later once we figured out how to do it
without breaking things.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/82>
2020-07-03 07:02:05 +00:00
Tim-Philipp Müller
0f7a515efb Back to development 2020-07-03 02:04:01 +01:00
Tim-Philipp Müller
4e4488bab2 Release 1.17.2 2020-07-03 00:33:33 +01:00
Matej Knopp
d84b922b7f avauddec: fix buffer leak when send packet failed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/81>
2020-06-30 18:39:59 +02:00
Sebastian Dröge
f7371f8691 avcodecmap: Add support for SpeedHQ video codec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/79>
2020-06-26 16:11:18 +03:00
Mathieu Duponchelle
e1928898c8 meson: mark plugins cache target as always stale 2020-06-23 18:12:48 +02:00
Thibault Saunier
f246032003 doc: Stop documenting properties from parents 2020-06-22 11:07:06 -04:00
Mathieu Duponchelle
e2c4828699 avmux: zero-initialize packets
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/76>
2020-06-20 00:36:48 +00:00
Tim-Philipp Müller
edf2ac85db Back to development 2020-06-20 00:28:26 +01:00
Tim-Philipp Müller
7b73a97f36 Release 1.17.1 2020-06-19 19:24:17 +01:00
Thibault Saunier
0b13c5e544 docs: Update plugins cache 2020-06-10 11:36:52 -04:00
Thibault Saunier
deddcd2bfc docs: Update plugins cache 2020-06-08 10:57:09 -04:00
Mathieu Duponchelle
1c436201ce plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:43:02 +02:00
Thibault Saunier
f1cb5bf471 doc: Require hotdoc >= 0.11.0 2020-06-03 18:35:32 -04:00
Sebastian Dröge
bfb95d6b74 docs: Update gst_plugins_cache.json 2020-05-31 10:03:17 +03:00
Sebastian Dröge
5738a8c1d6 plugins: Use gst_type_mark_as_plugin_api() for all non-element plugin types 2020-05-31 10:03:17 +03:00
Sebastian Dröge
74bb89eb89 avcodecmap: Remove unused GstFFMpegCompliance type 2020-05-31 10:03:17 +03:00
Mathieu Duponchelle
a5850215ba avdemux: update the context we use to determine stream's caps
The discovered frame rate is only available on the AVStream
itself. Updating the temporary context framerate before
building caps from it seems like a pretty non-intrusive approach.

Fixes #75

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/74>
2020-05-27 16:34:10 +02:00
Mathieu Duponchelle
797c7e1bdf avcodecmap: use framerate instead of time_base when decoding
Documentation for AVCodecContext::time_base:

> decoding: the use of this field for decoding is deprecated.
> Use framerate instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/74>
2020-05-27 16:29:27 +02:00
Matej Knopp
0a985ff677 gstlibav: minor fixes for header files
Move G_BEGIN_DECLS below includes and add missing include

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/71>
2020-05-09 19:09:41 +00:00
Matej Knopp
b1b49a0913 gstavviddec: only set range when actually reported by avcodec
otherwise we get incomplete colorimetry that video-info complains about

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/70>
2020-05-09 14:56:25 +02:00
Nirbheek Chauhan
e727ce548c README: Convert to markdown, clarify licensing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/68>
2020-04-30 18:12:19 +05:30
Nirbheek Chauhan
c437e175ad All code in this repository is now LGPL-2.1+
Starting with 1.17, we will not ship a copy of FFmpeg in our release
tarballs, and all the remaining code is LGPL2.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-libav/-/merge_requests/68>
2020-04-30 17:13:00 +05:30
Haihao Xiang
3c6432698e avmux: avoid to use unintialized variable
Without this fix, running the command below will get an error randomly.

Example:
gst-launch-1.0 videotestsrc ! vp9enc ! avmux_ivf ! fakesink

ERROR: pipeline doesn't want to preroll.
0:00:02.388528491 30148 0x5601b424a370 ERROR                  libav :0::
Tag [1]V[0][0] incompatible with output codec id '167' (VP90)
2020-04-15 15:00:02 +08:00
Seungha Yang
39e6f846e0 avviddec: Update for video-hdr struct change
See the change of -base https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/594
2020-04-01 14:07:48 +09:00
Julien Isorce
c8b8884791 avvidenc: handle GST_VIDEO_MULTIVIEW_MODE_MONO
Otherwise videotestsrc ! avenc_libx265 ! fakesink
outputs `Unsupported multiview mode - no mapping in libav`
2020-01-27 14:22:13 -08:00
Sebastian Dröge
63555e5cc7 avcodecmap: Add some more comments about the assumptions in the ffmpeg code about H264/H265/AAC 2020-01-24 16:14:28 +02:00
Sebastian Dröge
34b1eb117f avdemux: Only set stream-format for H264/H265/AAC when we have a context
Otherwise we don't know yet whether we'll have extradata/codec_data, so
can't decide on the stream-format yet.
2020-01-24 11:05:53 +00:00
Haihao Xiang
4f51000920 avivf_mux: support VP9 and AV1
Besides vp8, ff_ivf_muxer supports VP9 and AV1
2020-01-24 10:15:44 +00:00
Sebastian Dröge
c057fef347 avcodecmap: Set AAC/H264/H265 stream-format for demuxer/encoder situations if no codec_data is provided
This fixes output of the above formats from demuxers.
2020-01-24 08:50:53 +00:00
Sebastian Dröge
6c3fc7a16d avdemux: Pass the URI from the URI query to avformat_open_input()
Some demuxers make use of it in various ways, for example the HLS
demuxer.
2020-01-23 11:58:29 +02:00
Alicia Boya García
b7d450b118 gstavviddec: Limit default number of decoder threads
When the `max-threads` property is not specified, GStreamer defaults to
the amount of CPU threads in the system.

The number of threads used in avdec has a direct impact on the latency
of the decoder, which is of as many frames as threads. Therefore, big
numbers of threads can make latency levels that can be problematic in
some applications.

For this reason, ffmpeg emits a warning when more than 16 threads are
requested.

This patch limits the default number of threads to 16. This affects only
computers with more than 16 CPU threads when using avviddec without
setting `max-threads`.
2019-12-19 21:59:44 +00:00