platform/upstream/gst-plugins-good.git
11 years agoosxvideosink: fix support in VM's without hardware acceleration
Andoni Morales Alastruey [Wed, 5 Jun 2013 15:02:49 +0000 (17:02 +0200)]
osxvideosink: fix support in VM's without hardware acceleration

11 years agortpmp2tdepay: accept mislabelled streams from GStreamer 0.10 as well
Jens Georg [Sat, 15 Jun 2013 10:29:31 +0000 (12:29 +0200)]
rtpmp2tdepay: accept mislabelled streams from GStreamer 0.10 as well

The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES
instead of MP2T, so accept that as well for compatibility reasons.

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

11 years agortspsrc: manage element state ourselves
Wim Taymans [Sun, 16 Jun 2013 03:40:13 +0000 (05:40 +0200)]
rtspsrc: manage element state ourselves

Lock the state of the all our elements and manage their states
outselves. Because we are working async, we can't rely on the state
change function to set the state at the right time or to return the
right return value from the state change function.

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

11 years agomatroskademux: Don't unlock stream lock without locking it first
Bruno Gonzalez [Fri, 14 Jun 2013 12:09:50 +0000 (14:09 +0200)]
matroskademux: Don't unlock stream lock without locking it first

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

11 years agortpsession: Use the right hashtable to calculate bandwidth
Wim Taymans [Thu, 13 Jun 2013 14:00:33 +0000 (16:00 +0200)]
rtpsession: Use the right hashtable to calculate bandwidth

Don't use an unused hashtable to iterate source to calculate bandwidth.
Remove unused code.

11 years agopulsesink: Require PulseAudio >= 2.0
Brendan Long [Wed, 12 Jun 2013 22:27:24 +0000 (16:27 -0600)]
pulsesink: Require PulseAudio >= 2.0

This is needed for pa_format_info_get_prop_* functions.

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

11 years agoRevert "pulsesink: Make 2.0 dependency optional"
Arun Raghavan [Thu, 13 Jun 2013 08:53:08 +0000 (14:23 +0530)]
Revert "pulsesink: Make 2.0 dependency optional"

This reverts commit 01457027e0d384aca3e551ae684e0aa074ee5498.

We'll just depend on PulseAudio 2.0 or above instead of having the bug
partially fixed based on the installed libpulse version.

11 years agopulsesink: Make 2.0 dependency optional
Arun Raghavan [Thu, 13 Jun 2013 07:10:15 +0000 (12:40 +0530)]
pulsesink: Make 2.0 dependency optional

The getcaps function we added uses some pa_format_info_get_prop...
accessor functions that were only added in 2.0, so we only have our
getcaps implementation exist if we're compiling against libpulse 2.0 or
above.

Eventually, we could bump the minimum requirement to 2.0 or above.

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

11 years agoRevert "videomixer: When all sinkpads are eos, update output segment stop and forward it"
Sebastian Dröge [Wed, 12 Jun 2013 16:23:46 +0000 (18:23 +0200)]
Revert "videomixer: When all sinkpads are eos, update output segment stop and forward it"

This reverts commit 2d3910fc7901b5f29e16c0fdd4e9067a6d7f66fe.

It's not solving any problem and instead causes code to fall apart.

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

11 years agomatroskademux: mark subtitle streams as sparse in stream-start event
Tim-Philipp Müller [Wed, 9 Jan 2013 09:39:33 +0000 (09:39 +0000)]
matroskademux: mark subtitle streams as sparse in stream-start event

And also mark the streams that should be selected by default if
marked so in the headers.

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

11 years agoaudiopanorama: add prebuilt files
Stefan Sauer [Tue, 11 Jun 2013 20:12:58 +0000 (22:12 +0200)]
audiopanorama: add prebuilt files

11 years agoaudiopanorama: cleanup and expand the tests
Stefan Sauer [Tue, 11 Jun 2013 18:27:51 +0000 (20:27 +0200)]
audiopanorama: cleanup and expand the tests

