platform/upstream/gst-plugins-good.git
9 years agomatroskademux: Don't get stuck at the same offset when searching for clusters
Sebastian Dröge [Mon, 29 Dec 2014 14:00:02 +0000 (15:00 +0100)]
matroskademux: Don't get stuck at the same offset when searching for clusters

This could happen if there is an invalid cluster with size 0, and in that
case just error out instead of looping forever.

9 years agoqtmux: fix ALAC muxing
Tim-Philipp Müller [Thu, 25 Dec 2014 21:32:40 +0000 (21:32 +0000)]
qtmux: fix ALAC muxing

Actually copy the codec data instead of copying nothing
and then bombing out because there's no data.

Fixes: gst-launch-1.0 audiotestsrc ! avenc_alac ! qtmux ! fakesink

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

9 years agortpptdemux: just drop invalid rtp packets instead of erroring out
Tim-Philipp Müller [Thu, 25 Dec 2014 15:48:04 +0000 (15:48 +0000)]
rtpptdemux: just drop invalid rtp packets instead of erroring out

Apparently linphone sends an invalid RTP packet as very
first packet. We want to ignore that instead of erroring
out (same for any other invalid packets really).

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

9 years agortpptdemux: fix 0.10-ism in docs
Tim-Philipp Müller [Thu, 25 Dec 2014 15:44:15 +0000 (15:44 +0000)]
rtpptdemux: fix 0.10-ism in docs

9 years agotests: gdkpixbufoverlay-test: use absolute positioning to fix demo
Tim-Philipp Müller [Thu, 25 Dec 2014 14:58:12 +0000 (14:58 +0000)]
tests: gdkpixbufoverlay-test: use absolute positioning to fix demo

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

9 years agogdkpixbufoverlay: add "positioning-mode" property to allow absolute positions
Tim-Philipp Müller [Thu, 25 Dec 2014 14:53:09 +0000 (14:53 +0000)]
gdkpixbufoverlay: add "positioning-mode" property to allow absolute positions

