Commit graph

867 commits

Author SHA1 Message Date
Wim Taymans 3a1199c2f7 rtpvorbisdepay: handle packets > 0xffff
Handle input packet sizes larger than 16 bits in the depayloader.
Remove size restrictions on the payloader.
2013-11-21 11:32:15 +01:00
Wim Taymans 43e9b56122 rtptheoradepay: handle packets > 0xffff
Reorganize some things in the depayloader so that it can handle packets larger
than 16 bits.
Remove the size restriction on the payloader.
2013-11-21 11:30:28 +01:00
Wim Taymans a065b4fcde gstpay: only send one caps
Only send one caps in a packet. Two caps can happen when setcaps is called and
the config-interval expires at the same time.
2013-11-13 12:02:57 +01:00
Sebastian Dröge 111982de28 rtpvp8pay: Make Picture ID mode configurable and default to no picture ID
Some implementations (linphone) only support no picture at all in the
stream and will fail if one is provided.

https://bugzilla.gnome.org/show_bug.cgi?id=711497
2013-11-05 17:26:49 +01:00
Paul HENRYS 8eceb8f327 Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event
https://bugzilla.gnome.org/show_bug.cgi?id=692787
2013-11-04 14:36:28 -05:00
Ognyan Tonchev 93d5e182d2 rtpgstpay: Fix memory leak
We were leaking the GList nodes of the pending buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=709079
2013-10-02 11:07:16 +02:00
Jan Schmidt 299d3f5c42 rtp: Remove bogus extra caps from L24 template.
The extra caps entry in the template was making it sometimes
get plugged for any dynamically allocated payload type.
2013-09-13 23:27:49 +10:00
Rico Tzschichholz 8ed1ff6821 rtp: Add missing headers tp fix make dist
In addition to a956a6ceb2
2013-09-13 14:06:13 +02:00
David Holroyd a956a6ceb2 rtp: add L24 pay and depayloader
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707734
2013-09-09 15:13:46 +02:00
Wim Taymans d851b8a8b4 rtpmpvpay: Fix RTP buffer allocation in rtpmpvpay
RTP buffer allocation should not be done with padding for the specific MPEG2
header as the padding is done at the end of the buffer and the last byte is
the size of the padding.

https://bugzilla.gnome.org/show_bug.cgi?id=706970
2013-08-29 13:15:15 +02:00
Wim Taymans f626e29897 jpegdepay: add some more debug 2013-08-21 12:56:35 +02:00
Wim Taymans 77ed44a88a rtpgstdepay: only push events when they changed
Keep track of the STREAM_START and TAG events and only push them
when they changed.
2013-08-21 12:10:00 +02:00
Wim Taymans b144809b7c rtpgstpay: taglists should not be merged in 1.0 2013-08-21 10:52:59 +02:00
Wim Taymans 69b0dcd7df rtpgstdepay: flush on FLUSH_STOP event 2013-08-21 10:28:50 +02:00
Wim Taymans 5ff9093843 rtpgstpay: reset on state change
Do full reset on state change to READY
2013-08-21 10:03:52 +02:00
Wim Taymans ae9239aac7 rtpgstpay: reset on FLUSH_STOP
Clear the adapter and pending buffer list on FLUSH_STOP.
2013-08-21 09:55:20 +02:00
Wim Taymans 2e8955df39 rtpgstpay: don't use clock for config interval
We can't use the clock to time our config-interval because we are not
live (or there might not be a clock or the clock might not be running).
Instead just simply take the timestamp diff.
2013-08-21 09:39:30 +02:00
Wim Taymans 182f96ff79 rtpgstay: don't use // comments 2013-08-21 09:33:04 +02:00
Youness Alaoui 62a6f58697 Send a stream-start whenever we send tags
This is to make sure tags are cleared on the client if the
stream-start was previously lost, otherwise, the client may end
up with a merged taglist of multiple songs
2013-08-21 09:06:01 +02:00
Youness Alaoui 05bcfee5a3 rtpgstpay: Add a config-interval property to resend the caps/tags at a regular interval
This is useful in case the packet containing the inlined caps was lost
or if new client joins an already running RTP stream and they missed
the previous tag events.
This also makes the payloader keep a list of merged tags so the retransmitted
tag event contains all previously received. A STREAM_START event will
flush the list of tags.
2013-08-21 09:06:01 +02:00
Youness Alaoui 1f4ca28868 rtpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any time 2013-08-21 09:06:01 +02:00
Youness Alaoui 9257409613 rtpgstpay: Do not flush events for stream-start and avoid conflict between event and pending inline caps 2013-08-21 09:06:01 +02:00
Youness Alaoui 2d53289b6b rtpgstpay: Add a create_from_adapter API and use a list of GstBufferList
This is necessary to fix event/caps sending. If we send a STREAM_START
packet, it will cause an error because the stream didn't receive its
caps and new-segment events, so we must wait for the first buffer before
sending the stream-start event buffer. However, the caps will be sent
at the same time and so the 'inline caps' will be set for the event.
We need to be able to payload individual packets (data, caps or events)
and only send them when we call flush.
2013-08-21 09:06:01 +02:00
Youness Alaoui 0070ba76f2 rtpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START 2013-08-21 09:06:01 +02:00
Youness Alaoui 6155b27971 rtpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3 2013-08-21 09:06:01 +02:00
Wim Taymans db90f6e68d h264depay: init debug category early
Init the debug variable when we register the element because it is also used by
the payloader element when it calls the add_sps_pps method.
2013-08-16 17:12:19 +02:00
Olivier Crête 4c6e636720 rtph264pay: Use the SPS/PPS handling function from the depayloader
Remove duplicated copies

