Commit graph

7526 commits

Author SHA1 Message Date
Wim Taymans
2edd450369 rtspsrc: create and send the RTCP encryption key
Create and make a key for encrypting the RTCP packets back to the server
and wrap this in a MIKEY message that we send as a header in the SETUP
request.
2014-04-03 12:21:27 +02:00
Wim Taymans
a52b7eadfd rtspsrc: free the srtpdec element 2014-04-03 12:18:39 +02:00
Wim Taymans
f0f9451523 rtspsrc: cleanup stream_free function
There is no reason to NULL all fields, we will free the stream anyway.
2014-04-03 12:16:25 +02:00
Wim Taymans
c3de599c4f jitterbuffer: demote warning to debug
For TCP, it is normal that we don't have timestamps so don't WARN on
it.
2014-04-03 12:09:24 +02:00
Thibault Saunier
b95d9cfb21 avidemux: Always set PTS=DTS on raw video streams 2014-03-31 18:38:28 +02:00
Thibault Saunier
511202d50c avidemux: Always set pixel-aspect-ratio on raw video streams
That field is mandatory in caps and if it is not present in the
AVI container, it means square pixels thus 1/1.
2014-03-31 18:38:22 +02:00
Tim-Philipp Müller
821c68822b matroska-mux: add mapping for Opus audio
Might want to consider adding channels/rate
requirement to template caps, but requires
fixing up of encoder and parser first.
2014-03-30 00:35:07 +00:00
Tim-Philipp Müller
b158a1c068 matroska-demux: add mapping for Opus audio codec
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2014-03-30 00:31:11 +00:00
Tim-Philipp Müller
273f389d57 rtpmanager: copy sticky events when exposing pads in more places
https://bugzilla.gnome.org/show_bug.cgi?id=724712
2014-03-29 13:23:02 +00:00
Ognyan Tonchev
2143a6e452 jpegpay: consider header len when calculating payload len
Fixed https://bugzilla.gnome.org/show_bug.cgi?id=726777
2014-03-27 09:45:20 +01:00
Mark Nauwelaerts
3414e3d0b9 matroskademux: segment closing not needed in 1.x
... as sender should keep track of segment base accumulation.
Rather, it may have some adverse effects as a spurious segment event,
e.g. in collectpads.
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
9a30726226 matroskademux: early sending pending codec-data for all streams
... at least before syncing across all streams might cause some gap
activity on any of those streams, notably sparse streams.

See also #712134
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
1e135a38cc matroskamux: handle both sticky and non-sticky custom event 2014-03-25 21:02:45 +01:00
Wim Taymans
e7c8fa1127 rtspsrc: only expose streams on dataflow
Only probe on buffers, we don't want to expose the streams on events.
2014-03-25 11:44:27 +01:00
Wim Taymans
3b497bf7d5 rtspsrc: copy sticky events to ghostpad
When we expose internal pads as ghostpads, first copy the sticky events
so that we have the caps and segment etc.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724712
2014-03-25 11:36:40 +01:00
Wim Taymans
67f3113759 rtspsrc: srtp handling 2014-03-25 10:23:24 +01:00
Wim Taymans
4846be1491 rtspsrc: set SSRC on caps if known 2014-03-25 10:23:00 +01:00
Wim Taymans
5ec8c96966 rtspsrc: put caps on udpsrc instead of using the signals
Try to avoid using the request-pt-map to get caps but set them directly
on the udpsrc element. That way, the caps get nicely transformed as they
pass through the different elements in the rtpbin, including the AUX and
decoder/encoder elements.
2014-03-24 17:07:06 +01:00
Wim Taymans
2b59828e0b rtspsrc: use profile to set rtcp caps
Use the negotiated profile to set x-rtcp or x-srtcp caps
2014-03-24 15:35:09 +01:00
Wim Taymans
a7b55d7687 rtspsrc: set udpsrc to READY
READY is enough to allocate ports now
2014-03-24 15:34:26 +01:00
Wim Taymans
d3c736c50f udpsrc: improve caps handling
Protect caps with the lock.
Don't push the caps event from the set_property function but mark the
pad for reconfiguration so that it will renegotiate and push the new
caps event in the streaming thread.
2014-03-24 15:22:04 +01:00
Wim Taymans
5e44fa3e31 udpsrc: open/close socket in NULL<->READY state
We should open the socket when going to NULL<->READY and not in the
start/stop vemthod, which is called in READY<->PAUSED. This makes it
possible to allocate a socket without going to PAUSED (and starting the
negotiation).
2014-03-24 15:15:34 +01:00
Wim Taymans
a4f6f963ec rtspsrc: free caps in ptmap array
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726696
2014-03-24 14:35:01 +01:00
Wim Taymans
d6c5fbc87c rtspsrc: handle NULL rtpmap and parse error better 2014-03-20 11:12:51 +01:00
Mathieu Duponchelle
6cf0f19c14 videomixer: Port to new collectpads API
See: https://bugzilla.gnome.org/show_bug.cgi?id=724705
2014-03-16 17:44:40 +01:00
Per x Johansson
2a362c6fb1 matroskademux: fix assert on fps lower than 1
Fixes assert caused by gst_duration_to_fraction calling
gst_util_uint64_scale_int with a denominator of 0 when fps is less
than 1.

https://bugzilla.gnome.org/show_bug.cgi?id=726106
2014-03-12 09:08:31 +01:00
Thiago Santos
373eceef7c videomixer2: store video info with buffers to keep it in sync
Instead the queued buffer might have an old caps while the pad
is already storing the information for a new caps. Mixing those
while handling buffers will often lead to issues

