platform/upstream/gstreamer.git
3 years agortp: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 12:16:28 +0000 (13:16 +0100)]
rtp: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agopulse: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 10:12:34 +0000 (11:12 +0100)]
pulse: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agompeg123: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:41:29 +0000 (10:41 +0100)]
mpeg123: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agolibpng: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:33:50 +0000 (10:33 +0100)]
libpng: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agolame: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:27:18 +0000 (10:27 +0100)]
lame: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agolibcaca: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:26:26 +0000 (10:26 +0100)]
libcaca: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agojpeg: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 09:09:46 +0000 (10:09 +0100)]
jpeg: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agojack: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 08:56:36 +0000 (09:56 +0100)]
jack: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agogdk_pixbuf: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 07:57:55 +0000 (08:57 +0100)]
gdk_pixbuf: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agogtk: allow per feature registration
Stéphane Cerveau [Fri, 12 Feb 2021 07:48:21 +0000 (08:48 +0100)]
gtk: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agoflac: allow per feature registration
Stéphane Cerveau [Thu, 11 Feb 2021 18:53:30 +0000 (19:53 +0100)]
flac: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agodv: allow per feature registration
Stéphane Cerveau [Thu, 11 Feb 2021 17:57:03 +0000 (18:57 +0100)]
dv: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agoaalib: allow per feature registration
Julian Bouzas [Fri, 14 Aug 2020 19:27:31 +0000 (15:27 -0400)]
aalib: allow per feature registration

Split plugin into features including
dynamic types which can be indiviually
registered during a static build.

More details here:

https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/876>

3 years agovideocrop: handle non raw caps features
Víctor Manuel Jáquez Leal [Fri, 19 Mar 2021 16:19:43 +0000 (17:19 +0100)]
videocrop: handle non raw caps features

Currently, videocrop, only negotiates raw caps (system memory) because
it's the type of memory it can modify. Nonetheless, it's also possible
for the element to handle non-raw caps when only adding the crop meta
is possible, in other words, when downstream buffer pools expose the
crop API.

This patch enable non-raw caps negotiation. If downstream doesn't
expose crop API and negotiated caps are featured, the negotiation
fails.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/915>

3 years agortpbin: Don't special-case G_SIGNAL_RUN_CLEANUP stage in signal accumulators
Sebastian Dröge [Fri, 19 Mar 2021 08:35:09 +0000 (10:35 +0200)]
rtpbin: Don't special-case G_SIGNAL_RUN_CLEANUP stage in signal accumulators

All these signals don't run the class handler in the CLEANUP stage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>

3 years agoshout2: Don't register signal without class handler with G_SIGNAL_RUN_CLEANUP
Sebastian Dröge [Fri, 19 Mar 2021 08:34:33 +0000 (10:34 +0200)]
shout2: Don't register signal without class handler with G_SIGNAL_RUN_CLEANUP

There is no class handler to run during the CLEANUP stage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/913>

3 years agov4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry
Hou Qi [Tue, 23 Mar 2021 08:59:28 +0000 (16:59 +0800)]
v4l2object: Avoid colorimetry mismatch for streams with invalid colorimetry

video-info sets gst colorimetry to default value when colorimetry in caps
is unparsable or invalid. Then v4l2object uses this gst colorimetry to do
mapping with v4l2 colorimetry. This may cause colorimetry mismatch when
check mapped gst colorimetry with that read from caps directly.

To fix this, need to correct gst colorimetry as that parsed from video-info
when check gst_v4l2_video_colorimetry_matches().

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/917>

3 years agov4l2object: Add support for hdr10 stream playback
Hou Qi [Fri, 19 Mar 2021 02:52:26 +0000 (10:52 +0800)]
v4l2object: Add support for hdr10 stream playback

Colorimetry of hdr10 video is bt2100-pq with transfer as
GST_VIDEO_TRANSFER_SMPTE2084. So map GST_VIDEO_TRANSFER_SMPTE2084
to V4L2_XFER_FUNC_SMPTE2084 to support hdr10 stream playback.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/888>

3 years agoshapewipe: fix broken link in docs
Sid Sethupathi [Sat, 20 Mar 2021 15:41:29 +0000 (10:41 -0500)]
shapewipe: fix broken link in docs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/916>

3 years agortspsrc: Fix more signals
Alba Mendez [Thu, 18 Mar 2021 17:42:02 +0000 (17:42 +0000)]
rtspsrc: Fix more signals

