platform/upstream/gst-plugins-good.git
13 years agobaseparse: check for remaining data when draining in push mode
Mark Nauwelaerts [Fri, 18 Dec 2009 12:30:29 +0000 (13:30 +0100)]
baseparse: check for remaining data when draining in push mode

13 years agobaseparse: fix pull mode cache size comparison
Mark Nauwelaerts [Fri, 18 Dec 2009 12:30:07 +0000 (13:30 +0100)]
baseparse: fix pull mode cache size comparison

13 years agoac3parse: Fix unitialized variable.
Edward Hervey [Fri, 18 Dec 2009 12:01:17 +0000 (13:01 +0100)]
ac3parse: Fix unitialized variable.

13 years agoUpdate spec file and fix ac3parser header listing in Makefile.am
Christian Schaller [Thu, 17 Dec 2009 14:46:01 +0000 (14:46 +0000)]
Update spec file and fix ac3parser header listing in Makefile.am

13 years agoaudioparse: fix a format string as reported on irc.
Michael Smith [Fri, 11 Dec 2009 18:25:16 +0000 (10:25 -0800)]
audioparse: fix a format string as reported on irc.

13 years agoac3parse: ensure sufficient data available for parsing
Mark Nauwelaerts [Mon, 23 Nov 2009 15:34:50 +0000 (16:34 +0100)]
ac3parse: ensure sufficient data available for parsing

13 years agoac3parse: extract and use some more details for Enhanced Ac-3 streams
Mark Nauwelaerts [Thu, 29 Oct 2009 14:19:04 +0000 (15:19 +0100)]
ac3parse: extract and use some more details for Enhanced Ac-3 streams

13 years agobaseparse: custom bufferflag indicates not to count frame in stats
Mark Nauwelaerts [Thu, 29 Oct 2009 14:18:37 +0000 (15:18 +0100)]
baseparse: custom bufferflag indicates not to count frame in stats

13 years agoac3parse: perform additional frame checks when resyncing
Mark Nauwelaerts [Wed, 28 Oct 2009 13:08:43 +0000 (14:08 +0100)]
ac3parse: perform additional frame checks when resyncing

13 years agoac3parse: inform base parser of frame duration
Mark Nauwelaerts [Wed, 28 Oct 2009 13:07:17 +0000 (14:07 +0100)]
ac3parse: inform base parser of frame duration

13 years agoac3parse: improve src caps settings
Mark Nauwelaerts [Tue, 27 Oct 2009 15:16:50 +0000 (16:16 +0100)]
ac3parse: improve src caps settings

13 years agoac3parse: initial version
Mark Nauwelaerts [Fri, 27 Nov 2009 16:59:03 +0000 (17:59 +0100)]
ac3parse: initial version

MARGINAL rank for now; might take some time for some (useful)
framed=true/false to appear here and there.

13 years agoamrparse: use (default) time handling of baseparser class
Mark Nauwelaerts [Thu, 26 Nov 2009 17:34:45 +0000 (18:34 +0100)]
amrparse: use (default) time handling of baseparser class

13 years agoaudioparsers: move 'amrparse' into it
Mark Nauwelaerts [Thu, 26 Nov 2009 17:15:21 +0000 (18:15 +0100)]
audioparsers: move 'amrparse' into it

13 years agoaudioparsers: reference GstBaseParse now lives here
Mark Nauwelaerts [Fri, 27 Nov 2009 16:27:32 +0000 (17:27 +0100)]
audioparsers: reference GstBaseParse now lives here

13 years agoaudioparsers: rename 'aacparse' plugin to generic 'audioparsers' plugin
Mark Nauwelaerts [Sat, 28 Nov 2009 17:13:31 +0000 (18:13 +0100)]
audioparsers: rename 'aacparse' plugin to generic 'audioparsers' plugin

13 years agoaacparse: separate plugin registration and rename plugin
Mark Nauwelaerts [Thu, 26 Nov 2009 16:04:43 +0000 (17:04 +0100)]
aacparse: separate plugin registration and rename plugin