Split out two more tests. Extract more common code into helpers. Add coverage for float.

11 years agoaudiopanorama: cleanup of transform()
Stefan Sauer [Mon, 10 Jun 2013 19:15:20 +0000 (21:15 +0200)]
audiopanorama: cleanup of transform()

Only map input if we are reading it. Cleanup the logging and the comments a bit.

11 years agoaudiopanorama: use orc to speedup processing
Stefan Sauer [Sun, 9 Jun 2013 18:35:18 +0000 (20:35 +0200)]
audiopanorama: use orc to speedup processing

Use special variants for the case when we don't change the panorama (pan=0.0).
Simplify the processing functions by passing the panorama value directy instead
of the instance. Use orc for clearing buffers too.

11 years agovideomixer: check last end_time after conversion to running segment
Mathieu Duponchelle [Tue, 11 Jun 2013 17:24:49 +0000 (19:24 +0200)]
videomixer: check last end_time after conversion to running segment

The last end_time was saved after conversion, so the comparison
had to be made after conversion for it to make sense.

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

11 years agovideomixer: add mix->segment.start to output_end_time
Mathieu Duponchelle [Tue, 11 Jun 2013 17:22:20 +0000 (19:22 +0200)]
videomixer: add mix->segment.start to output_end_time

When the segment start is not 0, this created a situation where
the output_end_time is inferior to output_start_time, and the duration
of the next buffer ended up underflowing.

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

11 years agomatroskademux: Send stream headers after the segment event
Sebastian Dröge [Tue, 11 Jun 2013 11:54:53 +0000 (13:54 +0200)]
matroskademux: Send stream headers after the segment event

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

11 years agoqtdemux: Do allocation query after exposing all pads and no-more-pads
Sebastian Dröge [Tue, 11 Jun 2013 10:26:24 +0000 (12:26 +0200)]
qtdemux: Do allocation query after exposing all pads and no-more-pads

Also configure video streams as early as possible.

Related https://bugzilla.gnome.org/show_bug.cgi?id=701856
but not fixing that.

11 years agoflvdemux: Don't forward CAPS events from upstream
Sebastian Dröge [Tue, 11 Jun 2013 10:25:46 +0000 (12:25 +0200)]
flvdemux: Don't forward CAPS events from upstream

Just use the default pad event handler.

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

11 years agopulsesink: Cache the getcaps/acceptcaps probe stream
Arun Raghavan [Sun, 26 May 2013 02:48:04 +0000 (08:18 +0530)]
pulsesink: Cache the getcaps/acceptcaps probe stream

getcaps is called frequently during stream setup, and creating a new
stream each time is very inefficient. There's some more room for
optimisation by caching the queried sink formats as well, but this needs
some more changes to listen for format changes on the sink (for when
supported formats change between probe stream creation and sink
querying).

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

11 years agopulsesink: Add a getcaps function
Arun Raghavan [Thu, 23 May 2013 16:09:08 +0000 (21:39 +0530)]
pulsesink: Add a getcaps function

This allows us to have more fine-tuned caps in READY or above. However,
this is _really_ inefficient since we create a new stream and query sink
for every getcaps in READY, which on a simple gst-launch line happens
about 35 times. The next step is to cache getcaps results.

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

11 years agopulsesink: Take a lock on the ringbuffer in acceptcaps
Arun Raghavan [Fri, 10 May 2013 06:02:44 +0000 (11:32 +0530)]
pulsesink: Take a lock on the ringbuffer in acceptcaps

This is needed as a concurrent state change could pull the context or
stream out from under our feet.

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

11 years agoaudiopanorama: move the enum to the header and use instead of gint
Stefan Sauer [Sun, 9 Jun 2013 18:29:09 +0000 (20:29 +0200)]
audiopanorama: move the enum to the header and use instead of gint

Move the enum for the processing method to the header so that we can use the
type for the instance struct.