Behaviour change in GLib causes select-stream signal to discard
the value returned by handlers. See !909 for more info.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/912>

3 years agogst: don't use volatile to mean atomic
Matthew Waters [Thu, 18 Mar 2021 08:52:53 +0000 (19:52 +1100)]
gst: don't use volatile to mean atomic

volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead.  GCC 11 has started warning about using volatile
with atomic operations.

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/911>

3 years agoUpdate docs cache and fix before-send signal doc syntax
Nirbheek Chauhan [Wed, 17 Mar 2021 10:24:59 +0000 (15:54 +0530)]
Update docs cache and fix before-send signal doc syntax

The docs for before-send were missing because of this

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>

3 years agortspsrc: Fix accumulation of before-send signal return values
Nirbheek Chauhan [Wed, 17 Mar 2021 07:48:34 +0000 (13:18 +0530)]
rtspsrc: Fix accumulation of before-send signal return values

Since glib 2.62, the accumulated return values in RUN_CLEANUP override the
accumulated return values in RUN_FIRST. Since:

1. We have a default handler that always returns TRUE, and
2. User handlers are only run in RUN_FIRST, and
3. Our accumulator just takes the latest return value

We were discarding the return value from the user handler and always
sending messages even if the user handler said not to. See
https://gitlab.gnome.org/GNOME/glib/-/issues/2352 for more details.

This signal does not need RUN_CLEANUP or RUN_FIRST, so just change it
to RUN_LAST so that it's emitted exactly once and accumulated once.

With this fix, this signal can now be used to intercept PAUSE when
going to GST_STATE_NULL so that the server does a TEARDOWN (if
necessary) and not a PAUSE, which will confuse other RTSP clients when
playing shared media.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/909>

3 years agoRevert unusable workaround for PAUSE being sent when going NULL
Nirbheek Chauhan [Wed, 17 Mar 2021 06:02:08 +0000 (11:32 +0530)]
Revert unusable workaround for PAUSE being sent when going NULL

Directly setting rtspsrc to the NULL state before putting the pipeline
in the NULL state usually works, but it can cause a deadlock in some
cases, so it's not a reliable mechanism to fix this.

This reverts commit f37afdafff1fd0a339966116261f5cd0de53f5d1:
"rtspsrc: Fix state changes from PAUSED to PLAYING"

and commit 76d624b2df5594a82269b94dffe8766a372d059d:
"rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/908>

3 years agortpjitterbuffer: Fix parsing of the mediaclk:direct= field
Sebastian Dröge [Tue, 16 Mar 2021 17:25:36 +0000 (19:25 +0200)]
rtpjitterbuffer: Fix parsing of the mediaclk:direct= field

Due to an off-by-one when parsing the string, the most significant digit
or the clock offset was skipped when parsing the offset.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/907>

3 years agortspsrc: Fix state changes from PAUSED to PLAYING
Nirbheek Chauhan [Mon, 15 Mar 2021 18:38:43 +0000 (00:08 +0530)]
rtspsrc: Fix state changes from PAUSED to PLAYING

This was accidentally broken in the last commit that touched this
because I missed the fall-through in the case immediately above this.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/906>

3 years agomatroskademux: Fix extraction of multichannel WavPack
Sebastian Dröge [Thu, 4 Mar 2021 11:05:19 +0000 (13:05 +0200)]
matroskademux: Fix extraction of multichannel WavPack

The old code had a couple of issues that all lead to potential memory
safety bugs.

  - Use a constant for the Wavpack4Header size instead of using sizeof.
    It's written out into the data and not from the struct and who knows
    what special alignment/padding requirements some C compilers have.
  - gst_buffer_set_size() does not realloc the buffer when setting a
    bigger size than allocated, it only allows growing up to the maximum
    allocated size. Instead use a GstAdapter to collect all the blocks
    and take out everything at once in the end.
  - Check that enough data is actually available in the input and
    otherwise handle it an error in all cases instead of silently
    ignoring it.

Among other things this fixes out of bounds writes because the code
assumed gst_buffer_set_size() can grow the buffer and simply wrote after
the end of the buffer.

Thanks to Natalie Silvanovich for reporting.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/859

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>

3 years agomatroskademux: Initialize track context out parameter to NULL before parsing
Sebastian Dröge [Wed, 3 Mar 2021 09:31:52 +0000 (11:31 +0200)]
matroskademux: Initialize track context out parameter to NULL before parsing

