Commit graph

26749 commits

Author SHA1 Message Date
Edward Hervey dd425fe0fd adaptivedemux: Store QoS values on the element
Storing it per-stream requires taking the manifest lock which can apparenly be
hold for aeons. And since the QoS event comes from the video rendering thread
we *really* do not want to do that.

Storing it as-is in the element is fine, the important part is knowing the
earliest time downstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1021>
2020-11-11 20:18:11 +00:00
Edward Hervey e700a21993 adaptivedemux: Don't calculate bitrate for header/index fragments
They are generally substantially smaller than regular fragments, and therefore
we end up pushing totally wrong bitrates downstream.

Fixes erratic buffering issues with DASH introduced by
66f5e87435

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1786>
2020-11-11 19:46:16 +00:00
Edward Hervey a4b20ed276 hlsdemux: Don't double-free variant streams on errors
If an error happened switching to a new variant, we switch back to the previous
one ... except it will be unreffed when settin git.

In order to avoid such issues, keep a reference to the old variant until we're
sure we don't need it anymore

Fixes cases of double-free on variants and its contents

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1799>
2020-11-11 19:19:28 +00:00
He Junyan 04472c5adb codecs: vp8decoder: Fix two typo of struct name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1797>
2020-11-11 18:52:37 +00:00
Sanchayan Maity 406cd3bdef gsta2dpsink: Fix GstPad leak
The sinkpad returned by a call to gst_element_get_static_pad needs to be
unrefed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
2020-11-11 22:19:33 +05:30
Arun Raghavan 8aa6db2c8d bluez: a2dpsink: Add support for LDAC to a2dpsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
2020-11-11 22:19:33 +05:30
Arun Raghavan ef3085c743 bluez: avdtpsink: Add support for LDAC to avdtpsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
2020-11-11 22:19:33 +05:30
Sanchayan Maity a576814553 ext: Add LDAC encoder
LDAC is an audio coding technology developed by Sony that enables the
transmission of High-Resolution (Hi-Res) audio contents over Bluetooth.

Currently Adaptive Bit Rate (ABR) as supported by libldac encoder is not
implemented.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1621>
2020-11-11 22:16:43 +05:30
Seungha Yang 7cec64499d mpegdemux: Set duration on seeking query if possible
Set duration on seeking query in the same way as duration query handler.
Otherwise application might get confused as if the duration is unknown.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1791>
2020-11-11 14:10:27 +00:00
Raul Tambre 6d300ce785 webrtc: Update libnice version requirement to 0.1.17
Since !1366 nice_agent_get_sockets() is used, which requires 0.1.17.
Update the version requirement accordingly.

