platform/upstream/gstreamer.git
9 years agodecodebin2: Set multiqueue sizes before use-buffering.
Duncan Palmer [Sun, 15 Feb 2015 23:25:03 +0000 (09:25 +1000)]
decodebin2: Set multiqueue sizes before use-buffering.

This fixes a race where the use-buffering property on a multiqueue was
set before the queue depth was changed from it's high preroll limits to
lower playback limits. This resulted in buffering messages being emitted
by the multiqueue in the short window between use-buffering being
set and the queue depth being reset.

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

9 years agoRevert "fdmemory: freed pointer will always be 0"
Luis de Bethencourt [Tue, 24 Mar 2015 10:46:44 +0000 (10:46 +0000)]
Revert "fdmemory: freed pointer will always be 0"

This reverts commit 7fbcefb753f944a79eae6957ea2789c960eb9eea.

9 years agofdmemory: freed pointer will always be 0
Luis de Bethencourt [Tue, 24 Mar 2015 10:19:05 +0000 (10:19 +0000)]
fdmemory: freed pointer will always be 0

9 years agooggdemux: Fix compiler warning
Wonchul Lee [Fri, 20 Mar 2015 08:45:03 +0000 (17:45 +0900)]
oggdemux: Fix compiler warning

gstoggdemux.c:1233:11: error: format specifies type 'long' but the argument has type 'ogg_int64_t' (aka 'long long') [-Werror,-Wformat]
          granule);
          ^~~~~~~

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

9 years agodefs: update
Wim Taymans [Thu, 19 Mar 2015 12:31:07 +0000 (13:31 +0100)]
defs: update

9 years agovideo-convert: fix clamping for 16 bits alpha mult
Wim Taymans [Thu, 19 Mar 2015 11:42:23 +0000 (12:42 +0100)]
video-convert: fix clamping for 16 bits alpha mult

9 years agovideo-frame: fix height/width assertions
Tim-Philipp Müller [Wed, 18 Mar 2015 20:38:20 +0000 (20:38 +0000)]
video-frame: fix height/width assertions

As commit 274984e8 states:
When doing CROP META it is expected that the width and/or height
in the GstVideoMeta is bigger or equal to the caps negotiated size.

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

9 years agofdmemory: make a base class for allocating fd-backed memory
Wim Taymans [Wed, 18 Mar 2015 14:12:03 +0000 (15:12 +0100)]
fdmemory: make a base class for allocating fd-backed memory

Make a base class that can help with allocating fd-backed memory.
Make dmabuf extend from the base class.
We can now make methods to check if memory has an fd and get the fd for
all the different types of fd-backed memory.

9 years agomultisocketsink: Allocate enough memory on the stack in the test
Sebastian Dröge [Mon, 16 Mar 2015 19:41:19 +0000 (20:41 +0100)]
multisocketsink: Allocate enough memory on the stack in the test

Otherwise we just overwrite other things on the stack and cause crashes.

9 years agooggdemux: fix playback regression on streams with clipped data at start
Vincent Penquerc'h [Mon, 16 Mar 2015 11:53:24 +0000 (11:53 +0000)]
oggdemux: fix playback regression on streams with clipped data at start

The code that was calculating the start granule from packet durations
was interpreting a negative value as an error, but this is actually a
valid case, to indicate clipping of data at start.

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

9 years agofdmemory: add flags to control behaviour
Wim Taymans [Sun, 15 Mar 2015 16:27:33 +0000 (17:27 +0100)]
fdmemory: add flags to control behaviour

Add some flags to the GstFdMemory to control how memory is mapped and
unmapped.

9 years agoallocators: add allocators test
Wim Taymans [Sun, 15 Mar 2015 15:41:21 +0000 (16:41 +0100)]
allocators: add allocators test

9 years agofdmemory: add fd backed GstMemory to separate file
Wim Taymans [Sun, 15 Mar 2015 14:16:23 +0000 (15:16 +0100)]
fdmemory: add fd backed GstMemory to separate file

Make a separate file for the code to handle the fd backed memory.
This would make it possible later to add other allocators also using
fd backed memory.

9 years agostreamsynchronizer: fix deadlock condition
Thiago Santos [Sat, 14 Mar 2015 18:08:15 +0000 (18:08 +0000)]
streamsynchronizer: fix deadlock condition