11 years agolevel: rework the tests to cover other formats too
Stefan Sauer [Sun, 9 Jun 2013 18:32:22 +0000 (20:32 +0200)]
level: rework the tests to cover other formats too

11 years agov4l2: make sure the element is not deleted before the pool
Michael Olbrich [Wed, 5 Jun 2013 14:32:30 +0000 (16:32 +0200)]
v4l2: make sure the element is not deleted before the pool

The pool accesses data from the v4l2object so it must exist at least
as long as the pool. Refcount the element which controls the object
live-time.

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

11 years agopng: Link with libgstbase for GstByteReader and GstAdapter
Sebastian Dröge [Fri, 7 Jun 2013 13:38:25 +0000 (15:38 +0200)]
png: Link with libgstbase for GstByteReader and GstAdapter

11 years agowavenc: Link with libgstbase for GstByteWriter
Sebastian Dröge [Fri, 7 Jun 2013 13:15:15 +0000 (15:15 +0200)]
wavenc: Link with libgstbase for GstByteWriter

11 years agowavparse: Push stream-start event in pull mode before anything else
Sebastian Dröge [Fri, 7 Jun 2013 11:26:35 +0000 (13:26 +0200)]
wavparse: Push stream-start event in pull mode before anything else

11 years agopulsesink: Get rid of acceptcaps side-effects
Arun Raghavan [Fri, 10 May 2013 06:39:19 +0000 (12:09 +0530)]
pulsesink: Get rid of acceptcaps side-effects

The sink info callback should not have side-effects on the GstPulseSink
object since we are sometimes using with a dummy stream in acceptcaps.

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

11 years agoBack to development
Sebastian Dröge [Wed, 5 Jun 2013 16:36:40 +0000 (18:36 +0200)]
Back to development

11 years agoRelease 1.1.1 1.1.1
Sebastian Dröge [Wed, 5 Jun 2013 15:58:51 +0000 (17:58 +0200)]
Release 1.1.1

11 years agoUpdate .po files
Sebastian Dröge [Wed, 5 Jun 2013 14:35:19 +0000 (16:35 +0200)]
Update .po files

11 years agowavenc: Fix taglist ref handling that made the unit test fail
Sebastian Dröge [Wed, 5 Jun 2013 13:50:04 +0000 (15:50 +0200)]
wavenc: Fix taglist ref handling that made the unit test fail

11 years agoAutomatic update of common submodule
Sebastian Dröge [Wed, 5 Jun 2013 13:14:54 +0000 (15:14 +0200)]
Automatic update of common submodule

From 098c0d7 to 01a7a46

11 years agov4l2: iterate controls with V4L2_CTRL_FLAG_NEXT_CTRL if possible
Michael Olbrich [Mon, 3 Jun 2013 07:17:43 +0000 (09:17 +0200)]
v4l2: iterate controls with V4L2_CTRL_FLAG_NEXT_CTRL if possible

In v2.6.18 control classes where added to the v4l2 API.
Iterating over CIDs starting with V4L2_CID_BASE will only find controls for
the first control class.
By iterating with V4L2_CTRL_FLAG_NEXT_CTRL all controls are found.

This is necessary to make controls from other control classes available in
the extra-controls property.

If V4L2_CTRL_FLAG_NEXT_CTRL is not defined at compile time or not supported
at runtime then the old mechanism for iterating is used.

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

11 years agoudpsink: avoid leaking the host
Wim Taymans [Wed, 5 Jun 2013 10:12:53 +0000 (12:12 +0200)]
udpsink: avoid leaking the host

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

11 years agov4l2: improve pixel aspect ratio handling
Michael Olbrich [Tue, 4 Jun 2013 06:26:33 +0000 (08:26 +0200)]
v4l2: improve pixel aspect ratio handling

Instead of just assuming a aspect ratio of 1/1 use VIDIOC_CROPCAP to ask
the device.
This also add a pixel-aspect-ratio property to overwrite the value from the
driver and a force-aspect-ratio property to ignore it.

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