Set positioning-mode=pixels-absolute to allow positioning with
absolute coordinates, meaning negative x/y offsets will be
interpreted as being to the left/above the video frame instead
of being interpreted as relative to the right/bottom edge of
the video frame (which is a silly default, but that's how it is).

This means we can nicely slide images into and out of the frame,
see gdkpixbufoverlay-test.

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

9 years agoosxaudio: Directly return the ringbuffer's caps if it is acquired
Sebastian Dröge [Mon, 22 Dec 2014 14:33:51 +0000 (15:33 +0100)]
osxaudio: Directly return the ringbuffer's caps if it is acquired

9 years agoosxaudio: Put all audio formats into the template caps
Sebastian Dröge [Mon, 22 Dec 2014 11:56:19 +0000 (12:56 +0100)]
osxaudio: Put all audio formats into the template caps

We report the proper caps later from the get_caps() vfunc implementation after
probing the selected device.

9 years agoosxaudio: Also set the big endian flag for floating point samples
Sebastian Dröge [Mon, 22 Dec 2014 11:56:05 +0000 (12:56 +0100)]
osxaudio: Also set the big endian flag for floating point samples

9 years agoMAINTAINERS: Update my mail address
Sebastian Dröge [Mon, 22 Dec 2014 10:45:59 +0000 (11:45 +0100)]
MAINTAINERS: Update my mail address

9 years agoosxaudio: Fix deadlock and property change notification in device selection code
Sebastian Dröge [Mon, 22 Dec 2014 09:23:01 +0000 (10:23 +0100)]
osxaudio: Fix deadlock and property change notification in device selection code

After creating the ringbuffer we have to set the device on the ringbuffer as
it defaults to kAudioDeviceUnknown. At this point it can't have changed to
anything else yet and we don't have to notify about changes to the sink/src
"device" property. It's also not a good idea because GstAudioBaseSrc has the
object lock taken while the ringbuffer is created, which might cause a
deadlock if something calls back into the element from "notify::device".

Once the base class is done with the NULL_TO_READY state change, it has opened
the device via the ringbuffer and this might have chosen a different device.
Especially if we initially used kAudioDeviceUnknown. Also notify about this
property change as initially intended by this code.

9 years agov4l2pool: Update configuration size
Nicolas Dufresne [Fri, 19 Dec 2014 17:30:03 +0000 (12:30 -0500)]
v4l2pool: Update configuration size

We already update our copy of VideoInfo.size to proper size, now also
the configuration so the size matches on release.

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

9 years agomatroska-demux: Cache upstream length
Edward Hervey [Fri, 19 Dec 2014 09:57:29 +0000 (10:57 +0100)]
matroska-demux: Cache upstream length

Instead of constantly querying upstream, just cache the last duration,
and in the unlikelyness we might have gone over query again before
deciding we are EOS.

Cut 15% cpu off matroskademux streaming thread (srsly...)

9 years agomatroska: mux/demux the OpusHead header
Vincent Penquerc'h [Wed, 17 Dec 2014 17:36:18 +0000 (17:36 +0000)]
matroska: mux/demux the OpusHead header

This is meant to be so (https://wiki.xiph.org/MatroskaOpus - while
it is marked as a draft, this part was confirmed to be correct on
IRC), and allows one to determine whether a demuxed stream is
multistream or not, and thus set the multistream caps field
accordingly. In turn, this means downstream does not have to guess.

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

9 years agortspsrc: Don't dereference NULL if a suitable stream for the AUX element can't be...
Sebastian Dröge [Thu, 18 Dec 2014 10:50:33 +0000 (11:50 +0100)]
rtspsrc: Don't dereference NULL if a suitable stream for the AUX element can't be found

CID 1258717

9 years agoAutomatic update of common submodule
Sebastian Dröge [Thu, 18 Dec 2014 09:53:39 +0000 (10:53 +0100)]
Automatic update of common submodule

From ef1ffdc to f2c6b95

9 years agoudpsink: allocate scratch space for render functions on the heap
Tim-Philipp Müller [Fri, 12 Dec 2014 23:06:07 +0000 (23:06 +0000)]
udpsink: allocate scratch space for render functions on the heap

and not the stack. Our allocations could get a bit too large
to be sure it's not going to cause trouble using the stack.

9 years agomultiudpsink: re-use send_buffers() code path for render() function
Tim-Philipp Müller [Tue, 24 Jun 2014 00:16:37 +0000 (01:16 +0100)]
multiudpsink: re-use send_buffers() code path for render() function

It's like rendering a buffer list, just with one buffer.
Has the added advantage that if there are multiple clients
we can send the buffer to all the clients in one go.

9 years agomultiudpsink: keep client list consistent during removals
Tim-Philipp Müller [Tue, 24 Jun 2014 00:15:25 +0000 (01:15 +0100)]
multiudpsink: keep client list consistent during removals

We unlock and re-lock the client lock while emitting the
removed signal, which causes inconsistencies in the client
list vs. the client counts. Instead, remove the client from
the list already before emitting the signal and put it into
a temporary list of clients to be removed. That way things
look consistent to the streaming thread, but signal callbacks
can still do things like get stats from removed clients.

9 years agomultiudpsink: fix client count after removal
Tim-Philipp Müller [Mon, 23 Jun 2014 23:56:27 +0000 (00:56 +0100)]
multiudpsink: fix client count after removal

9 years agomultiudpsink: keep client list sorted by socket family
Tim-Philipp Müller [Mon, 23 Jun 2014 17:43:21 +0000 (18:43 +0100)]
multiudpsink: keep client list sorted by socket family

We make use of in the send_buffers() function if we
need to use different sockets to send to IPv4 and
IPv6 destinations.

9 years agomultiudpsink: add sendmmsg-ready render_list function prototype
Tim-Philipp Müller [Fri, 20 Jun 2014 10:36:19 +0000 (11:36 +0100)]
multiudpsink: add sendmmsg-ready render_list function prototype

Add prototype for a render_list() function that can use a
sendmmsg-style g_socket_send_messages() function once it lands
in GLib. We can use this infrastructure to send multiple buffers
made up by multiple memories to multiple clients in one go, which
drastically reduces the number of syscalls made when sending
high-bitrate video streams.

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

9 years agomultiudpsink: make udp client structure refcounted
Tim-Philipp Müller [Thu, 19 Jun 2014 18:16:01 +0000 (19:16 +0100)]
multiudpsink: make udp client structure refcounted

Use the refcount for memory management and keep track
of the number of duplicate clients in a separate
variable. This will be useful later, and means we
don't have to hold the OBJECT_LOCK all the time.

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

9 years agomultiudpsink: keep count of number of unique and non-unique IPv4 and IPv6 clients
Tim-Philipp Müller [Thu, 19 Jun 2014 17:31:05 +0000 (18:31 +0100)]
multiudpsink: keep count of number of unique and non-unique IPv4 and IPv6 clients

This will come in handy later.

9 years agov4l2bufferpool: Disable create_buf with libv4l2
Nicolas Dufresne [Tue, 16 Dec 2014 20:00:22 +0000 (15:00 -0500)]
v4l2bufferpool: Disable create_buf with libv4l2

Libv4l2 does not work with CREATE_BUFS. Instead of failing on random
error caused by libv4l2, disable CREATE_BUFS when an emulated format is
detected.

9 years agov4l2allocator: Add protection against broken libv4l2
Nicolas Dufresne [Tue, 9 Dec 2014 22:39:12 +0000 (17:39 -0500)]
v4l2allocator: Add protection against broken libv4l2

It looks like libv4l2 support for CREATE_BUF is incomplete. That
combine with existing bugs may lead to crash in GStreamer. These
check will make it robust by:

- Checking create buf index isn't an already in used index
- Checking that the index out of QUERYBUF matches the requested
  index

9 years agortspsrc: Add something to the debug logs if an RTX AUX element can't be added
Sebastian Dröge [Tue, 16 Dec 2014 15:37:24 +0000 (16:37 +0100)]
rtspsrc: Add something to the debug logs if an RTX AUX element can't be added

... because the application already has a signal handler set up here.

9 years agortspsrc: add retransmission support according to RFC4588
Matthew Waters [Fri, 21 Nov 2014 03:13:34 +0000 (14:13 +1100)]
rtspsrc: add retransmission support according to RFC4588

Based on the client-rtpaux example

9 years agoosxvideosink: clear rectangle structures before use
Wim Taymans [Tue, 16 Dec 2014 12:25:01 +0000 (13:25 +0100)]
osxvideosink: clear rectangle structures before use

9 years agov4l2object: Always set format
Nicolas Dufresne [Tue, 9 Dec 2014 20:09:56 +0000 (15:09 -0500)]
v4l2object: Always set format

Right now we try to be clever by detecting if device format have
changed or not, and skip setting format in this case. This is valid
behaviour with V4L2, but it's also very error prone. The rational
for not setting these all the time is for speed, though I can't
measure any noticeable gain on any HW I own. Also, until recently,
we where doing get/set on the format for each format we where
probing, making it near to impossible that the format would match.
This also fixes bug where we where skipping frame-rate setting if
format didn't change.

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

9 years agovideocrop: Remove todo about caps filter
Nicolas Dufresne [Mon, 15 Dec 2014 23:30:01 +0000 (18:30 -0500)]
videocrop: Remove todo about caps filter

The filter is already interected.

9 years agovideocrop: Make sure new crop is applied
Nicolas Dufresne [Mon, 15 Dec 2014 23:19:05 +0000 (18:19 -0500)]
videocrop: Make sure new crop is applied

Since "basetransform: Fix caps equality check" commit a7f357,
set_info() will not be called anymore if crop didn't change
the caps. This is fixed by setting "need_update" boolean when
cropping properties has been changed, and then applying these
if they where not applied before rendering the next frame. This
patch also fixed the locking, dropping un-needed custom lock,
and no holding needless lock while doing the operation as we
already hold the streaming lock.

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

9 years agoosxaudiosink: Prefer filter caps order while getting caps
Arun Raghavan [Fri, 12 Dec 2014 12:40:35 +0000 (18:10 +0530)]
osxaudiosink: Prefer filter caps order while getting caps

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

9 years agoosxaudiosink: Add some error handling around channel layout parsing
Arun Raghavan [Tue, 9 Dec 2014 08:08:26 +0000 (13:38 +0530)]
osxaudiosink: Add some error handling around channel layout parsing

For now we just spit a warning and ignore the channel layout if we can't
support it.

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

9 years agoosxaudio: Take lock around sink/source before accessing the ringbuffer
Arun Raghavan [Mon, 8 Dec 2014 17:08:22 +0000 (22:38 +0530)]
osxaudio: Take lock around sink/source before accessing the ringbuffer

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

9 years agoosxaudiosrc: Probe channel layout too
Arun Raghavan [Mon, 1 Dec 2014 15:36:27 +0000 (21:06 +0530)]
osxaudiosrc: Probe channel layout too

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

9 years agoosxaudiosink: Only fix up channels/layout for PCM caps while probing
Arun Raghavan [Mon, 1 Dec 2014 15:02:04 +0000 (20:32 +0530)]
osxaudiosink: Only fix up channels/layout for PCM caps while probing

It's unlikely that setting a channel layout will do much for AC3/DTS
streams. If we find at some point that it does make sense, we can
perform the structure copying unconditionally (i.e., the current code is
wrong, since AC3/DTS will get two structures now - one with the channel
layout, one without).

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

9 years agoosxaudiosrc: Implement caps probing
Arun Raghavan [Mon, 1 Dec 2014 14:11:35 +0000 (19:41 +0530)]
osxaudiosrc: Implement caps probing

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

9 years agoosxaudio: Bind audio device to audio unit early
Arun Raghavan [Mon, 1 Dec 2014 13:59:57 +0000 (19:29 +0530)]
osxaudio: Bind audio device to audio unit early

We want to bind the device during open so that subsequent format queries
on the audio unit are as specific as possible from that point onwards.

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

9 years agoosxaudiosink: Fix up caps querying a bit
Arun Raghavan [Sat, 29 Nov 2014 17:46:30 +0000 (23:16 +0530)]
osxaudiosink: Fix up caps querying a bit

This should make caps queries correct in PAUSED and higher as well.

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

9 years agoosxaudio: Move osxaudiosrc-specific code out of the generic path
Arun Raghavan [Fri, 28 Nov 2014 17:02:36 +0000 (22:32 +0530)]
osxaudio: Move osxaudiosrc-specific code out of the generic path

Avoids one layering violation (GstCoreAudio referring to
GstOsxAudioSrc).

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

9 years agoosxaudio: Clean up a GstCoreAudio -> GstOsxAudioSrc/Sink reference
Arun Raghavan [Fri, 28 Nov 2014 16:53:17 +0000 (22:23 +0530)]
osxaudio: Clean up a GstCoreAudio -> GstOsxAudioSrc/Sink reference

Now that device selection has no sink/source-specific bits, we can have
generic device selection for this path. We do need to now track state
changes so we can look up the final device_id once the device is open,
though.

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

9 years agoosxaudiosink: Move device caps probing to get_caps()
Arun Raghavan [Fri, 28 Nov 2014 14:10:52 +0000 (19:40 +0530)]
osxaudiosink: Move device caps probing to get_caps()

This should be preferred to running the probe at device open time.

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

9 years agoosxaudio: Make some debug code compile conditionally
Arun Raghavan [Fri, 28 Nov 2014 13:07:02 +0000 (18:37 +0530)]
osxaudio: Make some debug code compile conditionally

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

9 years agoosxaudio: Move device selection to ringbuffer->open_device()
Arun Raghavan [Fri, 28 Nov 2014 09:36:35 +0000 (15:06 +0530)]
osxaudio: Move device selection to ringbuffer->open_device()

This is conceptually the right thing to do, and allows us to correctly
catch errors in device selection as well, which we could not do while
creating the ringbuffer.

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

9 years agoosxaudio: Consolidate input and output code paths a bit
Arun Raghavan [Fri, 28 Nov 2014 09:04:34 +0000 (14:34 +0530)]
osxaudio: Consolidate input and output code paths a bit

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

9 years agoDeinterlace: in query_caps return only supported formats if filter is interlaced
Thibault Saunier [Fri, 21 Nov 2014 10:54:18 +0000 (11:54 +0100)]
Deinterlace: in query_caps return only supported formats if filter is interlaced

In some cases the currently set GstVideoInfo is not interlaced, but
upstream caps are interlaced and the info is passed in the filter,
we should take that info into account and make sure that we do not
consider that case as a "pass through" case.

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

9 years agoqtdemux: Fix debug statement
Edward Hervey [Fri, 12 Dec 2014 10:06:17 +0000 (11:06 +0100)]
qtdemux: Fix debug statement

It was using the non-increasing offset variable, which made that statement
not so useful :)