Fixes #1459.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1792>
2020-11-11 13:41:59 +02:00
Edward Hervey 1246b448ee hlsdemux: Re-use streams if possible
When switching variants, try to re-use existing streams/pads instead of creating
new ones. When dealing with urisourcebin and decodebin3 this is not only the
expected way but also avoids a lot of buffering/hang issues.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>
2020-11-11 04:06:05 +00:00
Edward Hervey f1fdbfc5bd m3u8: Make a debug function usable elsewhere
The rest of the code might want to use this

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1757>
2020-11-11 04:06:05 +00:00
Thibault Saunier 3a554f6d62 qroverlay: Generate documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier e7ec9986ca qroverlay: Add a qroverlay element that allows overlaying any data
This moves `gstqroverlay.c` to `gstdebugqroverlay.c` and implements
a simple `gstqroverlay` element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier 7d9f125ab1 qroverlay: Rename qroverlay to debugqroverlay
The element is specially focus on debugging purposes and not a generique QR overlay

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier 964c8aa5e0 qroverlay: Factor out qroverlay logic to a base class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier 4afa2d2c3d qroverlay: Factor out qroverlay logic to a base class
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier e6881aefa9 qroverlay: Make subclassable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier c307f1418d qroverlay: Port to VideoFilter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier 4a259e8f28 qroverlay: Make default pizel-size 3
Otherwise zbar isn't able to read the produced qrcodes

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier dc88d3ece9 qroverlay: Cleanup the way we build the json using json-glib
And reindent the .h file removing tabs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier bf811616e0 qroverlay: Fix copyright
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier 3db26e3f96 qroverlay: Fix some warnings
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier c743d5db23 qroverlay: Minor renaming and documentation fixes
Matching usual namings

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Thibault Saunier af054f7015 qroverlay: Import from gst-qroverlay
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1730>
2020-11-11 00:18:32 +00:00
Seungha Yang 5578e76e60 nvcodec: Add VP9 stateless decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
2020-11-10 14:39:40 +00:00
Seungha Yang 71564f471d nvcodec: nvdecoder: Move to refcount based GstNvDecoderFrame
This refcount based way would be helpful for sharing nvdec frame among
multiple codec pictures and later zero-copy use case.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
2020-11-10 14:39:40 +00:00
Seungha Yang 2a04fe5403 nvcodec: nvdecoder: Get rid of G_GNUC_INTERNAL
default is visibility=hidden. Don't need to use G_GNUC_INTERNAL
for new code therefore.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
2020-11-10 14:39:40 +00:00
Seungha Yang 36ed24ac05 nvcodec: Add VP8 stateless decoder element
Like other nvcodec stateless decoders, the rank of this new nvvp8sldec
element will be secondary for now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
2020-11-10 14:39:40 +00:00
Seungha Yang 7c047da4b0 nvcodec: nvsldec: Fix typo in debug message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1738>
2020-11-10 14:39:40 +00:00
Edward Hervey a2a73c02ef mpegtspacketizer: Handle PCR issues with adaptive streams
A lot of content producers out there targetting "adaptive streaming" are riddled
with non-compliant PCR streams (essentially all the players out there just use
PTS/DTS and don't care about the PCR).

In order to gracefully cope with these, we detect them appropriately and any
small (< 15s) PCR resets get gracefully ignored.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1785>
2020-11-09 18:30:51 +01:00
Julian Bouzas 168b5f6536 nvcodec: leave g_once_init when all quarks are initialized
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1782>
2020-11-09 15:03:04 +00:00
Seungha Yang 5342b05390 codecs: h264decoder: Fix missing drain handling in bumping
Should've included in the commit 5527cc4a2e

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1783>
2020-11-09 14:40:06 +00:00
Seungha Yang 64c1218948 codecs: h264decoder: Try reference picture marking process in any case
... even if there is some invalid conditions
(because of broken stream, our implementation fault or so).
Otherwise baseclass will keep such reference pictures and
it would result to DPB full.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1783>
2020-11-09 14:40:06 +00:00
Edward Hervey 29c507bf3a examples: Properly handle extended descriptors
By checking the extended tag. Provides a bit more information (if extended tag
is known)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1781>
2020-11-09 11:51:00 +01:00
Seungha Yang 0551d68bbb d3d11h264dec: Fix for MbaffFrameFlag and FrameNumList
As per spec 7.4.3 Slice header semantics, the flag value is derived as
MbaffFrameFlag = (mb_adaptive_frame_field_flag && !field_pic_flag)
and DXVA uses the value.
Regarding FrameNumList, in case of long-term ref, FrameNumList[i]
value should be long_term_frame_idx not long_term_pic_num.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1780>
2020-11-09 03:07:06 +09:00
Seungha Yang 81151145b2 codecs: h264decoder: Reset frame number per MMCO type 5
It should be cleared so that avoid wrong frame gap detection
for following pictures.

Passing 4 more conformance bitstream tests
* MR2_TANDBERG_E
* MR3_TANDBERG_B
* MR4_TANDBERG_C
* MR5_TANDBERG_C

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
2020-11-05 14:56:28 +00:00
Seungha Yang e78dc91f9e codecs: h264decoder: Fix for MMCO type 2
As per 8.2.5.4.2, we should mark a picture which has
LongTermPicNum == long_term_pic_num as "unused for reference",
not pic_num.

Passing conformance bitstream test with MR2_MW_A

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
2020-11-05 14:56:28 +00:00
Seungha Yang 0e53668a9b codecs: h264picture: Add more trace log
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1768>
2020-11-05 14:56:28 +00:00
Jason Pereira cba368785b decklink: correct framerate 2KDCI 23.98
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1771>
2020-11-05 14:28:28 +00:00
Rafostar 5c31aeaaa4 doc: player: mention that get_pipeline method needs unref
All other methods in docs clearly mention that an unref is needed, so should `get_pipeline()`. #1450

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1764>
2020-11-05 08:57:51 +00:00
Rafostar 40f1a34d10 player: call ref_sink on pipeline
Otherwise `gst_player_get_pipeline()` will return a floating reference which may confuse bindings and lead to crash.

Fixes #1450

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1763>
2020-11-05 08:36:10 +00:00
Nirbheek Chauhan 9344403cfb meson: Enable some MSVC warnings for parity with GCC/Clang
This makes it easier to do development with MSVC by making it warn
on common issues that GCC/Clang error out for in our CI configuration.

Continuation from https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1760>
2020-11-05 01:42:48 +05:30
Nicolas Dufresne 2950c76c8f va: Add HEVC decoding support
This add HEVC decoding support into the new VA plugin. This implementation has
been tested using the ITU comformance test (through fluster). It fails all
MAIN10 tests, as this is not implemented yet along with the following:

CONFWIN_A_Sony_1 (looks fine, but md5sum is incorrect)
PICSIZE_A_Bossen_1 (height too high)
PICSIZE_B_Bossen_1 (same)
VPSSPSPPS_A_MainConcept_1 (parser issue)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
2020-11-04 17:53:23 +00:00
Nicolas Dufresne 6f556518c8 h265parser: Fix wrong warning message
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
2020-11-04 17:53:23 +00:00
Nicolas Dufresne c1502a2bdf h265decoder: Remove unsued WpOffsetHalfRangeC
This is only needed for VA implementation of weight tables and isn't used
within the base class.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1714>
2020-11-04 17:53:23 +00:00
Seungha Yang 5527cc4a2e codecs: h264decoder: Rework for DPB management
Sync with recent h265decoder DPB implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761>
2020-11-05 02:26:47 +09:00
Seungha Yang b70ceb4235 codecs: h264decoder: Remove unused pts variable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1761>
2020-11-05 00:33:34 +09:00
youngh.lee 49df312086 aiffparse: Also set a channel mask for 2 channels
And only do add debug output at FIXME level when using the fallback
channel mask, not for those defined in the AIFF spec.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1756>
2020-11-04 07:36:47 +00:00
Olivier Crête da2bd55177 webrtc: Add properties to change the socket buffer sizes to ice object
libnice doesn't touch the kernel buffer sizes. When dealing with RTP data,
it's generally advisable to increase them to avoid dropping packets locally.
This is especially important when running multiple higher bitrate streams at
the same time.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1366>
2020-11-03 22:07:53 +00:00