Various error return paths don't set it to NULL and callers are only
checking if the pointer is NULL. As it's allocated on the stack this
usually contains random stack memory, and more often than not the memory
of a previously parsed track.

This then causes all kinds of memory corruptions further down the line.

Thanks to Natalie Silvanovich for reporting.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/858

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/902>

3 years agortspsrc: Do not send PAUSE command when going to GST_STATE_NULL
Nirbheek Chauhan [Mon, 15 Mar 2021 07:27:19 +0000 (12:57 +0530)]
rtspsrc: Do not send PAUSE command when going to GST_STATE_NULL

This usually doesn't matter, but it is disruptive when streaming from
a shared media since it will pause all other clients when any client
exits.

This new behaviour is opt-in and should be safe because you need to
set the NULL state on rtspsrc directly, instead of just on the
pipeline. See the updated documentation for an explanation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/901>

3 years agov4l2object: handle GST_VIDEO_TRANSFER_BT601
Philipp Zabel [Mon, 18 Jan 2021 14:54:43 +0000 (15:54 +0100)]
v4l2object: handle GST_VIDEO_TRANSFER_BT601

V4L2 makes no difference between the BT.601 and BT.709 transfer
functions [1], but GStreamer does since 1.18 [2].

Adapt gst_v4l2_object_get_colorspace() and
gst_v4l2_object_set_format_full().

[1] https://linuxtv.org/downloads/v4l-dvb-apis-new/userspace-api/v4l/colorspaces-details.html#colorspace-smpte-170m-v4l2-colorspace-smpte170m
[2] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/724

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/856>

3 years agortspsrc: fix title of a few properties docstrings
Mathieu Duponchelle [Thu, 11 Mar 2021 21:22:15 +0000 (22:22 +0100)]
rtspsrc: fix title of a few properties docstrings

GstRtspSrc -> GstRTSPSrc

This would have been noticed by the since checker, but those
properties were introduced prior to that.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/899>

3 years agowavpackdec: Add floating point format support
Vladimir Menshakov [Sun, 7 Mar 2021 21:25:01 +0000 (21:25 +0000)]
wavpackdec: Add floating point format support

This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file.
Wavpack float mode is always in 32-bit IEEE format.

The following pipeline plays distorted audio if source file is encoded in float mode:
gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/894>

3 years agomatroska: also support push-mode from seek events sent to the element
Matthew Waters [Thu, 4 Mar 2021 05:40:06 +0000 (16:40 +1100)]
matroska: also support push-mode from seek events sent to the element

Otherwise sending seek events would fail to actually seek.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/891>

3 years agogstrtspsrc: 551 should not result in an unhandled error
Marc Leeman [Fri, 26 Feb 2021 09:49:10 +0000 (10:49 +0100)]
gstrtspsrc: 551 should not result in an unhandled error

Some cameras (e.g. HikVision DS-2CD2732F-IS) return "551 Option
not supported" when a command is sent that is not implemented
(e.g. PAUSE). Instead; it should return "501 Not Implemented".

This is wrong, as previously, the camera did announce support for PAUSE
in the OPTIONS.

In this case, handle the 551 as if it was 501 to avoid throwing errors
to application level. */

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/885>

3 years agov4l2videodec: Do not expose profiles/levels in vp8/vp9 template caps
Hou Qi [Mon, 1 Mar 2021 06:32:40 +0000 (14:32 +0800)]
v4l2videodec: Do not expose profiles/levels in vp8/vp9 template caps

Vp8/vp9 supported profiles/levels are listed in decoder sink caps, but
there is no parser for these two formats and the demuxers also don't have
these information. It causes negotiation fail between demuxers and decoder
when check caps "accept = gst_caps_is_subset (caps, template_caps);".
To fix this, need to remove profiles/levels for vp8/vp9 formats in decoder
sink caps.

Fix #854

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/887>

3 years agortpmanager: Fix an MSVC compile warning
Seungha Yang [Wed, 3 Mar 2021 09:30:39 +0000 (18:30 +0900)]
rtpmanager: Fix an MSVC compile warning

We don't expect this object is a part of public library.

gstrtphdrext-twcc.c(45): warning C4273: 'gst_rtp_header_extension_twcc_get_type': inconsistent dll linkage

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/889>

3 years agov4l2videodec: fix src side frame rate negotiation
Philipp Zabel [Wed, 24 Feb 2021 12:25:43 +0000 (13:25 +0100)]
v4l2videodec: fix src side frame rate negotiation