13 years agoaacparse: ensure sufficient data available before accessing
Mark Nauwelaerts [Thu, 26 Nov 2009 16:04:36 +0000 (17:04 +0100)]
aacparse: ensure sufficient data available before accessing

13 years agoaacparse: use (default) time handling of baseparser class
Mark Nauwelaerts [Thu, 5 Nov 2009 13:31:40 +0000 (14:31 +0100)]
aacparse: use (default) time handling of baseparser class

13 years agoaacparse: fixup comments to C-style
Mark Nauwelaerts [Thu, 29 Oct 2009 14:19:35 +0000 (15:19 +0100)]
aacparse: fixup comments to C-style

13 years agobaseparse: reset passthrough mode to default (disabled) on activation
Mark Nauwelaerts [Thu, 29 Oct 2009 15:05:00 +0000 (16:05 +0100)]
baseparse: reset passthrough mode to default (disabled) on activation

13 years agobaseparse: ensure buffer metadata is writable
Mark Nauwelaerts [Thu, 29 Oct 2009 14:16:59 +0000 (15:16 +0100)]
baseparse: ensure buffer metadata is writable

13 years agobaseparse: fix/enhance DISCONT marking
Mark Nauwelaerts [Wed, 28 Oct 2009 13:06:13 +0000 (14:06 +0100)]
baseparse: fix/enhance DISCONT marking

In particular, consider DISCONT == !sync, and allow subclass to query
sync state, as it may want to perform additional checks depending
on whether sync was achieved earlier on.
Also arrange for subclass to query whether leftover data is being drained.

13 years agobaseparse: add timestamp handling, and default conversion
Mark Nauwelaerts [Mon, 23 Nov 2009 14:48:25 +0000 (15:48 +0100)]
baseparse: add timestamp handling, and default conversion

In particular, (optionally) provide baseparse with a notion of frames per second
(and therefore also frame duration) and have it track frame and byte counts.
This way, subclass can provide baseparse with fps and have it provide default
buffer time metadata and conversions, though subclass can still install
callbacks to handle such itself.

13 years agobaseparse: documentation fixes
Mark Nauwelaerts [Wed, 28 Oct 2009 11:02:03 +0000 (12:02 +0100)]
baseparse: documentation fixes

13 years agobaseparse: use_fixed_caps for src pad
Mark Nauwelaerts [Wed, 28 Oct 2009 11:00:08 +0000 (12:00 +0100)]
baseparse: use_fixed_caps for src pad

After all, stream is as-is, and there is little molding to downstream's
taste that can be done.  If subclass can and wants to do so, it can
still override as such.

13 years agoaacparse: Fix compilation warnings
Julien Moutte [Fri, 20 Nov 2009 16:32:13 +0000 (17:32 +0100)]
aacparse: Fix compilation warnings

13 years agoaacparse: fix warnings in macosx snow leopard
Josep Torra [Sun, 11 Oct 2009 09:22:11 +0000 (11:22 +0200)]
aacparse: fix warnings in macosx snow leopard

13 years agoaacparse: forego (bogus) parsing of already parsed (raw) input
Mark Nauwelaerts [Fri, 25 Sep 2009 15:02:53 +0000 (17:02 +0200)]
aacparse: forego (bogus) parsing of already parsed (raw) input

13 years agobaseparse: prevent infinite loop when draining
Mark Nauwelaerts [Fri, 7 Aug 2009 11:07:17 +0000 (13:07 +0200)]
baseparse: prevent infinite loop when draining

13 years agobaseparse: fix minor memory leak
Mark Nauwelaerts [Fri, 7 Aug 2009 11:06:28 +0000 (13:06 +0200)]
baseparse: fix minor memory leak

13 years agoaacparse: Add function for the baseparse subclass to push buffers downstream
Sebastian Dröge [Tue, 14 Jul 2009 12:08:04 +0000 (14:08 +0200)]
aacparse: Add function for the baseparse subclass to push buffers downstream

