Commit graph

7126 commits

Author SHA1 Message Date
Wim Taymans 9c7e3e3455 jitterbuffer: update timers after queueing
Else we might update the timer needlessly for duplicates.
2013-08-02 12:43:00 +02:00
Wim Taymans ebd6b8f8ab jitterbuffer: move method up 2013-08-02 12:42:08 +02:00
Wim Taymans f6b6797874 jitterbuffer: small cleanup 2013-08-02 06:28:32 +02:00
Wim Taymans 0e41414926 jitterbuffer: unschedule old expected packets
When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.
2013-08-01 23:36:07 +02:00
Wim Taymans 70695466ed jitterbuffer: refactor timer update 2013-08-01 23:32:00 +02:00
Wim Taymans 4ab3f5d3da jitterbuffer: update timers when removing
Update the timers when we remove a timer.
Handle canceled timers, make them unschedule the current timer and
trigger the timeout code.
2013-08-01 23:24:29 +02:00
Wim Taymans b983cf675b jitterbuffer: fix typo 2013-08-01 23:22:02 +02:00
Wim Taymans f3c658cbe6 jitterbuffer: improve timeout management
If we change the seqnum of an existing timer and we were waiting for
that timer, unschedule it. If we change the timeout of an existing timer and we
were waiting on it, only unschedule when the new time is smaller.
2013-08-01 15:40:52 +02:00
Wim Taymans 77e5d320ab jitterbuffer: install timer for expected arrival
Install a timer that is triggered when the expected arrival time of a packet
expired.
2013-08-01 15:11:13 +02:00
Wim Taymans f08d98404e jitterbuffer: improve unschedule of timers
Conflicts:
	gst/rtpmanager/gstrtpjitterbuffer.c
2013-08-01 14:57:11 +02:00
Wim Taymans 9d3b824e2a jitterbuffer: move code around 2013-08-01 12:21:53 +02:00
Wim Taymans fe32e80c92 jitterbuffer: estimate inter packet spacing
When we see two packets with consecutive seqnums and a different RTP time, use
the DTS difference as the inter packet spacing estimate.
2013-08-01 12:07:11 +02:00
Wim Taymans 255b7106f5 jitterbuffer: keep track of current timeout 2013-08-01 12:01:15 +02:00
Wim Taymans 7e43dba19b jitterbuffer: cleanup timer handling 2013-08-01 11:49:10 +02:00
Wim Taymans 9d88ac9cbb jitterbuffer: reset is only possible with a GAP 2013-08-01 11:40:41 +02:00
Wim Taymans f864131227 jitterbuffer: operate on DTS
Make the jitterbuffer schedule the timeouts based on the DTS instead
of the PTS. This makes it all smoother with reordered frames and gives
the decoder time to reorder the frames in time.
2013-08-01 11:36:56 +02:00
Wim Taymans 80c5934290 jitterbuffer: rename timout variable 2013-08-01 11:14:12 +02:00
Wim Taymans aa951433ee jitterbuffer: small cleanup 2013-07-31 17:08:58 +02:00
Wim Taymans 69c78f72d5 jitterbuffer: block output in paused or buffering 2013-07-31 16:59:58 +02:00
Wim Taymans 4fbbc53a49 jitterbuffer: store pts in timer
Only store the pts in the timer so that we can both do timeouts with timings on
the input and output of the jitterbuffer.
2013-07-31 16:59:09 +02:00
Wim Taymans 77846d35c6 rtpjitterbuffer: refactor jitterbuffer
Refactor the jitterbuffer code. Make separate function for peeking a buffer,
pushing the next buffer, waiting for timeouts and handling the timeouts.

The main loop now tries to push as many buffers as it can until it runs out of
buffers or when it detects a seqnum discont. Then it will wait for some event to
happen before attempting to push more buffers.

Make methods to register timeouts in an array. These timeouts are registered
when we detect a missing packet, sync for the first packet or when we find an
estimation for the end-of-stream.

