platform/upstream/gstreamer.git
13 years agortpjitterbuffer: check some more for possible rtp timestamp discontinuity
Mark Nauwelaerts [Thu, 18 Aug 2011 12:12:21 +0000 (14:12 +0200)]
rtpjitterbuffer: check some more for possible rtp timestamp discontinuity

... when operating in non slave mode, and reset if detected.
This should avoid some (large) bogus outgoing timestamp due to jumps
in rtp time, as result of PAUSE/PLAY or seek or ...

13 years agortspsrc: switch to rtp time based syncing when guessed appropriate
Mark Nauwelaerts [Mon, 8 Aug 2011 10:48:50 +0000 (12:48 +0200)]
rtspsrc: switch to rtp time based syncing when guessed appropriate

13 years agortpbin: alternative inter-stream syncing methods
Mark Nauwelaerts [Mon, 8 Aug 2011 10:15:20 +0000 (12:15 +0200)]
rtpbin: alternative inter-stream syncing methods

... at least if not syncing to NPT time:
* either sync using RTCP SR data (as currently)
* only perform the above once using initial RTCP SR packets
* discard RTCP and sync by equating provided stream's clock-base rtptime,
  as provided by jitterbuffer (typically obtained from RTP-Info in RTSP).

13 years agortpjitterbuffer: also provide clock-base to sync signal
Mark Nauwelaerts [Mon, 8 Aug 2011 10:11:24 +0000 (12:11 +0200)]
rtpjitterbuffer: also provide clock-base to sync signal

13 years agortpbin: allow configurable rtcp stream syncing interval
Mark Nauwelaerts [Mon, 8 Aug 2011 10:09:41 +0000 (12:09 +0200)]
rtpbin: allow configurable rtcp stream syncing interval

... rather than necessarily syncing at each RTCP SR.

13 years agortpsession: trigger reconsideration if rtcp interval set
Mark Nauwelaerts [Mon, 1 Aug 2011 06:35:01 +0000 (08:35 +0200)]
rtpsession: trigger reconsideration if rtcp interval set

13 years agortspsrc: configure rtcp interval if provided
Mark Nauwelaerts [Mon, 1 Aug 2011 06:32:24 +0000 (08:32 +0200)]
rtspsrc: configure rtcp interval if provided

... in PLAY response.

13 years agoisomp4: Fix allowing zero duration tracks
Lasse Laukkanen [Fri, 16 Sep 2011 13:53:22 +0000 (16:53 +0300)]
isomp4: Fix allowing zero duration tracks

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

13 years agoudpsrc: error out when no protocol is specified in the uri
Vincent Penquerc'h [Mon, 5 Sep 2011 09:11:18 +0000 (10:11 +0100)]
udpsrc: error out when no protocol is specified in the uri

It is certainly better than to crash.

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

13 years agospeexenc: do not use invalid buffer timestamps
Vincent Penquerc'h [Mon, 19 Sep 2011 07:37:58 +0000 (09:37 +0200)]
speexenc: do not use invalid buffer timestamps

13 years agopulse: New pulseaudiosink element to handle format changes
Arun Raghavan [Tue, 29 Mar 2011 06:39:18 +0000 (12:09 +0530)]
pulse: New pulseaudiosink element to handle format changes

This introduces a new bin which wraps around pulsesink and depending on
the formats supported by the sink, plugs in/out a decodebin2 as
required. This allows users to switch sinks on the stream and adapts
accordingly (for example, you could watch a movie in passthrough mode on
your receiver which supports AC3 decode, then plug out and switch to a
non-digital profile to continue uninterrupted on analog output).

The bin is required because doing the same with playbin2/playsink will
require API changes that cannot be made in 0.10. With 0.11/1.0, we
should be able to ask for upstream caps renegotiation to deal with all
this.

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

13 years agomatroskademux: Avoid sending EOS when in paused state
Branko Subasic [Fri, 16 Sep 2011 13:03:23 +0000 (15:03 +0200)]
matroskademux: Avoid sending EOS when in paused state

