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
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
d9bc48edc9
rtspsrc: manage element state ourselves
...
Lock the state of the all our elements and manage their states
outselves. Because we are working async, we can't rely on the state
change function to set the state at the right time or to return the
right return value from the state change function.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702046
2013-06-16 05:40:13 +02:00
Bruno Gonzalez
e89a48616b
matroskademux: Don't unlock stream lock without locking it first
...
https://bugzilla.gnome.org/show_bug.cgi?id=702167
2013-06-14 14:10:13 +02:00
Wim Taymans
51c9f7989f
rtpsession: Use the right hashtable to calculate bandwidth
...
Don't use an unused hashtable to iterate source to calculate bandwidth.
Remove unused code.
2013-06-13 16:02:19 +02:00
Sebastian Dröge
01cc493944
Revert "videomixer: When all sinkpads are eos, update output segment stop and forward it"
...
This reverts commit 2d3910fc79
.
It's not solving any problem and instead causes code to fall apart.
https://bugzilla.gnome.org/show_bug.cgi?id=701519
2013-06-12 18:25:59 +02:00
Tim-Philipp Müller
213cd2777b
matroskademux: mark subtitle streams as sparse in stream-start event
...
And also mark the streams that should be selected by default if
marked so in the headers.
https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-06-12 15:31:22 +01:00
Stefan Sauer
39c4c5f251
audiopanorama: add prebuilt files
2013-06-11 22:14:33 +02:00
Stefan Sauer
349a60e164
audiopanorama: cleanup of transform()
...
Only map input if we are reading it. Cleanup the logging and the comments a bit.
2013-06-11 21:48:18 +02:00
Stefan Sauer
1dc06932a2
audiopanorama: use orc to speedup processing
...
Use special variants for the case when we don't change the panorama (pan=0.0).
Simplify the processing functions by passing the panorama value directy instead
of the instance. Use orc for clearing buffers too.
2013-06-11 21:48:18 +02:00
Mathieu Duponchelle
6e23f1fec4
videomixer: check last end_time after conversion to running segment
...
The last end_time was saved after conversion, so the comparison
had to be made after conversion for it to make sense.
https://bugzilla.gnome.org/show_bug.cgi?id=701385
2013-06-11 21:03:35 +02:00
Mathieu Duponchelle
4243714301
videomixer: add mix->segment.start to output_end_time
...
When the segment start is not 0, this created a situation where
the output_end_time is inferior to output_start_time, and the duration
of the next buffer ended up underflowing.
https://bugzilla.gnome.org/show_bug.cgi?id=701385
2013-06-11 21:03:03 +02:00
Sebastian Dröge
e2b46a776f
matroskademux: Send stream headers after the segment event
...
https://bugzilla.gnome.org/show_bug.cgi?id=700799
2013-06-11 13:54:53 +02:00
Sebastian Dröge
adc9f0bd10
qtdemux: Do allocation query after exposing all pads and no-more-pads
...
Also configure video streams as early as possible.
Related https://bugzilla.gnome.org/show_bug.cgi?id=701856
but not fixing that.
2013-06-11 12:27:19 +02:00
Sebastian Dröge
ab275b62a8
flvdemux: Don't forward CAPS events from upstream
...
Just use the default pad event handler.
https://bugzilla.gnome.org/show_bug.cgi?id=701976
2013-06-11 12:27:19 +02:00
Stefan Sauer
4ef27eb0f9
audiopanorama: move the enum to the header and use instead of gint
...
Move the enum for the processing method to the header so that we can use the
type for the instance struct.
2013-06-09 20:39:48 +02:00
Sebastian Dröge
1ba08e331c
wavenc: Link with libgstbase for GstByteWriter
2013-06-07 15:15:15 +02:00
Sebastian Dröge
db1c2a28a6
wavparse: Push stream-start event in pull mode before anything else
2013-06-07 13:27:07 +02:00
Sebastian Dröge
048866f1b1
Release 1.1.1
2013-06-05 18:31:40 +02:00
Sebastian Dröge
ea75b890dc
wavenc: Fix taglist ref handling that made the unit test fail
2013-06-05 15:50:04 +02:00
Wim Taymans
0d27829a6b
udpsink: avoid leaking the host
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586
2013-06-05 12:14:01 +02:00
Thiago Santos
7c12435f9b
qtdemux: make sure taglist is writable before adding tags
...
Avoids assertions
2013-06-02 15:37:06 -03:00
Thiago Santos
78dfdee2aa
qtdemux: effectively skip tracks that weren't listed on the 1st moov
...
Without this, stream is NULL and the code will try to access it, leading
to segfaults.
2013-06-02 13:06:15 -03:00
Thiago Santos
70fca21c28
qtdemux: skip redundant check
...
!got_moov is already checked the line above
2013-06-02 13:06:15 -03:00
Stefan Sauer
bcf1bba689
level: remove unused variables in instance struct
2013-06-01 21:34:37 +02:00
Anton Belka
db29522a43
wavenc: add tags & toc support
...
Write tags as LIST INFO chunk. Format the toc as cue + LIST adtl chunk. Remove
old #ifdef'ed code.
2013-06-01 21:34:37 +02: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
Wim Taymans
25082a50b9
rtspsrc: add extra TLS url protocols
...
We also support TLS protocols now.
2013-05-31 12:34:22 +02:00
Sebastian Dröge
e2e1d1a158
videomixer: Add FIXME comment about the DURATION query from adder
...
Currently the code just takes with maximum upstream duration, which
is wrong. It should be the maximum upstream duration in running time.
2013-05-30 23:56:38 +02:00
Mathieu Duponchelle
5223868caa
videomixer: Set a reference to mix->current_caps as the QUERY_CAPS result.
2013-05-30 15:36:48 -04:00
Stefan Sauer
6feaf69bec
level: misc cleanups
...
Fix some oudated comments. Sort out some confusion of interval_frames and num_frames.
2013-05-30 17:38:55 +02:00
Stefan Sauer
52282b5faa
level: fix discontinuities in timestamps
2013-05-28 19:09:12 +02:00
Wim Taymans
80850df711
rtspsrc: create and push stream-start in TCP mode
2013-05-28 15:45:49 +02:00
Wim Taymans
4fc1f3088b
rtspsrc: remove some obsolete code
...
It is not needed to do a state change from the _play() function on
ourselves. The state change function already did that and we don't want to
interfere with that (or use hacks to avoid interference).
2013-05-28 15:10:07 +02:00
Wim Taymans
e6f850996b
rtspsrc: set RTCP caps on the RTCP pads
2013-05-28 12:26:25 +02:00
Wim Taymans
63f0ecbbe7
rtpsession: send stream-start and segment events
...
Also send stream-start and segment event on the RTCP pad.
We don't need to send anything on the sync_src pad because we
already forwarded all incomming events.
2013-05-28 12:26:25 +02:00
Wim Taymans
779bcc093c
rtspsrc: add signal to handle server requests
...
Add a signal to be notified of a server request. The signal handler can then
construct the response message for the server.
See https://bugzilla.gnome.org/show_bug.cgi?id=632207
2013-05-28 12:26:24 +02:00
Nicolas Dufresne
cd30a81ee3
videomixer: Maintain z-order when new pad are added
...
https://bugzilla.gnome.org/show_bug.cgi?id=701109
2013-05-27 22:43:25 -04:00
Thibault Saunier
7a3df1ab31
videomixer: Always handle flush_stop_pending atomically
...
It is not protected with the COLLECT_PADS_STREAM_LOCK anymore
2013-05-25 12:20:08 -04:00
Thibault Saunier
608bd3e2db
videomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary
...
Collectpad takes the lock itself when receiving serialized events
and we should not take it for not serialized ones
2013-05-25 11:03:31 -04:00
Sebastian Dröge
1b5a8ac41c
flxdec: Properly skip non-frame chunks
2013-05-24 19:34:05 +02:00
Sebastian Dröge
ae3ee32f42
flxdec: Flush data from adapter after reading it
...
Otherwise we're going in an infinite loop, reading the same data
over and over again.
2013-05-24 19:31:14 +02:00
Andoni Morales Alastruey
a62af107ae
goom2k1: fix more duplicated symbols
2013-05-24 09:29:23 +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 Dröge
e26b8c2832
(dyn|multi)udpsink: Add properties to specify the bind address and port
...
By default we use the any addresses and a random port for binding the socket.
2013-05-23 18:42:09 +02:00
Sebastian Dröge
5b79b8ff3c
(dyn|multi)udpsink: Bind socket before using it
...
https://bugzilla.gnome.org/show_bug.cgi?id=700878
2013-05-23 18:05:07 +02:00
Sebastian Dröge
1ed7f7a6a8
(multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties
2013-05-23 17:26:31 +02:00
Nicolas Dufresne
d8c5e31657
videomixer: Don't hold stream-lock while pushing non-serialized events
...
https://bugzilla.gnome.org/show_bug.cgi?id=700868
2013-05-23 09:20:04 -04:00
Nicolas Dufresne
a7e0f251ca
videomixer: Don't hold object lock while sending events
...
https://bugzilla.gnome.org/show_bug.cgi?id=700868
2013-05-23 09:20:04 -04:00
Sebastian Dröge
ecc6c607ff
deinterlace: The return value of gst_pad_set_caps() is not relevant anymore
...
Caps can fail to be set because the pad is not linked yet for example.
2013-05-22 17:34:07 +02:00
David Schleef
318cd39c3e
qtdemux: Add error if file has playready drm
2013-05-21 18:21:49 -07:00
Thibault Saunier
18ef4f18d0
videomixer: Send a reconfigure event upstream if sinkpad caps are not usable
...
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-21 12:15:36 -04:00
Alexander Schrab
a1df050356
mulawdec: Handle NULL buffers in handle_frame
...
https://bugzilla.gnome.org/show_bug.cgi?id=698894
2013-05-21 15:18:04 +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
Mathieu Duponchelle
2d3910fc79
videomixer: When all sinkpads are eos, update output segment stop and forward it
...
https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-20 21:06:56 +02:00
Mathieu Duponchelle
521c9a7b5d
videomixer: Don't reset the output segment on flush stop
...
Only init it when getting from READY to PAUSED, and change it on seek events.
https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-20 21:03:03 +02:00
Thibault Saunier
86b106091c
videomixer: Send caps event from the streaming thread
...
This way we avoid races in caps negotiation and we make sure
that the caps are sent after stream-start.
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Thibault Saunier
718f9004d0
videomixer: Do not send flush_stop when receiving a seek
...
There is no reason to send a flush-stop when receiving a seek event.
In the case of a flushing seek, we could eventually want to, but in
the code path were we check if the seek is "flushing", we have the
following comment that makes sense:
"we can't send FLUSH_STOP here since upstream could start pushing data
after we unlock mix->collect.
We set flush_stop_pending to TRUE instead and send FLUSH_STOP after
forwarding the seek upstream or from gst_videomixer_collected,
whichever happens first."
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Thibault Saunier
85b6852deb
videomixer2: Protect flush_stop_pending with the collectpad stream lock
...
And make sure to expect a flush-stop after a flush-start
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04: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
Thiago Santos
55caa99ccd
qtdemux: Do not expect EOS after a segment event if upstream is mss
...
In case qtdemux is handling a mss stream, do not mark the stream to wait
for EOS after a segment. Even if it seems to be the last one according to
the current streams information.
MSS handling is different here because there is another demuxer driving
the pipeline
2013-05-16 16:50:49 -03:00
Thiago Santos
5517e352ab
qtdemux: only set channels and rate if qtdemux knows it
...
Setting both of those to 0 is pointless and means that qtdemux
doesn't know the real value. Avoid setting it in this case.
2013-05-16 16:50:49 -03:00
Arnaud Vrac
6edcc564ba
qtdemux: set alac caps using info from codec buffer
...
The samplerate field in the STSD atom is not right for some ALAC files
(usually when audio is 96kHz/24bits), so the audio caps must be
extracted from the codec data.
https://bugzilla.gnome.org/show_bug.cgi?id=700382
2013-05-15 18:42:11 +01:00
Arnaud Vrac
8ed611cdbc
avidemux: do not push discont buffers if they aren't discont
...
https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-05-15 13:16:11 +01:00
Joshua M. Doe
837dcfb363
videocrop: Add support for GRAY16_LE/GRAY16_BE
...
https://bugzilla.gnome.org/show_bug.cgi?id=700331
2013-05-15 09:29:30 +02:00
Sebastian Dröge
41e1af3751
rgvolume: Send all events through the proxypads instead of just sending to the target
...
Otherwise the sticky events are missing on the proxypads.
2013-05-14 17:29:58 +02:00