9 years agoqtdemux: Add macros for the various timescale conversions
Edward Hervey [Fri, 12 Dec 2014 10:03:15 +0000 (11:03 +0100)]
qtdemux: Add macros for the various timescale conversions

This helps make the code more readable and avoid future bad usage of
scaling function argument order.

9 years agortph264pay: fix potential crash when shutting down
Patrick Radizi [Thu, 11 Dec 2014 09:16:06 +0000 (10:16 +0100)]
rtph264pay: fix potential crash when shutting down

A race condition in the state change function may cause buffers
to be unreffed while they are still used by the streaming thread
in gst_rtp_h264_pay_send_sps_pps() resulting in a crash. Chain
up to the parent class first in the state change function to
make sure streaming has stopped and only then free those buffers.

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

9 years agoqtdemux: Copy flags of the overall segment to output segments
Jan Schmidt [Thu, 11 Dec 2014 13:42:06 +0000 (00:42 +1100)]
qtdemux: Copy flags of the overall segment to output segments

Preserve the segment flags of the overall demux segment on the output
segments for each pad.

9 years agoqtmux: use 64bit chunk_offset
Matej Knopp [Tue, 9 Dec 2014 01:43:00 +0000 (02:43 +0100)]
qtmux: use 64bit chunk_offset

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