https://bugzilla.gnome.org/show_bug.cgi?id=705553
2013-08-13 10:38:23 -04:00
Olivier Crête 742b90747d rtph264depay: Make the SPS/PPS deduplication function generic
Make it not touch any internals of the depayloader

https://bugzilla.gnome.org/show_bug.cgi?id=705553
2013-08-13 10:38:23 -04:00
Tim-Philipp Müller 957c8e3e61 rtpvp8depay: mark key frames and delta frames properly
https://bugzilla.gnome.org/show_bug.cgi?id=705550
2013-08-07 11:14:38 +01:00
Wim Taymans cc92ef1db2 vrawdepay: fix UYVP format 2013-07-24 12:42:31 +02:00
Wim Taymans 8191b6fcd2 vrawpay: fix UYVP format 2013-07-24 12:41:58 +02:00
Wim Taymans 37af93c361 vrawpay: fix caps 2013-07-24 12:41:44 +02:00
Olivier Crête 54c5a7f690 rtp: Use gst_adapter_take_buffer_fast() where possible in RTP payloaders 2013-07-16 15:37:49 -04:00
Sebastian Dröge 0cc77d8e30 rtph263ppay: Don't pass upstream filter caps to downstream
Downstream usually can't accept video/x-h263 but only application/x-rtp,
so we would always get an empty intersection here.

https://bugzilla.gnome.org/show_bug.cgi?id=702632
2013-07-08 14:10:44 +02:00
J. Rick Ramstetter f01b751e52 rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin
https://bugzilla.gnome.org/show_bug.cgi?id=703426
2013-07-02 10:12:17 +02:00
Wim Taymans c469434ea8 vorbispay: add support for config-interval
Align code with the theora payloader and add support for the config-interval to
periodically send out the config headers.
2013-06-28 15:21:56 +02:00
Wim Taymans 006562c9f4 theorapay: small cleanups 2013-06-28 15:21:12 +02:00
Wim Taymans cdc66462ce theorapay: handle streamheaders as well 2013-06-28 12:08:19 +02:00
Wim Taymans 3169432ed4 vorbispay: always collect headers on data
When we see a data packet, always check if we need to collect any previous
headers.
2013-06-28 12:07:58 +02:00
Wim Taymans 6c716dfc25 vorbispay: handle streamheader as well
Take config strings from the streamheader when we can

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=664312
2013-06-28 11:43:17 +02:00
David Svensson Fors 692206d3a7 rtph264pay: avoid double buffer unmap on error
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703171
2013-06-27 17:14:11 +02:00
Wim Taymans 4258ddcc36 jpegpay: turn some errors into warnings
Turn some errors into warnings, we can continue processing so this should
not be fatal.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=657079
2013-06-26 20:49:41 +02:00
Jens Georg 745be945ce rtpmp2tdepay: accept mislabelled streams from GStreamer 0.10 as well
The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES
instead of MP2T, so accept that as well for compatibility reasons.