11 years agov4l2: Fix compilation with older kernels
Stirling Westrup [Tue, 4 Jun 2013 15:04:11 +0000 (17:04 +0200)]
v4l2: Fix compilation with older kernels

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

11 years agov4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize
Michael Olbrich [Mon, 3 Jun 2013 15:07:10 +0000 (17:07 +0200)]
v4l2: call VIDIOC_REQBUFS with count = 0 in pool_finalize

Without this the following sequence fails:

- set_caps()
  - object_stop() (does nothing)
  - set_format() -> VIDIOC_S_FMT
- set_config() -> VIDIOC_REQBUFS with count = N
- set_caps()
  - object_stop()
    - pool_finalize()
  - set_format() -> VIDIOC_S_FMT => EBUSY

Usually the pool is started after set_config(), in which case object_stop()
will result in a pool_stop and therefore VIDIOC_REQBUFS with count = 0 but
that is not guaranteed.
Also calling VIDIOC_REQBUFS with count = 0 in pool_finalize() if necessary
fixes this problem.

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

11 years agov4l2: rework sink buffer refcounting
Michael Olbrich [Tue, 28 May 2013 17:14:15 +0000 (19:14 +0200)]
v4l2: rework sink buffer refcounting

This is a followup patch for #700781, which is not quite correct.
The buffer handling is quite complicated here.
The original code intended to the the following:

- gst_v4l2_buffer_pool_process() calls QBUF and adds the buffer to the
  local list.
- The sink calls gst_buffer_unref() which returns the buffer to the pool
  but not the 'free list'.
- Some time later DQBUF returns the buffer and
  gst_v4l2_buffer_pool_release_buffer() puts in on the 'free list'.

If the buffer must be copied then (parent_class)->acquire_buffer() is
called directly to keep the buffer in the pool.

This has two problems:
1. If gst_v4l2_buffer_pool_release_buffer() is called before the buffer is
   returned to the pool, then the buffer is put on the 'free list' twice.
   This can happen if a reference to the buffer is kept outside the sink,
   of if DQBUF returns the buffer, that was just queued with QBUF.
2. If buffers are copied, then all buffers are in the pool at all times. As
   a result gst_v4l2_buffer_pool_stop() and gst_v4l2_buffer_pool_dqbuf()
   can access pool->buffers at the same time, which can lead to memory
   corruption.

The patch for #700781 fixes those problems, but with the side effect that
there are always buffers outside the pool (because they are queued) and
the pool is never stopped.
This patch fixes this by releasing the reference to the buffer after
handling it (to avoid problem 2.) so it can be returned to the pool.
gst_v4l2_buffer_pool_release_buffer() is only called if the buffer is
already in the pool (to avoid problem 1.).

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

11 years agoqtdemux: make sure taglist is writable before adding tags
Thiago Santos [Sun, 2 Jun 2013 18:24:38 +0000 (15:24 -0300)]
qtdemux: make sure taglist is writable before adding tags

Avoids assertions

11 years agoqtdemux: effectively skip tracks that weren't listed on the 1st moov
Thiago Santos [Thu, 30 May 2013 22:24:13 +0000 (19:24 -0300)]
qtdemux: effectively skip tracks that weren't listed on the 1st moov

Without this, stream is NULL and the code will try to access it, leading
to segfaults.

11 years agoqtdemux: skip redundant check
Thiago Santos [Thu, 30 May 2013 22:23:50 +0000 (19:23 -0300)]
qtdemux: skip redundant check

!got_moov is already checked the line above

11 years agotests: cleanup level tests
Stefan Sauer [Sun, 2 Jun 2013 11:03:40 +0000 (13:03 +0200)]
tests: cleanup level tests

Split out a few more tests to avoid checking the same stuff over and over again.