9 years agoqtdemux: Fix rounding errors in duration update
Edward Hervey [Wed, 10 Dec 2014 16:39:17 +0000 (17:39 +0100)]
qtdemux: Fix rounding errors in duration update

Make sure we store updated segment stop/duration with the same
granularity as the duration timescale.

And add more debug

9 years agoqtdemux: Update duration when we get more information
Edward Hervey [Wed, 10 Dec 2014 15:55:44 +0000 (16:55 +0100)]
qtdemux: Update duration when we get more information

When dealing with fragmented files, we will get more accurate duration
information via the mfra and moof atoms.

In order for playback to not stop at the initial duration (from the
moov atom), we need to check and update the various duration variables
when we find more information.

Fixes playback of fragmented files in pull mode

9 years agoqtdemux: Remove variable assignments never read
Edward Hervey [Wed, 10 Dec 2014 14:08:40 +0000 (15:08 +0100)]
qtdemux: Remove variable assignments never read

As detected by clang/scan-build

9 years agoqtdemux: Use GstClockTime for nanosecond-based time variables/fields
Edward Hervey [Wed, 10 Dec 2014 13:56:06 +0000 (14:56 +0100)]
qtdemux: Use GstClockTime for nanosecond-based time variables/fields

Avoids confusion with timescaled-based variables and bytes (offset)
variables.
And use GST_CLOCK_TIME_NONE where applicable