https://bugzilla.gnome.org/show_bug.cgi?id=702457
2013-06-17 15:39:17 +01:00
Wim Taymans 1f0600ee6f Revert "rtph264pay: Restructuring to allow for adding optional caps"
This reverts commit 61666898cf.

This commit changes what the set_sps_pps() function does, not it doesn't
set caps anymore (and should have been renamed). The main problem is that
not all call sites are updated and thus leak the string.
2013-05-31 15:18:48 +02:00
Wim Taymans 1516c14881 Revert "rtph264pay/depay: Add frame dimensions a payloaded caps"
This reverts commit 3dca756a5d.

The H264 RTP spec has no attributes for width and height.
2013-05-31 15:11:12 +02:00
Wim Taymans b79d217396 Revert "rtph264pay/depay: Add optional framerate caps for use in SDP"
This reverts commit d8825e2a5c.

There is no framerate attribute in the h264 RTP spec.
2013-05-31 15:09:51 +02:00
Wim Taymans 190b3d6688 Revert "rtpjpegpay/depay: Replace framesize caps with width/height"
This reverts commit 0075d111b4.

Extra application/x-rtp are SDP fields, which are strings.
2013-05-31 15:08:16 +02:00
Wim Taymans f870cef8bc Revert "rtpjpegpay/depay: Replace framerate caps field with fraction"
This reverts commit 9fd25a810b.

We deal with sdp attributes in application/sdp, which are always strings.
2013-05-31 15:05:51 +02:00
Sebastian Rasmussen 9fd25a810b rtpjpegpay/depay: Replace framerate caps field with fraction
The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-23 21:05:49 +02:00
Sebastian Rasmussen 0075d111b4 rtpjpegpay/depay: Replace framesize caps with width/height
The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.

Keep parsing a-framerate, x-framerate and x-dimensions in rtpjpegdepay
to be backwards compatible with previous payloaders.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-23 21:05:43 +02:00
Sebastian Rasmussen d8825e2a5c rtph264pay/depay: Add optional framerate caps for use in SDP
This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:17 +02:00
Sebastian Rasmussen 3dca756a5d rtph264pay/depay: Add frame dimensions a payloaded caps
This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:11 +02:00
Sebastian Rasmussen 61666898cf rtph264pay: Restructuring to allow for adding optional caps
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:00 +02:00
Sebastian Rasmussen 2361567bae rtpjpegpay/depay: Add framesize caps for use in SDP
The format of the value adheres to RFC6064 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-21 09:09:03 +02:00
Sebastian Rasmussen 919eed0787 rtpjpegpay: Add optional framerate caps for use in SDP
The format of the value adheres to RFC4566 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-21 09:08:21 +02:00
Michael Olbrich d1c56376d6 rtpmp4apay: clear config buffer before using it
This is necessary because parts of the memory are only modified with "|="

https://bugzilla.gnome.org/show_bug.cgi?id=700514
2013-05-18 10:57:56 +01:00
Sebastian Dröge f28ab45f3e rtpgstpay: First let baseclass handle events, then put them into the stream
Fixes handling of sticky events.

https://bugzilla.gnome.org/show_bug.cgi?id=700213
2013-05-13 13:44:35 +02:00
Sebastian Rasmussen 9532b04947 rtpgstpay: fix invalid memory access in event handler
First process event in payloader, then hand it to the
base class which takes ownership of the event.