Changed the ebml reader's gst_ebml_peek_id_length() function so
that it returns the actual reason for why the peek failed, instead
of (almost) always returning GST_FLOW_UNEXPECTED. This prevents
the pulling task from sending EOS when doing a flushing seek.

13 years agomatroskademux: fix stuttering A/V
Vincent Penquerc'h [Thu, 15 Sep 2011 14:53:47 +0000 (15:53 +0100)]
matroskademux: fix stuttering A/V

Someone got had by implicit promotion to unsigned in ops with
a signed and an unsigned value.

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

13 years agonavseek: toggle pause/play on space bar
Vincent Penquerc'h [Wed, 14 Sep 2011 15:37:12 +0000 (16:37 +0100)]
navseek: toggle pause/play on space bar

A useful thing to have.

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

13 years agomatroskademux: configurable timestamp gap handling
David Svensson Fors [Wed, 14 Sep 2011 12:46:00 +0000 (14:46 +0200)]
matroskademux: configurable timestamp gap handling

matroskademux performs segment tricks to skip gaps in streams,
notably at start for non 0 based files.  There may however be
cases when full presentation (including intermediate gaps) is
desired, so a property allows to configure as of which gap
to act (or not at all).

API: GstMatroskaDemux::max-gap-time

Fixes #659009.

13 years agotests: flvmux: Fix flvmux's tests after fix for request pads handling
Thiago Santos [Mon, 12 Sep 2011 12:21:47 +0000 (09:21 -0300)]
tests: flvmux: Fix flvmux's tests after fix for request pads handling

Now that flvmux doesn't release its request pads on PAUSED->READY the
test doesn't need to re-request them for every reuse test start.

13 years agoqtmux: Fix ctts generation for streams that don't start at 0 timestamps
Thiago Santos [Fri, 9 Sep 2011 12:12:56 +0000 (09:12 -0300)]
qtmux: Fix ctts generation for streams that don't start at 0 timestamps

Subtract the first timestamp of a stream from all input buffers to
get 0-based timestamps for creating a sane ctts table. Without this
patch the ctts could have larger values than needed, causing the
playback to have a delay at startup.

As the first timestamp is only found after a few buffers are queued
(due to possible reordered buffers), once we find the first timestamp
we subtract it from all buffers on the queue, from that point on,
all buffers have their timestamps subtract when they are collected.

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

13 years agoflvmux: don't release request pads going PAUSED->READY
Alessandro Decina [Mon, 12 Sep 2011 05:55:19 +0000 (07:55 +0200)]
flvmux: don't release request pads going PAUSED->READY

Don't release request pads but just reset them. This makes pipelines using
flvmux reusable.

13 years agoac3parse: use bsid 9 and 10 to control sample rate
Vincent Penquerc'h [Fri, 9 Sep 2011 11:35:50 +0000 (12:35 +0100)]
ac3parse: use bsid 9 and 10 to control sample rate

See http://matroska.org/technical/specs/codecid/index.html

The spec is silent about this though...

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

13 years agortspsrc: ensure some initial state variable setup
Mark Nauwelaerts [Wed, 7 Sep 2011 12:13:03 +0000 (14:13 +0200)]
rtspsrc: ensure some initial state variable setup

... which might otherwise be skipped if the PLAY command is issued before
the OPEN command had a chance to actually be acted upon.

Fixes #657376.

13 years agomatroskademux: tweak gap handling
Mark Nauwelaerts [Thu, 8 Sep 2011 13:02:05 +0000 (15:02 +0200)]
matroskademux: tweak gap handling

... so as to avoid buffers before and after gap to have identical running time.

13 years agov4l2: use GST_RESOURCE_ERROR_BUSY if v4l2_ioctl fails with EBUSY
Guillaume Desmottes [Thu, 8 Sep 2011 11:28:24 +0000 (13:28 +0200)]
v4l2: use GST_RESOURCE_ERROR_BUSY if v4l2_ioctl fails with EBUSY

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

