Commit graph

17139 commits

Author SHA1 Message Date
Thibault Saunier ffcd173c09 rtspsrc: Handle TCP as lower transport with RTSP 2.0
Meaning that the interleave fields have to be updated as
if streams setup was working when using pipelined setup
request. Otherwise there is a mismatch between the server
channel count and our own.

This also makes RTSP 2.0 over HTTP working.

https://bugzilla.gnome.org/show_bug.cgi?id=781446
2017-10-05 12:05:40 -03:00
Thibault Saunier 8121752887 rtsp: Start implementing support for RTSP 2.0
- Handle version negotation:

  Added a `default-version` property so that the user can configure
  what to use in case the server does not support version negotation
  (which actually exist)

- Handle pipelined requests, which allow avoiding full round trip to
  setup the RTP streams (request are sent in a raw, and response are
  handled as they arrive).

- Handle the new Media-Properties header

- Handle the new Seek-Style header

- Handle the new Accept-Ranges header

Handling of IPV6 should already be OK.

We are still missing (at least) the following features (which do not
seem really mandatory as they require a "persistent connection between
server and client"):

  - Server to Client TEARDOWN command (Not so usefull fmpov)
  - PLAY_NOTIFY (not needed for our server yet)
  - Support for the new REDIRECT features

and probably some more protocol changes might not be handled yet.

https://bugzilla.gnome.org/show_bug.cgi?id=781446
2017-10-05 12:05:40 -03:00
Thibault Saunier 5faad79049 rtspsrc: Use a macro to debug RTSP messages
Simplifying the code a little.

https://bugzilla.gnome.org/show_bug.cgi?id=781446
2017-10-05 12:05:39 -03:00
Reynaldo H. Verdejo Pinochet 0ddb65dec7 Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 16:30:10 -07:00
Sebastian Dröge 26cf8c1dc9 rtspsrc: Ignore medias marked as sendonly
We're never going to receive anything from them, so don't create pads
for them. These medias are destinations where *we* could send something.
2017-10-01 16:09:13 +02:00
Sebastian Dröge 58f0eabd61 sbcdepay: Add property to ignore input timestamps
This then just counts samples and calculates the output timestamps based
on that and the very first observed timestamp. The timestamps on the
buffers are continued to be used to detect discontinuities that are too
big and reset the counter at that point.

When receiving data via Bluetooth, many devices put completely wrong
values into the RTP timestamp field. For example iOS seems to put a
timestamp in milliseconds in there, instead of something based on the
current sample offset (RTP clock-rate == sample rate).

https://bugzilla.gnome.org/show_bug.cgi?id=787297
2017-09-28 14:15:12 +03:00
Ponnam Srinivas c0622addf6 rtph265depay: Fix Memory leak in error case
https://bugzilla.gnome.org/show_bug.cgi?id=787937
2017-09-26 11:09:53 +03:00
Deepak Srivastava 49ed67c4f2 deinterlace: Fixed memory leak in error code path
https://bugzilla.gnome.org/show_bug.cgi?id=788041
2017-09-22 17:25:50 +03:00
Ponnam Srinivas c53bee067d pngenc: fix memory leak in error code path
Don't leak row_pointers if frame can't be mapped.

https://bugzilla.gnome.org/show_bug.cgi?id=787885
2017-09-20 09:00:10 +01:00
Nicolas Dufresne fb26575b73 v4l2videodec: Don't leak codec name 2017-09-19 17:55:58 -04:00
Nicolas Dufresne 1f902e2f6e v4l2bufferpool: Don't stop streaming when pool is flushing
The purpose of being able to flush the buffer pool is only to
unlock any blocked operation. Doing streamoff/streamon had the
side effect of turning off and on the camera. As we do a flush_start
/ flush_stop sequence when shutting down, that would cause a really
quick sequence of streamoff/streamon/streamoff/close which was
causing some cameras to stop working.

https://bugzilla.gnome.org/show_bug.cgi?id=783945
2017-09-19 17:33:35 -04:00
Tim-Philipp Müller a802f5df42 rtpjitterbuffer: implement basic chain_list function
Doesn't do anything fancy yet, but still avoids lots of
unnecessary locking/unlocking that would happen if the
default chain_list fallback function in GstPad got invoked.
2017-09-17 16:33:15 +01:00
Tim-Philipp Müller 07dd3dba6f multifilesink: use new gst_buffer_list_calculate_size() 2017-09-17 12:50:30 +01:00
Patrick Radizi 3de0244532 rtpbin: add option for sanity checking timestamp offset
Timestamp offsets needs to be checked to detect unrealistic values
caused for example by NTP clocks not in sync. The new parameter
max-ts-offset lets the user decide an upper offset limit. There
are two different cases for checking the offset based on if
ntp-sync is used or not:
1) ntp-sync enabled
   Only negative offsest are allowed since a positive offset would
   mean that the sender and receiver clocks are not in sync.
   Default vaule of max-ts-offset = 0 (disabled)