The variables could have changed when the lock was released
to push a gap event. Streamsynchronizer needs to check them
again before going to sleep.

Bonus: fix a comment typo

9 years agoplaysink: remove redundant else statements
Ramiro Polla [Fri, 13 Mar 2015 18:07:12 +0000 (18:07 +0000)]
playsink: remove redundant else statements

9 years agoplaybin: don't escape percent sign in documentation code sample
Ramiro Polla [Fri, 13 Mar 2015 18:23:46 +0000 (18:23 +0000)]
playbin: don't escape percent sign in documentation code sample

9 years agoAdd test_that_multisocketsink_and_socketsrc_preserve_meta
William Manley [Mon, 3 Nov 2014 12:47:18 +0000 (12:47 +0000)]
Add test_that_multisocketsink_and_socketsrc_preserve_meta

This test is in a seperate commit to the previous two because it depends
on and tests the functionality in both.

9 years agosocketsrc: Add support for GstNetControlMessageMeta
William Manley [Fri, 13 Mar 2015 16:19:28 +0000 (16:19 +0000)]
socketsrc: Add support for GstNetControlMessageMeta

multisocketsink now understands the new GstNetControlMessageMeta to allow
sending control messages (ancillary data) with data when writing to Unix
domain sockets.

Thanks to glib's `GSocketControlMessage` abstraction the code introduced
in this commit is entirely portable and doesn't introduce and additional
dependencies or conditionally compiled code, even if it is unlikely to be
of much use on non-UNIX systems.

9 years agomultisocketsink: Add support for GstNetControlMessageMeta
William Manley [Thu, 30 Oct 2014 17:53:15 +0000 (17:53 +0000)]
multisocketsink: Add support for GstNetControlMessageMeta

multisocketsink now understands the new GstNetControlMessageMeta to allow
sending control messages (ancillary data) with data when writing to Unix
domain sockets.

A later commit will introduce a new socketsrc element which will similarly
understand `GstNetControlMessageMeta`.  This, when used with a
`GSocketControlMessage` of type `GUnixFDMessage` will allow GStreamer to
send and receive file-descriptions in ancillary data, the first step to
using memfds to implement zero-copy video IPC.

Thanks to glib's `GSocketControlMessage` abstraction the code introduced
in this commit is entirely portable and doesn't introduce and additional
dependencies or conditionally compiled code, even if it is unlikely to be
of much use on non-UNIX systems.

9 years agosocketsrc: Add `connection-closed-by-peer` signal
William Manley [Fri, 13 Mar 2015 13:56:13 +0000 (13:56 +0000)]
socketsrc: Add `connection-closed-by-peer` signal

This provides notification that the socket in use was closed by the peer
and gives an opportunity to replace it with a new one which is not
closed, allowing reading from many sockets in order.

I use this in pulsevideo to implement reconnection logic to handle the
pulsevideo service dieing, such that is can be restarted without
disrupting downstream.

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

9 years agosocketsrc: Tidy up usage of `g_object_unref`/`g_clear_object` and locking
William Manley [Fri, 13 Mar 2015 13:43:59 +0000 (13:43 +0000)]
socketsrc: Tidy up usage of `g_object_unref`/`g_clear_object` and locking

This is clearer, and should make future changes safer.  No functional
change intended.

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

9 years agosocketsrc: Refactor to simplify
William Manley [Fri, 13 Mar 2015 13:30:48 +0000 (13:30 +0000)]
socketsrc: Refactor to simplify

* Don't bother polling, just do a blocking read, the `GCancellable` will
  take care of unlocking.  This should also be faster on MS Windows where
  the GIO documentation for `g_socket_get_available_bytes` states: "Note
  that on Windows, this function is rather inefficient in the UDP case".

* Implement `GstPushSrc.fill` rather than `GstPushSrc.create`.  This means
  that we will be using the downstream allocator which may be more
  efficient.  It also means that socketsrc is likely to respect its
  "blocksize" property (assuming that there is enough data available).

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

9 years agotcp: Add element socketsrc
William Manley [Mon, 3 Nov 2014 02:47:14 +0000 (02:47 +0000)]
tcp: Add element socketsrc