Also handle the case gracefully where the subclass decides to drop
the first buffers and has no caps set yet. It's still required to
have valid caps set when the first buffer should be passed downstream.

13 years agobaseparse: Fix seek event leaking
Sebastian Dröge [Tue, 14 Jul 2009 12:07:44 +0000 (14:07 +0200)]
baseparse: Fix seek event leaking

13 years agoaacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder)
Mark Nauwelaerts [Thu, 18 Jun 2009 10:13:28 +0000 (12:13 +0200)]
aacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder)

13 years agoaacparse: fix sample rate extraction from codec data
Tim-Philipp Müller [Mon, 1 Jun 2009 14:53:27 +0000 (15:53 +0100)]
aacparse: fix sample rate extraction from codec data

In one case we extracted the sample rate index from the codec data
and saved it as sample rate rather than getting the real sample
rate from the table. Fix that, and also make sure we don't access
non-existant table entries by adding a small helper function that
guards against out-of-bounds access in case of invalid input data.

13 years agoaacparse, amrparse: remove bogus gst_pad_fixate_caps() calls
Tim-Philipp Müller [Mon, 1 Jun 2009 13:02:33 +0000 (14:02 +0100)]
aacparse, amrparse: remove bogus gst_pad_fixate_caps() calls

13 years agobaseparse: propagate return value of GstBaseParse::set_sink_caps()
Tim-Philipp Müller [Mon, 1 Jun 2009 12:56:18 +0000 (13:56 +0100)]
baseparse: propagate return value of GstBaseParse::set_sink_caps()

gst_base_parse_sink_setcaps() presumably should fail if the subclass
returns FALSE from its ::set_sink_caps() function.

13 years agobaseparse: don't try to GST_LOG an already-freed caps string
Tim-Philipp Müller [Mon, 1 Jun 2009 12:47:01 +0000 (13:47 +0100)]
baseparse: don't try to GST_LOG an already-freed caps string

The proper way to log caps is via GST_PTR_FORMAT anyway.

13 years agoaacparse: set channels and rate on output caps, and keep codec_data
Tim-Philipp Müller [Mon, 1 Jun 2009 12:05:35 +0000 (13:05 +0100)]
aacparse: set channels and rate on output caps, and keep codec_data

Create output caps from input caps, so we maintain any fields we
might get on the input caps, such as codec_data or rate and channels.
Set channels and rate on the output caps if we don't have input caps
or they don't contain such fields. We do this partly because we can,
but also because some muxers need this information. Tagreadbin will
also be happy about this.

13 years agobaseparse: fix debug category
Mark Nauwelaerts [Tue, 26 May 2009 17:43:53 +0000 (19:43 +0200)]
baseparse: fix debug category

13 years agobaseparse: fix (regression in) newsegment handling
Mark Nauwelaerts [Mon, 27 Apr 2009 20:39:15 +0000 (22:39 +0200)]
baseparse: fix (regression in) newsegment handling

(aacparse, amrparse, flacparse).  Fixes #580133.

13 years agobaseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)
René Stadler [Tue, 7 Apr 2009 01:53:02 +0000 (04:53 +0300)]
baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)

13 years agobaseparse: Fix push mode seeking (aacparse, amrparse)
René Stadler [Sun, 5 Apr 2009 00:50:19 +0000 (03:50 +0300)]
baseparse: Fix push mode seeking (aacparse, amrparse)

Sending the flush-start event forward before taking the stream lock actually
works, in contrast to deadlocking in downstream preroll_wait (hunk 1).

After that we get the chain function being stuck in a busy loop. This is fixed
by updating the minimum frame size inside the synchronization loop because the
subclass asks for more data in this way (hunk 2).

Finally, this leads to a very probable crash because the subclass can find a
valid frame with a size greater than the currently available data in the
adapter. This makes the subsequent gst_adapter_take_buffer call return NULL,
which is not expected (hunk 3).