11 years agolevel: remove unused variables in instance struct
Stefan Sauer [Sat, 1 Jun 2013 19:33:46 +0000 (21:33 +0200)]
level: remove unused variables in instance struct

11 years agolevel: add a test for continous timestamps
Stefan Sauer [Fri, 31 May 2013 16:13:02 +0000 (18:13 +0200)]
level: add a test for continous timestamps

A test that checks that msg[n].ts + msg[n].dur == msg[n+1].ts.

11 years agowavenc: add tags & toc support
Anton Belka [Fri, 12 Apr 2013 13:02:44 +0000 (16:02 +0300)]
wavenc: add tags & toc support

Write tags as LIST INFO chunk. Format the toc as cue + LIST adtl chunk. Remove
old #ifdef'ed code.

11 years agoRevert "rtph264pay: Restructuring to allow for adding optional caps"
Wim Taymans [Fri, 31 May 2013 13:12:08 +0000 (15:12 +0200)]
Revert "rtph264pay: Restructuring to allow for adding optional caps"

This reverts commit 61666898cfe89a1b21d3e6850ab44f5b1633ed79.

This commit changes what the set_sps_pps() function does, not it doesn't
set caps anymore (and should have been renamed). The main problem is that
not all call sites are updated and thus leak the string.

11 years agoRevert "rtph264pay/depay: Add frame dimensions a payloaded caps"
Wim Taymans [Fri, 31 May 2013 13:11:12 +0000 (15:11 +0200)]
Revert "rtph264pay/depay: Add frame dimensions a payloaded caps"

This reverts commit 3dca756a5dba55266256f239e3e12a3d058e185a.

The H264 RTP spec has no attributes for width and height.

11 years agoRevert "rtph264pay/depay: Add optional framerate caps for use in SDP"
Wim Taymans [Fri, 31 May 2013 13:09:51 +0000 (15:09 +0200)]
Revert "rtph264pay/depay: Add optional framerate caps for use in SDP"

This reverts commit d8825e2a5c0bfb883ff88e2c9da499c800ebca0a.

There is no framerate attribute in the h264 RTP spec.

11 years agoRevert "rtpjpegpay/depay: Replace framesize caps with width/height"
Wim Taymans [Fri, 31 May 2013 13:08:16 +0000 (15:08 +0200)]
Revert "rtpjpegpay/depay: Replace framesize caps with width/height"

This reverts commit 0075d111b475ca27895ee9476154260b6902940b.

Extra application/x-rtp are SDP fields, which are strings.

11 years agoRevert "rtpjpegpay/depay: Replace framerate caps field with fraction"
Wim Taymans [Fri, 31 May 2013 13:05:51 +0000 (15:05 +0200)]
Revert "rtpjpegpay/depay: Replace framerate caps field with fraction"

This reverts commit 9fd25a810b859e0ec205176578735100d83de4af.

We deal with sdp attributes in application/sdp, which are always strings.

11 years agortspsrc: add extra TLS url protocols
Wim Taymans [Fri, 31 May 2013 10:33:21 +0000 (12:33 +0200)]
rtspsrc: add extra TLS url protocols

We also support TLS protocols now.

11 years agovideomixer: Add FIXME comment about the DURATION query from adder
Sebastian Dröge [Thu, 30 May 2013 12:48:42 +0000 (14:48 +0200)]
videomixer: Add FIXME comment about the DURATION query from adder

Currently the code just takes with maximum upstream duration, which
is wrong. It should be the maximum upstream duration in running time.

11 years agovideomixer: Set a reference to mix->current_caps as the QUERY_CAPS result.
Mathieu Duponchelle [Thu, 30 May 2013 19:20:59 +0000 (21:20 +0200)]
videomixer: Set a reference to mix->current_caps as the QUERY_CAPS result.

11 years agolevel: misc cleanups
Stefan Sauer [Thu, 30 May 2013 15:37:13 +0000 (17:37 +0200)]
level: misc cleanups