`socketsrc` can be considered a source counterpart to `multisocketsink`.
It can be considered a generalization of `tcpclientsrc` and
`tcpserversrc`:  it contains all the logic required to communicate over
the socket but none of the logic for creating the sockets/establishing
the connection in the first place, allowing the user to accomplish this
externally in whatever manner they wish making it applicable to other
types of sockets besides TCP.

This commit essentially copies the implementation directly from
tcpserversrc.  Later patches will tidy the implementation up and
re-implement `tcpclientsrc` and `tcpserversrc` in terms of `socketsrc`.

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

9 years agoaudioringbuffer: Log with the ringbuffer object where possible
Arun Raghavan [Fri, 13 Mar 2015 17:54:23 +0000 (23:24 +0530)]
audioringbuffer: Log with the ringbuffer object where possible

9 years agomultisocketsink: Map `GstMemory`s individually when sending
William Manley [Fri, 13 Mar 2015 12:49:31 +0000 (12:49 +0000)]
multisocketsink: Map `GstMemory`s individually when sending

If a buffer is made up of non-contiguous `GstMemory`s `gst_buffer_map`
has to copy all the data into a new `GstMemory` which is contiguous.  By
mapping all the `GstMemory`s individually and then using scatter-gather
IO we avoid this situation.

This is a preparatory step for adding support to multisocketsink for
sending file descriptors, where a GstBuffer may be made up of several
`GstMemory`s, some of which are backed by a memfd or file, but I think this
patch is valid and useful on its own.

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

9 years agovideo-frame: Relax width/height assertion
Nicolas Dufresne [Fri, 13 Mar 2015 10:30:43 +0000 (10:30 +0000)]
video-frame: Relax width/height assertion

When doing CROP META it is exepcted that the width and/or height in the
GstVideoMeta is bigger or equal to the caps negotiated size.

9 years agovideopool: Choose the biggest buffer size
Nicolas Dufresne [Thu, 12 Mar 2015 16:32:31 +0000 (16:32 +0000)]
videopool: Choose the biggest buffer size

We should respect what has been negotiated.

9 years agooggdemux: recover from EOS when searching for chain in push mode
Vincent Penquerc'h [Thu, 12 Mar 2015 10:06:15 +0000 (10:06 +0000)]
oggdemux: recover from EOS when searching for chain in push mode

If we get EOS when we're trying to build a chain, we disable seeking
and continue instead of posting an error. This can happen for corner
cases such as a stream with a video that stops before the end, for
instance.

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

9 years agooggdemux: fix seeking in files with a "missing" stream
Vincent Penquerc'h [Wed, 11 Mar 2015 16:46:38 +0000 (16:46 +0000)]
oggdemux: fix seeking in files with a "missing" stream

When looking for pages when seeking, we stop looking for non sparse
streams if we don't find one within a given threshold. This fixes
seeking filling up queues and blocking in corner cases such as an
audio file with a pathological 1 frame video stream (yes, I saw one).

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

9 years agodocs: Add new video functions and objects. Cleanup a little.
Jan Schmidt [Thu, 12 Mar 2015 14:06:57 +0000 (01:06 +1100)]
docs: Add new video functions and objects. Cleanup a little.

Add GstVideoChroma, GstVideoDither, GstVideoScaler and friends to the docs.

Remove and clean up a few obsolete/deleted refs and typos

9 years agoplaybin: Disconnect signals and invalidate group if it fails to activate
Sebastian Dröge [Thu, 12 Mar 2015 12:17:11 +0000 (12:17 +0000)]
playbin: Disconnect signals and invalidate group if it fails to activate

Otherwise playbin might move to the group directly after EOS of the next
group, and then error out again.

9 years agotheoradec: Fix decoding in the presence of GstVideoCropMeta
Jan Schmidt [Sat, 31 Jan 2015 16:39:07 +0000 (03:39 +1100)]
theoradec: Fix decoding in the presence of GstVideoCropMeta

Store the video info of the internal frame decode width/height
separate to the exposed (cropped) frame info, so that it can be
used for mapping the downstream allocated video frame buffer correctly
when using GstVideoCropMeta.

Fixes playback of files with sizes that aren't a multiple of 16-pixels
width or height.

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