13 years agobaseparse: Delay newsegment as long as possible.
Mark Nauwelaerts [Tue, 31 Mar 2009 14:07:46 +0000 (16:07 +0200)]
baseparse: Delay newsegment as long as possible.

If newsegment is sent (too) early, caps may not yet be fixed/set,
and downstream may not have been linked.

13 years agoaacparse: Fix busyloop when seeking. Fixes #575388
René Stadler [Wed, 18 Mar 2009 23:17:25 +0000 (01:17 +0200)]
aacparse: Fix busyloop when seeking. Fixes #575388

The problem is that after a discont, set_min_frame_size(1024) is called when
detect_stream returns FALSE. However, detect_stream calls check_adts_frame
which sets the frame size on its own to something larger than 1024. This is the
same situation as in the beginning, so the base class ends up calling
check_valid_frame in an endless loop.

13 years agoaacparse: Refactor check_valid_frame to expose broken code
René Stadler [Wed, 18 Mar 2009 22:32:40 +0000 (00:32 +0200)]
aacparse: Refactor check_valid_frame to expose broken code

Just moving code around and removing an unhelpful/misleading comment.

13 years agobaseparse: revert last change and properly fix
Stefan Kost [Fri, 27 Feb 2009 09:24:37 +0000 (11:24 +0200)]
baseparse: revert last change and properly fix

Baseparse internaly breaks the semantics of a _chain function by calling it with
buffer==NULL. The reson I belived it was okay to remove it was that there is
also an unchecked access to buffer later in _chain. Actually that code is wrong,
as it most probably wants to set discont on the outgoing buffer.

13 years agobaseparse: remove checks for buffer==NULL
Stefan Kost [Thu, 26 Feb 2009 09:02:06 +0000 (11:02 +0200)]
baseparse: remove checks for buffer==NULL

Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would
leave the check, we would also need more such check below.

13 years agoaacparse: Fix license specified in plugin details.
René Stadler [Tue, 10 Feb 2009 22:15:43 +0000 (00:15 +0200)]
aacparse: Fix license specified in plugin details.

13 years agoFix the return value of the default parse_frame function.
Jan Schmidt [Fri, 30 Jan 2009 18:18:10 +0000 (18:18 +0000)]
Fix the return value of the default parse_frame function.

Fix the return value of the default parse_frame function in both
copies of GstBaseParse

13 years agoLog aac details found in codec_data.
Stefan Kost [Fri, 23 Jan 2009 14:00:10 +0000 (16:00 +0200)]
Log aac details found in codec_data.

13 years agogst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works.
Wim Taymans [Thu, 13 Nov 2008 17:24:58 +0000 (17:24 +0000)]
gst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works.

Original commit message from CVS:
* gst/aacparse/gstaacparse.c: (plugin_init):
Don't autoplug aacparse until it works.

13 years agotests/check/: Add unit tests for new parsers.
Stefan Kost [Thu, 13 Nov 2008 15:20:15 +0000 (15:20 +0000)]
tests/check/: Add unit tests for new parsers.

Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/aacparse.c:
* tests/check/elements/amrparse.c:
Add unit tests for new parsers.

13 years agogst/: Fix baseparse type name.
Stefan Kost [Thu, 13 Nov 2008 14:21:39 +0000 (14:21 +0000)]
gst/: Fix baseparse type name.

Original commit message from CVS:
* gst/aacparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.c:
Fix baseparse type name.

13 years agoAdd two new baseparse based parsers (aac and amr) from Bug #518857.
Stefan Kost [Thu, 13 Nov 2008 12:59:34 +0000 (12:59 +0000)]
Add two new baseparse based parsers (aac and amr) from Bug #518857.