Negotiating v4l2h264dec ! v4l2h264enc transcoding pipelines fails in
case the encoder does not accept framerate=(fraction)0/1.
The acquired caps used for downstream negotiation are determined from
gst_v4l2_object_acquire_format(), which sets the GstVideoInfo::fps_n
and ::fps_d fields to 0.
To fix this, copy the frame rate from the sink side.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/882>

3 years agorpicamsrc: depend on posix threads and vchiq_arm
Jordan Petridis [Tue, 16 Feb 2021 14:20:05 +0000 (16:20 +0200)]
rpicamsrc: depend on posix threads and vchiq_arm

Could only test on rpi 3b+

Close #839

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/875>

3 years agov4l2bufferpool: Silence traces around unsupported source change
Nicolas Dufresne [Thu, 11 Feb 2021 19:48:07 +0000 (14:48 -0500)]
v4l2bufferpool: Silence traces around unsupported source change

Don't be too spamy about unsupported source change flags as these will be
commonly extended in the future.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Move preferred resolution query before the probe
Nicolas Dufresne [Thu, 11 Feb 2021 19:24:29 +0000 (14:24 -0500)]
v4l2src: Move preferred resolution query before the probe

As we lock the DV_TIMINGS (and standards in the future), we need to probe the
caps after, otherwise, we may endup fixating to an unsupported resolution,
which would lead to a not-negotiated error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Calculate framerate from DV timings
Nicolas Dufresne [Wed, 10 Feb 2021 21:37:01 +0000 (16:37 -0500)]
v4l2src: Calculate framerate from DV timings

And use this framerate in our preference. Note that we also flush
the probed caps as it seems that the format enumeration may change
when a new source change event get triggered.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2rc: Add DV_TIMINGS query and locking
Nicolas Dufresne [Wed, 10 Feb 2021 20:52:55 +0000 (15:52 -0500)]
v4l2rc: Add DV_TIMINGS query and locking

This adds support to DV_TIMINGS query and locking. The timing width and
height is then used as a preference.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Force renegotiation on resolution change
Nicolas Dufresne [Wed, 10 Feb 2021 20:49:03 +0000 (15:49 -0500)]
v4l2src: Force renegotiation on resolution change

As mandated by the specification, make sure to cycle through streamoff
/ streamon regardless if the caps have changed or not.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2object: Remove unused streaming member
Nicolas Dufresne [Wed, 10 Feb 2021 19:52:14 +0000 (14:52 -0500)]
v4l2object: Remove unused streaming member

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Refactor to use PreferredCapsInfo structure
Nicolas Dufresne [Wed, 10 Feb 2021 15:48:48 +0000 (10:48 -0500)]
v4l2src: Refactor to use PreferredCapsInfo structure

Avoid passing around a bare structure for the preference, this removes
the need to copy and free that structure and simplify the code. Also
fix a type in the structure name, Prefered -> Preferred.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Stub preferred resolution support
Nicolas Dufresne [Mon, 8 Feb 2021 22:27:20 +0000 (17:27 -0500)]
v4l2src: Stub preferred resolution support

This stubs the ability to use preferred resolution from digital
video timings, analog TV standards or driver reported native
resolution.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2: Subscribe source_change for the current input
Nicolas Dufresne [Tue, 9 Feb 2021 19:44:02 +0000 (14:44 -0500)]
v4l2: Subscribe source_change for the current input

When we subscribe for source-change event, we need to specify for which
input. Make sure we subscribe for the current input.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Add input signal status detection
Nicolas Dufresne [Mon, 8 Feb 2021 22:26:20 +0000 (17:26 -0500)]
v4l2src: Add input signal status detection

As part of the support to select a preferred size, we can also
detect the signal status. This is a split patch so that feature
is separated to ease review.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2: Add helper to query input status
Nicolas Dufresne [Mon, 8 Feb 2021 22:24:00 +0000 (17:24 -0500)]
v4l2: Add helper to query input status

This is a wrapper around ENUM_INPUT renamed for readability.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2: Fix input/output index sign
Nicolas Dufresne [Mon, 8 Feb 2021 22:22:37 +0000 (17:22 -0500)]
v4l2: Fix input/output index sign

This is an unsigned integer in the kernel API.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2src: Add source resolution change support
Nicolas Dufresne [Thu, 4 Feb 2021 21:59:44 +0000 (16:59 -0500)]
v4l2src: Add source resolution change support