9 years agostreamsynchronizer: Should wait state change complete before start another state...
Song Bing [Tue, 3 Mar 2015 07:18:04 +0000 (15:18 +0800)]
streamsynchronizer: Should wait state change complete before start another state change

Should wait state change complete before start another state change.
Can't ensure can received async-done message when state change from PLAYING to PAUSED.

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

9 years agostreamsynchronizer: Remove unnecessary ERROR message.
Song Bing [Fri, 27 Feb 2015 08:40:23 +0000 (16:40 +0800)]
streamsynchronizer: Remove unnecessary ERROR message.

Remove unnecessary ERROR message.
Push GAP will fail as flushing. Needn't ERROR message.

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

9 years agooggdemux: do not send seek events from the streaming thread
Vincent Penquerc'h [Thu, 5 Mar 2015 17:42:53 +0000 (17:42 +0000)]
oggdemux: do not send seek events from the streaming thread

This will usually deadlock, despite this patch being in master for
quite some time and working fine. Nevertheless, we deem it to be
not working, disregarding facts.

As such, we fix it by keeping track of seek events, and sending
them upstream from a separate thread. Buffers are then discarded
till we get a new segment with the expected seqnum.

9 years agooggdemux: set correct seqnum on segment events after a seek in push mode
Vincent Penquerc'h [Mon, 23 Feb 2015 13:07:41 +0000 (13:07 +0000)]
oggdemux: set correct seqnum on segment events after a seek in push mode

There is already a seqnum field for this, which was used to overwrite
the seqnum that was set by the push specific code.

9 years agooggdemux: try harder to query duration from upstream
Vincent Penquerc'h [Mon, 23 Feb 2015 11:30:36 +0000 (11:30 +0000)]
oggdemux: try harder to query duration from upstream

READY->PAUSED can be too early as souphttpsrc can get the HTTP
headers after this. Try again in the chain function.

Also use seeking query to disable seeking if upstream reports
being unseekable.

9 years agooggdemux: add non flushing time seeking in push mode
Vincent Penquerc'h [Fri, 31 Oct 2014 10:55:14 +0000 (10:55 +0000)]
oggdemux: add non flushing time seeking in push mode

Some resetting code has to be done in the NEW_SEGMENT
event handler, instead of the missing FLUSH_STOP one.

Segment base was also wrongly accounted for. This was hidden
by the fact that flushing resets the base.

A discontinuity is now also signalled on seeking. We have to
also ensure that the discontinuity "sticks" till a buffer
with a valid timestamp goes out, or the audio decoder base
class will ignore the discontinuity for purposes of keeping
track of the current time.

This allows using non flushing segment seeks for looping
HTML audio in particular, and more generally non flushing seeks.

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

9 years agooggdemux: fix wrong first granule
Vincent Penquerc'h [Wed, 4 Feb 2015 17:13:44 +0000 (17:13 +0000)]
oggdemux: fix wrong first granule

The code was using the first nonnegative granulepos to seed the
granule tracking, which appeared to work since headers have zero
granulepos. However, this does not work for files with a hole at
start, which are common in live streaming.

The correct behavior is to look for the first granule, and subtract
the duration of all the packets finishing on this page.

The function which does this relies on the fact that the ogg_stream
structure can be duplicated by shallow copy, in order to pull the
packets from the first page(s) on the copy without affecting the
original stream state.

9 years agovideo-converter: fix border handling of YUY2 and friends
Wim Taymans [Wed, 11 Mar 2015 08:48:20 +0000 (09:48 +0100)]
video-converter: fix border handling of YUY2 and friends

Don't draw the border in groups of 4 pixels for YUY2 but instead in
groups of 2 with alternating U and V. This avoids a crash on odd width
borders.

9 years agovideo-converter: force yuv conversion for border
Wim Taymans [Wed, 11 Mar 2015 08:47:23 +0000 (09:47 +0100)]
video-converter: force yuv conversion for border

Make sure we always do yuv conversion for the border.

9 years agovideo-format: fix A422 subsampling description
Wim Taymans [Tue, 10 Mar 2015 16:29:51 +0000 (17:29 +0100)]
video-format: fix A422 subsampling description