https://bugzilla.gnome.org/show_bug.cgi?id=725948
2014-03-11 00:49:19 -03:00
Olivier Crête
15d276058e rtp: Remove caps restrictions from RTP depayloader sink caps
Remove caps restrictions that correspond to the default and are not
required in SDP. With the new usage of having pads require a subset
of the caps, they will make the negotiation fail.
2014-03-06 12:06:43 -05:00
Olivier Crête
5a9b988b85 rtpspeexdepay: Remove caps restrictions for depayloader
The "encoding-params" is optional in the SDP, because we now require
a subset of the caps, it would fail caps negotiatioin if it wasn't present.
So removed it from the template caps.
2014-03-06 11:03:04 -05:00
Wim Taymans
224239096d rtspsrc: skip streams with same control url
Keep track of what streams we did the SETUP for. We only need to
configure caps, wait for pads and push events on setup streams. We can
remove the disabled state of the stream and simplify some checks.
After we setup a stream, skip the other streams that have the same
control url. Use a skipped flag to mark streams that should be skipped.
2014-03-06 12:30:54 +01:00
Wim Taymans
3b27fc2f0f rtspsrc: remove obsolete code 2014-03-06 12:30:54 +01:00
Wim Taymans
27d883fe64 rtspsrc: just use the SDP index as the stream id
Use the index of the media stream in the SDP as the stream id instead of
keeping a separate counter.
2014-03-06 12:30:54 +01:00
Wim Taymans
99a9d2873c rtspsrc: handle NULL control urls better 2014-03-05 15:44:25 +01:00
Wim Taymans
d2f93e3afc session: small cleanups
It's nicer to explicitly check for NULL on pointer types to make it
clear that it's a pointer and not a boolean.
2014-03-05 14:28:26 +01:00
Wim Taymans
5818a0de1a session: handle unknown SSRC in FIR
https://bugzilla.gnome.org/show_bug.cgi?id=725712
2014-03-05 14:27:47 +01:00
Alessandro Decina
c4bf6e8b7e rtspsrc: fix seeking
Call gst_rtspsrc_connection_flush (src, FALSE) to reset connections as
non-flushing before sending PAUSE and PLAY with the new npt range. Without this
patch, those commands would fail with EINTR as the connections were still
flushing.
2014-03-05 11:39:09 +01:00
Thiago Santos
fd12ff4c29 avidemux: expose xsub as a subtitle instead of as a video
It is placed inside a 'vids' struct, so it was being exposed on
a pad named video_%d. XSUB are subtitles and this patch adds
an special case for it to be exposed in a subpicture_%d pad
2014-03-04 20:29:45 -03:00
Thiago Santos
dee861630a avidemux: do not try to add a tag with tag_name set to NULL
This can happen if there are subtitles in the stream, leading to
an assertion
2014-03-04 20:29:45 -03:00
Wim Taymans
70de0e4e99 rtspsrc: Add support for multiple payload types
A media stream can have multiple payload types. Parse all the payload
types and collect the caps information. We then have to store the
pt<->caps mapping instead of 1 pt and 1 caps.
Parse the profile from the SDP and use that to negotiate the transport
instead of always using AVP.
Rework how we do some tweaks for ASF and Realmedia.
2014-03-04 16:40:34 +01:00
Wim Taymans
dbe92c9147 rtspsrc: refactor payload handling 2014-03-04 11:34:39 +01:00
Wim Taymans
b4caf09011 jitterbuffer: fix buffer level with invalid DTS
It is possible that the DTS is invalid (when we receive RTP packets from
TCP, for example). As a fallback, use the reconstructed PTS value to
calculate the buffer level.
2014-03-03 11:34:00 +01:00
Thiago Santos
0443c2593a Revert "aacparse: put codec data on caps for loas format"
This reverts commit e459cf3e01.

This was pushed by accident, the bug should likely be fixed in
libav https://bugzilla.libav.org/show_bug.cgi?id=644
2014-02-27 23:15:04 -03:00
Thiago Santos
e459cf3e01 aacparse: put codec data on caps for loas format
gst-libav audio decoder also needs codec data for LOAS format, otherwise
it will complain about not having a decoder config and skip all packets

https://bugzilla.gnome.org/show_bug.cgi?id=596772
2014-02-27 17:10:03 -03:00
Tim-Philipp Müller
f3163fb45f matroskademux: align raw audio memory to powers of two
https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:39 +00:00
Tim-Philipp Müller
c3dc53e551 matroskademux: calculate alignment properly for audio depths not a multiple of 8 2014-02-27 00:46:39 +00:00
Matej Knopp
d33b4dce63 matroskademux: fix crash with 24-bit raw audio
Do not try to align audio buffers to odd numbers,
which will get us a NULL buffer which we then
crash on.

https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:28 +00:00
Tim-Philipp Müller
5bad2d8b70 rtpmanager: re-enable -Werror 2014-02-27 00:12:13 +00:00
Tim-Philipp Müller
1d7f5c7a83 rtpjitterbuffer: fix compiler warning
gstrtpjitterbuffer.c: In function 'gst_rtp_jitter_buffer_loop':
gstrtpjitterbuffer.c:2978:3: error: 'result' may be used uninitialized in this function
   while (result == GST_FLOW_OK);
   ^
2014-02-27 00:11:11 +00:00
Sebastian Dröge
d4bdf5a1b1 rtpjitterbuffer: Fix uninitialized variable compiler warning 2014-02-26 21:11:23 +01:00
Jake Foytik
6dd9142592 rtpjitterbuffer: Remove raw comparisons of RTP sequence numbers
Several conditional statements perform comparison on RTP sequence
numbers without taking the sequence number rollover into account.
Instead, use the gst_rtp_buffer_compare_seqnum function to perform the
comparison.

https://bugzilla.gnome.org/show_bug.cgi?id=725159
2014-02-26 21:11:21 +01:00