This patch adds support for source resolution change detection.
Resolution change is signaled by drivers when a change in the detected
signal have been detected. This is notably seen on HDMI receivers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2bufferpool: Handle resolution change event
Nicolas Dufresne [Thu, 4 Feb 2021 19:13:32 +0000 (14:13 -0500)]
v4l2bufferpool: Handle resolution change event

This patch adds the detection, dequeuing and reporting of the SOURCE_CHANGE
event when the CH_RESOLUTION flag is set. The acquire function will now return
a new custom success called GST_V4L2_FLOW_RESOLUTION_CHANGE. In order to use
this new feature, elements must enable it by calling:

  gst_v4l2_buffer_pool_enable_resolution_change (pool);

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2object: Add event helpers
Nicolas Dufresne [Thu, 4 Feb 2021 16:01:38 +0000 (11:01 -0500)]
v4l2object: Add event helpers

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2bufferpool: use FLOW_LAST_BUFFER
Nicolas Dufresne [Thu, 4 Feb 2021 15:10:34 +0000 (10:10 -0500)]
v4l2bufferpool: use FLOW_LAST_BUFFER

This uses the GST_V4L2_FLOW_LAST_BUFFER alias instead of
GST_FLOW_CUSTOM_SUCCESS to make the code more readable.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/870>

3 years agov4l2object: prefer NV12 over I420
Lucas Stach [Mon, 10 Dec 2018 13:10:05 +0000 (14:10 +0100)]
v4l2object: prefer NV12 over I420

Considering NV12 an 'odd' format is a historical artifact. This format
is now quite common, and usually preferable to I420 due to more memory
friendly access patterns.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/857>

3 years agowavparse: fix seeking in READY state
Guillaume Desmottes [Thu, 18 Feb 2021 09:34:25 +0000 (10:34 +0100)]
wavparse: fix seeking in READY state

wavparse claims to be able to support seeking in the READY state by
saving the pending seek event and actually seeking later after having parsed the
header.
Problem was that this seek event was reset on the READY to PAUSED
transition, making all this code useless. Fixing it by stop resetting
on READY to PAUSED transition as we already reset on PAUSED to READY
and when initiating the element.

Note that DTS marker detection isn't support in such scenario as
gst_type_find_helper_for_buffer() needs a buffer containing the
beginning of the stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>

3 years agotests: wavparse: factor out create_pipeline()
Guillaume Desmottes [Thu, 18 Feb 2021 09:05:03 +0000 (10:05 +0100)]
tests: wavparse: factor out create_pipeline()

No semantic change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/879>

3 years agodocs: update plugins cache with new h264 / vp8 depay properties
Mathieu Duponchelle [Wed, 17 Feb 2021 23:34:02 +0000 (00:34 +0100)]
docs: update plugins cache with new h264 / vp8 depay properties

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>

3 years agortph264depay: expose request-keyframe property
Mathieu Duponchelle [Wed, 9 Dec 2020 00:40:45 +0000 (01:40 +0100)]
rtph264depay: expose request-keyframe property

When set, the depayloader will request new keyframes on packet
loss

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>

3 years agortpvp8depay: expose request-keyframe property
Mathieu Duponchelle [Wed, 9 Dec 2020 00:34:20 +0000 (01:34 +0100)]
rtpvp8depay: expose request-keyframe property

When set, the depayloader will request new keyframes on packet
loss

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>

3 years agortph264depay: expose wait-for-keyframe property
Mathieu Duponchelle [Wed, 9 Dec 2020 00:24:57 +0000 (01:24 +0100)]
rtph264depay: expose wait-for-keyframe property

Similar to rtpvp8depay, when packet loss occurs, the depayloader
starts waiting for a keyframe.

We try to only stop waiting when all the packets for the new keyframe
have been received, by only resetting waiting_for_keyframe when
encountering the first packet of a keyframe, this is slightly
fragile because there is no bit that explicitly marks the start
of an access unit, so we rely on the existing picture_start
detection code.

As a consequence, the property is only meaningful when outputting
access units, and is ignored when outputting NALs directly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/834>

3 years agovideomixer: document as deprecated
Mathieu Duponchelle [Wed, 17 Feb 2021 23:36:43 +0000 (00:36 +0100)]
videomixer: document as deprecated

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/878>

3 years agowavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code...
Ashley Brighthope [Tue, 16 Feb 2021 11:20:17 +0000 (22:20 +1100)]
wavenc: Fixed INFO chunk corruption, caused by odd sized data not being padded. Code style was updated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/873>

