Commit graph

7114 commits

Author SHA1 Message Date
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
Youness Alaoui
52e440c91b Send a clock_provide message on the bus when we get a netclock 2013-06-25 14:50:47 +02:00
Youness Alaoui
547df8e14f rtspsrc: Expose use-pipeline-clock property 2013-06-25 14:50:33 +02:00
Wim Taymans
35f6e79b94 udpsink: bind to the given interface
Actually call BINDTODEVICE to bind to the interface as given by the
property.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702819
2013-06-24 17:13:05 +02:00
Sebastian Dröge
3c9aba91dc matroska: Add initial VP9 support 2013-06-21 18:22:13 +02:00
Youness Alaoui
95906b8f1c rtsp: go back into the loop after doing pause
After we do a pause request, go back to loop mode so that we can listen
for server messages again.

See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-21 10:42:20 +02:00
Olivier Crête
2cd6f53e24 rtpptdemux: Wait after the caps to forward the other events
First forward the stream-start, then the caps, then the rest
2013-06-20 23:16:59 -04:00
Wim Taymans
b96d931bf4 rtspsrc: fix race in state change to paused
When we go to paused, we first flush the connection and then send the pause
command. As a result of the flushing, the scheduled paused command can get
lost. Wait until the connection is completely flushed and the rtsp task is
waiting before issuing the paused or playing request.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-20 14:43:47 +02:00
Wim Taymans
8428423c04 qtdemux: handle SEGMENT query 2013-06-20 11:31:22 +02:00
Kishore Arepalli
5b32891ae1 avidemux: duration query returns zero for DV video in avi
https://bugzilla.gnome.org/show_bug.cgi?id=702625
2013-06-19 11:17:22 +02:00
Sebastian Dröge
b001da2926 qtdemux: Disable usage of allocation queries
This can only reliably work if demuxers have a
separate streaming thread per srcpad. This should be
done in a demuxer base class, which integrates parts
of multiqueue

https://bugzilla.gnome.org/show_bug.cgi?id=701856
2013-06-19 11:07:48 +02:00
Alex Ashley
46a137c810 Avoid skipping moov atoms for fragmented MP4 files.
bug #700505

Following a representation change that causes a resolution change,
the video decoder fails to decode correctly. Dashdemux detects the
representation change and pushes a new caps event and an
initialization segment (a new moov atom) to the downstream qtdemux,
but it doesn't handle this new moov yet, it will only parse the
first one it receives.

This commit changes qtdemux to accept a new moov in a dash bitstream
switching scenario.
2013-06-19 01:44:22 -03:00
Thiago Santos
384e8f6c34 qtdemux: send stream-start only once for each stream
Do not send stream start again when reconfiguring a pad for new caps.
That is common for adaptive streams
2013-06-19 00:55:30 -03:00