This greatly simplifies and clarifies the code and also makes it possible to
register more complicated timeout schemes later.
2013-07-30 23:24:23 +02:00
Wim Taymans ea931d4f57 rtpjitterbuffer: use NULL to ignore percent
If we pass NULL to pop and push we ignore the percent result.
2013-07-30 23:24:23 +02:00
Wim Taymans b3e8a85a54 jitterbuffer: refactor
Move eos estimation into separate function
2013-07-30 23:24:22 +02:00
Tim-Philipp Müller a5532b4510 flvdemux: don't leak stream_id string
https://bugzilla.gnome.org/show_bug.cgi?id=705142
2013-07-30 14:28:19 +01:00
Sebastian Dröge 2e35b36aab gst: Don't swap start/stop for negative rates in the SEGMENT query 2013-07-29 12:12:41 +02:00
Matej Knopp 47ed79fb1c qtdemux: Check for data size when parsing h264 codec data from strf atom 2013-07-29 11:53:07 +02:00
Sebastian Dröge 722ef42196 matroskademux: Implement SEGMENT query 2013-07-29 10:53:54 +02:00
Sebastian Dröge d135373beb flvdemux: Implement SEGMENT query 2013-07-29 10:53:47 +02:00
Sebastian Dröge 4e78974c87 avidemux: Implement SEGMENT query 2013-07-29 10:50:59 +02:00
Matej Knopp 2dcdfe07f7 qtdemux: Support H264 fourcc
https://bugzilla.gnome.org/show_bug.cgi?id=704996
2013-07-29 09:11:39 +02:00
Sebastian Dröge 1fbb6d30a6 avidemux: Fix duration reporting in push mode
https://bugzilla.gnome.org/show_bug.cgi?id=700933
2013-07-28 17:38:56 +02:00
Sebastian Dröge 89a3dc2ecd avidemux: Don't forget unmapping and unreffing buffer 2013-07-28 17:32:59 +02:00
Matej Knopp 1947587784 avidemux: unmap buffer
https://bugzilla.gnome.org/show_bug.cgi?id=704951
2013-07-28 17:32:59 +02:00
Wim Taymans 02359f9219 session: don't make buffer writable prematurely
There is no reason to make the SR buffer writable at this point. This is better
delayed until needed.
2013-07-26 22:31:41 +02:00
Wim Taymans 0261199fc4 session: ignore RTCP for inactive sources 2013-07-26 22:31:23 +02:00
Wim Taymans a4b4ca53c0 session: small cleanup 2013-07-26 22:25:17 +02:00
Wim Taymans e0abd2e9b5 session: handle partial RTCP report blocks
When we have more SSRCs to report than what fit in an RTCP packet, use a
generation counter to make sure all of them end up in a packet eventually.
2013-07-26 17:29:10 +02:00
Wim Taymans 6cce6fb04c session: create SSRC before doing session cleanup
Make the internal source before we do session cleanup
2013-07-26 17:29:10 +02:00
Wim Taymans 5b0298c63e session: reorganize the report block code 2013-07-26 17:29:10 +02:00
Matej Knopp 7335b81c47 matroskademux: fix memory leak in check_subtitle_buffer
https://bugzilla.gnome.org/show_bug.cgi?id=704921
2013-07-26 17:11:31 +02:00
Wim Taymans 3c44cd7c83 session: refactor active and sender checks 2013-07-26 14:21:40 +02:00
Wim Taymans e952f7ba43 session: remove internal sources on timeout
When an internal source times out and becomes a receiver, remove it.
2013-07-26 12:18:01 +02:00
Wim Taymans e9e2fe3950 session: create an internal source for RTCP
When we need to do RTCP and we don't have an internal source yet,
make one.
2013-07-26 12:18:01 +02:00
Wim Taymans bd0709c15c session: remove old code to change SSRC
Remove code used to change the SSRC after a collision. We now send
a RECONFIGURE event upstream to make the upstream element change the SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans 88f5a5f355 source: don't update packet SSRC
Remove the code to update the SSRC in packets, it can never be called now that
we always use a source with matching packet SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans abc90da1dc session: delay allocation of internal source
Allocate the internal source when we receive a caps with the SSRC or when we see
a buffer with the SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans e0a1ce1291 session: generate reconfigure on collision
When we detect a collision, change the SSRC that we suggest upstream
and trigger RECONFIGURE. This should make upstream select a new SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans 495d43c089 session: produce RTCP for all internal sources
Loop over all the internal sources and produce RTCP. We also need
to queue the RTCP packets and send them when we are finished.
2013-07-26 12:18:00 +02:00
Wim Taymans 9505fd4150 session: deprecate internal source and ssrc properties
Deprecate the internal source and internal ssrc properties. There might
be more than one internal source.
2013-07-26 12:17:59 +02:00
Wim Taymans 3d6ee1fb5e session: internal sources don't use probation 2013-07-26 12:17:59 +02:00
Wim Taymans 0e53e9109e session: give caps to session
Let the session parse the caps and update its SSRC when needed.
2013-07-26 12:17:59 +02:00
Wim Taymans c06482a2cb session: make method to suggest available SSRC
Make a method to suggest the best available SSRC. This is the SSRC of the last
created internal source and is used to instruct upstream to produce this
SSRC.
2013-07-26 12:17:59 +02:00
Wim Taymans 33ce50e8b1 session: keep SDES and set on new internal sources
Keep track of the SDES ourselves and set it on all newly created
internal sources.
2013-07-26 12:17:59 +02:00
Wim Taymans 5652f02b76 session: make method to make internal sources
Add a method to obtain an internal source and use it to create
our internal source
2013-07-26 12:17:59 +02:00
Wim Taymans 7f83927c95 session: count internal sources and how many are senders 2013-07-26 12:17:58 +02:00
Wim Taymans 719343c206 rtpsession: separate BYE marking and scheduling
First mark sources with BYE and then schedule the BYE RTCP message.
2013-07-26 12:17:58 +02:00
Wim Taymans 391943ba82 session: get SSRC from RTCP packet itself
Get the SSRC from the RTCP packet instead.
2013-07-26 12:17:57 +02:00
Wim Taymans a3f75a17ef session: fix bandwidth calculation
We iterate over all sources and the internal one is also in the
hashtable so avoid adding it twice.
2013-07-26 12:17:57 +02:00
Wim Taymans 9eaef9d332 session: add some docs 2013-07-26 12:17:56 +02:00
Wim Taymans 2163355a47 session: Rearrange RTCP reporting a little
Make a function to generate an RTCP packet for a source, pass the source as a
parameter.
Move timeout of collisions to session cleanup phase.
2013-07-26 12:17:56 +02:00
Wim Taymans a3bf374351 session: move check for is_early around
Move the check for the early RTCP to where it is needed and used.
2013-07-26 12:17:56 +02:00
Wim Taymans b069db6a2e session: parse packet outside of the session lock 2013-07-26 12:17:56 +02:00
Wim Taymans 57c27ec319 session: do nicer checks for internal sources 2013-07-26 12:17:56 +02:00
Wim Taymans 93d07298ff session: let source keep track if it sent BYE 2013-07-26 12:17:56 +02:00
Wim Taymans 0c9c1434a8 source: reset more 2013-07-26 12:17:56 +02:00
Wim Taymans 1d02496d15 source: also use the source for bye_reason
Store the BYE reason in our internal source object. Rename the methods on the
source object a little because now the BYE can be received in RTCP or
set when the session wants to send BYE.
2013-07-26 12:17:56 +02:00
Wim Taymans ddd071e54c session: configure sdes with structure only
Remove code to configure the SDES with methods and types, only
allow configuration with GstStructure
2013-07-26 12:17:55 +02:00
Wim Taymans 0060e1d45d session: refactor add and find source
Make functions to find and add a source to the hashtable.
2013-07-26 12:17:55 +02:00
Wim Taymans adb0d68c07 session: remove source from sync_rtcp
We don't need to know the sender source of the session in the
callback, the SR packet is for all participants in the session.
2013-07-26 12:17:55 +02:00
Wim Taymans bf7d8173b3 jitterbuffer: add some more debug 2013-07-26 12:17:55 +02:00
Vincent Penquerc'h 91d4abceaa aacparse: allow conversion from ADTS to raw AAC
Some muxers (eg, qtmux) only support raw AAC, so this allows linking
an encoder that outputs ADTS only to those muxers.