2) ntp-sync disabled
   Both positive and negative offsets are allowed.
   Default vaule of max-ts-offset = 3000000000
The reason for different default values is to be backwards
compatible.

https://bugzilla.gnome.org/show_bug.cgi?id=785733
2017-09-15 13:33:14 +03:00
Patrick Radizi 23f7739ba4 rtpbin: add option for increasing ts_offset gradually
Instant large changes to ts_offset may cause timestamps to move
backwards and also cause visible effects in media playback. The new
option max-ts-offset-adjustment lets the application control the rate to
apply changes to ts_offset.

https://bugzilla.gnome.org/show_bug.cgi?id=784002
2017-09-14 13:15:56 +03:00
Nicolas Dufresne a08d7cdef5 v4l2src: Ensure all caps a fixated
The code relied on the list compare function to fixate the caps
but if the caps only has one structure, the compare function will
never get called. Capture device for which there is only one
structure in the caps would then get some assertion and later
fail badly.

Instead, fixate before inserting into the list and split the reading
and the fixation of the structures.
2017-09-13 16:05:08 -04:00
Nicolas Dufresne c56eb21a82 v4l2object: Don't leak the par value 2017-09-13 11:52:09 -04:00
Nicolas Dufresne 3ea2621036 v4l2-renegotiate: Don't leak the option context 2017-09-13 11:38:44 -04:00
Nicolas Dufresne 22a5f56f2a v4l2src-renegotiate: Don't leak pipeline desc string 2017-09-13 11:33:33 -04:00
Nicolas Dufresne 3975e87136 v4l2-renegotiate: Change --enable-dmabuf into --io-mode=
This gives allow testing dmabuf importation but also exportation buy
letting user pick anything from the io-mode property on v4l2src.
2017-09-13 11:32:09 -04:00
Mark Nauwelaerts cf3f195012 matroskademux: search_cluster should find preceding cluster before target
... since failing this constraint takes search_pos by surprise which might
then end up in an infinite loop.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787538
2017-09-11 20:39:22 +02:00
George Kiagiadakis 286e1e62be rtprtx{send,receive}: improve the debug messages
* use INFO/DEBUG/LOG/TRACE equaly and meaningfully;
  previously rtprtxsend:LOG and rtprtxreceive:LOG would generate
  a totally different amount of log traffic and sometimes it was
  impossible to see the information you wanted without useless
  spam being printed around
* improve the wording, give a reasonable and self-explanatory
  amount of information
* print SSRCs in hex
* avoid G_FOO_FORMAT for readability (we are just printing integers)
2017-09-07 14:43:32 +03:00
Ian Jamison 85ec6430d9 v4l2object: Handle BT2020 for colorspace and transfer
This was not fully handled in switches and
ub gst_v4l2_object_get_colorspace();

https://bugzilla.gnome.org/show_bug.cgi?id=787313
2017-09-06 11:33:53 -04:00
Ian Jamison fc5d9c34a7 v4l2object: Fix colorimetry transfer lookup for 4K video
https://bugzilla.gnome.org/show_bug.cgi?id=787160
2017-09-06 11:33:53 -04:00
Nicolas Dufresne 05a5ab0e55 v4l2src: Check if caps have changed after try_fmt
try_fmt will update the caps colorimetry and interlace-mode. Before this
call, those field are missing. The caps equality check was always
failing when a spurious reconfigure event was received.
2017-09-06 11:33:53 -04:00
Jan Schmidt d191584531 qtmux: Allow MPEG layer 1/2, AC3 and Opus in qtmux
qtmux is supposed to be the muxer that allows all formats,
with others (mp4mux and friends) being profile-restricted.
2017-09-06 23:55:38 +10:00
Tim-Philipp Müller 6f9cb1716a rtph265depay: fix keyunit detection
https://bugzilla.gnome.org/show_bug.cgi?id=787254
2017-09-05 13:56:18 +01:00
Sebastian Dröge aae7fcc0b5 jpegdec: Fix decoding of streams that don't signal exactly twice the height
... and also progressive streams.
2017-09-05 15:42:17 +03:00
Sebastian Dröge 09ee89f4c4 jpegdec: Handle interlaced MJPEG streams
These come with two JPEG images per buffer of half height than signalled
in the container.

