Commit graph

26698 commits

Author SHA1 Message Date
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
Jan Schmidt
5f9897745b vkdeviceprovider: Avoid deadlock on physical device
Don't hold the object lock on the vk physical device while
constructing a GstVulkanDevice around it, as
GstVulkanDevice can make calls on the physical device that
require the object lock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1754>
2020-11-03 04:28:00 +00:00