9 years agovideo-converter: add table based matrix8 implementation
Wim Taymans [Tue, 10 Mar 2015 14:12:30 +0000 (15:12 +0100)]
video-converter: add table based matrix8 implementation

Based on patch from Mozzhuhin Andrey <nopscmn at gmail.com>

Add a table based matrix8 multiplication implementation. The algorithm
does not do any clipping so we need to make sure we never call this on
input that might need to be clipped. In general, this algorithm is
2 times faster than the orc optimized one and would be chosen for all
RGB -> YUV conversions and some YUV->YUV and RGB->RGB conversions.

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

9 years agovideotestsrc: add all colors mode
Wim Taymans [Tue, 10 Mar 2015 10:55:11 +0000 (11:55 +0100)]
videotestsrc: add all colors mode

9 years agovideo: Add support for 10 bit planar AYUV formats
Sebastian Dröge [Tue, 10 Mar 2015 09:19:22 +0000 (10:19 +0100)]
video: Add support for 10 bit planar AYUV formats

9 years agoFix double semicolons
Tim-Philipp Müller [Tue, 10 Mar 2015 09:27:08 +0000 (09:27 +0000)]
Fix double semicolons

9 years agovideorate: Accept any capsfeatures
Olivier Crete [Tue, 10 Mar 2015 01:35:59 +0000 (21:35 -0400)]
videorate: Accept any capsfeatures

9 years agovideo-info: validate parsed colorimetry
Wim Taymans [Mon, 9 Mar 2015 15:28:02 +0000 (16:28 +0100)]
video-info: validate parsed colorimetry

Validate the parsed colorimetry and reset to defaults when we get RGB
with a matrix or YUV without a matrix.

9 years agovideo-converter: detect identity matrix
Wim Taymans [Mon, 9 Mar 2015 15:01:19 +0000 (16:01 +0100)]
video-converter: detect identity matrix

Do nothing if we have an identity matrix conversion.

9 years agovideo-info: use default colorimetry on error
Wim Taymans [Mon, 9 Mar 2015 14:58:50 +0000 (15:58 +0100)]
video-info: use default colorimetry on error

When we fail to parse the colorimetry property, fall back to the default
colorimetry for the format and dimension instead of leaving things
undefined.

9 years agovideoencoder: unused value
Luis de Bethencourt [Mon, 9 Mar 2015 11:25:41 +0000 (11:25 +0000)]
videoencoder: unused value

Value set in ret is immediately overwritten in the next line outside of the if
block. Run reset but don't store return.

CID #1226470

9 years agovideo-converter: only convert to/from rgb when needed
Wim Taymans [Mon, 9 Mar 2015 11:13:44 +0000 (12:13 +0100)]
video-converter: only convert to/from rgb when needed

Only use the YUV->RGB matrix when we have YUV as input and only use the
matrix when we need to make YUV output.

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

9 years agortpbuffer: Link to an explanation why the seqnum comparison function does the right...
Sebastian Dröge [Mon, 9 Mar 2015 10:12:46 +0000 (11:12 +0100)]
rtpbuffer: Link to an explanation why the seqnum comparison function does the right thing even for wraparounds

9 years agovideodecoder: only return EOS upon clipping if applicable
Mark Nauwelaerts [Sun, 22 Feb 2015 20:13:35 +0000 (21:13 +0100)]
videodecoder: only return EOS upon clipping if applicable

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

9 years agoaudiodecoder: only return EOS upon clipping if applicable
Mark Nauwelaerts [Sun, 22 Feb 2015 20:11:50 +0000 (21:11 +0100)]
audiodecoder: only return EOS upon clipping if applicable

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

9 years agovideo: Update orc generated C files
Sebastian Dröge [Sat, 7 Mar 2015 15:49:07 +0000 (16:49 +0100)]
video: Update orc generated C files

9 years agovideo-converter: add transfer full annotation for config
Wim Taymans [Fri, 6 Mar 2015 11:54:56 +0000 (12:54 +0100)]
video-converter: add transfer full annotation for config

9 years agovideo-converter: correct right-border location for YUY2, YVYU, UYVY
Ravi Kiran K N [Fri, 6 Mar 2015 04:00:51 +0000 (09:30 +0530)]
video-converter: correct right-border location for YUY2, YVYU, UYVY