Original commit message from CVS:
* configure.ac:
* gst/aacparse/Makefile.am:
* gst/aacparse/gstaacparse.c:
* gst/aacparse/gstaacparse.h:
* gst/aacparse/gstbaseparse.c:
* gst/aacparse/gstbaseparse.h:
* gst/amrparse/Makefile.am:
* gst/amrparse/gstamrparse.c:
* gst/amrparse/gstamrparse.h:
* gst/amrparse/gstbaseparse.c:
* gst/amrparse/gstbaseparse.h:
Add two new baseparse based parsers (aac and amr) from Bug #518857.

13 years agojitterbuffer: Make src_query MT-safe
Havard Graff [Sun, 20 Mar 2011 00:08:38 +0000 (01:08 +0100)]
jitterbuffer: Make src_query MT-safe

It is possible that the element might be going down while the event arrives

13 years agojpegdec: Unref event if the parent element disappeared
Sebastian Dröge [Fri, 8 Apr 2011 13:22:47 +0000 (15:22 +0200)]
jpegdec: Unref event if the parent element disappeared

13 years agojitterbuffer: Unref event if the parent element disappeared
Sebastian Dröge [Fri, 8 Apr 2011 13:22:19 +0000 (15:22 +0200)]
jitterbuffer: Unref event if the parent element disappeared

13 years agojpegdec: Make upstream events MT-safe
Havard Graff [Mon, 21 Mar 2011 15:04:34 +0000 (16:04 +0100)]
jpegdec: Make upstream events MT-safe

13 years agojitterbuffer: Make upstream events MT-safe
Havard Graff [Mon, 21 Mar 2011 15:04:34 +0000 (16:04 +0100)]
jitterbuffer: Make upstream events MT-safe

13 years agortp: Unref events if the parent element disappeared
Sebastian Dröge [Fri, 8 Apr 2011 13:20:51 +0000 (15:20 +0200)]
rtp: Unref events if the parent element disappeared

13 years agortpmanager: fix pad callbacks so they handle when parent goes away
Ole André Vadla Ravnås [Thu, 6 Jan 2011 17:24:36 +0000 (18:24 +0100)]
rtpmanager: fix pad callbacks so they handle when parent goes away

1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.

This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.

13 years agortpsession: make iterate_internal_links MT-safe
Havard Graff [Fri, 26 Nov 2010 14:20:04 +0000 (15:20 +0100)]
rtpsession: make iterate_internal_links MT-safe

13 years agoRevert "Pulsesink: Allow chunks up to bufsize instead of segsize"
Sebastian Dröge [Fri, 8 Apr 2011 12:35:04 +0000 (14:35 +0200)]
Revert "Pulsesink: Allow chunks up to bufsize instead of segsize"

This reverts commit 1e2c1467ae042a3c6bb1a6bc0c07aeff13ec5edb.

The commit causes pulsesink to ignore the latency-time baseaudiosink property.

13 years agortpspeexpay: Do not transmitt samples with GAP flag
Alexey Fisher [Fri, 8 Apr 2011 09:13:07 +0000 (11:13 +0200)]
rtpspeexpay: Do not transmitt samples with GAP flag

If we get GAP samples, there is no need to transmitt it.
In some situations, microphone is muted, we can drop net traffick
usage to ~1 kbit/s. Without patch it will stay ~20 kbit/s

13 years agospeexenc: Use speex intern silence detection
Alexey Fisher [Fri, 8 Apr 2011 09:11:58 +0000 (11:11 +0200)]
speexenc: Use speex intern silence detection

Speex has build in silence detection. If speex_encode_int returns 0,
than there is silence and sample do not need to be transmitted.
This work only if vbr=1 and dtx=1 optionas are enabled.
So if we get 0, we add GAP flag to the sample.

13 years agortspsrc: handle * control correctly
Wim Taymans [Tue, 5 Apr 2011 15:12:28 +0000 (17:12 +0200)]
rtspsrc: handle * control correctly

Parse session control attributes when no media control attribute is
present. Threat * control attributes as an empty string, just like the
spec says.

Fixes #646800