Fix some oudated comments. Sort out some confusion of interval_frames and num_frames.

11 years agov4l2: Only conditionally use V4L2_CTRL_TYPE_INTEGER_MENU, it's not available in older...
Sebastian Dröge [Wed, 29 May 2013 18:35:41 +0000 (20:35 +0200)]
v4l2: Only conditionally use V4L2_CTRL_TYPE_INTEGER_MENU, it's not available in older versions

11 years agov4l2: add a property for arbitrary v4l2 controls
Michael Olbrich [Mon, 20 May 2013 14:45:37 +0000 (16:45 +0200)]
v4l2: add a property for arbitrary v4l2 controls

This makes it possible to set any controls that can be set with
VIDIOC_S_CTRL.
The controls are set when the property is set (if the device is open)
and when the device is opened.

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

11 years agolevel: fix discontinuities in timestamps
Stefan Sauer [Tue, 28 May 2013 16:31:07 +0000 (18:31 +0200)]
level: fix discontinuities in timestamps

11 years agogdkpixbufdec: Keep serialized events in order, and don't send SEGMENT before CAPS
Sebastian Dröge [Tue, 28 May 2013 13:46:43 +0000 (15:46 +0200)]
gdkpixbufdec: Keep serialized events in order, and don't send SEGMENT before CAPS

11 years agortspsrc: create and push stream-start in TCP mode
Wim Taymans [Tue, 28 May 2013 13:45:49 +0000 (15:45 +0200)]
rtspsrc: create and push stream-start in TCP mode

11 years agortspsrc: remove some obsolete code
Wim Taymans [Tue, 28 May 2013 13:10:07 +0000 (15:10 +0200)]
rtspsrc: remove some obsolete code

It is not needed to do a state change from the _play() function on
ourselves. The state change function already did that and we don't want to
interfere with that (or use hacks to avoid interference).

11 years agortspsrc: set RTCP caps on the RTCP pads
Wim Taymans [Tue, 28 May 2013 10:24:37 +0000 (12:24 +0200)]
rtspsrc: set RTCP caps on the RTCP pads

11 years agortpsession: send stream-start and segment events
Wim Taymans [Tue, 28 May 2013 10:23:37 +0000 (12:23 +0200)]
rtpsession: send stream-start and segment events

Also send stream-start and segment event on the RTCP pad.
We don't need to send anything on the sync_src pad because we
already forwarded all incomming events.

11 years agortspsrc: add signal to handle server requests
Wim Taymans [Thu, 25 Apr 2013 13:25:06 +0000 (15:25 +0200)]
rtspsrc: add signal to handle server requests

Add a signal to be notified of a server request. The signal handler can then
construct the response message for the server.

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

11 years agovideomixer: Maintain z-order when new pad are added
Nicolas Dufresne [Tue, 28 May 2013 02:43:25 +0000 (22:43 -0400)]
videomixer: Maintain z-order when new pad are added

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

11 years agovp8enc: Add property to manually specify the timebase of the encoder
Tom Greenwood [Wed, 6 Mar 2013 13:17:54 +0000 (13:17 +0000)]
vp8enc: Add property to manually specify the timebase of the encoder

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

11 years agovideomixer: Always handle flush_stop_pending atomically
Thibault Saunier [Sat, 25 May 2013 16:17:40 +0000 (12:17 -0400)]
videomixer: Always handle flush_stop_pending atomically

It is not protected with the COLLECT_PADS_STREAM_LOCK anymore

11 years agotests: videomixer: Add a testsuite for videomixer
Thibault Saunier [Thu, 23 May 2013 22:14:17 +0000 (18:14 -0400)]
tests: videomixer: Add a testsuite for videomixer

This is mostly copy pasted from -base/tests/check/elements/adder.c

11 years agovideomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary
Thibault Saunier [Sat, 25 May 2013 14:57:02 +0000 (10:57 -0400)]
videomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary

Collectpad takes the lock itself when receiving serialized events
and we should not take it for not serialized ones

11 years agoflxdec: Properly skip non-frame chunks
Sebastian Dröge [Fri, 24 May 2013 17:34:05 +0000 (19:34 +0200)]
flxdec: Properly skip non-frame chunks

11 years agoflxdec: Flush data from adapter after reading it
Sebastian Dröge [Fri, 24 May 2013 17:31:14 +0000 (19:31 +0200)]
flxdec: Flush data from adapter after reading it

Otherwise we're going in an infinite loop, reading the same data
over and over again.

11 years agogoom2k1: fix more duplicated symbols
Andoni Morales Alastruey [Wed, 24 Apr 2013 15:39:54 +0000 (15:39 +0000)]
goom2k1: fix more duplicated symbols

11 years agortpjpegpay/depay: Replace framerate caps field with fraction
Sebastian Rasmussen [Wed, 22 May 2013 00:40:52 +0000 (02:40 +0200)]
rtpjpegpay/depay: Replace framerate caps field with fraction

The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.

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

11 years agortpjpegpay/depay: Replace framesize caps with width/height
Sebastian Rasmussen [Tue, 21 May 2013 23:58:57 +0000 (01:58 +0200)]
rtpjpegpay/depay: Replace framesize caps with width/height

The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.

Keep parsing a-framerate, x-framerate and x-dimensions in rtpjpegdepay
to be backwards compatible with previous payloaders.

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

11 years agortph264pay/depay: Add optional framerate caps for use in SDP
Sebastian Rasmussen [Wed, 22 May 2013 01:18:07 +0000 (03:18 +0200)]
rtph264pay/depay: Add optional framerate caps for use in SDP

This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.

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

11 years agortph264pay/depay: Add frame dimensions a payloaded caps
Sebastian Rasmussen [Wed, 22 May 2013 01:09:44 +0000 (03:09 +0200)]
rtph264pay/depay: Add frame dimensions a payloaded caps

This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.

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

11 years agortph264pay: Restructuring to allow for adding optional caps
Sebastian Rasmussen [Mon, 20 May 2013 20:14:44 +0000 (22:14 +0200)]
rtph264pay: Restructuring to allow for adding optional caps

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

11 years ago(dyn|multi)udpsink: Add properties to specify the bind address and port
Sebastian Dröge [Thu, 23 May 2013 16:42:09 +0000 (18:42 +0200)]
(dyn|multi)udpsink: Add properties to specify the bind address and port

By default we use the any addresses and a random port for binding the socket.

11 years ago(dyn|multi)udpsink: Bind socket before using it
Sebastian Dröge [Thu, 23 May 2013 16:05:07 +0000 (18:05 +0200)]
(dyn|multi)udpsink: Bind socket before using it

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