Remove 'r_border /= 2' in convert_fill_border(). It doesn't
take the right border to correct location.

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

9 years agovolume: Explicitly cast integers to doubles and then back to integers after multiplic...
Sebastian Dröge [Thu, 5 Mar 2015 11:31:06 +0000 (12:31 +0100)]
volume: Explicitly cast integers to doubles and then back to integers after multiplication

gcc 4.9.1 on ARM seems to have a bug that causes it to cast the float to an
integer first, resulting in a 0 scale factor for volume < 1.0.

As a side effect this change here will also improve accuracy of the result a
bit because we go via doubles instead of floats.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65325
https://bugzilla.gnome.org/show_bug.cgi?id=745667

9 years agovideo-converter: avoid scaler when size is unchanged
Wim Taymans [Thu, 5 Mar 2015 08:52:18 +0000 (09:52 +0100)]
video-converter: avoid scaler when size is unchanged

9 years agovideo-scaler: add horizontal 2tap u16 orc function
Wim Taymans [Wed, 4 Mar 2015 15:45:35 +0000 (16:45 +0100)]
video-scaler: add horizontal 2tap u16 orc function

Add slightly faster u16 horizontal resampler orc function.

9 years agocheck: add another generic converter test
Wim Taymans [Wed, 4 Mar 2015 11:28:47 +0000 (12:28 +0100)]
check: add another generic converter test

Run conversion and scaling with borders.

9 years agovideo-converter: don't reuse the input line when adding borders
Wim Taymans [Wed, 4 Mar 2015 11:21:33 +0000 (12:21 +0100)]
video-converter: don't reuse the input line when adding borders

When we need to add borders, we need a writable input line, so
don't reuse the source memory directly.

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

9 years agotextoverlay: Re-render if video size changed
Nicolas Dufresne [Tue, 3 Mar 2015 21:36:20 +0000 (16:36 -0500)]
textoverlay: Re-render if video size changed

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

9 years agoaudiobasesink: Reset audio clock if necessary
Arun Raghavan [Tue, 3 Mar 2015 17:26:37 +0000 (22:56 +0530)]
audiobasesink: Reset audio clock if necessary

When the ringbuffer is deactivated and then acquired, if the audio clock
provided by the sink gets reset to zero, we need to add an offset to the
clock to make sure that subsequent samples are written out at the right
times. While we need to leave this to derived classes to take care of
when they provide their own clock (since that clock may or may not be
reset to zero), we can do this ourselves if we know the provided clock
is our own (which does reset to zero on a re-acquire).

9 years agovideo-converter: avoid making scalers for outsize == 0
Wim Taymans [Mon, 2 Mar 2015 15:42:23 +0000 (16:42 +0100)]
video-converter: avoid making scalers for outsize == 0

9 years agovideo-converter: v-resample enough pixels
Wim Taymans [Mon, 2 Mar 2015 15:33:09 +0000 (16:33 +0100)]
video-converter: v-resample enough pixels

When we are using the fast linear resampler, use the ->inc to calculate
the first and last pixel we need so that we can do vertical resampling
on the right amount of pixels.

9 years agovideo-orc: fix unpack functions for RGB/RGB15 on BE
Wim Taymans [Mon, 2 Mar 2015 14:07:34 +0000 (15:07 +0100)]
video-orc: fix unpack functions for RGB/RGB15 on BE

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

9 years agovideo-format: more fixes for big endian
Wim Taymans [Mon, 2 Mar 2015 12:27:23 +0000 (13:27 +0100)]
video-format: more fixes for big endian

9 years agovideo-format: add big-endian versions of RGB/BGR 15/16 pack/unpack
Wim Taymans [Mon, 2 Mar 2015 11:26:23 +0000 (12:26 +0100)]
video-format: add big-endian versions of RGB/BGR 15/16 pack/unpack

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

9 years agogst-play: fix compiler warning
Tim-Philipp Müller [Sat, 28 Feb 2015 13:31:41 +0000 (13:31 +0000)]
gst-play: fix compiler warning

‘return’ with no value, in function returning non-void