9 years agopushfilesrc: Add TIME SEGMENT capability
Edward Hervey [Wed, 3 Dec 2014 13:47:05 +0000 (14:47 +0100)]
pushfilesrc: Add TIME SEGMENT capability

Adds a new set of properties to make pushfilesrc output a TIME SEGMENT
(instead of the filesrc BYTE SEGMENT).

When time-segment is set to True the following will happen:
* Seeks are refused (data starts from the beginning of the file)
* The BYTE segment will be replaced by a TIME segment with the values
  specified in the various properties
* The first outgoing buffer will have a timestamp set on it (by default
  it has a value of GST_CLOCK_TIME_NONE)

9 years agoaacparse: Also only unref caps if they're not NULL
Sebastian Dröge [Wed, 10 Dec 2014 10:35:29 +0000 (11:35 +0100)]
aacparse: Also only unref caps if they're not NULL

9 years agoaacparse: gst_pad_get_allowed_caps() will return NULL if there is no peer
Sebastian Dröge [Wed, 10 Dec 2014 10:34:42 +0000 (11:34 +0100)]
aacparse: gst_pad_get_allowed_caps() will return NULL if there is no peer

9 years agovpXenc: CLOCK_TIME_NONE is not a valid min_latency value
Thibault Saunier [Tue, 9 Dec 2014 15:38:38 +0000 (16:38 +0100)]
vpXenc: CLOCK_TIME_NONE is not a valid min_latency value

We should just use 0 if we do not have the information

9 years agortpsession: Use an empty iterator in iterate_internal_link when no links
Thibault Saunier [Wed, 3 Dec 2014 16:26:56 +0000 (17:26 +0100)]
rtpsession: Use an empty iterator in iterate_internal_link when no links

And not a NULL Iterator, so it is consistent with the way it usually
works and avoid user to need a different code paths to handle that.

9 years agov4l2bufferpool: set buffer interlace flags when field is V4L2_FIELD_INTERLACED
Aurélien Zanelli [Tue, 9 Dec 2014 13:01:50 +0000 (14:01 +0100)]
v4l2bufferpool: set buffer interlace flags when field is V4L2_FIELD_INTERLACED