3 years agortpopuspay: add info regarding (non-standard) multichannel support
Jakub Adam [Mon, 7 Dec 2020 18:51:35 +0000 (19:51 +0100)]
rtpopuspay: add info regarding (non-standard) multichannel support

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agodocs: update plugins cache for rtpopus
Jakub Adam [Mon, 7 Dec 2020 15:50:01 +0000 (16:50 +0100)]
docs: update plugins cache for rtpopus

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agotests: add rtpopus multichannel test cases
Jakub Adam [Tue, 1 Dec 2020 19:09:58 +0000 (20:09 +0100)]
tests: add rtpopus multichannel test cases

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agortpopusdepay: support libwebrtc-compatible multichannel payload
Jakub Adam [Tue, 1 Dec 2020 15:43:32 +0000 (16:43 +0100)]
rtpopusdepay: support libwebrtc-compatible multichannel payload

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agortpopuspay: support libwebrtc-compatible multichannel payload
Jakub Adam [Mon, 30 Nov 2020 20:49:48 +0000 (21:49 +0100)]
rtpopuspay: support libwebrtc-compatible multichannel payload

When the audio has more than 2 channels, add optional fields to output
caps from which webrtcbin can generate SDP in the syntax recognized by
"multiopus" codec present in libwebrtc [1].

e.g. for 5.1 audio:

a=rtpmap:96 multiopus/48000/6
a=fmtp:96 num_streams=4;coupled_streams=2;channel_mapping=0,4,1,2,3,5

[1] https://webrtc-review.googlesource.com/c/src/+/129768

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agortpopuspay: make use of gst_rtp_base_payload_set_outcaps_structure()
Jakub Adam [Mon, 30 Nov 2020 21:10:14 +0000 (22:10 +0100)]
rtpopuspay: make use of gst_rtp_base_payload_set_outcaps_structure()

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/832>

3 years agoeffectv: Remove redundant license file
Olivier Crête [Wed, 10 Feb 2021 00:31:28 +0000 (19:31 -0500)]
effectv: Remove redundant license file

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/869>

3 years agoApply 1 suggestion(s) to 1 file(s)
Kevin Song [Fri, 5 Feb 2021 00:55:12 +0000 (00:55 +0000)]
Apply 1 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>

3 years agoApply 1 suggestion(s) to 1 file(s)
Kevin Song [Fri, 5 Feb 2021 00:55:04 +0000 (00:55 +0000)]
Apply 1 suggestion(s) to 1 file(s)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>

3 years agov4l2videoenc: support resolution change stream encode.
Bing Song [Thu, 4 Feb 2021 05:43:17 +0000 (13:43 +0800)]
v4l2videoenc: support resolution change stream encode.

Resolution change stream transcoding will drain before send new video
frame buffer. Need encode video frame after process EOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/868>

3 years agoqtdemux: added support for cbcs encryption scheme
Xabier Rodriguez Calvar [Thu, 4 Feb 2021 10:44:53 +0000 (11:44 +0100)]
qtdemux: added support for cbcs encryption scheme

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/865>

3 years agortp: add rtphdrextrfc6464
Guillaume Desmottes [Thu, 21 Jan 2021 17:04:58 +0000 (18:04 +0100)]
rtp: add rtphdrextrfc6464

Header Extension for Client-to-Mixer Audio Level Indication as
defined in RFC 6464.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>

3 years agolevel: add GstRTPAudioLevelMeta on buffers
Guillaume Desmottes [Tue, 16 Jun 2020 10:01:30 +0000 (12:01 +0200)]
level: add GstRTPAudioLevelMeta on buffers

This meta can be used by a RTP payloader to send the level information
to the peer.

Part of https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/446

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/630>

3 years agodeinterlace: Provide documentation for GST_DEINTERLACE_BUFFER_STATE
Robert Swain [Wed, 3 Feb 2021 15:10:20 +0000 (17:10 +0200)]
deinterlace: Provide documentation for GST_DEINTERLACE_BUFFER_STATE

More information available in
https://gstconf.ubicast.tv/videos/interlacing-and-telecine-in-gstreamer/

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>

3 years agodeinterlace: Fix telecine/onefield mixup
Vivia Nikolaidou [Sat, 30 Jan 2021 14:16:13 +0000 (16:16 +0200)]
deinterlace: Fix telecine/onefield mixup

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/838

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>