The conversion is simple (omit the first 7 or 9 bytes of the frame),
but has to be done in pre_push instead of handle_frame as 1.0 does
not seem to allow skipping bytes there as 0.10 used to.

Other conversions are not supported (yet).
2013-07-26 09:44:11 +01:00
Vincent Penquerc'h 55e9338846 aacparse: fix object_type parsing off-by-one in ADTS frame
According to http://wiki.multimedia.cx/index.php?title=ADTS,
the value stored in ADTS headers is one less than the object
type of the AAC stream.

A look at ffmpeg shows it also adds 1 to the value read off
the ADTS header.

Note that this might break other things that happen to have
an inverse off by one to match the existing code.
2013-07-26 09:44:10 +01:00
Thiago Santos 7eac4c7c03 avidemux: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events

Fixes #676242
2013-07-25 15:24:31 -03:00
Thiago Santos 8bd12e12b3 matroskademux: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events

Fixes #676242
2013-07-25 15:24:31 -03:00
Thiago Santos e49b6e7c35 qtdemux: correctly handle seqnum for seeks and segments
Use the same seqnum on messages and events for derived events.
Fixed for flushes / stream-start / segment after a seek, and segment
after a segment.

Fixes #676242
2013-07-25 15:24:31 -03:00
Wim Taymans c44a29bd53 bin: fix compilation 2013-07-24 14:17:45 +02: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
Wim Taymans f87875e35b rtpjitterbuffer: fix locking
Take the lock earlier so that we do things that follow with the right
locking.
2013-07-24 10:49:03 +02:00
Wim Taymans dece8413ef rtpsession: don't use invalid times in RTCP timeouts
An invalid timeout can be calculated when we disabled RTCP by setting the
bandwidth to 0. Make sure all code can handle this case.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674626
2013-07-23 17:41:48 +02:00
Wim Taymans 25e0f0d6b6 rtpsession: lock session when changing bandwidth
Take the session lock when changing the bandwidth properties so that we don't
end up with inconsistent behaviour.
2013-07-23 17:41:48 +02:00
Wim Taymans c337265ee4 session: reset some RTCP variables
The early_send time was set to 0 and always triggering an early RTCP packet.
2013-07-23 17:41:48 +02:00
Edward Hervey 3d48d25756 qtdemux: Add all the mpeg XDCAM variants
This should cover all known XDCAM variants (which are all mpeg2 video)