If v4l2_buffer.field is V4L2_FIELD_INTERLACED, we set corresponding
GstVideoBuffer flags depending on the video standard.
According to V4L2 specification, M/NTSC transmits the bottom field
first, all other standards the top field first.

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

9 years agortph264pay: Fixes buffer leak when using SPS/PPS
Patrick Radizi [Mon, 8 Dec 2014 20:26:18 +0000 (21:26 +0100)]
rtph264pay: Fixes buffer leak when using SPS/PPS

Fixes a buffer leak that would occurr if the pipeline was shutdown
while a SPS/PPS header was being created.

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

9 years agoagingtv: fix memcpy when no color aging requested.
Mathieu Duponchelle [Tue, 9 Dec 2014 03:43:29 +0000 (04:43 +0100)]
agingtv: fix memcpy when no color aging requested.

video_size is the size in pixels, actual size of the memcpy
has to be stride * height.

9 years agov4l2: Workaround libv4l2 RW emulation bug
Nicolas Dufresne [Sun, 7 Dec 2014 22:33:51 +0000 (17:33 -0500)]
v4l2: Workaround libv4l2 RW emulation bug

When libv4l2 emulates RW mode on top of MMAP devices, the queues are
only initialized on first read. The problem is that poll() will fail
if called before the queues are initialized and streaming. Workaround
this by doing a zero size read when pool is started in that IO mode.

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

9 years agov4l2: Fix RW io mode
Nicolas Dufresne [Sun, 7 Dec 2014 22:27:37 +0000 (17:27 -0500)]
v4l2: Fix RW io mode

In RW, allocator can be null, max_buffers can be zero, and we need not
to wait while the queue is empty since there is no queue.

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

9 years agov4l2bufferpool: Cleanup uneeded check and cases
Nicolas Dufresne [Wed, 3 Dec 2014 21:40:49 +0000 (16:40 -0500)]
v4l2bufferpool: Cleanup uneeded check and cases

There is nothing in between the break and the "done:" anymore, plus
USERPTR and DMABUF_IMPORT case is exactly the same.

9 years agov4l2pool: Fix CREATE_BUFS support for capture
Nicolas Dufresne [Wed, 3 Dec 2014 22:07:49 +0000 (17:07 -0500)]
v4l2pool: Fix CREATE_BUFS support for capture

This patch fixes CREATE_BUFS support for capture devices. Initially we
would only try and allocate more buffers when the copy threshold
is reached. When the threshold was not set (needed) it would never
happen. Another problem is that on capture side, acquire returns
filled buffer, hence need to pool. We need to set a special flag to
force allocation to happen.

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

9 years agov4l2allocator: Fix CREATE_BUF probing
Nicolas Dufresne [Wed, 3 Dec 2014 21:27:59 +0000 (16:27 -0500)]
v4l2allocator: Fix CREATE_BUF probing

Current for every memory type we where probing MMAP CREATE_BUFS ioct.

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

9 years agomatroskademux: set framerate 0/1 when duration is not known
Nicola Murino [Tue, 18 Nov 2014 15:52:40 +0000 (16:52 +0100)]
matroskademux: set framerate 0/1 when duration is not known

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

9 years agoqtdemux: More fixes for reverse playback
Jan Schmidt [Thu, 4 Dec 2014 06:25:55 +0000 (17:25 +1100)]
qtdemux: More fixes for reverse playback

When seeking or finding the previous keyframe, do
comparisons against targets and segments using composition time
to correctly decide which sample times match.

9 years agortpjitterbuffer: Use an empty iterator in iterate_internal_link when no links
Thibault Saunier [Wed, 3 Dec 2014 10:12:55 +0000 (11:12 +0100)]
rtpjitterbuffer: Use an empty iterator in iterate_internal_link when no links

We used to setup an iterator with 1 GValue set with a NULL object
pointer which is not the normal way to do that. Instead we should make
sure that the first call to gst_iterator_next returns GST_ITERATOR_DONE.

9 years agoqtdemux: Handle seeks past EOS as a seek to the end
Jan Schmidt [Wed, 3 Dec 2014 02:20:57 +0000 (13:20 +1100)]
qtdemux: Handle seeks past EOS as a seek to the end

Fix reverse playback of every frame by making seeks past/to EOS
find the last segment and start there.

9 years agortpmpadepay: Relax caps to allow any clock-rate
Olivier Crête [Tue, 2 Dec 2014 20:33:25 +0000 (15:33 -0500)]
rtpmpadepay: Relax caps to allow any clock-rate