3 years agodeinterlace: Better alternate support
Vivia Nikolaidou [Sat, 30 Jan 2021 13:49:23 +0000 (15:49 +0200)]
deinterlace: Better alternate support

Improve line offset halving based on whether this field is top or
bottom.

Also handle the buffer state the same as mixed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/866>

3 years agov4l2h265codec: fix HEVC profile string issue.
Bing Song [Wed, 13 Jan 2021 17:12:06 +0000 (01:12 +0800)]
v4l2h265codec: fix HEVC profile string issue.

Keep HEVC profile compatible with other module.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/850>

3 years agov4l2object: Need keep same transfer as input caps.
Bing Song [Tue, 15 Dec 2020 02:41:40 +0000 (10:41 +0800)]
v4l2object: Need keep same transfer as input caps.

GST_VIDEO_TRANSFER_BT2020_12 and GST_VIDEO_TRANSFER_BT2020_10 will
be mapped to V4L2_XFER_FUNC_709. Need check input caps when map
V4L2_XFER_FUNC_709 back to GST_VIDEO_TRANSFER_BT2020_12 and
GST_VIDEO_TRANSFER_BT2020_10

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/816
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/841>

3 years agortspsrc: Do not wait for response while flushing
Tobias Ronge [Mon, 7 Dec 2020 09:01:53 +0000 (10:01 +0100)]
rtspsrc: Do not wait for response while flushing

Due to the may_cancel flag in GstRTSPConnection, receiving might not get
cancelled when supposed to. In this case, gst_rtsp_src_receive_response
will have to wait until timeout instead but if busy receiving RTP
data, this timeout will never occur.

With this patch, gst_rtsp_src_receive_response returns GST_RTSP_EINTR
if flushing is set to TRUE instead of continuing to receive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/831>

3 years agomeson: allow libdv subproject fallback
Tim-Philipp Müller [Thu, 14 Jan 2021 19:13:03 +0000 (19:13 +0000)]
meson: allow libdv subproject fallback

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/854>

3 years agoqtdemux: Allow streams with no specified protection system ID
Xabier Rodriguez Calvar [Mon, 21 Dec 2020 12:55:58 +0000 (13:55 +0100)]
qtdemux: Allow streams with no specified protection system ID

This is necessary in cases like CMAF where there won't be any events
passing thru.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/852>

3 years agov4l2object: Map correct video format for RGBA
Hou Qi [Thu, 7 Jan 2021 08:57:27 +0000 (16:57 +0800)]
v4l2object: Map correct video format for RGBA

Map V4L2_PIX_FMT_RGBA32 pixel format to GST_VIDEO_FORMAT_RGBA instead of
GST_VIDEO_FORMAT_RGB video format to support RGBA.

Fixes #823

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/848>

3 years agoudpsrc: Fix marker links
Sanchayan Maity [Sat, 2 Jan 2021 07:36:16 +0000 (13:06 +0530)]
udpsrc: Fix marker links

These should be with a single ':'. The double '::' results in a CI with
build failure message like below.

ERROR: [links]: (mandatory-link-not-found): Mandatory link Link GstSocketTimestamp -> None (GstSocketTimestamp) could not be resolved
ERROR: [check-missing-since-markers]: (missing-since-marker): Missing since marker for udpsrc:socket-timestamp
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>

3 years agoudpsrc: Allow use of socket control message timestamps for DTS
Sanchayan Maity [Thu, 17 Dec 2020 05:54:07 +0000 (11:24 +0530)]
udpsrc: Allow use of socket control message timestamps for DTS

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/828>

3 years agovideoflip: fix possible crash when setting the video-direction while running
Matthew Waters [Wed, 9 Dec 2020 09:20:18 +0000 (20:20 +1100)]
videoflip: fix possible crash when setting the video-direction while running

A classic case of not enough locking.

One interesting thing with this is the interaction between the
rotation value and caps negotiation.  i.e. the width/height of the caps
can be swapped depending on the video-direction property.  We can't lock
the entirety of the caps negotiation for obvious reasons so we need to
do something else.  This takes the approach of trying to use a single
rotation value throughout the entirety of the negotiation and then
subsequent output frame in a kind of latching sequence.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/792
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>

3 years agotests: add tests for videoflip
Matthew Waters [Wed, 9 Dec 2020 08:49:47 +0000 (19:49 +1100)]
tests: add tests for videoflip

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/836>