13 years agomatroskamux: Add support for A-Law and µ-Law
Sebastian Dröge [Tue, 5 Apr 2011 12:28:54 +0000 (14:28 +0200)]
matroskamux: Add support for A-Law and µ-Law

Fixes bug #646567.

13 years agojack: Fix build with jack 0.120.1
Jon Nordby [Tue, 5 Apr 2011 07:44:01 +0000 (09:44 +0200)]
jack: Fix build with jack 0.120.1

9544622674c0d0a3147a9b51145159b02eec68e9 checked
for 0.120.2 and later, but the deprecation was introduced in
0.120.1

13 years agodocs: fix docuemntation warnings (and reindent)
Stefan Kost [Tue, 5 Apr 2011 09:05:19 +0000 (12:05 +0300)]
docs: fix docuemntation warnings (and reindent)

13 years agovideomixer: update orc dist files
Alessandro Decina [Mon, 4 Apr 2011 15:34:17 +0000 (17:34 +0200)]
videomixer: update orc dist files

13 years agoAutomatic update of common submodule
Stefan Kost [Mon, 4 Apr 2011 12:57:10 +0000 (15:57 +0300)]
Automatic update of common submodule

From 1ccbe09 to c3cafe1

13 years agopulsesink: Always call pa_stream_new_with_proplist()
Arun Raghavan [Tue, 1 Mar 2011 08:38:12 +0000 (14:08 +0530)]
pulsesink: Always call pa_stream_new_with_proplist()

pa_stream_new_with_proplist() can take a NULL proplist, so we don't need
to concern ourselves with whether it's NULL or not.

13 years agortspsrc: perform post-flush state tricks downstream to upstream
Mark Nauwelaerts [Mon, 4 Apr 2011 09:33:10 +0000 (11:33 +0200)]
rtspsrc: perform post-flush state tricks downstream to upstream

... so downstream is set when upstream resumes data flow.

13 years agortspsrc: distribute new base_time to manager children following flush seek
Mark Nauwelaerts [Mon, 4 Apr 2011 09:27:29 +0000 (11:27 +0200)]
rtspsrc: distribute new base_time to manager children following flush seek

... by forcing a state changed to PLAYING, which should otherwise be a
no-op as elements should already be in that state.

In particular, jitterbuffer needs new base_time as soon as possible to perform
proper timing (e.g. eos timeout handling) and can't wait for the new base_time
that will be distributed when the whole pipeline returns to PLAYING.

See bug #646397.

13 years agoRevert "jitterbuffer: reset element base_time upon flush"
Mark Nauwelaerts [Mon, 4 Apr 2011 09:35:59 +0000 (11:35 +0200)]
Revert "jitterbuffer: reset element base_time upon flush"

This reverts commit f84b8a69cba9c538f5546869cb4ef454ad5efb9d.

Fixes bug #646397.

13 years agoflv: Specify the only possible stream-format for h264 in the pad templates.
Zaheer Abbas Merali [Mon, 4 Apr 2011 09:31:44 +0000 (10:31 +0100)]
flv: Specify the only possible stream-format for h264 in the pad templates.

13 years agoqtdemux: Check for invalid (empty) classification info entity strings
Sebastian Dröge [Mon, 4 Apr 2011 08:07:42 +0000 (10:07 +0200)]
qtdemux: Check for invalid (empty) classification info entity strings

Otherwise the classification string can be empty and gst_tag_list_add() will
complain or have a \0 in the first four bytes, which is wrong too.

13 years agoqtdemux: Year 0 is not a valid year for GDate and the proleptic gregorian calendar
Sebastian Dröge [Mon, 4 Apr 2011 08:01:26 +0000 (10:01 +0200)]
qtdemux: Year 0 is not a valid year for GDate and the proleptic gregorian calendar

