Commit graph

6849 commits

Author SHA1 Message Date
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
Sebastian Dröge
4fdbf88a65 matroskaparse: Make sure to send a segment event before dataflow 2013-05-14 13:52:18 +02:00
Sebastian Dröge
5c8bb90262 deinterlace: Improve handling of min/max buffer numbers of the buffer pool 2013-05-14 09:45:12 +02:00
Matej Knopp
30c00f4fb7 deinterlace: set caps for buffer pool config 2013-05-14 09:38:24 +02:00
Olivier Crête
4f0fdabf10 multifilesink: Let the base class do get_times
This will make sync=TRUE work, the default is still sync=FALSE
2013-05-13 13:34:22 -04:00
Nicolas Dufresne
f67c227878 interleave: Send stream-start before caps event 2013-05-13 15:37:38 +02:00
Nicolas Dufresne
04c9f43567 rtpmux: Send stream-start before caps 2013-05-13 15:37:05 +02:00
Sebastian Dröge
6dee7d3a06 icydemux: Fix sticky event handling 2013-05-13 15:19:25 +02:00
Sebastian Dröge
9ac456bd43 flvmux: Push sticky events in the right order 2013-05-13 15:06:03 +02:00
Sebastian Dröge
0ab23ef5c9 deinterleave: Fix sticky event handling 2013-05-13 14:54:35 +02:00
Sebastian Dröge
c94fbf6206 deinterleave: Code style fixes 2013-05-13 13:55:44 +02:00
Sebastian Dröge
f28ab45f3e rtpgstpay: First let baseclass handle events, then put them into the stream
Fixes handling of sticky events.

https://bugzilla.gnome.org/show_bug.cgi?id=700213
2013-05-13 13:44:35 +02:00
Tim-Philipp Müller
8359b6bff1 multipartdemux: fix example pipeline
Need jpegparse.
2013-05-10 14:01:14 +01:00
Nicolas Dufresne
0b737fba0d shapewipe: Can't map twice the same buffer for writing
I took the opportunity to simplify that code a bit. We now use
gst_buffer_make_writable() to make the buffer writable and map twice the
same buffer, with first map being read/write, and second read only. This
get rid of the critical:

GStreamer-CRITICAL **: gst_structure_set_name: assertion `IS_MUTABLE

https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:27:02 +02:00
Nicolas Dufresne
13a5d0304d shapewipe: Ensure caps are writable
The exist one case where that we endup with original caps in ret, in which
case we are not guaratied to have writable caps. Simply ensure this is the
caps are writable before entering the loop.

https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:26:07 +02:00
Nicolas Dufresne
59c2f459de shapewipe: Fix sample pipeline in documentation
https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:26:00 +02:00
Sebastian Dröge
3110b7cc31 Revert "videomixer2: Take into account new segments"
This reverts commit 84ae670ab4.

Actually this is not how it is supposed to work. videomixer
creates a [0,-1] segment and then puts frames of the different
streams there based on their running times in their own segments.
2013-05-09 16:26:19 +02:00
Mathieu Duponchelle
84ae670ab4 videomixer2: Take into account new segments
Also forward the event downstream on the next opportunity.

https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-09 16:18:54 +02:00
Tim-Philipp Müller
643450c9b8 Revert "gstrtspsrc: set buffer-size for multicast buffers"
This reverts commit 2481e95d03.

This is already done five lines above, it was added a year
ago in commit 561b131e.
2013-05-09 09:09:59 +01:00
Nicolas Dufresne
2d53229a86 audiowsinclimit: Frequence property renamed cutoff
Updating the documentation to reflect this change.

See: https://bugzilla.gnome.org/show_bug.cgi?id=699964
2013-05-09 08:46:04 +02:00
Aha Unsworth
2481e95d03 gstrtspsrc: set buffer-size for multicast buffers
For receiving video data via RTSP when the video is sent via
multicast there is no way to specify the udpsrc buffer-size.

On windows the native network buffer is not large and with video
i-frames being huge the buffer is to small and you get i-frame corruption,
it looks terrible, and there is no (easy) way to set the udpsrc buffer-size.

https://bugs.freedesktop.org/show_bug.cgi?id=52264
2013-05-08 16:57:53 -03:00
Sebastian Dröge
1588cda9a1 videomixer2: Send stream-start before caps event
https://bugzilla.gnome.org/show_bug.cgi?id=699895
2013-05-08 16:02:46 +02:00
Thiago Santos
a0e934e72e qtdemux: push new caps events when caps change
Whenever the demuxer has a new caps on a stream, it should set the
new_caps variable to true and a new caps event will be pushed before
the next buffer
2013-05-07 19:29:17 -03:00
Thiago Santos
725faab590 qtdemux: do not push discont buffers if they aren't discont
qtdemux takes its buffers from a GstAdapter. Those buffers are created
from the larger buffer that it obtained from upstream and they carry
the same flags, including DISCONT if it is set. In these cases, all
buffers that qtdemux is going to push would be marked as DISCONT.

This scenario can make parsers/decoders flush on every buffer leading
to no decoding at all hapenning. This patch prevents this by unsetting
the flag if it shouldn't be set.
2013-05-07 19:29:17 -03:00
Thiago Santos
4d073beeee qtdemux: some code cleanup for mss handling code
* Explicitly init variables for fragmented formats at init
* Do not use GstClockTime type if the variable isn't a timestamp
* Fix a style/readability issue at an if block
* Group 2 mss mode conditional blocks together to improve readability

Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
d1b91c755c qtdemux: avoid storing non-time newsegments to push later
This can confuse downstream when they get a byte segment after receiving
the natural time segment from qtdemux that it sends when starting to
push buffers. This is specially the case with parsers that try to
convert the position from byte to time format and might miss the
correct position for playback to start.
2013-05-07 19:29:17 -03:00
Thiago Santos
895525b5cb qtdemux: avoid setting fields to non-writable caps 2013-05-07 19:29:17 -03:00
Wim Taymans
544d926732 qtdemux: don't send so many segment events
Only send one segment event in the beginning of the stream, not
after each moov and moof atom.

Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Wim Taymans
d9cd4fcc17 qtdemux: place incomming timestamps on output
Place the incomming timestamp (if any) directly onto the outgoing buffers
and interpollate other timestamps.

Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
cca2f555d1 qtdemux: improve reset of internal status
Reset different variables on state changes to ready and when
handling a flush-stop. For handling flush stops we should check
if there is an upstream adaptive demuxer driving the pipeline as this
means that qtdemux will get a new moov atom. For 'standard' isomedia
streams this isn't true and qtdemux should keep the previous moov
information around.

Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
6c69e59677 qtdemux: prepare qtdemux to accept multiple dash moovs in a row
Whenever dashdemux switches bitrates it sends a new moov with the
new stream configuration. qtdemux should now handle this by splitting
the exposing and configuration of streams into separate functions. When
the stream is new it is configured and exposed, when it is a new bitrate
of an existing stream it is only reconfigured.

Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:25:30 -03:00
Andre Moreira Magalhaes (andrunko)
2a7d3d1598 qtdemux: Move FLUSH_STOP/PAUSED_TO_READY handling to a reset method.
Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Louis-Francis Ratté-Boulianne
d499b461da qtdemux: Remove old pads when exposing streams and other general fixes.
Conflicts:
	gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Thiago Santos
a3c19eeea1 qtdemux: handle mss streams
smoothstreaming streams should be handled as a special kind of
fragmented isomedia. In MSS the fragments will not contain a
'moov' atom with the media descriptions, this has to be extracted
from the caps.

Additionally, there should be another demuxer upstream that is likely
going to be the one to answer/act on queries and events, so qtdemux has
to forward those upstream.
2013-05-07 19:18:03 -03:00
Sebastian Rasmussen
9532b04947 rtpgstpay: fix invalid memory access in event handler
First process event in payloader, then hand it to the
base class which takes ownership of the event.

https://bugzilla.gnome.org/show_bug.cgi?id=699637
2013-05-04 10:49:23 +01:00
Tim-Philipp Müller
68ac392e8f ac3parse, dcaparse: check buffer size before trimming
and unref old buffer as soon as possible.
2013-05-04 10:08:47 +01:00
Andoni Morales Alastruey
3462282b83 dcaparse: add support for "audio/x-private1-dts" 2013-05-03 13:44:23 +02:00
Andoni Morales Alastruey
4531381541 ac3parse: add support for "audio/x-private1-ac3" 2013-05-03 13:44:23 +02:00
Andoni Morales Alastruey
4a78a77e65 rtp: fix duplicated symbols with libvpx 2013-05-02 14:03:33 +02:00
Andoni Morales Alastruey
584fdbad84 goom2k1: fix duplicated symbols with goom 2013-05-02 14:03:26 +02:00
Sebastian Dröge
ae05ed4f05 rtph264pay: If the adapter is empty on EOS don't try to map its content
https://bugzilla.gnome.org/show_bug.cgi?id=699314
2013-05-01 15:49:45 +02:00
Ognyan Tonchev
0584d5c4c9 matroskademux: add stream-format=raw to aac caps
https://bugzilla.gnome.org/show_bug.cgi?id=699303
2013-05-01 15:47:15 +02:00
Tim-Philipp Müller
7ccb387e85 udp: log WARNING debug message if UDP multicast is likely to be broken 2013-04-27 11:25:12 +01:00
Tim-Philipp Müller
4273eccace udpsrc: add includes to get socklen_t defined on Windows
https://bugzilla.gnome.org/show_bug.cgi?id=692400
2013-04-27 11:16:54 +01:00
Yury Delendik
4bc06859d1 qtdemux: add support for VP6F VP6 flash codec
https://bugzilla.gnome.org/show_bug.cgi?id=699010
2013-04-27 09:39:45 +01:00
Edward Hervey
3e5ad52c0d monoscope: Fix debug statement 2013-04-26 12:16:49 +02:00
Alexander Schrab
3ec9673dfc mulawdec: change base class to GstAudioDecoder
https://bugzilla.gnome.org/show_bug.cgi?id=698894
2013-04-26 08:46:34 +02:00
Mathieu Duponchelle
6b153ce385 videomixer: send stream-start event. 2013-04-25 16:09:34 -03:00
Wim Taymans
1df2e623b5 docs: add some pay/depayloaders
See https://bugzilla.gnome.org/show_bug.cgi?id=551631
2013-04-25 14:05:55 +02:00
Sebastian Dröge
fb0384fa0d mulaw: Some minor memleak fixes and cleanup 2013-04-25 12:44:15 +02:00
Alexander Schrab
f0edb5fb70 mulawenc: change to gstaudioencoder base, added bitrate tags 2013-04-25 12:36:15 +02:00
Sebastian Dröge
b1af93f791 (multi)udpsink: Use separate sockets for IPv4 and IPv6
https://bugzilla.gnome.org/show_bug.cgi?id=534243
2013-04-25 12:12:23 +02:00
Sebastian Dröge
0b552150ce dynudpsink: Use separate sockets for IPv4 and IPv6
https://bugzilla.gnome.org/show_bug.cgi?id=534243
2013-04-25 12:09:27 +02:00
Sebastian Dröge
ed8ea46424 udp: Don't include removed gstudp.h in noinst_HEADERS 2013-04-25 10:43:56 +02:00
Sebastian Dröge
afb284e3a9 udp: Remove unused enum type 2013-04-25 09:16:14 +02:00
Sebastian Dröge
a957457cc1 udp: Use the generic marshaller instead of generating marshallers 2013-04-25 09:13:51 +02:00
Sebastian Dröge
07d3363436 udpsrc: Rename instance variable from host to multi_group
This is more consistent as it's used for the multicast-group property.
2013-04-25 09:07:41 +02:00
Sebastian Dröge
427673d283 udpsrc: Add bind-address property
This is equivalent to multicast-group currently for backwards compatibility.
In 2.0 this should be handled separately, the former only being the multicast
group and the latter always being the address the socket is bound to, even if
a multicast group is given.
2013-04-25 09:05:12 +02:00
Wim Taymans
5ba3fd3c63 vrawdepay: return output buffer from process
Return the output buffer from the process function instead of pushing
it ourselves. This way, the subclass can actually deal with the return
value of the push.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727
2013-04-24 16:24:25 +02:00
Wim Taymans
eac9efb92e rtp: a marker bit should translate to RESYNC
A marker bit on an audio packet does not mean a DISCONT (in the GStreamer sense
of missing data) but it means that the packet is the end of a talkspurt and thus
a good opportunity to resync to the clock. Use the RESYNC buffer flag to note
this.
Real discontinuities are marked with DISCONT still when the seqnum has a GAP or
when the input buffer has the DISCONT flag set.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=627204
2013-04-24 15:42:45 +02:00
Sebastian Dröge
fdb667ae00 rtpjpegdepay: Drop frame if it's less than 2 bytes large
https://bugzilla.gnome.org/show_bug.cgi?id=677560
2013-04-22 10:19:29 +02:00
Sreerenj Balachandran
504360fe36 autodetect: use _plugin_feature_rank_compare API instead of duplicating the code. 2013-04-18 14:00:06 +02:00
Olivier Crête
24bb263d54 videomixer: Don't unref query, we don't own it
Fixes double-unref bug. Bug found by Youness Alaoui
2013-04-16 19:29:48 -04:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Andoni Morales Alastruey
2ea9a66dd5 goom2k1: fix duplicated symbol with goom 2013-04-15 08:43:05 +02:00
Wim Taymans
9d7519f66e rtp: register tag image types
The rtpgstdepay needs the type to be available in order to deserialize the
event.
2013-04-12 16:18:42 +01:00
Wim Taymans
b1f4587d75 rtpgstdepay: handle event parse failures better 2013-04-12 16:18:42 +01:00
Anton Belka
b959d827be wavenc: add TOC setter support 2013-04-12 14:35:47 +02:00
Stefan Sauer
f4577ff492 wavenc: small cleanups for toc handling
Don't add empty labl/note chunks. Always pass instance as the first param. Add more logging.
2013-04-12 14:35:47 +02:00
Sebastian Dröge
b17750ed9e rtspsrc: Proxy the ntp-sync property of rtpbin 2013-04-12 12:58:50 +02:00
Sebastian Dröge
53dae1585e rtspsrc: Give the manager always the name "manager"
This allows to use the GstChildProxy interface to adjust
properties on it.
2013-04-12 12:51:05 +02:00
Anton Belka
bda2703e88 wavenc: add 'note' chunk support 2013-04-11 20:47:18 +02:00
Wim Taymans
f8013487c9 rtspsrc: add support for NetClientClock
When the server suggests a GstNetTimeProvider in the SDP, set up a
GstNetClientClock that slaves to the remote clock and suggest this clock in
provide_clock.
2013-04-11 15:00:05 +01:00
Wim Taymans
f96aa414e1 udpsink: avoid alloc and free in render function
Avoid doing alloc and free in the render function for each buffer. Instead,
allocate the needed arrays in _init and use those.
2013-04-11 14:57:11 +01:00
Stefan Sauer
48b9919e31 waveparse: remove superfluous g_list_first() calls
The variables already point to the start of the list.
2013-04-10 14:25:24 +02:00
Andreas Fenkart
20d3ec8810 rtpsbcdepay: fix sbc frame length calculation for mono and stereo modes
https://bugzilla.gnome.org/show_bug.cgi?id=697463
2013-04-09 23:17:57 +01:00
Anton Belka
5ae92ce770 wavparse: add 'note' chunk support
Add 'note' chunk support in TOC as GST_TAG_COMMENT

https://bugzilla.gnome.org/show_bug.cgi?id=696549
2013-04-09 22:58:27 +02:00
David Schleef
a55ccff854 qtdemux: check value inside enda to set endianness 2013-04-09 13:30:17 -07:00
Wim Taymans
ece73b786a icydemux: avoid copy when we can 2013-04-09 17:34:12 +02:00
Wim Taymans
91a3afc4dc gstpay: use bufferlist to avoid memcpy 2013-04-09 16:53:31 +02:00
Wim Taymans
3d7d757521 udpsink: improve debug 2013-04-09 16:53:31 +02:00
Alexander Schrab
79d5a7d03c wavparse: error out if we receive eos before any valid data
https://bugzilla.gnome.org/show_bug.cgi?id=696684
2013-04-09 00:27:31 +01:00
Matej Knopp
67c2219687 deinterlace: force deinterlacing in "interlaced" mode
https://bugzilla.gnome.org/show_bug.cgi?id=697467
2013-04-07 20:48:21 +01:00
Nicola Murino
c41c16424d rtpsbcdepay: fix printf format compiler warnings
https://bugzilla.gnome.org/show_bug.cgi?id=697343
2013-04-05 13:50:19 +01:00
Stefan Sauer
b79f667ef4 level: resync on discont
Drop pending data on discont and start a new cycle with a new base timestamp.
Cleanup some variables.
2013-04-04 22:49:49 +02:00
Olivier Crête
f8831c0cd2 rtpsbcdepay: Rank as secondary
This way, it will be selected by decodebin
Bug reported by andreas.fenkart@streamunlimited.com

https://bugzilla.gnome.org/show_bug.cgi?id=697227
2013-04-03 18:25:36 -04:00
Stefan Sauer
2e56032031 level: subdivide buffers for sample accurate interval handling
Previously we would skip level message when processing buffers > the requested
interval. Also the message frequency would contain quite some jitter due to only
considering them at the end of buffers.

Cleanup the tests while we're at it.
2013-04-03 21:40:17 +02:00
Stefan Sauer
b062171dda spectrum: remove old since comment 2013-04-03 20:30:08 +02:00
Sebastian Dröge
d80ff8e7f3 rtspsrc: Proxy the multicast-iface property of udpsrc 2013-04-03 17:53:13 +02:00
Olivier Crête
6f3734c305 rtpssrcdemux: Only forward stick events while holding the sinkpad stream lock
Otherwise we get a race where if the RTCP packet comes in first and while
it is added the pads, the segment event arrives on the RTP stream, the event
may be lost completely and never forwarded.
2013-04-02 23:42:42 -04:00
Olivier Crête
76679f9ae9 rtpssrcdemux: No need to explicitely forward the caps
They are forwarded with the other events
2013-04-02 23:42:41 -04:00
Olivier Crête
4ad8693f3c rtpssrcdemux: Remove unused GstSegment 2013-04-02 23:42:41 -04:00