3 years agodeinterlace: force -DPREFIX on macos
Ignacio Casal Quinteiro [Wed, 30 Dec 2020 12:38:46 +0000 (13:38 +0100)]
deinterlace: force -DPREFIX on macos

This is due to a bug in meson where it will not detect properly
the compiler if the symbols need an undercore.
https://github.com/mesonbuild/meson/issues/5482

Fixes #821

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/845>

3 years agortspsrc: Use proper types instead of G_TYPE_POINTER for the RTSP messages in the...
Sebastian Dröge [Tue, 15 Dec 2020 09:36:27 +0000 (11:36 +0200)]
rtspsrc: Use proper types instead of G_TYPE_POINTER for the RTSP messages in the "handle-request" signal

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/842>

3 years agosplitmuxsink: Avoid deadlock when releasing a pad from a running muxer
Vivia Nikolaidou [Thu, 10 Dec 2020 12:27:49 +0000 (14:27 +0200)]
splitmuxsink: Avoid deadlock when releasing a pad from a running muxer

Might not drain correctly

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/838>

3 years agov4l2object: Use active resolution during fallback colorspace probe
Hou Qi [Fri, 11 Dec 2020 03:24:14 +0000 (11:24 +0800)]
v4l2object: Use active resolution during fallback colorspace probe

For legacy drivers that don't implement ENUM_FRAMESIZE, use active
resolution to probe colorspace. This can improve the accuracy of the
result when the colorspace depends on the resolution. This fixes a
wrong colorspace issue on board with vendor bsp at resolution 2560x1440.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/830>

3 years agortpst2022-1-fecdec: don't xor out of bounds
Mathieu Duponchelle [Sat, 12 Dec 2020 03:02:37 +0000 (04:02 +0100)]
rtpst2022-1-fecdec: don't xor out of bounds

When reconstituting packets from a stream with variable packet
sizes, don't xor larger packets past the length of the protected
packet

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>

3 years agortpst2022-1-fecenc: memset when reallocating xored payload
Mathieu Duponchelle [Sat, 12 Dec 2020 03:00:41 +0000 (04:00 +0100)]
rtpst2022-1-fecenc: memset when reallocating xored payload

When protecting packets with a variable payload length, we
reallocate the xored payload when needed. It is a good idea
to memset the extended memory to 0 so that we don't xor
data with garbage!

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>

3 years agortpst2022-1-fec-*: protect additional RTP header fields
Mathieu Duponchelle [Sat, 12 Dec 2020 02:56:11 +0000 (03:56 +0100)]
rtpst2022-1-fec-*: protect additional RTP header fields

While the standard is a bit vague about whether the padding,
extension and marker bits should be protected:

> The usage, by senders and receivers, of the following bits shall
> be defined by the associated video/audio transport standards:

It is obviously necessary and useful for some formats (eg VP8)
that those indeed be protected.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/839>

3 years agosplitmuxsink: Unit test - check format/opened/closed sequence
Jan Schmidt [Fri, 11 Dec 2020 16:28:56 +0000 (03:28 +1100)]
splitmuxsink: Unit test - check format/opened/closed sequence

Check the sequence of format-location/fragment-opened/fragment-closed
events is respected. There should be 1 format-location call for each
fragment-opened message, and 1 fragment-closed for each.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>

3 years agosplitmuxsink: Fix for 'reference bytes muxed' check.
Jan Schmidt [Tue, 8 Dec 2020 13:40:52 +0000 (00:40 +1100)]
splitmuxsink: Fix for 'reference bytes muxed' check.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/798
introduced a check in the need-new-fragment logic to avoid starting a
new fragment unless there has been some data on the reference stream,
but the check is done against the number of bytes that have been
received on the input, not the number that were released for output
into the current fragment.

Fix the check to remember and test against bytes that have been sent
for output.

This also fixes a problem where starting a new fragment fails to
request a new filename from the format-location signal.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>

3 years agosplitmuxsink: Add debug for fragment opened/closed msgs
Jan Schmidt [Mon, 14 Sep 2020 14:27:24 +0000 (00:27 +1000)]
splitmuxsink: Add debug for fragment opened/closed msgs

When posting fragment-opened and fragment-closed messages,
put a debug statement in the logs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>

3 years agosplitmuxsink: Convert asserts into element errors.
Jan Schmidt [Tue, 18 Aug 2020 06:06:14 +0000 (16:06 +1000)]
splitmuxsink: Convert asserts into element errors.

Change some g_assert into element errors so that they can be
caught and the pipeline shut down.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/833>