13 years agoflacenc: Add support for writing METADATA_BLOCK_PICTURE blocks for GST_TAG_IMAGE...
Sebastian Dröge [Fri, 1 Apr 2011 11:18:55 +0000 (13:18 +0200)]
flacenc: Add support for writing METADATA_BLOCK_PICTURE blocks for GST_TAG_IMAGE and GST_TAG_PREVIEW_IMAGE

13 years agovideomixer[2]: Use orc_memset() instead of memset()
Sebastian Dröge [Fri, 1 Apr 2011 09:33:54 +0000 (11:33 +0200)]
videomixer[2]: Use orc_memset() instead of memset()

13 years agovideomixer: Add transparent background option for alpha channel formats
Lane Brooks [Thu, 20 Jan 2011 01:06:45 +0000 (18:06 -0700)]
videomixer: Add transparent background option for alpha channel formats

13 years agovideomixer2: Add transparent background option for alpha channel formats
Lane Brooks [Wed, 19 Jan 2011 19:07:17 +0000 (12:07 -0700)]
videomixer2: Add transparent background option for alpha channel formats

This option allows the videomixer2 element to output a valid alpha
channel when the inputs contain a valid alpha channel. This allows
mixing to occur in multiple stages serially.

The following pipeline shows an example of such a pipeline:

gst-launch videotestsrc background-color=0x000000 pattern=ball ! video/x-raw-yuv,format=\(fourcc\)AYUV ! videomixer2 background=transparent name=mix1 ! videomixer2 name=mix2 ! ffmpegcolorspace ! autovideosink  videotestsrc ! video/x-raw-yuv,format=\(fourcc\)AYUV ! mix2.

The first videotestsrc in this pipeline creates a moving ball on a
transparent background. It is then passed to the first videomixer2.
Previously, this videomixer2 would have forced the alpha channel to
1.0 and given a background of checker, black, or white to the
stream. With this patch, however, you can now specify the background
as transparent, and the alpha channel of the input will be
preserved. This allows for further mixing downstream, as is shown in
the above pipeline where the a second videomixer2 is used to mix in a
background of an smpte videotestsrc. So the result is a ball hovering
over the smpte test source. This could, of course, have been
accomplished with a single mixer element, but staged mixing is useful
when it is not convenient to mix all video at once (e.g. a pipeline
where a foreground and background bin exist and are mixed at the final
output, but the foreground bin needs an internal mixer to create
transitions between clips).

Fixes bug #639994.

13 years agopulsesink: also uncork during EOS waiting (and after EOS is rendered)
Mark Nauwelaerts [Thu, 31 Mar 2011 11:25:00 +0000 (13:25 +0200)]
pulsesink: also uncork during EOS waiting (and after EOS is rendered)

Pulsesink was recently changed to defer uncorking until there is data
to write. This condition will however never occur when EOS in being
rendered (since that marks the end of data). Changing to PAUSED state
while EOS is being waited on results in a hang: pausing corks the
stream, which will never be undone since there is no more data when
going back to PLAYING. If pulsesink is the clock provider, deadlock
ensues since time doesn't continue in corked state and the clock id
for EOS wait never fires.

Fixes #645961.

13 years agortpbin: Don't try to request the same request pad twice
Sebastian Dröge [Tue, 29 Mar 2011 14:33:43 +0000 (16:33 +0200)]
rtpbin: Don't try to request the same request pad twice

13 years agoflacdec: fix issues with large metadata blocks when streaming unframed flac
Tim-Philipp Müller [Mon, 28 Mar 2011 22:46:47 +0000 (23:46 +0100)]
flacdec: fix issues with large metadata blocks when streaming unframed flac

Parse metadata blocks when handling unparsed flac in push mode. This
works around a bunch of issues with the flac decoder when handling
metadata blocks that are larger than the max. flac framesize, which
coverart blocks often are. We need to have all the data for these
blocks available when we pass data to libflac.

http://gstreamer-devel.966125.n4.nabble.com/Flac-files-that-will-playback-but-not-stream-td3338198.html#a3395276

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