Some Wowza setups seem to send an invalid non-90000 clock-rate.

9 years agoqtdemux: don't use GST_CLOCK_TIME_NONE in non GstClockTime variables
Thiago Santos [Tue, 2 Dec 2014 00:04:02 +0000 (21:04 -0300)]
qtdemux: don't use GST_CLOCK_TIME_NONE in non GstClockTime variables

Use -1 instead as those are gint64/guint64 variables and not GstClockTime

9 years agov4l2allocator: fix gst_v4l2_allocator_stop prototype
Aurélien Zanelli [Fri, 7 Nov 2014 16:06:49 +0000 (17:06 +0100)]
v4l2allocator: fix gst_v4l2_allocator_stop prototype

gst_v4l2_allocator_stop returns a GstV4l2Return, not a gboolean.

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

9 years agov4l2bufferpool: unref pool when v4l2_allocator_new() fails
Aurélien Zanelli [Fri, 7 Nov 2014 15:41:52 +0000 (16:41 +0100)]
v4l2bufferpool: unref pool when v4l2_allocator_new() fails

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

9 years agov4l2: Remove last include to linux/videodev2.h
Nicolas Dufresne [Sun, 30 Nov 2014 22:52:47 +0000 (17:52 -0500)]
v4l2: Remove last include to linux/videodev2.h

We now use and update our internal copy so we no longer have to ifdef
the entire code for features and defines that where added over the
years.

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

9 years agoqtdemux: implement seeking in fragmented mp4 files in pull mode based on the mfra...
Tim-Philipp Müller [Sun, 24 Aug 2014 12:38:08 +0000 (13:38 +0100)]
qtdemux: implement seeking in fragmented mp4 files in pull mode based on the mfra table

9 years agoqtdemux: use track fragment decoding time (tfdt) in parse_trun() for interpolation
Tim-Philipp Müller [Sat, 29 Nov 2014 15:25:51 +0000 (15:25 +0000)]
qtdemux: use track fragment decoding time (tfdt) in parse_trun() for interpolation

As fallback if we don't have any existing samples
as reference point yet.

Based on patch by David Corvoysier <david.corvoysier@orange.com>

9 years agoqtdemux: parse mfra random access box for fragmented mp4 files
Tim-Philipp Müller [Sat, 29 Nov 2014 14:37:25 +0000 (14:37 +0000)]
qtdemux: parse mfra random access box for fragmented mp4 files

If it's present, and we operate in pull mode.

9 years agoqtdemux: stop parsing headers for fragmented mp4s at the first moof
Tim-Philipp Müller [Fri, 15 Aug 2014 12:58:26 +0000 (14:58 +0200)]
qtdemux: stop parsing headers for fragmented mp4s at the first moof

Currently during header parsing, we scan through the entire file
and skip every moof+mdat chunk for fragmented mp4s, which makes
start-up incredibly slow. Instead, just stop at the first moof
chunk when have a moov, and start exposing the streams, so we
can go and start handling the moofs for real.

9 years agotests: add interactive gdkpixbufoverlay test
Tim-Philipp Müller [Sat, 29 Nov 2014 13:59:35 +0000 (13:59 +0000)]
tests: add interactive gdkpixbufoverlay test

Just need to fix the coordinate system now so
that negative offsets are actually negative
and not flipped to position things from the
opposite border.

9 years agogdkpixbufoverlay: add "pixbuf" property
Tim-Philipp Müller [Sat, 29 Nov 2014 13:53:03 +0000 (13:53 +0000)]
gdkpixbufoverlay: add "pixbuf" property

So we can set a GdkPixbuf directly instead of
reading it from an image file on the file system.

9 years agogdkpixbuf: remove pixbufscale code that was never ported
Tim-Philipp Müller [Sat, 29 Nov 2014 13:23:50 +0000 (13:23 +0000)]
gdkpixbuf: remove pixbufscale code that was never ported

Don't think we'll need this again.

9 years agortprtxreceive: Use offset when copying header
Olivier Crête [Sat, 29 Nov 2014 23:35:42 +0000 (18:35 -0500)]
rtprtxreceive: Use offset when copying header

The header is not always at the start of the packet, so we need to compute
the offset first.

9 years agoapev2mux: write APE tags at end for wavpack files
Tim-Philipp Müller [Fri, 28 Nov 2014 13:12:46 +0000 (13:12 +0000)]
apev2mux: write APE tags at end for wavpack files