Changes based on Tim-Philipp Müller's 0.10 branch:
https://cgit.freedesktop.org/~tpm/gst-plugins-good/log/?h=jpegdec-interlaced

https://bugzilla.gnome.org/show_bug.cgi?id=568555
2017-09-05 14:45:16 +03:00
Edward Hervey 5bc5e07531 dcaparse: Really fix "usage before unmap"
Previous patch would try to unref a buffer that was pushed downstream.

Instead only unref when/if needed and keep usage of the cleanup: goto
block
2017-09-04 17:06:39 +02:00
Arun Raghavan 5cf368b36c dcaparse: Don't unmap buffer before accessing data from it
The previous patch added a check for a substream header after
gst_buffer_unmap(), which is incorrect.
2017-09-03 15:23:10 +05:30
Matej Knopp f7854411fa dcaparse: preserve DTS HD substream 2017-09-03 15:05:08 +05:30
Arun Raghavan 301e8d558e rtpsbcpay: Fix some tabs that crept in somehow 2017-08-29 22:12:35 +05:30
Sebastian Dröge 71104f452e rtpbin: Also log local and SR RTP running times when doing ntp-sync=true 2017-08-29 19:14:25 +03:00
Matthew Waters f602b8e5b0 rtpbin: also create session when creating the send_rtcp_src_%u pad
If one requests the send_rtcp_src_%u pad before a recv_rtcp_sink_%u pad,
the session/pad would never be created and NULL was returned.
Switching the request order would work.

https://bugzilla.gnome.org/show_bug.cgi?id=786718
2017-08-29 12:47:30 +10:00
Tim-Philipp Müller ccd15c0dfd tests: mpg123audiodec: add files needed by unit tests 2017-08-26 12:59:35 +01:00
Tim-Philipp Müller 9cc395a589 tests: add basic unit test for twolame as well 2017-08-26 10:10:19 +01:00
Tim-Philipp Müller 60b6128d0c tests: lame: fix build 2017-08-26 09:59:22 +01:00
Tim-Philipp Müller 8fe7dbf8ef tests: ignore another binary 2017-08-26 09:52:33 +01:00
Tim-Philipp Müller 02af0e857b twolame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:43:34 +01:00
Tim-Philipp Müller f3f9e13c12 Moving twolame mp2 encoder plugin from -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:21:44 +01:00
Tim-Philipp Müller 1473b662de lame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:14:55 +01:00
Tim-Philipp Müller 53ec444963 Moving lame mp3 encoder plugin from -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-25 21:13:58 +01:00
Thibault Saunier 97b58bd263 meson: Link mpeg123audiodec test against gstfft
Fixing build error:

/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:150: undefined reference to `gst_fft_s32_new'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_window'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_fft'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:147: undefined reference to `gst_fft_s32_free'
2017-08-20 20:41:20 -03:00
Tim-Philipp Müller 32591f5649 tests: tagschecking: remove gst-check-xmp-* temp files when done
Also fix temp file creation a bit.
2017-08-20 17:25:25 +01:00
Tim-Philipp Müller f4030a590a docs: update for changes in git 2017-08-20 15:52:33 +01:00
Tim-Philipp Müller 25192c9084 mpg123: add to docs 2017-08-20 15:52:27 +01:00
Tim-Philipp Müller 5547901a37 mpg123: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-20 15:50:22 +01:00
Tim-Philipp Müller 4b1f43ebe3 Moving mpg123 plugin from -ugly 2017-08-20 13:48:48 +01:00
Tim-Philipp Müller d079b13db7 Automatic update of common submodule
From 48a5d85 to 3f4aa96
2017-08-17 12:23:25 +01:00