13 years agoqtmux: remove one G_UNLIKELY for user property
Thiago Santos [Wed, 7 Sep 2011 11:54:17 +0000 (08:54 -0300)]
qtmux: remove one G_UNLIKELY for user property

Using G_UNLIKELY on user properties isn't nice, specially when
that is the default option.

13 years agomatroskamux: handle GstForceKeyUnit event
Andoni Morales Alastruey [Tue, 15 Mar 2011 10:03:53 +0000 (11:03 +0100)]
matroskamux: handle GstForceKeyUnit event

... by starting a new cluster after forwarding event.

Fixes #644154.

13 years agocmml: Use complete cmml caps in the unit test
Sebastian Dröge [Wed, 7 Sep 2011 12:27:36 +0000 (14:27 +0200)]
cmml: Use complete cmml caps in the unit test

13 years agoqtmux: Use complete MPEG caps in the unit test
Sebastian Dröge [Wed, 7 Sep 2011 12:26:01 +0000 (14:26 +0200)]
qtmux: Use complete MPEG caps in the unit test

13 years agodocs: cleanup makefiles
Stefan Sauer [Wed, 7 Sep 2011 12:18:58 +0000 (14:18 +0200)]
docs: cleanup makefiles

Remove commented out parts that we don't need. Remove "the wingo addition" - no
so useful after all. Narrow down file-globs for plugin docs.

13 years agosouphttpsrc: Don't handle HTTP response 407 as error if proxy authentication data...
Konstantin Miller [Mon, 29 Aug 2011 12:12:22 +0000 (14:12 +0200)]
souphttpsrc: Don't handle HTTP response 407 as error if proxy authentication data is available

Fixes bug #657422.

13 years agoac3parse: Add Converter to the classification because it can convert between differen...
Sebastian Dröge [Wed, 7 Sep 2011 10:11:39 +0000 (12:11 +0200)]
ac3parse: Add Converter to the classification because it can convert between different alignments

This allows decodebin2 to let it negotiate properly.

13 years agoaudioparsers: Improve src template caps
Sebastian Dröge [Wed, 7 Sep 2011 10:10:48 +0000 (12:10 +0200)]
audioparsers: Improve src template caps

Remove the parsed/framed fields and add all fields to the template
caps that always exist.

13 years agoaacparse: parse codec_data to determine number of samples per frame
Mark Nauwelaerts [Tue, 6 Sep 2011 13:59:49 +0000 (15:59 +0200)]
aacparse: parse codec_data to determine number of samples per frame

Fixes #656734.

13 years agoAutomatic update of common submodule
Stefan Sauer [Tue, 6 Sep 2011 19:24:46 +0000 (21:24 +0200)]
Automatic update of common submodule

From a39eb83 to 11f0cd5

13 years agoAutomatic update of common submodule
Stefan Sauer [Tue, 6 Sep 2011 13:40:32 +0000 (15:40 +0200)]
Automatic update of common submodule

From 605cd9a to a39eb83

13 years agomatroskamux: make default duration check less sensitive
Mark Nauwelaerts [Tue, 6 Sep 2011 13:05:37 +0000 (15:05 +0200)]
matroskamux: make default duration check less sensitive

Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.

Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.

Based on patch by Alexey Fisher <bug-track@fisher-privat.net>

Fixes #653080.

13 years agortpmp4gdepay: improve bogus interleaved index compensating
Mark Nauwelaerts [Tue, 6 Sep 2011 11:18:40 +0000 (13:18 +0200)]
rtpmp4gdepay: improve bogus interleaved index compensating

Patch by <gudake@gmail.com>

Fixes #654585.

13 years agosouphttpsrc: Allow positive, non-1.0 segment rates
Sebastian Dröge [Tue, 6 Sep 2011 08:33:21 +0000 (10:33 +0200)]
souphttpsrc: Allow positive, non-1.0 segment rates

Only negative rates are not supported. Fixes bug #658305.