Fixes #672227
2013-07-23 15:03:31 +02:00
Carlos Rafael Giani 95429f1d4b rtpbin: added custom downstream sync event
rtpbin can now send a custom in-band downstream event which informs
downstream that the bin has received an RTCP SR packet. This is useful
for applications which want to drop the initial unsynchronized received
RTP packets.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703560

Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2013-07-23 06:25:20 +02:00
Tim-Philipp Müller f18b1f7e80 deinterlace: fix on-the-fly changing of "mode" and "fields" properties
We call setcaps() to reconfigure ourselves, but we need to pass
the current *sink* caps, not the source caps then. Also fix a
caps leak.

https://bugzilla.gnome.org/show_bug.cgi?id=641599
2013-07-22 18:00:16 +01:00
Sebastian Dröge 0c2ff91a5c wavparse: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Sebastian Dröge 169b490664 rtspsrc: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Sebastian Dröge 5a9f4a3cbc rtpsession: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Sebastian Dröge 57dd1189d5 matroskademux: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Sebastian Dröge 1a0278ed64 qtdemux: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Sebastian Dröge 1122698491 flvdemux: Add support for group-id in the stream-start event 2013-07-22 15:30:12 +02:00
Sebastian Dröge 6cc16da531 avidemux: Add support for group-id in the stream-start event 2013-07-22 15:30:12 +02:00
Mathieu Duponchelle d67a671bfb videomixer: use gst_util_uint64_scale*_round.
There could be a case where:
      1) you do a new set_caps after buffers have been processed.
      2) ts_offset gets set to a different value, eg 0.033333333
      3) your pads get EOS, but the check dor that doesn't work
         because you use ts_offset + a truncated value < segment.stop
      4) so in the next collected, you end up comparing for example:
      0.9999999999 > 1., which is false and means you don't send EOS.

Also adds scale_round in two other places where it potentially could
have caused problems.
2013-07-21 19:21:57 -04:00
Olivier Crête 96a8fb92e2 qtdemux: Add WRLE support 2013-07-19 14:58:30 -04:00
Tim-Philipp Müller aa7d597120 qtdemux: make files from Vivotek camera play
Skip tracks of 'vivo' subtype with empty stsd instead of
erroring out saying that the file is broken.

https://bugzilla.gnome.org/show_bug.cgi?id=699791
2013-07-19 19:38:30 +01:00
Tim-Philipp Müller ce52b319ff qtmux: when streaming don't try to seek when stopping
It might cause errors in sinks that are not seekable and
have reported this (like e.g. fdsink)