https://bugzilla.gnome.org/show_bug.cgi?id=699637
2013-05-04 10:49:23 +01:00
Andoni Morales Alastruey 4a78a77e65 rtp: fix duplicated symbols with libvpx 2013-05-02 14:03:33 +02:00
Sebastian Dröge ae05ed4f05 rtph264pay: If the adapter is empty on EOS don't try to map its content
https://bugzilla.gnome.org/show_bug.cgi?id=699314
2013-05-01 15:49:45 +02:00
Wim Taymans 1df2e623b5 docs: add some pay/depayloaders
See https://bugzilla.gnome.org/show_bug.cgi?id=551631
2013-04-25 14:05:55 +02:00
Wim Taymans 5ba3fd3c63 vrawdepay: return output buffer from process
Return the output buffer from the process function instead of pushing
it ourselves. This way, the subclass can actually deal with the return
value of the push.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727
2013-04-24 16:24:25 +02:00
Wim Taymans eac9efb92e rtp: a marker bit should translate to RESYNC
A marker bit on an audio packet does not mean a DISCONT (in the GStreamer sense
of missing data) but it means that the packet is the end of a talkspurt and thus
a good opportunity to resync to the clock. Use the RESYNC buffer flag to note
this.
Real discontinuities are marked with DISCONT still when the seqnum has a GAP or
when the input buffer has the DISCONT flag set.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=627204
2013-04-24 15:42:45 +02:00
Sebastian Dröge fdb667ae00 rtpjpegdepay: Drop frame if it's less than 2 bytes large
https://bugzilla.gnome.org/show_bug.cgi?id=677560
2013-04-22 10:19:29 +02:00
Sebastian Dröge b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Wim Taymans 9d7519f66e rtp: register tag image types
The rtpgstdepay needs the type to be available in order to deserialize the
event.
2013-04-12 16:18:42 +01:00
Wim Taymans b1f4587d75 rtpgstdepay: handle event parse failures better 2013-04-12 16:18:42 +01:00
Andreas Fenkart 20d3ec8810 rtpsbcdepay: fix sbc frame length calculation for mono and stereo modes
https://bugzilla.gnome.org/show_bug.cgi?id=697463
2013-04-09 23:17:57 +01:00
Wim Taymans 91a3afc4dc gstpay: use bufferlist to avoid memcpy 2013-04-09 16:53:31 +02:00
Nicola Murino c41c16424d rtpsbcdepay: fix printf format compiler warnings
https://bugzilla.gnome.org/show_bug.cgi?id=697343
2013-04-05 13:50:19 +01:00
Olivier Crête f8831c0cd2 rtpsbcdepay: Rank as secondary
This way, it will be selected by decodebin
Bug reported by andreas.fenkart@streamunlimited.com

https://bugzilla.gnome.org/show_bug.cgi?id=697227
2013-04-03 18:25:36 -04:00
Wim Taymans ac2bcfa833 theorapay: add delta-unit to output frames 2013-03-31 19:14:04 +02:00
Josep Torra 509631f60b rtp: fixes debug message printf related compiler warnings in SBC depayloader 2013-03-30 09:44:41 +01:00
Arun Raghavan 87bdad4bfc rtp: Add an rtpsbcdepay element
Pretty straightforward - takes SBC encapsulated in RTP, depayloads, and
pushes out SBC buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-28 17:22:33 +00:00
Tim-Philipp Müller 477cc51fe7 rtp: fix SBC payloader
Init RTP buffer on stack correctly, so mapping it works
without criticals and the payloader actually works.
2013-03-27 22:18:34 +00:00
Ognyan Tonchev 3f8ad30cee rtph264pay: Don't use upstream caps with peer_query_caps ()
Calling gst_pad_peer_query_caps () on the src pad with the caps
upstream can produce as a filter from gst_rtp_h264_pay_getcaps ()
is wrong and makes caps negotiation fail if upstream caps are not
NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=695629
2013-03-11 16:55:13 -04:00
Olivier Crête df5ca83baf rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional
Specific case here is Wowza 3.5.0
2013-02-26 14:19:10 -05:00
Sebastian Dröge a7ddbc03fe rtp-payloading: Fix unit test caps and AMR depayloader sink template caps
Fields were missing from the actual caps, or too many fields
existed in the template caps.
2013-02-13 12:02:46 +01:00
Wim Taymans 4397c8ffbf rtpdepay: remove payload type restrictions
Remove the pt restrictions for all the depayloaders that have an
encoding-name. We can use this to autoplug decoders.
Remove the encoding-name for all the payloaders with a fixed payload
type.
We now either have an encoding-name or a pt in the sinkpad caps of
a depayloader.

