George Kiagiadakis [Sat, 19 Jan 2019 14:37:45 +0000 (15:37 +0100)]
qmlgl: qmake: add support for MacOS target
George Kiagiadakis [Sat, 19 Jan 2019 14:21:43 +0000 (15:21 +0100)]
qmlgl: qmake: remove cerbero's include dir from the include path
pkg-config should do it's job here, this is unnecessary and implies using cerbero
George Kiagiadakis [Sat, 19 Jan 2019 14:19:26 +0000 (15:19 +0100)]
qmlgl: qualify Qt includes with their module and remove module include dir from the .pro file
it is perfectly legal to use the <module/class> style of includes with Qt
and it avoids the need for having the module's include dir in the include path
George Kiagiadakis [Sat, 19 Jan 2019 14:10:09 +0000 (15:10 +0100)]
qmlgl: qmake: don't link against QtWidgets, it's not used
George Kiagiadakis [Sat, 19 Jan 2019 14:07:44 +0000 (15:07 +0100)]
qmlgl: qmake: fix building for android
Nirbheek Chauhan [Fri, 18 Jan 2019 21:09:32 +0000 (02:39 +0530)]
meson: Generate pkg-config file for qmlgl plugin
Victor Toso [Thu, 17 Jan 2019 15:26:56 +0000 (16:26 +0100)]
tests: rtp-payloading avoid -Wmaybe-uninitialized
More false positives as both of them are initialized in the line
before they are used, wrapped with fail_unless() check.
Victor Toso [Thu, 17 Jan 2019 15:19:40 +0000 (16:19 +0100)]
tests: matroskamux avoid -Wmaybe-uninitialized
False positive for the three variables but some warnings like:
../tests/check/elements/matroskamux.c:875:10:
warning: 'chapters_offset' may be used uninitialized in this function [-Wmaybe-uninitialized]
*index = chapters_offset;
~~~~~~~^~~~~~~~~~~~~~~~~
The above is false positive as there is a gboolean to check if it was
initialized or not (found_chapters_declaration).
Arun Raghavan [Mon, 28 May 2018 09:09:53 +0000 (14:39 +0530)]
pulse: Fix format info to caps conversion for PCM
Arun Raghavan [Fri, 18 Jan 2019 06:57:34 +0000 (12:27 +0530)]
Revert "pulsesrc: Move to extended stream API"
This reverts commit
4d67d1bd16bcf25acf89d8acd952badcd5b9a657.
Using the extended API for the capture path depends on a fix in
PulseAudio
(https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/49).
Until then, let's go back to the standard API.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/552
Nirbheek Chauhan [Fri, 18 Jan 2019 09:11:14 +0000 (14:41 +0530)]
meson: Search for qmake-qt5 before qmake
The canonical name for the binary is qmake-qt5, and qmake is the
generic name that can also be a qt4 qmake.
Guillaume Desmottes [Thu, 17 Jan 2019 14:30:25 +0000 (15:30 +0100)]
v4l2: mark caps from probe as MAY_BE_LEAKED
Guillaume Desmottes [Tue, 15 Jan 2019 17:06:11 +0000 (18:06 +0100)]
v4l2transform: fix cdata caps leaks
The cdata structure was freed but not its caps.
It was already done in gst_v4l2_video_dec_subclass_init() and
gst_v4l2_video_enc_subclass_init().
Tim-Philipp Müller [Thu, 17 Jan 2019 01:59:28 +0000 (01:59 +0000)]
Release 1.15.1
Tim-Philipp Müller [Thu, 17 Jan 2019 01:59:28 +0000 (01:59 +0000)]
Update docs
Tim-Philipp Müller [Thu, 17 Jan 2019 01:59:18 +0000 (01:59 +0000)]
Update translations
Sebastian Dröge [Wed, 16 Jan 2019 12:11:44 +0000 (14:11 +0200)]
gtk/gl: Only unbind buffers/vertex attrib arrays if we can't directly bind the vertex array to 0
Binding the vertex array to 0 will unbind everything else already.
In the previous order older versions of the Intel GL driver caused
errors to be printed for every single call when disabling the vertex
attrib arrays after binding the vertex array to 0.
Tim-Philipp Müller [Wed, 16 Jan 2019 00:57:46 +0000 (00:57 +0000)]
meson: enable tests for orc code
Patrick Radizi [Thu, 29 Nov 2018 15:07:08 +0000 (16:07 +0100)]
rtspsrc: send GstRTSPSrcTimeout message on timeout
The GstRTSPSrcTimeout message is sent by the rtspsrc when it receives
the on-timeout signal from rtpsession. This can be used by an
application for error handling.
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/499
Sebastian Dröge [Wed, 9 Jan 2019 15:52:28 +0000 (17:52 +0200)]
flvdemux: Handle the encoder metadata the same as metadatacreator
And store it in our ENCODER tag.
Sebastian Dröge [Wed, 9 Jan 2019 15:48:36 +0000 (17:48 +0200)]
flvmux: Add encoder metadata to the header
And also add a property for setting this. By default it has the same
value as the metadatacreator metadata.
Various software is using encoder instead of metadatacreator, others are
using them both for different purposes. As such it's useful to have
support for setting both here.
Arun Raghavan [Mon, 28 May 2018 09:11:05 +0000 (14:41 +0530)]
pulsesrc: Move to extended stream API
This is needed as a precursor to allowing capture of IEC61937
formats. We now also need to include the channel map while converting
format info to caps so that a correct channel mask is generated for
pulsesrc's caps.
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 15:27:16 +0000 (16:27 +0100)]
test: rtph265pay: Verify we only mark the last fragment
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 15:24:54 +0000 (16:24 +0100)]
test: rtph265pay: Use a bigger test frame
The existing frame's last slice is too small to be used for
fragmentation tests.
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 14:59:16 +0000 (15:59 +0100)]
test: rtph264pay: Verify we only mark the last fragment
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 15:25:36 +0000 (16:25 +0100)]
rtph265pay: Only mark the last fragment of an AU
Commit
e721071dcac9f231e5e10b4bb31323658a6cdd1a removed the check for
the end of fragmentation. As a result, all fragments of an AU's last
NALU were marked.
Jan Alexander Steffens (heftig) [Wed, 9 Jan 2019 14:56:51 +0000 (15:56 +0100)]
rtph264pay: Only mark the last fragment of an AU
Commit
4add820cce278213ede3d5fce427ea92e0619b6f removed the check for
the end of fragmentation. As a result, all fragments of an AU's last
NALU were marked.
Potential fix for https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/540
Sebastian Dröge [Wed, 9 Jan 2019 09:48:52 +0000 (11:48 +0200)]
splitmuxsrc: Refactor part preparation code and remove "prepared" signal from reader helper object
We don't need a special signal anymore but can directly work with
async-done
Sebastian Dröge [Wed, 9 Jan 2019 09:42:36 +0000 (11:42 +0200)]
splitmuxsrc: Implement state change asynchronously instead of blocking
Blocking in change_state() is a recipe for disaster, even more so if
we wait for another thread that also calls into various element API and
could then lead to deadlocks on e.g. the state lock.
Marc-André Lureau [Sat, 5 Jan 2019 19:10:46 +0000 (23:10 +0400)]
pulsesrc: fix checking for invalid stream index
PA_INVALID_INDEX, the default value, is unfortunately !0.
Setting the volume before the stream is created will put the ring
buffer in error state. Unfortunately, that's what spice-gtk does.
Sebastian Dröge [Thu, 20 Dec 2018 10:14:46 +0000 (12:14 +0200)]
qtdemux: Split CEA608 buffers correctly so that each output buffer represents a single frame
Sebastian Dröge [Thu, 20 Dec 2018 09:45:36 +0000 (11:45 +0200)]
qtdemux: Refactor buffer pushing into its own function
Sebastian Dröge [Thu, 20 Dec 2018 09:31:58 +0000 (11:31 +0200)]
qtdemux: Extract CEA608 framerate from the (first) video stream
EA608 closed caption tracks are a bit special in that each sample
can contain CCs for multiple frames, and CCs can be omitted and have to
be inferred from the duration of the sample then.
As such we take the framerate from the (first) video track here for
CEA608 as there must be one CC byte pair for every video frame
according to the spec.
For CEA708 all is fine and there is one sample per frame.
Seungha Yang [Sun, 30 Dec 2018 12:55:28 +0000 (21:55 +0900)]
tests: Enable more unit tests on Windows
Seungha Yang [Sun, 30 Dec 2018 12:54:44 +0000 (21:54 +0900)]
tests: Remove pointless unistd.h include
Seungha Yang [Wed, 26 Dec 2018 11:27:58 +0000 (20:27 +0900)]
matroskademux: Don't leak allocated index memory
Don't forget to free returned memory from _search_pos()
Tim-Philipp Müller [Tue, 25 Dec 2018 14:31:44 +0000 (15:31 +0100)]
tests: dist new rtph265.rtp file
Fixes make distcheck.
Tim-Philipp Müller [Tue, 25 Dec 2018 13:51:38 +0000 (14:51 +0100)]
audiofx: add stereo element which was moved from -bad to build
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/457
Tim-Philipp Müller [Tue, 25 Dec 2018 12:07:23 +0000 (13:07 +0100)]
Move stereo plugin from -bad
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/457
Philippe Normand [Sat, 22 Dec 2018 16:55:51 +0000 (17:55 +0100)]
qtdemux: Offset correction for track language code parsing
The duration field being a uint64, is stored in 8 bytes, not 4. So the offset of
the following field, language code, needs to be updated accordingly so that the
parsed language code is not garbage.
Juan Navarro [Fri, 21 Dec 2018 09:59:22 +0000 (10:59 +0100)]
rtspsrc: Accept NULL for "port-range" property
The documentation of "port-range" implies that passing NULL should be
valid, but currently it is not. Without this check, the sscanf() call
will crash.
Mathieu Duponchelle [Wed, 19 Dec 2018 13:28:54 +0000 (14:28 +0100)]
Revert "rtpbin: receive bundle support"
This reverts commit
dcd3ce9751cdef0b5ab1fa118355f92bdfe82cb3.
This functionality was implemented for gstopenwebrtc, but it
turned out this was not actually needed for webrtc bundling
support, as shown in webrtcbin. It also doesn't correspond
to any standards.
This is an API break, but nothing should actually depend on
this, at least not for its initial purpose.
Changes in rtpbin.c were reverted manually, to preserve some
refactoring that had occurred in the original commit.
Fixes #537
Nicolas Dufresne [Wed, 19 Dec 2018 16:36:37 +0000 (11:36 -0500)]
rtph264pay/rtph265pay: Fix use after free
We can't assume a buffer that has been pushed in the adapter is still
valid. This fixes a use after free detect when running test on jenkins.
KimTaeSoo [Wed, 19 Dec 2018 13:51:11 +0000 (22:51 +0900)]
tagschecking: Use gst_message_parse_warning in case of GST_MESSAGE_WARNING
Bus message handler of tags checking unit test uses gst_message_parse_error()
in case of GST_MESSAGE_ERROR and GST_MESAGE_WARNING.
If gst_message_parse_error() is called in case of GST_MESSAGE_WARNING, assert occurs.
So modified to use gst_message_parse_warning() in case of GST_MESSAGE_WARNING.
Nicolas Dufresne [Wed, 19 Dec 2018 14:51:10 +0000 (09:51 -0500)]
test: rtph264/265: Add libgstrtp in auto-tool makefile
Nicolas Dufresne [Tue, 18 Dec 2018 17:43:30 +0000 (12:43 -0500)]
test: rtph265: Copy and port tests from rtph264
This copy and port all the relevant tests from rtph264.
Nicolas Dufresne [Fri, 14 Dec 2018 22:54:36 +0000 (17:54 -0500)]
test: rtph264depay: Check the marker is converted to flag
Nicolas Dufresne [Fri, 14 Dec 2018 22:53:17 +0000 (17:53 -0500)]
test: rtph264depay: Check that EOS drains the depayloaded
In AU mode, the depayloader may have accumulated NALs, test that
these NALs are drained and not dropped.
Nicolas Dufresne [Fri, 14 Dec 2018 20:30:21 +0000 (15:30 -0500)]
test: rtph264pay: Add tests for marker bit
Test that marker bit is transferred when input buffer has the
marker flag set but also that it's set whenever the payloader
receives complete AU.
Nicolas Dufresne [Thu, 13 Dec 2018 20:57:24 +0000 (15:57 -0500)]
test: rtph264pay: Verify slices timestamp
This test make sure that timestamps are properly transfered
to each NALU.
Nicolas Dufresne [Tue, 4 Dec 2018 21:06:15 +0000 (16:06 -0500)]
test: rtph264pay: Add reserved nals test
Nicolas Dufresne [Tue, 18 Dec 2018 18:16:44 +0000 (13:16 -0500)]
rtph265pay: Don't wait for next nal when input is aligned
This is the same as what was done on rtph264pay in the patch
d5d28055c1e816e90e8c2d1151816b0c3e760ff3
Nicolas Dufresne [Tue, 18 Dec 2018 17:53:15 +0000 (12:53 -0500)]
rtph265depay: Drain on EOS event
Nicolas Dufresne [Tue, 18 Dec 2018 17:50:40 +0000 (12:50 -0500)]
rtph265depay: Factor out the code that push
This will be needed to implement draining on EOS.
Nicolas Dufresne [Mon, 17 Dec 2018 21:48:53 +0000 (16:48 -0500)]
rtph264depay: Drain on EOS event
Nicolas Dufresne [Fri, 14 Dec 2018 23:19:42 +0000 (18:19 -0500)]
rtph264depay: Factor out the code that push
This will be needed to implement draining on EOS.
Nicolas Dufresne [Fri, 14 Dec 2018 20:51:51 +0000 (15:51 -0500)]
rtph26xpay: Remove unused IS_ACCESS_UNIT macro
This macro is not longer used. It was secretly checking if that nal was
a slice, and confusingly name to that one may think it was checking if
the nal is an AUD.
Nicolas Dufresne [Wed, 3 Oct 2018 18:14:17 +0000 (14:14 -0400)]
rtph265pay: Fix reading timestamps from adapter
The code was reading the timestamp from the adapter before pushing the
new buffer into it. As a side effect, if the adapter was empty, we'd end
up using an older timestamp. In alignment=au, it means that all
timestamp was likely one frame in the past, while in alignment=nal, with
multiple slices per frame, the first slice would have the timestamp of
the previous one.
Nicolas Dufresne [Wed, 3 Oct 2018 17:46:08 +0000 (13:46 -0400)]
rtph265pay: Forward the marker bit as buffer flag
We have a buffer flag to represent the marker bit (when present).
Forward this bit by setting the buffer flag accordingly.
Nicolas Dufresne [Wed, 3 Oct 2018 17:44:56 +0000 (13:44 -0400)]
rtph265pay: Properly set the marker bit
The marker bit is used for efficient decoding. The assumption that
it should be set on the AUD is wrong, since the AUD is conceptually
starts the frame, while the marker is to indicate the end.
So properly set the marker bit as soon as we know we are ending an
AU and also whenever upstream have set the GST_BUFFER_FLAG_MARKER
flag.
Nicolas Dufresne [Tue, 25 Sep 2018 15:49:52 +0000 (11:49 -0400)]
rtph264pay: Fix reading timestamps from adapter
The code was reading the timestamp from the adapter before pushing the
new buffer into it. As a side effect, if the adapter was empty, we'd end
up using an older timestamp. In alignment=au, it means that all
timestamp was likely one frame in the past, while in alignment=nal, with
multiple slices per frame, the first slice would have the timestamp of
the previous one.
Nicolas Dufresne [Mon, 24 Sep 2018 19:31:12 +0000 (15:31 -0400)]
rtph264pay: Properly set the marker bit
The marker bit is used for efficient decoding. The assumption that
it should be set on the AUD is wrong, since the AUD is conceptually
starts the frame, while the marker is to indicate the end.
So properly set the marker bit as soon as we know we are ending an
AU and also whenever upstream have set the GST_BUFFER_FLAG_MARKER
flag.
Nicolas Dufresne [Mon, 24 Sep 2018 19:27:41 +0000 (15:27 -0400)]
rtph264depay: Forward the marker bit as buffer flag
We have a buffer flag to represent the marker bit (when present).
Forward this bit by setting the buffer flag accordingly.
Nicolas Dufresne [Fri, 21 Sep 2018 20:22:43 +0000 (20:22 +0000)]
rtph264pay: Protect against use of reserved NAL types
Don't allow external encoder to use one of the reserved NAL type
implicated in NAL aggreation. These out-of-spec NAL types, if passed
from the outside world will lead to an invalid RTP payload being
created.
Seungha Yang [Fri, 7 Dec 2018 12:46:12 +0000 (21:46 +0900)]
tests: Enable unit test on Windows
Allow run some unit tests on Windows.
* Remove hardcoded path separator in whitelist env for Meson to choose
OS-specific separator automatically (i.e., ';' for windows and ':' for *nix)
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
loaded on uninstalled environment of Windows.
Seungha Yang [Tue, 18 Dec 2018 11:39:40 +0000 (20:39 +0900)]
meson: Prefer to use join_paths() over '/'
... to avoid mixing '/' and '\' in a path string on Windows.
Jonny Lamb [Mon, 17 Dec 2018 18:04:37 +0000 (18:04 +0000)]
rtpulpfec: stop and start the harness when setting error-after
gstreamer!55 makes some changes to how the `error-after` counter works
which breaks this test. This change makes the test not rely on the
ability to alter `error-after` at runtime and explicitly stops and
starts the harness before pushing data.
An alternative would be to add another argument to
`harness_rtpulpfecdec` to set `error-after` on construction but that's
slightly more long-winded. so I went for this approach instead.
Fixes #532, even though that's already closed.
Mathieu Duponchelle [Mon, 17 Dec 2018 17:59:34 +0000 (18:59 +0100)]
tests: remove rtpaux test
The initial mission statement for this test was:
* demonstrate usage of the request-aux-* signals in rtpbin
* test the rtx elements
We have examples that serve the first use case, and better
(harnessed) tests for the second use case.
This test is slow and racy, it served its purpose but can now
be removed.
Fixes #533
Nicola Murino [Mon, 17 Dec 2018 18:18:43 +0000 (19:18 +0100)]
souphttpsrc: check difference in time from the last socket read before changing blocksize
If the pipeline consumes the data slower than the available network speed,
for example because sync=true, is useless to increase the blocksize and
reading in too big blocksizes can cause the connection to time out
Closes #463
Guillaume Desmottes [Wed, 8 Aug 2018 07:27:09 +0000 (09:27 +0200)]
v4l2: Avoid code duplication
The function gst_v4l2_object_add_interlace_mode() has repeating code so
it's best use a loop instead. That will make it easy and simple to add
additional interlace modes in a following patch.
Zeeshan Ali [Wed, 27 Jun 2018 21:20:33 +0000 (23:20 +0200)]
v4l2: Make use of gst_video_interlace_mode_to_string()
Instead of a custom map to translate the interlace modes to strings, let's
make use of the base API provided.
Nicola Murino [Mon, 17 Dec 2018 12:45:36 +0000 (13:45 +0100)]
osxcoreaudio: fix typo
kAudioFormatFlagIsSignedInteger is a format flags
Closes #394
Edward Hervey [Mon, 17 Dec 2018 08:33:39 +0000 (09:33 +0100)]
qtgl: Handle OPENGL header guard changes
In 2018 khronos changed the gl header guards. If we don't detect
this properly we would end up with plenty of symbol redifinition
(since we would be importing twice the "same" header).
Instead detect if the "newer" header was already included and if
so define the "old" define to avoid this situation
Fixes #523
Sebastian Dröge [Mon, 10 Dec 2018 15:34:03 +0000 (17:34 +0200)]
isomp4: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
For the demuxer we have to select line offset 0 for the time being as
this information is not passed over MOV.
Olivier Crête [Fri, 14 Dec 2018 01:45:23 +0000 (20:45 -0500)]
rtpjitterbuffer tests: Validate the number of buffers
Olivier Crête [Fri, 14 Dec 2018 00:17:43 +0000 (19:17 -0500)]
rtpjitterbuffer: Run all timers immediately on EOS
When the EOS event is received, run all timers immediately and avoid
pushing the EOS downstream before this has been run. This ensures that
the lost packet statistics are accurate.
Olivier Crête [Fri, 14 Dec 2018 00:16:11 +0000 (19:16 -0500)]
rtpjitterbuffer test: Stop jitterbuffer before pads to avoid race
The teardown of the pads checks the refcount, but there are timers
inside the jitterbuffer that can push things, so if we're not lucky,
things could be pushed while the pads are being shut down. Putting the
jitterbuffer to NULL first avoids this.
Nicolas Dufresne [Thu, 22 Nov 2018 15:41:29 +0000 (10:41 -0500)]
rtpjitterbuffer: Stop waiting after EOS
After EOS is received, it is pointless to wait for further events,
specially waiting on timers. This patches fixes two cases where we could
wait instead of returning GST_FLOW_EOS and trigger a spin of the loop
function when EOS is queued, regardless if this EOS is the queue head or
not.
Jochen Henneberg [Sat, 27 Oct 2018 11:41:46 +0000 (13:41 +0200)]
flacdec: Use new channel count for audio info
Jochen Henneberg [Sat, 27 Oct 2018 11:36:16 +0000 (13:36 +0200)]
flacdec: Caps may have changed on FLAC metadata change
If the decoder signals metadata change we need to update the output
format and negotiate with downstream elements.
Jochen Henneberg [Sat, 27 Oct 2018 11:28:56 +0000 (13:28 +0200)]
flacdec: Reset decoder on set_format()
Any call to set_format() could mean that the stream type changed so we
reset the decoder and mark got_headers FALSE.
Jochen Henneberg [Wed, 5 Dec 2018 17:42:55 +0000 (18:42 +0100)]
flacparse: On sink caps change restart parser
Draining the parser is not enough here, on caps change we need to
reset it so it is ready to accept new caps.
Jochen Henneberg [Tue, 4 Dec 2018 17:50:51 +0000 (18:50 +0100)]
rtpgstdepay: Update pad caps if inline caps change
If the inlined caps change while using the same CV we need to update the
source pad caps.
Justin Kim [Fri, 14 Dec 2018 03:21:58 +0000 (12:21 +0900)]
osxvideo: meson: Add dependencies by using appleframeworks
Otherwise, it fails to link.
gst-build#13
Sebastian Dröge [Fri, 7 Dec 2018 17:09:30 +0000 (19:09 +0200)]
cairooverlay: Optimize premultiplication/unpremultiplication loops
Pull in video frame fields into local variables. Without this the
compiler must assume that they could've changed on every use and read
them from memory again.
This reduces the inner loop from 6 memory reads per pixels to 4, and the
number of writes stays at 3.
Sebastian Dröge [Wed, 5 Dec 2018 17:37:13 +0000 (19:37 +0200)]
qtdemux: Put framerate into the closedcaption caps if it can be calculated from the stream
Using the same calculation used for video streams.
Sebastian Dröge [Wed, 5 Dec 2018 17:31:25 +0000 (19:31 +0200)]
qtmux: Set timescale of closedcaption tracks to the one of the main video track
Thibault Saunier [Wed, 5 Dec 2018 20:24:13 +0000 (17:24 -0300)]
Automatic update of common submodule
From ed78bee to 59cb678
Maciej Wolny [Mon, 19 Nov 2018 18:20:52 +0000 (18:20 +0000)]
Remove duplicate declarations
This causes 'redefinition of typedef ...' errors on GCC 4.5.3
Tim-Philipp Müller [Fri, 30 Nov 2018 23:56:12 +0000 (23:56 +0000)]
tests: rtpssrcdemux: fix uninstalled autotools build and distcheck
Alicia Boya García [Fri, 30 Nov 2018 18:29:30 +0000 (19:29 +0100)]
qtdemux: set need_segment after a second moov
stream.segment should be updated with the values of the current edit
list, also when a new `moov` is received. Unfortunately this was not
being the case because of an early return.
As a consequence of this bugs, no end of movie clipping was being
performed on the new moov and no segment event was being emitted.
When performing stream switching (e.g. in MSE) the new moov may have a
different edit list. This is often the case when switching between
baseline H.264 (which lacks B-frames) and more demanding profiles. For
this reason it's important to emit a new segment in order to be able
to get matching stream times.
Alicia Boya García [Thu, 29 Nov 2018 21:42:34 +0000 (22:42 +0100)]
qtdemux: Initialize QtDemuxStream.segment in its constructor
This patch moves the initialization of QtDemuxStream.segment from
gst_qtdemux_add_stream() to _create_stream(). This ensures the segment
is always initialized when the stream is created.
Otherwise the segment format is left as GST_FORMAT_UNDEFINED in the case
were a track is reparsed and qtdemux_reuse_and_configure_stream() is
called instead of gst_qtdemux_add_stream(). (See
qtdemux_expose_streams() in the non streams-aware case.)
Miguel Paris [Thu, 29 Nov 2018 12:48:33 +0000 (13:48 +0100)]
rtpsession: properly handle rtcp_feedback_retention_window
- Consider GST_CLOCK_TIME_NONE as not to be used.
- Complete "rtcp-feedback-retention-window" property getter/setter
implementation.
Miguel Paris [Thu, 29 Nov 2018 12:02:53 +0000 (13:02 +0100)]
rtpsource: properly prune RTCP packets out of feedback_retention_window
Closes #522
Miguel Paris [Thu, 29 Nov 2018 12:01:44 +0000 (13:01 +0100)]
rtpsource: properly compare buffer PTSs
Miguel Paris [Thu, 29 Nov 2018 11:58:18 +0000 (12:58 +0100)]
rtpsource: retain_rtcp_packet: warning if invalid running_time
Miguel Paris [Thu, 29 Nov 2018 11:55:38 +0000 (12:55 +0100)]
rtpsession: properly set the running_time for rtcp packet info
Nicolas Dufresne [Thu, 29 Nov 2018 19:54:06 +0000 (14:54 -0500)]
rtpssrcdemux: Rename confusingly name lock macros
This is an extra internal recurisve lock use to avoid having to take
both sink pad streams lock all the time. This patch renamed it
INTERLNAL_STREAM_LOCK/UNLOCK() to avoid confusion with possible upstream
GST_PAD API.
Nicolas Dufresne [Wed, 28 Nov 2018 22:14:11 +0000 (17:14 -0500)]
rtpssrcdemux: Hold on internal stream lock while pushing sticky
This reverts "
6f3734c305 rtpssrcdemux: Only forward stick events while
holding the sinkpad stream lock" and actually hold on the internal
stream lock. This prevents in some needed case having a second
streaming thread poping in and messing up event ordering.
Nicolas Dufresne [Tue, 27 Nov 2018 22:10:57 +0000 (17:10 -0500)]
test: rtpssrcdemux: Test event forwarding
This the first unit test of this element. It adds a test that verify
that events are forwarded correctly.