Commit graph

13677 commits

Author SHA1 Message Date
Julien Isorce 19c0e92031 doc: add design for rtp retransmission
Describe how rtprtxsend and rtprtxreceive generally work
but also how the association algorithm is implemented.
2014-01-03 20:46:14 +01:00
Reynaldo H. Verdejo Pinochet 0e159e3b03 souphttpsrc: use status code macro instead of 407
Rest of the code is using the _PROXY_AUTHENTICATION_REQUIRED
macro too. Easier to understand if you don't recall HTTP
error codes by heart.
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet ac7d346355 shout2send: change audio_format field to format
This element and the underlying libshout2 library
can handle video media files too. The code already
handles video/webm so the name gets confusing. Also
add and use DEFAULT_FORMAT macro Instead of hardwiring
SHOUT_FORMAT_VORBIS at init

https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet 667c803730 shout2send: clarify meaning of the URL prop
https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet e6321ecb74 shout2send: docs, add a sample pipeline
And finish adding shout2send to the docs while at it

https://bugzilla.gnome.org/show_bug.cgi?id=721342
2014-01-03 14:15:59 -03:00
Reynaldo H. Verdejo Pinochet 4182f42f7b gdkpixbufoverlay: remove spurious @see_also 2014-01-03 14:15:59 -03:00
Matthieu Bouron 0bbdb9bb1d deinterlace: support any video formats and any caps features if deinterlace mode allows it
https://bugzilla.gnome.org/show_bug.cgi?id=719636
2014-01-03 11:22:01 +01:00
Sebastian Rasmussen 3f8b423516 v4l2: Handle v4l2_ioctl() errors even in error handling
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721268
2014-01-03 10:59:57 +01:00
Jeremy Huddleston Sequoia 2bc631bcd0 osxvideo: unifdef -DRUN_NS_APP_THREAD 2014-01-02 10:01:54 +01:00
Jeremy Huddleston Sequoia 6fe2115d77 osxvideo: Assume SDK and deployment target are at least Snow Leopard 2014-01-02 10:01:28 +01:00
Jeremy Huddleston Sequoia aeb3fa72b2 configure: Disable osxvideo on Leopard and earlier
This also moves the "other platforms" check in OS X video to before the
variable is read

https://bugzilla.gnome.org/show_bug.cgi?id=721245
2014-01-02 09:56:14 +01:00
Wim Taymans c83ed4f61e tests: add AUX receiver unit test 2013-12-31 15:08:49 +01:00
Wim Taymans b91e0096b7 tests: improve rtpbin test 2013-12-31 15:08:49 +01:00
Wim Taymans bb2d37b11d rtpbin: add some docs about AUX elements 2013-12-31 15:08:49 +01:00
Wim Taymans 3e83e6a33d tests: add AUX sender unit test 2013-12-31 15:08:49 +01:00
Wim Taymans d08e05b4ef rtpbin: add support for AUX sender and receiver
AUX elements are elements that can be inserted into the rtpbin
pipeline right before or after 1 or more session elements.

The AUX elements are essential for implementing functionality such
as error correction (FEC) and retransmission (RTX).

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711087
2013-12-31 15:08:48 +01:00
Wim Taymans 841f9ad050 tests: add decoder test 2013-12-31 15:08:48 +01:00
Wim Taymans ae22c95881 rtpbin: make request_element method internally
We can use the same method to create encoder and decoder elements, they
are just internal elements that we create.
2013-12-31 15:08:48 +01:00
Stéphane Cerveau e7912641c3 wavparse: Skip id3 tag
Skip id3 tag during wav parse.

https://bugzilla.gnome.org/show_bug.cgi?id=721241
2013-12-31 10:39:21 +01:00
Sebastian Dröge 5b1c0a4cfd osx: Make OSX version checks more consistent
And especially also consider update versions, e.g. 10.5 with updates
will be 1051 or similar and thus bigger than MAC_OS_X_VERSION_10_5 but
still won't have the API we want to use.
2013-12-31 10:11:24 +01:00
Jeremy Huddleston 3d163680f0 osxvideosink: Fix build on updated OS X Leopard
https://bugzilla.gnome.org/show_bug.cgi?id=721245
2013-12-31 10:11:24 +01:00
Edward Hervey 711c73290c avimux: Add missing break
I guess no-one noticed we no longer could mux WMV3 ...