13 years agotests: parsers: provide more real data when testing draining of garbage
Mark Nauwelaerts [Mon, 5 Sep 2011 13:50:56 +0000 (15:50 +0200)]
tests: parsers: provide more real data when testing draining of garbage

13 years agoamrparse: fix and streamline valid frame checking
Mark Nauwelaerts [Mon, 5 Sep 2011 13:50:04 +0000 (15:50 +0200)]
amrparse: fix and streamline valid frame checking

... to handle various combinations of sync or not, and sufficient data
or not as might be expected.

Fixes #650714.

13 years agoqtdemux: fragmented support; avoid adjustment for keyframe seek
Mark Nauwelaerts [Mon, 5 Sep 2011 12:49:32 +0000 (14:49 +0200)]
qtdemux: fragmented support; avoid adjustment for keyframe seek

... since all index data may not yet be available at that time.

13 years agoqtdemux: fragmented support; mark all audio track samples as keyframe
Mark Nauwelaerts [Mon, 5 Sep 2011 12:48:02 +0000 (14:48 +0200)]
qtdemux: fragmented support; mark all audio track samples as keyframe

13 years agoqtdemux: fragmented support; properly init return variable value
Brian Li [Mon, 5 Sep 2011 12:46:29 +0000 (14:46 +0200)]
qtdemux: fragmented support; properly init return variable value

Fixes #655918.

13 years agortspsrc: add gtk-doc for new short-header property
Mark Nauwelaerts [Mon, 5 Sep 2011 11:31:20 +0000 (13:31 +0200)]
rtspsrc: add gtk-doc for new short-header property

13 years agortspsrc: allow sending short RTSP requests to a server
Marc Leeman [Mon, 5 Sep 2011 11:18:39 +0000 (13:18 +0200)]
rtspsrc: allow sending short RTSP requests to a server

Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.

This patch makes the extending the request optional by adding a property
(short-header).

Fixes #655805.

API: GstRTSPSrc:short-header

13 years agortph263ppay: Set H263-2000 if thats what the other side wants
Olivier Crête [Wed, 4 Mar 2009 19:51:09 +0000 (14:51 -0500)]
rtph263ppay: Set H263-2000 if thats what the other side wants

The static caps states this element supports H263-2000, but setcaps never
sets it, so it was lie.

See https://bugzilla.gnome.org/show_bug.cgi?id=577784

13 years agortpsession: Initialise the last_keyframe_request variable
Olivier Crête [Tue, 30 Aug 2011 23:02:51 +0000 (19:02 -0400)]
rtpsession: Initialise the last_keyframe_request variable

13 years agomultiudpsink: make add/remove/clear/get-stats action signals
Peter Korsgaard [Wed, 31 Aug 2011 14:04:24 +0000 (16:04 +0200)]
multiudpsink: make add/remove/clear/get-stats action signals

http://bugzilla.gnome.org/show_bug.cgi?id=657830

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
13 years agoqtdemux: push mode; perform some extra checks prior to upstream seeking
Mark Nauwelaerts [Tue, 30 Aug 2011 11:33:49 +0000 (13:33 +0200)]
qtdemux: push mode; perform some extra checks prior to upstream seeking

13 years agoqtdemux: push mode; fix buffered streaming
Mark Nauwelaerts [Tue, 30 Aug 2011 11:28:21 +0000 (13:28 +0200)]
qtdemux: push mode; fix buffered streaming

That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.

13 years agoqtdemux: avoid overflow wraparound in timestamp when adding durations
Mark Nauwelaerts [Mon, 29 Aug 2011 13:13:56 +0000 (15:13 +0200)]
qtdemux: avoid overflow wraparound in timestamp when adding durations

Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).

13 years agov4l2src: make this work more than once in a row
Vincent Penquerc'h [Thu, 25 Aug 2011 22:37:47 +0000 (23:37 +0100)]
v4l2src: make this work more than once in a row