9 years agogst-play: add keyboard shortcut to cycle through trick modes
Tim-Philipp Müller [Sat, 28 Feb 2015 12:26:21 +0000 (12:26 +0000)]
gst-play: add keyboard shortcut to cycle through trick modes

Make "t" activate trick modes and cycle through the various
modes.

9 years agogst-play: fix indentation
Tim-Philipp Müller [Sat, 28 Feb 2015 11:37:27 +0000 (11:37 +0000)]
gst-play: fix indentation

Prevent gst-indent from messing up indentation, it
really doesn't like the G_GNUC_PRINTF thing here.

9 years agotests: fix crashes in {audio,video}{decoder,encoder} tests on 32-bit
Tim-Philipp Müller [Fri, 27 Feb 2015 20:22:59 +0000 (20:22 +0000)]
tests: fix crashes in {audio,video}{decoder,encoder} tests on 32-bit

Don't feed 64-bit integer variable into vararg function that expects
an unsigned integer to go with GST_TAG_TRACK_NUMBER. This would
cause crashes on 32-bit platforms, and if not that then test
failures if the comparisons fail later (at least on big endian
platforms).

9 years agopbutils: description: Make static strings static
Olivier Crête [Fri, 27 Feb 2015 20:07:36 +0000 (15:07 -0500)]
pbutils: description: Make static strings static

Otherwise, they're not guaranteed to still be valid when leaving the scope.

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

9 years agotests: pbutils: more checking of returned description strings
Tim-Philipp Müller [Fri, 27 Feb 2015 14:28:35 +0000 (14:28 +0000)]
tests: pbutils: more checking of returned description strings

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

9 years agoadder: Drop custom latency querying logic
Arun Raghavan [Thu, 26 Feb 2015 19:06:43 +0000 (00:36 +0530)]
adder: Drop custom latency querying logic

The default latency query handler now implements the same logic already.

9 years agovideo-converter: remove check for below zero for unsigned int
Luis de Bethencourt [Thu, 26 Feb 2015 14:47:28 +0000 (14:47 +0000)]
video-converter: remove check for below zero for unsigned int

CLAMP checks both if value is '< 0' and '> max'. Value will never be a negative
number since it in an unsigned integer. Removing that check and only checking
if it is bigger than max and setting it appropriately.

CID #1271606

9 years agoplayback: Fix broken GList modification
Edward Hervey [Thu, 26 Feb 2015 11:06:23 +0000 (12:06 +0100)]
playback: Fix broken GList modification

When we modify a GList (via g_list_delete_link), always reassign the
new head to the original GList. Otherwise we end up with
filtered_errors being corrupt (the head might have been the element
removed)

9 years agogst-play: add new keyboard shortcuts to man page
Tim-Philipp Müller [Thu, 26 Feb 2015 11:06:35 +0000 (11:06 +0000)]
gst-play: add new keyboard shortcuts to man page

9 years agogst-play: more fine-grained playback rate control
Tim-Philipp Müller [Thu, 26 Feb 2015 10:57:56 +0000 (10:57 +0000)]
gst-play: more fine-grained playback rate control

Use smaller steps for lower rates to allow more
fine-grained control. Handle jump across 0 properly
from both sides (just flip direction where we would
have gone down to 0 instead). Don't artificially
limit rates to +/- 10x. Print new rate.

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

9 years agogst-play: stash current playback rate in app structure
Tim-Philipp Müller [Thu, 26 Feb 2015 10:20:20 +0000 (10:20 +0000)]
gst-play: stash current playback rate in app structure

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

9 years agogst-play: support changing the playback rate in interactive mode
Víctor Manuel Jáquez Leal [Wed, 25 Feb 2015 17:52:11 +0000 (18:52 +0100)]
gst-play: support changing the playback rate in interactive mode

It is fun to have this feature, also it is useful for testing decoders.

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

9 years agovideo-converter: we can use the scaler without scalers to copy
Wim Taymans [Wed, 25 Feb 2015 16:00:34 +0000 (17:00 +0100)]
video-converter: we can use the scaler without scalers to copy

9 years agovideo-converter: only make a scaler when we are scaling
Wim Taymans [Wed, 25 Feb 2015 15:50:02 +0000 (16:50 +0100)]
video-converter: only make a scaler when we are scaling