http://www.wavpack.com/file_format.txt:
"Both the APEv2 tags and/or ID3v1 tags must come at the end of the
WavPack file, with the ID3v1 coming last if both are present."

WavPack files that contain APEv2 tags at the beginning of the files
are unplayable on players that use FFmpeg (like VLC) and most other
software (except Banshee). Players that use libwavpack directly can
play the files because it skips the tags, but does not recognize the
tag data at that location.

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

9 years agotests: add interactive test for gapless playback using SEGMENT seeks
Tim-Philipp Müller [Fri, 28 Nov 2014 10:41:55 +0000 (10:41 +0000)]
tests: add interactive test for gapless playback using SEGMENT seeks

Not working too well yet, there are glitches even with WAV or FLAC.

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

9 years agoaspectratiocrop: Handle resolution changes properly
Andrei Sarakeev [Wed, 26 Nov 2014 07:33:09 +0000 (10:33 +0300)]
aspectratiocrop: Handle resolution changes properly

When an caps-event is received, we must immediately change the crop
to videocrop correctly changed caps-event dimension, otherwise the
videocrop will first use the previous value of the crop that when
resizing video to a smaller resolution may cause an error.

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

9 years agoAutomatic update of common submodule
Edward Hervey [Thu, 27 Nov 2014 16:10:53 +0000 (17:10 +0100)]
Automatic update of common submodule

From 7bb2bce to ef1ffdc

9 years agotest: use gst_util_uint64_scale_round() for timestamp to sample calculation
Tim-Philipp Müller [Thu, 27 Nov 2014 11:20:36 +0000 (11:20 +0000)]
test: use gst_util_uint64_scale_round() for timestamp to sample calculation

9 years agotests: add interactive test for accurate seeking
Tim-Philipp Müller [Thu, 27 Nov 2014 11:16:35 +0000 (11:16 +0000)]
tests: add interactive test for accurate seeking

For some audio formats.

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

9 years agoisomp4: Check presence of mfhd in moof
Edward Hervey [Wed, 26 Nov 2014 15:04:26 +0000 (16:04 +0100)]
isomp4: Check presence of mfhd in moof

The 'mfhd' atom is mandatory in 'moof'. We can later on check whether
the fragment number properly increases

9 years agoisomp4: Fix mfro and tfra atom dumping
Edward Hervey [Wed, 26 Nov 2014 14:59:36 +0000 (15:59 +0100)]
isomp4: Fix mfro and tfra atom dumping

mfro was skipping the version/flags
tfra had wrong byte_reader return value checks

9 years agoisomp4: Add mfhd atom dumping
Edward Hervey [Wed, 26 Nov 2014 14:58:26 +0000 (15:58 +0100)]
isomp4: Add mfhd atom dumping

9 years agoqtdemux: Handle empty segments when seeking in reverse play.
Jan Schmidt [Wed, 26 Nov 2014 13:15:02 +0000 (00:15 +1100)]
qtdemux: Handle empty segments when seeking in reverse play.

Empty segments in an edit list have a media_start time of -1,
as they don't actually play any media. Allow for that when
aligning to the reference stream in reverse play.

9 years agoRevert "v4l2allocator: Remove unused variable"
Nicolas Dufresne [Mon, 24 Nov 2014 15:36:54 +0000 (10:36 -0500)]
Revert "v4l2allocator: Remove unused variable"

This reverts commit ad4480d53408a4d97ab531174ef37f258f3253c0.

9 years agoRevert "v4l2: move vb_queue probing from allocator to v4l2object"
Nicolas Dufresne [Mon, 24 Nov 2014 15:36:30 +0000 (10:36 -0500)]
Revert "v4l2: move vb_queue probing from allocator to v4l2object"

This reverts commit ec6b8b84af719d828ddd91c724e715c0b4a556bc.

9 years agoRevert "v4l2object: allow to automatic selection of dmabuf"
Nicolas Dufresne [Mon, 24 Nov 2014 15:33:29 +0000 (10:33 -0500)]
Revert "v4l2object: allow to automatic selection of dmabuf"

This reverts commit e6c2ad5571e5dedb212287efe238eb450032cd4f.

9 years agoREQUIREMENTS: update a little
Tim-Philipp Müller [Sun, 23 Nov 2014 16:34:15 +0000 (16:34 +0000)]
REQUIREMENTS: update a little

People actually look at that it seems.