We used to skip frame rate setup if the camera was already setup
with the requested frame rate. This breaks some cameras though,
causing them to not output data (several models of Thinkpad cameras
have this problem at least).
So, don't skip.

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

13 years agoaacparse: only require two frames in a row when we do not have sync
Vincent Penquerc'h [Tue, 23 Aug 2011 11:12:15 +0000 (12:12 +0100)]
aacparse: only require two frames in a row when we do not have sync

This avoids a single bit error dropping two frames unnecessarily.
The two consecutive frames check is still required when we don't
have sync.

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

13 years agopulsesink: Trivial indentation fix
Arun Raghavan [Tue, 23 Aug 2011 16:11:15 +0000 (21:41 +0530)]
pulsesink: Trivial indentation fix

13 years agoflacdec: Correct sample number rounding resulting in timestamp jitter
Monty Montgomery [Thu, 21 Jul 2011 21:23:28 +0000 (17:23 -0400)]
flacdec: Correct sample number rounding resulting in timestamp jitter

flacdec converts the src timestamp to a sample number, uses that internally, then reconverts the sample number to a timestamp for the output buffer.  Unfortunately, sample numbers can't be represented in an integer number of nanoseconds, and the conversion process was truncating rather than rounding, resulting in sample numbers and output timestamps that were often off by a full sample.

This corrects the time->sample convesion

13 years agobreakmydata: element is not passthrough
David Schleef [Sat, 20 Aug 2011 21:48:20 +0000 (14:48 -0700)]
breakmydata: element is not passthrough

13 years agomultifilesrc: quiet debugging
David Schleef [Wed, 13 Jul 2011 18:20:34 +0000 (11:20 -0700)]
multifilesrc: quiet debugging

13 years agodeinterlace: change field handling through methods
David Schleef [Mon, 11 Jul 2011 04:40:20 +0000 (21:40 -0700)]
deinterlace: change field handling through methods

This likely breaks stuff.  The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup.  However, at this point we can reasonably create a
PSNR-based test.

13 years agomultifilesink: reset ->streamheaders to NULL on _stop
Alessandro Decina [Sun, 21 Aug 2011 12:41:14 +0000 (14:41 +0200)]
multifilesink: reset ->streamheaders to NULL on _stop

Fixes invalid memory access reusing multifilesink

13 years agopulsesink: Allow writes in bigger chunks
David Henningsson [Thu, 18 Aug 2011 11:37:39 +0000 (13:37 +0200)]
pulsesink: Allow writes in bigger chunks

There's no use in splitting the incoming data down to the segsize
limit - by writing as much as possible in one chunk, we increase
performance and avoid PulseAudio unnecessary rewinds.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
13 years agomatroskademux: ensure no-more-pads is always emitted
Vincent Penquerc'h [Mon, 8 Aug 2011 21:14:28 +0000 (22:14 +0100)]
matroskademux: ensure no-more-pads is always emitted

In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).

This fixes a wedge in playbin2.

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

13 years agoflacdec: avoid timestamp/offset tracking going out of sync
Vincent Penquerc'h [Tue, 16 Aug 2011 16:27:13 +0000 (17:27 +0100)]
flacdec: avoid timestamp/offset tracking going out of sync

The libFLAC API is callback based, and we must only call it to
output data when we know we have enough input data. For this
reason, a single processing step is done when receiving a buffer.
However, if there were metadata buffers still pending, a step
intended for the first audio frame might end up writing that
leftover metadata. Since a single step is done per buffer, this
will cause every buffer to be written one step late.