Only make a scaler when we are actually doing any scaling. Without
scalers, the scale function will simply do a copy.

9 years agovideo-scaler: add support for copy
Wim Taymans [Wed, 25 Feb 2015 15:49:20 +0000 (16:49 +0100)]
video-scaler: add support for copy

When no scalers are given, simply do a copy of the requested area.

9 years agovideo-converter: activate scaler fastpath depending on method
Wim Taymans [Wed, 25 Feb 2015 15:15:52 +0000 (16:15 +0100)]
video-converter: activate scaler fastpath depending on method

Only activate the scaler fastpath for x2 up and downscale when the
scaler method is respectively nearest and linear because that is what
those fastpaths really implement.

9 years agovideo-scaler: add scaler optimization
Wim Taymans [Wed, 25 Feb 2015 14:33:26 +0000 (15:33 +0100)]
video-scaler: add scaler optimization

If we are vertically downscaling, it is better to first downscale and
then do the horizontal scaling in most cases.

9 years agovideo-scaler: remove unused case
Wim Taymans [Wed, 25 Feb 2015 14:32:57 +0000 (15:32 +0100)]
video-scaler: remove unused case

9 years agovideo-converter: don't overwrite border alpha
Wim Taymans [Wed, 25 Feb 2015 10:38:17 +0000 (11:38 +0100)]
video-converter: don't overwrite border alpha

Let border alpha and image alpha be independent.

9 years agovideo-converter: use 1.0 as default alpha
Wim Taymans [Tue, 24 Feb 2015 16:33:57 +0000 (17:33 +0100)]
video-converter: use 1.0 as default alpha

9 years agovideo-converter: add alpha handling
Wim Taymans [Tue, 24 Feb 2015 16:26:31 +0000 (17:26 +0100)]
video-converter: add alpha handling

Add support for alpha. Make it possible to copy, set and multiply the
alpha value of a frame during conversion.
Set the border alpha to 0xff by default.
Go over some of the fastpaths and add alpha handling.

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

9 years agovideo-converter: fix chroma subsampling
Wim Taymans [Tue, 24 Feb 2015 16:20:53 +0000 (17:20 +0100)]
video-converter: fix chroma subsampling

Also adjust the output line number with the offset.

9 years agovideo-converter: disable fastpath when scaling and gamma
Wim Taymans [Tue, 24 Feb 2015 09:01:18 +0000 (10:01 +0100)]
video-converter: disable fastpath when scaling and gamma

Disable the fastpath when scaling and doing gamma remap.

9 years agovideo-converter: don't do gamma on alpha channel
Wim Taymans [Tue, 24 Feb 2015 08:54:18 +0000 (09:54 +0100)]
video-converter: don't do gamma on alpha channel

The alpha channel is not supposed to be gamma encoded.

9 years agodecodebin: fix deadlock when resetting buffering
Vincent Penquerc'h [Tue, 24 Feb 2015 16:06:08 +0000 (16:06 +0000)]
decodebin: fix deadlock when resetting buffering

This function is static, and only ever called with the expose lock
taken. It thus has no reason to take this lock itself.

This was introduced by one of my locking fixes from 741355.

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

9 years agovideo-converter: minor docs fix
Tim-Philipp Müller [Tue, 24 Feb 2015 12:38:10 +0000 (12:38 +0000)]
video-converter: minor docs fix

9 years agoplaybin: forward template and ring buffer settings to existing decodebins
Vincent Penquerc'h [Tue, 27 May 2014 13:54:06 +0000 (13:54 +0000)]
playbin: forward template and ring buffer settings to existing decodebins

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

9 years agodecodebin: move null check
Luis de Bethencourt [Mon, 23 Feb 2015 17:24:52 +0000 (17:24 +0000)]
decodebin: move null check

Check if dbin->decode_chain is NULL before running drain_and_switch_chains()
because if it is, we shouldn't run that function or it will segfault.

CID #1271074

9 years agoaudiodecoder: Don't send pending events before decode
Jan Schmidt [Sun, 22 Feb 2015 14:32:14 +0000 (01:32 +1100)]
audiodecoder: Don't send pending events before decode

Make sure to update the output segment to track the segment
we're decoding in, but don't actually push it downstream until
after buffers are decoded.

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