13 years agoflvdemux: Do not build an index if upstream is not seekable
Jan Urbański [Sun, 27 Mar 2011 19:39:50 +0000 (21:39 +0200)]
flvdemux: Do not build an index if upstream is not seekable

An index is not useful if upstream cannot handle seeks and building it
for infinite files, for instance FLV streams, results in a memory leak.

13 years agov4l2: new v4l2radio element to control analog radio devices
Alexey Chernov [Sat, 26 Mar 2011 22:19:58 +0000 (01:19 +0300)]
v4l2: new v4l2radio element to control analog radio devices

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

13 years agoAutomatic update of common submodule
Sebastian Dröge [Fri, 25 Mar 2011 21:22:43 +0000 (22:22 +0100)]
Automatic update of common submodule

From 193b717 to 1ccbe09

13 years agoAutomatic update of common submodule
Stefan Kost [Fri, 25 Mar 2011 12:56:06 +0000 (14:56 +0200)]
Automatic update of common submodule

From b77e2bf to 193b717

13 years agocairo: fix the name of the *-marshall.list file to unbreak make distcheck
Stefan Kost [Fri, 25 Mar 2011 10:53:43 +0000 (12:53 +0200)]
cairo: fix the name of the *-marshall.list file to unbreak make distcheck

13 years agoAutomatic update of common submodule
Sebastian Dröge [Fri, 25 Mar 2011 08:31:03 +0000 (09:31 +0100)]
Automatic update of common submodule

From d8814b6 to b77e2bf

13 years agoAutomatic update of common submodule
Sebastian Dröge [Fri, 25 Mar 2011 08:06:16 +0000 (09:06 +0100)]
Automatic update of common submodule

From 6aaa286 to d8814b6

13 years agospectrum: refactor processing loop for block based operation
Stefan Kost [Thu, 24 Mar 2011 22:10:56 +0000 (00:10 +0200)]
spectrum: refactor processing loop for block based operation

Previously the chain function was working sample frame based. In each cycle it
was checking if it is time to run a fft or if it is time to send a message.
Now we changed the data transform functions to work on a block of data and
calculate the max length until either {end-of-data, do-fft, do-msg}. This allows
us also to avoid the duplicated code for the single and multi-channel case (as
the transformers have the same signature now).

13 years agojack: unbreak the build for jack2 users
Stefan Kost [Thu, 24 Mar 2011 21:47:33 +0000 (23:47 +0200)]
jack: unbreak the build for jack2 users

Jack2 (versions 1.X.X) does only have that API in svn. Limmit the use of the new
API for jack1 versions.

13 years agoAutomatic update of common submodule
Stefan Kost [Thu, 24 Mar 2011 16:49:19 +0000 (18:49 +0200)]
Automatic update of common submodule

From 6aec6b9 to 6aaa286

13 years agospectrum: fix the error accumulation and frames_todo handling
Stefan Kost [Thu, 24 Mar 2011 12:14:09 +0000 (14:14 +0200)]
spectrum: fix the error accumulation and frames_todo handling

Even though we wrap around the accumulated second, we still need to add the
error in the same cycle. Increase the todo in the same conditional as afterwards
the accumulated error will be below one second.

13 years agospectrum: fix broken code resulting for a wrong splitup of changes
Stefan Kost [Thu, 24 Mar 2011 11:53:12 +0000 (13:53 +0200)]
spectrum: fix broken code resulting for a wrong splitup of changes

13 years agospectrum: simplify the have_interval calculation
Stefan Kost [Tue, 22 Mar 2011 14:29:53 +0000 (16:29 +0200)]
spectrum: simplify the have_interval calculation

Move some of the conditions to the places where the dependent variables change.

13 years agospectrum: use local var for input_data function
Stefan Kost [Tue, 22 Mar 2011 14:26:45 +0000 (16:26 +0200)]
spectrum: use local var for input_data function

Avoid dereferencing the input_data from the instance from within an inner loop.