See https://bugzilla.gnome.org/show_bug.cgi?id=639292
2013-01-28 12:41:04 +01:00
Marc Leeman bab2f3c92b rtp: remove payload requirements from selected depayloaders
encoding name is required in the caps and is a better fit for autoplugging than
the pt value. Hardware manufacturers have a bad habit of skimming through RFCs
and in this case; use unassigned numbers for encoders instead of dynamic
numbers.

In essence, this patch will add support for a lot of Bosch hardware encoders
without breaking autoplugging.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639292
2013-01-28 12:23:41 +01:00
Tim-Philipp Müller 9455a3aee1 rtpsbcpay: update some fields in the caps to their new name
and to match the parser. "mode" got renamed to "channel-mode"
and "allocation" to "allocation-method".
2013-01-16 10:19:36 +00:00
Tim-Philipp Müller 39ef892938 rtp: import rtpsbcpay from bluez and port to 1.0
Compiles, but not tested yet (sbc elements still need to be ported).

https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-01-10 12:43:50 +00:00
Marcel Holtmann 4196feb659 rtpsbcpay: Remove workaround for compiler warnings 2013-01-10 00:18:03 +00:00
Marcel Holtmann fe79c60d74 rtpsbcpay: Add pragma based workaround for GStreamer warnings 2013-01-10 00:18:03 +00:00
Marcel Holtmann 08e95e7249 rtpsbcpay: Update copyright information 2013-01-10 00:15:36 +00:00
Marcel Holtmann 7fa03c0076 rtpsbcpay: Fix signed/unsigned comparison issue within GStreamer plugin 2013-01-10 00:15:35 +00:00
Marcel Holtmann 27a6b0abfe rtpsbcpay: Update copyright information 2013-01-10 00:15:35 +00:00
Marcel Holtmann f890079aae rtpsbcpay: First attempt in fixing compiler warnings (still needs cleanup) 2013-01-10 00:15:35 +00:00
Johan Hedberg 7d4f846112 rtpsbcpay: More coding style fixes 2013-01-10 00:15:35 +00:00
Luiz Augusto von Dentz 151ad9b28d rtpsbcpay: Remove possible extra memcpy for gstreamer plugin. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz 69c8374b7c rtpsbcpay: Fix bug sending empty packages and remove a buffer copy. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz 7b3e4356ea rtpsbcpay: Fix runtime warnings of gstreamer plugin. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz f74f061f3b rtpsbcpay: Update gstreamer plugin to use new sbc API. 2013-01-10 00:13:14 +00:00
Marcel Holtmann b9be04f07b rtpsbcpay: Update copyright information 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz 687400ecf4 rtpsbcpay: Fixes gstreamer caps and code cleanup. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz a4f9624261 rtpsbcpay: Fix gtreamer payloader sending fragmented frames. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz 41e2f4f544 rtpsbcpay: Fix use of gstreamer plugin with rhythmbox and banshee and rtp timestamps. 2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz 96971cd323 rtpsbcpay: Make a2dpsink to act like a bin and split the payloader. 2013-01-10 00:13:14 +00:00
Jonas Holmberg e12457f138 rtpjpegpay: handle width and height > 2040
If width or height is greater than 2040 set width and height to zero in
the rtp header and add x-dimensions to outcaps.

Solves #684955
2012-12-20 15:40:49 +01:00
Thijs Vermeir de41376231 rtp: use appropriate printf format for gsize 2012-12-18 16:02:09 +01:00