This would add some latency (a bufferfull's worth), possibly
lose a buffer when seeking or the like, and also cause timestamp
and offset to be applied to the wrong buffer, as updates to
the "current" segment last_stop (from incoming buffer timestamp)
will be applied to an output buffer originating from the previous
incoming buffer.

This fixes the issue by ensuring that, upon receiving the first
audio frame, processing is done till all metadata is processed,
so the next "single step" done will be for the audio frame. After
this, we should keep to 1 input buffer -> 1 output buffer and so
avoid getting out of sync.

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

13 years agoflacdec: bail on reserved value
Vincent Penquerc'h [Tue, 16 Aug 2011 14:32:07 +0000 (15:32 +0100)]
flacdec: bail on reserved value

Now that we look at the right bits, we can test against the reserved
value as we do for other fields.

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

13 years agoflacdec: fix bit twiddling
Vincent Penquerc'h [Tue, 16 Aug 2011 14:27:43 +0000 (15:27 +0100)]
flacdec: fix bit twiddling

Right shifting a 8 bit value by 8 bits is twice too much
to get the high 4 bits.

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

13 years agoflacdec: warn if we see a variable block size where unsupported
Vincent Penquerc'h [Tue, 16 Aug 2011 14:22:46 +0000 (15:22 +0100)]
flacdec: warn if we see a variable block size where unsupported

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

13 years agospectrum: avoid crashing by resetting the correct number of channels
Vincent Penquerc'h [Tue, 16 Aug 2011 17:25:29 +0000 (18:25 +0100)]
spectrum: avoid crashing by resetting the correct number of channels

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

13 years agoflacparse: fix off by one in frame size check
Vincent Penquerc'h [Tue, 16 Aug 2011 12:16:22 +0000 (13:16 +0100)]
flacparse: fix off by one in frame size check

Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.

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

13 years agoid3demux: remove specs from git as well now that parsing code is in -base
Tim-Philipp Müller [Sun, 14 Aug 2011 19:46:01 +0000 (20:46 +0100)]
id3demux: remove specs from git as well now that parsing code is in -base

13 years agoid3demux: use -base provided id3 tag parsing
Mark Nauwelaerts [Thu, 14 Jul 2011 13:42:36 +0000 (15:42 +0200)]
id3demux: use -base provided id3 tag parsing

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

13 years agojackaudiosrc: fix error message code
Tim-Philipp Müller [Sat, 13 Aug 2011 15:51:22 +0000 (16:51 +0100)]
jackaudiosrc: fix error message code

And also post 'not found' error if jackd is not even installed.

13 years agoqtdemux: initialize bitrate variable and reset for each loop
Stefan Kost [Fri, 12 Aug 2011 14:32:58 +0000 (16:32 +0200)]
qtdemux: initialize bitrate variable and reset for each loop

Don't check eventually unset variable and don't accidentially use values from last
cycle.

13 years agortspsrc: Properly error out if SDP contains no streams
Edward Hervey [Tue, 9 Aug 2011 09:28:17 +0000 (11:28 +0200)]
rtspsrc: Properly error out if SDP contains no streams

Also fixes unitialized variable error on macosx.

13 years agoximagesrc: clear flags on buffer reuse
Vincent Penquerc'h [Tue, 9 Aug 2011 08:05:31 +0000 (09:05 +0100)]
ximagesrc: clear flags on buffer reuse

This will ensure a logically new buffer does not keep flags from
a previous use of that buffer (eg, DISCONT would be set on the first
buffer, and mistakenly kept when reused).

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

13 years agov4l2: take care not to change the current format where appropriate
Vincent Penquerc'h [Mon, 8 Aug 2011 09:54:26 +0000 (10:54 +0100)]
v4l2: take care not to change the current format where appropriate

Some drivers are buggy are will change the current format when
processing VIDIOC_TRY_FMT. Save and restore the current format
to ensure the format is kept unchanged.

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

13 years agov4l2src: Use fraction compare util function.
Sjoerd Simons [Sun, 7 Aug 2011 10:23:26 +0000 (12:23 +0200)]
v4l2src: Use fraction compare util function.

Use the fraction compare utility to compare function, not the
handcrafted one. The handcrafted one is buggy as it doesn't take into
account rounding error. For example comparing a framerate of 20/1 on a
camera configured as 30/1 fps would yield true: 1 == (1 * 20)/30 and not
re-configure the camera. Fixes #656104

13 years agomatroska: Register new debug category
Jan Schmidt [Wed, 3 Aug 2011 12:50:05 +0000 (22:50 +1000)]
matroska: Register new debug category

Register the matroskareadcommon debug category when the
plugin is loaded to avoid assertion output when debug is turned on.

13 years agoqtdemux: soften assertion check on stream size
Philippe Normand [Fri, 29 Jul 2011 11:03:55 +0000 (13:03 +0200)]
qtdemux: soften assertion check on stream size

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

13 years agortpjpegpay: Add support for H.264 payload in MJPEG container
Robert Krakora [Wed, 3 Aug 2011 08:09:42 +0000 (10:09 +0200)]
rtpjpegpay: Add support for H.264 payload in MJPEG container

See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf

Fixes bug #655530.

13 years agojackaudiosink: Don't call g_alloca() in process_cb
Tristan Matthews [Wed, 3 Aug 2011 02:05:08 +0000 (22:05 -0400)]
jackaudiosink: Don't call g_alloca() in process_cb

g_alloca() is not RT-safe, so instead we should allocate the
memory needed in advance. Fixes #655866

13 years agodocs: fix two more Since: tags
Tim-Philipp Müller [Tue, 2 Aug 2011 22:42:58 +0000 (23:42 +0100)]
docs: fix two more Since: tags

13 years agodeinterlace: Fix Since tags for fieldanalysis related new properties
Mart Raudsepp [Sun, 31 Jul 2011 01:19:00 +0000 (04:19 +0300)]
deinterlace: Fix Since tags for fieldanalysis related new properties

commit c1b100cf9c is after 0.10.29 and 0.10.30 was a branched release.
So fix Since tags from 0.10.29 to 0.10.31 for the new properties.

13 years agopulsesink: fix variable-set-but-not-used compiler warning with older pulse versions
Tim-Philipp Müller [Fri, 29 Jul 2011 12:05:42 +0000 (13:05 +0100)]
pulsesink: fix variable-set-but-not-used compiler warning with older pulse versions

13 years agortpsession: properly init rtcp_min_interval
Mark Nauwelaerts [Fri, 29 Jul 2011 10:07:24 +0000 (12:07 +0200)]
rtpsession: properly init rtcp_min_interval

13 years agopulsesink: Add support for compressed formats
Arun Raghavan [Wed, 9 Mar 2011 05:34:36 +0000 (11:04 +0530)]
pulsesink: Add support for compressed formats

This adds support for various compressed formats (AC3, E-AC3, DTS and
MP3) payloaded in IEC 61937 format (used for transmission over S/PDIF,
HDMI and Bluetooth).

The acceptcaps() function allows bins to probe for what formats the sink
being connected to support. This only works after the element is set to
at least READY.

If the underlying sink changes and the format we are streaming is not
available, we emit a message that will allow upstream elements/bins to
block and renegotiate a new format.

13 years agopulsesink: Use the extended stream API if available
Arun Raghavan [Tue, 1 Mar 2011 10:04:46 +0000 (15:34 +0530)]
pulsesink: Use the extended stream API if available

This uses the new extended API for creating streams. This will allow us
to support compressed formats natively in pulsesink as well.

13 years agopulsesrc: Add a source-output-index property
Arun Raghavan [Thu, 28 Jul 2011 18:37:52 +0000 (00:07 +0530)]
pulsesrc: Add a source-output-index property

This exposes the source output index of the record stream that we open
so that clients can use this with the introspection if they want (to
move the stream, for example).

13 years agortpssrcdemux: keep a ref on the src pad while using it
Mark Nauwelaerts [Thu, 28 Jul 2011 12:44:57 +0000 (14:44 +0200)]
rtpssrcdemux: keep a ref on the src pad while using it

Prevent a possible race if clear_ssrc() is called between getting the pad and
doing the push.

Based on patch by <olivier.crete@collabora.com>

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

13 years agortpssrcdemux: Make the pads lock recursive and hold it across the signal emit
Olivier Crête [Tue, 24 May 2011 08:29:57 +0000 (11:29 +0300)]
rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit

We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.

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

13 years agortpssrcdemux: Use PADs lock
Olivier Crête [Tue, 24 May 2011 08:17:25 +0000 (11:17 +0300)]
rtpssrcdemux: Use PADs lock

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

13 years agortph264depay: Cope with FU-A E bit not being set
Sjoerd Simons [Wed, 27 Jul 2011 17:15:20 +0000 (18:15 +0100)]
rtph264depay: Cope with FU-A E bit not being set

Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started

13 years agoac3parse: Support switching alignment on-the-fly
Arun Raghavan [Tue, 12 Apr 2011 11:31:47 +0000 (17:01 +0530)]
ac3parse: Support switching alignment on-the-fly

This allows switching of alignment for E-AC3 streams at run-time. This
is requested by downstream elements via a custom event.

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

13 years agoac3parse: Add support for IEC 61937 alignment
Arun Raghavan [Sat, 9 Apr 2011 06:56:56 +0000 (12:26 +0530)]
ac3parse: Add support for IEC 61937 alignment

When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading
requires each buffer to contain 6 blocks from each substream. This adds
code to collect all the frames needed to meet this requirement before
pushing out a buffer.

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

13 years agortpsession: Always send application requested feedback in immediate mode
Olivier Crête [Wed, 8 Jun 2011 19:57:37 +0000 (15:57 -0400)]
rtpsession: Always send application requested feedback in immediate mode

Send as many application requested feedback messages in immediate mode, even if they
have already been sent.

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

13 years agortpsession: Don't let the computed RTP bandwidth fall too low
Olivier Crête [Wed, 8 Jun 2011 18:48:01 +0000 (14:48 -0400)]
rtpsession: Don't let the computed RTP bandwidth fall too low

If it falls too low, the computed RTCP bandwidth will be near zero and
the RTCP thread will be stopped.

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

13 years agortpsession: Wait longer to timeout SSRC collision
Olivier Crête [Mon, 25 Apr 2011 20:13:38 +0000 (16:13 -0400)]
rtpsession: Wait longer to timeout SSRC collision

Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough

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

13 years agortspsrc: set SOURCE flag at init time
Mark Nauwelaerts [Tue, 19 Jul 2011 11:38:01 +0000 (13:38 +0200)]
rtspsrc: set SOURCE flag at init time

Fixes #654816.

13 years agortph264depay: Complete merged AU on marker bit
Olivier Crête [Mon, 18 Jul 2011 20:46:27 +0000 (16:46 -0400)]
rtph264depay: Complete merged AU on marker bit

The marker bit on a RTP packet means the AU has been completed, so push it out
immediately to reduce the latency.

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

13 years agortph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit
Olivier Crête [Tue, 19 Jul 2011 00:27:38 +0000 (20:27 -0400)]
rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit

An access unit could contain multiple NAL units, in that case, only the last
RTP packet of the last NALU should have its marker bit set.

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

13 years agomultipart: fix compiler warning
Alessandro Decina [Wed, 20 Jul 2011 06:52:58 +0000 (08:52 +0200)]
multipart: fix compiler warning

13 years agoauparse: avoid hanging on invalid short input
Mark Nauwelaerts [Tue, 19 Jul 2011 10:05:51 +0000 (12:05 +0200)]
auparse: avoid hanging on invalid short input

... as in such case there is no srcpad yet on which to forward EOS.

13 years agopulsesrc: Fix default value leaking
Thiago Santos [Mon, 18 Jul 2011 18:13:33 +0000 (15:13 -0300)]
pulsesrc: Fix default value leaking

Remember to free the default value of client name, avoiding a
leak

13 years agortph264depay: reset upon FLUSH_STOP
Mark Nauwelaerts [Mon, 18 Jul 2011 12:24:48 +0000 (14:24 +0200)]
rtph264depay: reset upon FLUSH_STOP

... which is particularly needed when merging NAL units, where not resetting
would lead to output of an older (pre-flush) AU (with unintended timestamp).