COVERITY CID 1139759
2013-12-30 17:23:22 +01:00
Edward Hervey 91c5b09fb4 rtpvrawpay: Add missing break
COVERITY CID 1139762
2013-12-30 17:20:37 +01:00
Wim Taymans ee7f41ba2e rtpsession: internal-ssrc is no longer deprecated 2013-12-30 17:00:45 +01:00
Wim Taymans e721d26c68 rtpbin: add Since tags 2013-12-30 16:59:20 +01:00
Wim Taymans 5a2bc1405e rtpbin: add signal for new jitterbuffer
Emit a signal when a new jitterbuffer is created so that the app can
have a chance to configure it.
2013-12-30 16:52:28 +01:00
Wim Taymans 3f3b2d0886 rtpbin: handle multiple encoder instances
Keep track of elements that are added to multiple sessions and make sure
we only add them to the rtpbin once and that we clean them when no
session refers to them anymore.
2013-12-30 16:28:57 +01:00
Wim Taymans 76e4cbc753 tests: add unit test for encoder element 2013-12-30 15:17:05 +01:00
Wim Taymans 05c8edc174 rtpbin: fix memory leaks 2013-12-30 15:17:05 +01:00
Wim Taymans bcd1589a91 tests: fix leak 2013-12-30 15:17:05 +01:00
Wim Taymans 9345c2280a rtpbin: expect the pads on the encoders
Don't use request pads for the encoder elements, the signal handler
should request the pads and make sure they are available with the right
name.
2013-12-30 15:17:05 +01:00
Wim Taymans cbc80d10dd rtpbin: request-rtp-encoder are no action signals
The request-rtp-encoder signals are not action signals so mark them
correctly and use an accumulator to collect the result value.
2013-12-30 15:17:05 +01:00
Stefan Sauer 2e277bb341 wavparse: emit midi-base-note tag from data in 'smpl' chunk
Add parsing of the 'smpl' chunk. Right now we only grab the midi-base-note and
emit it as a tag.
2013-12-30 14:41:47 +01:00
George Kiagiadakis 5ddf6a5e32 gstrtpsession: suggest upstream to use the new "internal-ssrc" after a collision
When a collision is found on the internal ssrc, we have to change it.
Ideally, we want also the payloader upstream to follow this change and use
the new internal ssrc. Ideally we want this condition to be always met:
if there is one payloader sending on this session, its ssrc should match the
internal ssrc.
2013-12-30 14:03:05 +01:00
George Kiagiadakis 17517ca491 rtpsession: allow setting internal-ssrc again 2013-12-30 14:03:05 +01:00
Edward Hervey e732b86b8e y4mencode: Remove dead code
set/get property isn't used
2013-12-30 13:50:35 +01:00
Edward Hervey ac40045d0d rtpqcelpdepay: Remove uneeded variable 2013-12-30 13:50:35 +01:00
Aleix Conchillo Flaqué 47c65fc269 rtpbin: allow dynamic RTP/RTCP encoders/decoders
* gst/rtpmanager/gstrtpbin.[ch]: four new action signals have been
  added (request-rtp-encoder, request-rtp-decoder, request-rtcp-encoder
  and request-rtcp-decoder). The user will be able to provide encoders
  or decoders dynamically. The encoders must follow the srtpenc API and
  the decoders the srtpdec API. Having separate signals for RTP and RTCP
  allows the user to use different encoders/decoders or provide the same
  one (e.g. that would be the case for srtpenc).

  Also, rtpbin now allows application/x-srtp in its pads.

  https://bugzilla.gnome.org/show_bug.cgi?id=719938
2013-12-30 11:24:00 +01:00
Wim Taymans f48bbabafc rtpjitterbuffer: dynamically recalculate RTX parameters
Use the round-trip-time and average jitter to dynamically calculate the
retransmission interval and expected packet arrival time.

Based on patches from Torrie Fischer <torrie.fischer@collabora.co.uk>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711412
2013-12-30 11:18:51 +01:00
Wim Taymans 416bd9a2c3 rtpjitterbuffer: calculate average jitter 2013-12-30 11:18:51 +01:00
Wim Taymans 7181a21ca9 rtpsession: use RTT from the Retransmission event
Place the estimated RTT in the Retransmission event and let the session
manager use that instead of the hardcoded value.
2013-12-30 11:18:50 +01:00
Wim Taymans e996f73d0c jitterbuffer: take more accurate running-time for NACK
Don't use the current time calculated from the tmieout loop for when we
last scheduled the NACK because it might be unscheduled because of a max
packet misorder and then we don't accurately calculate the current time.
Instead, take the current element running time using the clock.
2013-12-30 11:18:50 +01:00
Sebastian Dröge 29840bfd96 wavpackdec: Send a CAPS event in the unit test 2013-12-30 11:07:03 +01:00
Thiago Santos c1cd2f81f9 qtdemux: improve mss_mode/fragmented special handling
Make it clear what should be handled purely by mss mode:
1) Expose the streams on the first moof as there are no moov atoms
2) Properly cleanup streams on flushes

Add a note about the meaning of upstream_newsegment and mss_mode
for future reference.

Make all other special fragment handling shared for both dash
and mss streams.
2013-12-27 12:04:49 -03:00
Thiago Santos a82f3418fd qtdemux: drain the adapter before pushing EOS
In a fragmented scenario, qtdemux is operating in push mode
and it gets a fragmented buffer. While processing its data
downstream gets unlinked (or a input-selector changes its
active pad and returns not-linked). Qtdemux stops processing
this fragment and returns not-linked upstream, leaving the
remaining data in its adapter.

When it gets an EOS it should make sure that all the data it
had received is pushed before pushing EOS.
2013-12-27 12:00:27 -03:00
Reynaldo H. Verdejo Pinochet 9dd6e22ba9 shout2send: drop IP only requirement for _set_host()
libshout2 (we require > 2.0 at config time) supports
both IP and hostname for _set_host(). Dropped an
outdated FIXME regarding this limitation, adjusted
some comments and changed the param blurb to reflect
this too.
2013-12-27 01:31:33 -03:00
Reynaldo H. Verdejo Pinochet 786f87ef30 shout2send: Retarget FIXME to 2.0 2013-12-27 01:31:20 -03:00
Wim Taymans bf878d75d1 rtspsrc: use aggregate control for PLAY/PAUSE/TEARDOWN
Use the aggregate control instead of the original request url to perform
PAUSE/PLAY and TEARDOWN.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721003
2013-12-26 11:27:30 +01:00
Sebastian Dröge 2f07b570f7 rndbuffersize: Proxy CAPS, ALLOCATION, SCHEDULING and srcpad events properly 2013-12-24 14:40:25 +01:00
Nicola Murino 5b1108dd5f matroskamux: adpcm max block align is 8192 2013-12-24 10:00:16 +01:00