Commit graph

6825 commits

Author SHA1 Message Date
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
Olivier Crête
7293b0eff7 rtpssrcdemux: Simplify event forwarding
Use the gst_pad_forward() mechanic, this way we won't miss pads that are
added while we are pushing
2013-04-02 23:42:41 -04:00
Olivier Crête
f4c3aef13a rtpssrcdemux: Don't cross the internal links
We had the wrong condition to check for the internal links, so RTP and RTCP
pads got crossed!
2013-04-02 23:42:41 -04:00
Tim-Philipp Müller
078ff16abe matroskademux: fix some debug messages 2013-04-03 00:49:37 +01:00
Arnaud Vrac
00b46b4744 matroskademux: handle TrueHD audio codec id
https://bugzilla.gnome.org/show_bug.cgi?id=697113
2013-04-02 22:47:54 +01:00
Wim Taymans
ac2bcfa833 theorapay: add delta-unit to output frames 2013-03-31 19:14:04 +02:00
Matej Knopp
5686512b77 qtmux: use timestamp delta as duration if possible
https://bugzilla.gnome.org/show_bug.cgi?id=696437
2013-03-30 15:18:45 -07:00
Josep Torra
509631f60b rtp: fixes debug message printf related compiler warnings in SBC depayloader 2013-03-30 09:44:41 +01:00
Arun Raghavan
87bdad4bfc rtp: Add an rtpsbcdepay element
Pretty straightforward - takes SBC encapsulated in RTP, depayloads, and
pushes out SBC buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-28 17:22:33 +00:00
Tim-Philipp Müller
477cc51fe7 rtp: fix SBC payloader
Init RTP buffer on stack correctly, so mapping it works
without criticals and the payloader actually works.
2013-03-27 22:18:34 +00:00
David Schleef
53f8b05b08 Use %03u for format in gst_pad_create_stream_id_printf() 2013-03-25 18:57:08 -07:00
Sebastian Dröge
56062768af capssetter: Prevent unneeded caps copying and allocation 2013-03-25 10:12:03 +01:00
Dirk Van Haerenborgh
766c5b22ed capssetter: Pass any or filter caps upstream
capsetter accepts anything and just forwards different caps,
as such it should return ANY caps on the sinkpad.

https://bugzilla.gnome.org/show_bug.cgi?id=693005
2013-03-25 10:11:32 +01:00
Tim-Philipp Müller
35769f7c5d wavparse: expose CUE sheet items as tracks not chapter entries in TOC
https://bugzilla.gnome.org/show_bug.cgi?id=677306
2013-03-24 17:55:55 +00:00
Tim-Philipp Müller
163a7afa1a wavenc: add some example pipelines 2013-03-23 12:59:26 +00:00
Anton Belka
e808173483 wavenc: add TOC support
https://bugzilla.gnome.org/show_bug.cgi?id=680998
2013-03-23 12:55:08 +00:00
Matej Knopp
f29e62c131 qtdemux: make empty subtitle buffer recognition more robust
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-23 11:24:23 +00:00
David Schleef
c0443a17c4 qtmux: Fix test regression with one buffer streams 2013-03-22 15:14:15 -07:00
David Schleef
5bd2864101 qtdemux: split large raw audio samples
In order to deal with a file that has samples that are 24 seconds
long.  Seeking still doesn't work with such files.
2013-03-22 14:14:05 -07:00
David Schleef
364433c105 qtmux: Remove documentation for dts-method 2013-03-22 14:14:04 -07:00
David Schleef
6571e388be qtmux: deprecate dts-method property 2013-03-22 14:14:04 -07:00
David Schleef
ee56a7cb99 qtmux: Fix problems causing bad durations in file
- Fix up out-of-order incoming DTS values.
- Fix duration of initial sample.
2013-03-22 14:14:04 -07:00
David Schleef
816e186029 qtmux: fix all timestamps once first_ts is determined 2013-03-22 14:14:04 -07:00
David Schleef
258c40c6dd qtmux: Use PTS/DTS from incoming buffers
Remove old DTS guessing code.
2013-03-22 14:14:04 -07:00
Nicola Murino
709f05234f qtmux: expose mulaw caps
https://bugzilla.gnome.org/show_bug.cgi?id=696052
2013-03-22 20:08:06 +00:00