11 years ago(multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties
Sebastian Dröge [Thu, 23 May 2013 15:25:29 +0000 (17:25 +0200)]
(multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties

11 years agovideomixer: Don't hold stream-lock while pushing non-serialized events
Nicolas Dufresne [Thu, 23 May 2013 01:01:48 +0000 (21:01 -0400)]
videomixer: Don't hold stream-lock while pushing non-serialized events

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

11 years agovideomixer: Don't hold object lock while sending events
Nicolas Dufresne [Thu, 23 May 2013 01:00:45 +0000 (21:00 -0400)]
videomixer: Don't hold object lock while sending events

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

11 years agodeinterlace: The return value of gst_pad_set_caps() is not relevant anymore
Sebastian Dröge [Wed, 22 May 2013 15:32:33 +0000 (17:32 +0200)]
deinterlace: The return value of gst_pad_set_caps() is not relevant anymore

Caps can fail to be set because the pad is not linked yet for example.

11 years agoqtdemux: Add error if file has playready drm
David Schleef [Wed, 15 May 2013 23:39:36 +0000 (16:39 -0700)]
qtdemux: Add error if file has playready drm

11 years agovideomixer: Send a reconfigure event upstream if sinkpad caps are not usable
Thibault Saunier [Sat, 18 May 2013 19:06:49 +0000 (15:06 -0400)]
videomixer: Send a reconfigure event upstream if sinkpad caps are not usable

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

11 years agov4l2: keep a reference to all queued buffers
Michael Olbrich [Tue, 21 May 2013 10:02:51 +0000 (12:02 +0200)]
v4l2: keep a reference to all queued buffers

Without this, a queued buffer may be required, filled and queued before it
is dequeued.
Calling gst_buffer_pool_acquire_buffer() ensures that the buffer is set up
correctly and gst_buffer_unref() calls buffer_release().

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

11 years agomulawdec: Handle NULL buffers in handle_frame
Alexander Schrab [Tue, 21 May 2013 11:33:59 +0000 (13:33 +0200)]
mulawdec: Handle NULL buffers in handle_frame

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

11 years agortpjpegpay/depay: Add framesize caps for use in SDP
Sebastian Rasmussen [Mon, 20 May 2013 19:44:13 +0000 (21:44 +0200)]
rtpjpegpay/depay: Add framesize caps for use in SDP

The format of the value adheres to RFC6064 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.

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

11 years agortpjpegpay: Add optional framerate caps for use in SDP
Sebastian Rasmussen [Mon, 20 May 2013 19:34:13 +0000 (21:34 +0200)]
rtpjpegpay: Add optional framerate caps for use in SDP

The format of the value adheres to RFC4566 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.

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

11 years agovideomixer: When all sinkpads are eos, update output segment stop and forward it
Mathieu Duponchelle [Mon, 20 May 2013 17:59:13 +0000 (19:59 +0200)]
videomixer: When all sinkpads are eos, update output segment stop and forward it

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

11 years agovideomixer: Don't reset the output segment on flush stop
Mathieu Duponchelle [Mon, 20 May 2013 17:51:07 +0000 (19:51 +0200)]
videomixer: Don't reset the output segment on flush stop

Only init it when getting from READY to PAUSED, and change it on seek events.

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

11 years agov4l2: Don't stop streaming when set_caps is called with unchanged caps
Michael Olbrich [Fri, 17 May 2013 08:16:48 +0000 (10:16 +0200)]
v4l2: Don't stop streaming when set_caps is called with unchanged caps

This can happen if other parts of the pipeline are reconfigured.
Stop streaming even for a short amount of time can be quite visible, so it
should be avoided if possible.

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

11 years agotests: Re-enable videomixer test
Thibault Saunier [Sat, 18 May 2013 19:39:36 +0000 (15:39 -0400)]
tests: Re-enable videomixer test

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

11 years agovideomixer: Send caps event from the streaming thread
Thibault Saunier [Sat, 18 May 2013 18:36:39 +0000 (14:36 -0400)]
videomixer: Send caps event from the streaming thread

This way we avoid races in caps negotiation and we make sure
that the caps are sent after stream-start.

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

11 years agovideomixer: Do not send flush_stop when receiving a seek
Thibault Saunier [Sun, 5 May 2013 19:25:20 +0000 (20:25 +0100)]
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

11 years agovideomixer2: Protect flush_stop_pending with the collectpad stream lock
Thibault Saunier [Sun, 5 May 2013 19:24:49 +0000 (20:24 +0100)]
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

11 years agortpmp4apay: clear config buffer before using it
Michael Olbrich [Fri, 17 May 2013 10:37:59 +0000 (12:37 +0200)]
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

11 years agoqtdemux: Do not expect EOS after a segment event if upstream is mss
Thiago Santos [Tue, 14 May 2013 20:30:07 +0000 (17:30 -0300)]
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

11 years agoqtdemux: only set channels and rate if qtdemux knows it
Thiago Santos [Tue, 14 May 2013 19:32:51 +0000 (16:32 -0300)]
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.