https://bugzilla.gnome.org/show_bug.cgi?id=696228
2013-07-19 17:31:38 +01:00
Wim Taymans bdd3c31902 qtdemux: simplify some helpers
Some helper functions are not needed anymore or can be simplified.
2013-07-19 17:26:54 +02:00
Wim Taymans 61a8937ced qtdemux: for non-raw video, move palette in caps
We only need to append the palette to raw video buffers, non-raw video has the
palette in the caps still.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-19 17:14:46 +02:00
Arnaud Vrac 40ab78825c qtdemux: nitpicking in esds parsing 2013-07-19 14:26:18 +02:00
Arnaud Vrac d0d25a5e1f qtdemux: set proper caps for mpeg-1 audio
Remove AAC specific fields from mpeg-1 audio caps, remove assumption
that the mpeg1 audio layer is 3, and set `parsed' field.

https://bugzilla.gnome.org/show_bug.cgi?id=704548
2013-07-19 14:26:08 +02:00
Arnaud Vrac 5def061d20 qtdemux: remove chapter stream
Remove all streams that are actually table of contents, since we will
never need the data after parsing them.
2013-07-18 11:48:12 +02:00
Arnaud Vrac ae67c13416 qtdemux: send gap event for sparse streams in push mode
This allows to pre-roll at least if the next subtitle buffer
is far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac 1237898351 qtdemux: do not use indexes from sparse stream when seeking in push mode
This makes seeking more accurate in push mode, since the previous
keyframe on a sparse stream might be far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac e561d12655 qtdemux: advertise subtitle streams as sparse 2013-07-18 11:48:11 +02:00
Arnaud Vrac 6e26f1d067 mastrokademux: do not push discont buffers if they aren't discont
Unset the discont flag instead of posssibly pushing a buffer with
a flag that's still set.

https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-07-17 18:10:11 +01:00
Wim Taymans 4c97701650 qtdemux: extract the palette from stsd
Sometimes a palette is inside the stsd, extract it instead of always using
the default one
2013-07-17 15:17:19 +02:00
Sebastian Dröge 9f73447229 goom2k1: Fix event handling and negotiate as soon as possible 2013-07-17 14:30:16 +02:00
Sebastian Dröge 78c7c16e9e goom: Fix event handling and negotiate as soon as possible 2013-07-17 14:28:43 +02:00
Wim Taymans 6b82c89562 qtdemux: add support for WRAW
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:17 +02:00
Wim Taymans f698483bb3 qtdemux: palette is appended to buffers, not in caps
Fix the palette handling, in 1.0 we append the palette to the buffer instead of
placing it on the caps.

See also https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:16 +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
Arnaud Vrac 54bba4f60c qtdemux: reset segment on flush stop
cca2f555d1 introduces a regression, where the demux segment is not
reset on flush stop, so the next upstream segment event will calculate
an invalid base time on the new segment to be sent downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=704255
2013-07-16 10:47:20 +02:00
Matej Knopp ca32442f86 qtdemux: offset samples according to edit list
https://bugzilla.gnome.org/show_bug.cgi?id=700264
2013-07-15 09:59:23 +02:00
Matej Knopp ae92ea21a1 aacparse: be less verbose when parsing LOAS streams
https://bugzilla.gnome.org/show_bug.cgi?id=704162
2013-07-15 07:55:08 +02:00
Matej Knopp 3111161e8a qtdemux: unselect instead of ignoring disabled track, detect chapter track
https://bugzilla.gnome.org/show_bug.cgi?id=704007
2013-07-12 11:45:33 +02:00
Kyosuke Nekomura 4d517e94ef audioecho: Fix handling of delay property in PLAYING/PAUSED state
https://bugzilla.gnome.org/show_bug.cgi?id=703901
2013-07-12 09:36:16 +02:00
Olivier Crête 3aa20e7c8d rtpmux: Enable proxy caps on the src pads 2013-07-11 17:21:22 -04:00
Matej Knopp 7b69f427f1 qtdemux: correct argument order in gst_util_uint64_scale_int_round
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-10 09:20:17 +02:00
Olivier Crête 1997acc8b2 rtpmux: Keep caps order from the peer or the filter 2013-07-09 17:43:31 -04:00
Sebastian Dröge 3d0988f46f videomixer: Fix handling of buffers without a duration
We'll have to pop buffer from collectpads and store it
internally only to get the timestamp of the next buffer.
If we continue to keep it in collectpads, no new buffer
to calculate the end time will ever arrive.

https://bugzilla.gnome.org/show_bug.cgi?id=703743
2013-07-09 12:42:17 +02:00
Sebastian Dröge 9e9d2ce098 videomixer: Fix negotiation with 0/1 framerates
https://bugzilla.gnome.org/show_bug.cgi?id=703743
2013-07-09 11:53:28 +02:00
Jonas Holmberg beebe2b7af matroskademux: Unlock stream lock after use
Stream lock of sink pad was not unlocked after non-updating seek.
2013-07-09 11:25:14 +02:00
Ognyan Tonchev aa2d96c46b multipartmux: Re-set need_segment flag after FLUSH_STOP
https://bugzilla.gnome.org/show_bug.cgi?id=703182
2013-07-09 09:16:20 +02: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
Wim Taymans ab24598443 rtspsrc: avoid some strdup 2013-07-02 11:13:25 +02:00
Wim Taymans 7c950ef3f2 rtspsrc: add select-stream signal
Add a signal to let the app select what streams will be selected.

See https://bugzilla.gnome.org/show_bug.cgi?id=634419
2013-07-02 10:40:35 +02:00
Wim Taymans 2d276e1bcb rtspsrc: avoid strdup 2013-07-02 10:40:35 +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 1db7e62060 rtspsrc: add signal to notify of the SDP
This way, the app can look and modify the SDP.
2013-07-01 17:31:30 +02:00
Matej Knopp 4053e1d6ac qtdemux: compute framerate from average sample duration
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-01 12:53:17 +02:00
Alban Browaeys 97015d3c93 flvdemux: Add flvversion 1 to the flash-video caps
This allows using avdec_flv which requires this field to be
present in the caps. FLV only supports flash-video version 1
right now.

https://bugzilla.gnome.org/show_bug.cgi?id=703076
2013-07-01 11:43:46 +02:00
Sebastian Dröge 5f6469fe2a deinterleave: Don't hold object lock while sending events downstream
Based on a patch by Kishore Arepalli <kishore.arepalli@gmail.com>

https://bugzilla.gnome.org/show_bug.cgi?id=703114
2013-07-01 11:37:00 +02:00
Sebastian Dröge 75b5a54f17 matroskademux: Add MPEG4 video profile/level to the caps 2013-07-01 11:01:13 +02:00
Sebastian Dröge 423bddac6a matroskademux: Add AAC profile/level to the caps
https://bugzilla.gnome.org/show_bug.cgi?id=703312
2013-07-01 11:01:13 +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 3289a2963b rtspsrc: reset-sync before play
Call reset-sync on the rtpbin before we go to playing. This makes us require SR
packets for all streams again before we attempt to sync them. If we don't reset,
it might be that we combine SR packets from before and after the PAUSE/PLAYING
state change and end up with huge bogus offsets.
2013-06-27 17:02:14 +02:00
Wim Taymans 519305d14d jitterbuffer: improve sync on first packets
Don't throw away the first RTCP packet if it arrives before the first
RTP packet but remember and use it to signal sync once we get the
RTP packet.

See https://bugzilla.gnome.org/show_bug.cgi?id=691400
2013-06-27 16:23:20 +02:00
Wim Taymans 8969f00661 jitterbuffer: only signal loop when active
Only signal the loop function when it is active.
2013-06-27 16:15:45 +02:00
Wim Taymans 4bd2ffb26e jitterbuffer: signal timestamp discont
We can now use the RESYNC buffer flag to mark a timestamp discont when we update
the ts-offset property.
2013-06-27 16:13:37 +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
Wim Taymans bb9d42b976 rtspsrc: avoid some flushes 2013-06-26 14:58:53 +02:00
Wim Taymans f39ef2ab68 rtspsrc: handle data message when waiting for reply
When we are waiting for a server reply, handle data messages instead of
ignoring them.
2013-06-26 14:41:36 +02:00
Wim Taymans 61219dc6ed rtspsrc: handle data messages in separate method
Refactor and make a method to handle a data message.
2013-06-26 14:41:36 +02:00
Wim Taymans a4be0c6de3 rtspsrc: add some more docs to handle-request signal
See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-25 20:36:18 +02:00