platform/upstream/gstreamer.git
9 years agovideo: Add support for BT2020 colorspace (UHD)
Sebastian Dröge [Thu, 8 Jan 2015 09:45:46 +0000 (10:45 +0100)]
video: Add support for BT2020 colorspace (UHD)

9 years agovideo-scaler: remove useless debug
Wim Taymans [Wed, 7 Jan 2015 14:54:58 +0000 (15:54 +0100)]
video-scaler: remove useless debug

9 years agovideo-converter: add options to control chroma resampling
Wim Taymans [Wed, 7 Jan 2015 14:52:57 +0000 (15:52 +0100)]
video-converter: add options to control chroma resampling

Add an option to disable chroma resampling.
Improve the matrix option values so that you can choose to use the input
or output matrix or disable conversion.

9 years agooggmux: remove unused enum
Tim-Philipp Müller [Fri, 2 Jan 2015 15:27:23 +0000 (15:27 +0000)]
oggmux: remove unused enum

9 years agooggmux: fix silly GQueue iteration code
Tim-Philipp Müller [Wed, 31 Dec 2014 19:40:20 +0000 (19:40 +0000)]
oggmux: fix silly GQueue iteration code

9 years agoFix documentation that incorrectly says a return value should be freed
Sam Thursfield [Fri, 26 Dec 2014 20:48:55 +0000 (20:48 +0000)]
Fix documentation that incorrectly says a return value should be freed

The gst_discoverer_info_get_missing_elements_installer_details()
documentation and annotation says that the return value should be freed
with g_strfreev(), but actually it's owned by the GstDiscovereInfo
object and should definitely not get freed by the caller as well.

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

9 years agoaudiobasesrc: Explicitly document that buffer-time and latency-time may be ignored
Nirbheek Chauhan [Sat, 27 Dec 2014 09:14:51 +0000 (14:44 +0530)]
audiobasesrc: Explicitly document that buffer-time and latency-time may be ignored

9 years agooggmux: only clip by duration if end of buffer is ahead of segment
Thiago Santos [Fri, 26 Dec 2014 21:55:08 +0000 (18:55 -0300)]
oggmux: only clip by duration if end of buffer is ahead of segment

It might happen that the timestamp is before the segment and the
check would succeed. In this case reducing the duration makes no
sense and would lead to broken results.

9 years agovideotestsrc: Report our latency properly in live mode
Sebastian Dröge [Mon, 22 Dec 2014 21:04:41 +0000 (22:04 +0100)]
videotestsrc: Report our latency properly in live mode

While we have no latency at all in theory, any other live source has the
duration of one buffer as minimum latency. Do the same in videotestsrc.

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

9 years agoaudiotestsrc: Report our latency properly in live mode
Sebastian Dröge [Mon, 22 Dec 2014 21:00:26 +0000 (22:00 +0100)]
audiotestsrc: Report our latency properly in live mode

While we have no latency at all in theory, any other live source has the
duration of one buffer as minimum latency. Do the same in audiotestsrc.

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

9 years agovideopool: update video alignment after applying
Song Bing [Mon, 22 Dec 2014 14:25:04 +0000 (09:25 -0500)]
videopool: update video alignment after applying

Video buffer pool will update video alignment to respect stride alignment
requirement. But haven't updated it to video alignment in configure.
Which will cause user get wrong video alignment.

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

9 years agoaudiobasesink: get the internal time before the clock reset
Thiago Santos [Fri, 28 Nov 2014 17:36:23 +0000 (14:36 -0300)]
audiobasesink: get the internal time before the clock reset

Otherwise calls to get the clock time might change its internal state
and the internal/external time for calibration get unbalanced leading to
a clock jump

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

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

9 years agovideo{en,de}coder: Call reset() before the start() vfunc
Sebastian Dröge [Mon, 22 Dec 2014 10:38:20 +0000 (11:38 +0100)]
video{en,de}coder: Call reset() before the start() vfunc

This makes sure that the element is in the same state before start() is called
the very first time and every future call after the element was used already.

Also it ensure that we always have a clean state before start(), cleaned the
same way in every case.

9 years agoaudioencoder: Call reset() before the start() vfunc to guarantee a clean state
Sebastian Dröge [Mon, 22 Dec 2014 10:36:58 +0000 (11:36 +0100)]
audioencoder: Call reset() before the start() vfunc to guarantee a clean state

The same was done already in the decoder, and we cleaned some state just above
manually that would also be taken care of by reset().

This makes sure that the element is in the same state before start() is called
the very first time and every future call after the element was used already.

9 years agovideo{en,de}coder: Reset the codec after calling the stop() vfunc
Sebastian Dröge [Mon, 22 Dec 2014 10:33:14 +0000 (11:33 +0100)]
video{en,de}coder: Reset the codec after calling the stop() vfunc

The stop() vfunc might mess with some of our fields we have just
reset, which could cause memory leaks or invalid state taken over
to later.

Also the stop() vfunc, or anything called until it from another thread,
might want to be able to use the fields that were just resetted and
become confused because of that.

In the decoder we already had a workaround for things like this happening,
this workaround is not needed anymore.

9 years agoaudiobase{sink,src}: Don't hold the object lock while calling create_ringbuffer(...
Sebastian Dröge [Mon, 22 Dec 2014 09:45:37 +0000 (10:45 +0100)]
audiobase{sink,src}: Don't hold the object lock while calling create_ringbuffer() vfunc

The implementation of that vfunc might want to use the object lock for
something too. It's generally not a good idea to keep the object lock while
calling any function implemented elsewhere.

Also the ringbuffer can only be NULL at this point, remove a useless if block.

And in the sink actually hold the object lock while setting the ringbuffer on
the instance. Code accessing this is expected to use the object lock, so do it
here ourselves too.

9 years agoriff-media: Error out early if we observe an invalid audio format
Sebastian Dröge [Thu, 18 Dec 2014 12:24:22 +0000 (13:24 +0100)]
riff-media: Error out early if we observe an invalid audio format

9 years agoriff: Also handle invalid block aligns for raw audio
Sebastian Dröge [Thu, 18 Dec 2014 12:22:17 +0000 (13:22 +0100)]
riff: Also handle invalid block aligns for raw audio

Fixes audio playback of
http://demo.archermind.com/Test%20Sample/Video/MPEG%204/Divx3/Low-Motion/576-320.avi

Audio and video together is still broken because of other issues.

9 years agoaudio: Fix private header include/dist
Edward Hervey [Thu, 18 Dec 2014 09:57:13 +0000 (10:57 +0100)]
audio: Fix private header include/dist

We want to dist it, but we don't want to install it.

Fixes make dist/distcheck

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

From ef1ffdc to f2c6b95

9 years agovideo: audio: fix GI annotations for proxy caps function
Thiago Santos [Wed, 17 Dec 2014 22:14:38 +0000 (19:14 -0300)]
video: audio: fix GI annotations for proxy caps function

Add the annotations to parameters that can be null and also for stating
the ownership of the returned caps

9 years agotests: audiodecoder: tests for caps query implementation
Thiago Santos [Wed, 17 Dec 2014 18:21:48 +0000 (15:21 -0300)]
tests: audiodecoder: tests for caps query implementation

Copied from videodecoder tests and updated to audio features

9 years agoaudiodecoder: expose getcaps virtual function
Thiago Santos [Wed, 17 Dec 2014 18:21:16 +0000 (15:21 -0300)]
audiodecoder: expose getcaps virtual function

Allows subclasses to do custom caps query replies.

Also exposes the standard caps query handler so subclasses can just
extend on top of it instead of reimplementing the caps query proxying.

9 years agoaudiodecoder: implement caps and accept-caps queries
Thiago Santos [Tue, 16 Dec 2014 21:36:57 +0000 (18:36 -0300)]
audiodecoder: implement caps and accept-caps queries

Allows decoders to proxy downstream restrictions on caps.

Also implements accept-caps query to prevent regressions caused by the
new fields on the return of a caps query that would cause the accept-caps
to fail as it uses subset caps comparisons

9 years agoaudioencoder: refactor getcaps proxy function to be reusable
Thiago Santos [Tue, 16 Dec 2014 14:13:40 +0000 (11:13 -0300)]
audioencoder: refactor getcaps proxy function to be reusable

Makes the audioencoder's getcaps function that proxies downstream
restriction available to other elements in the audio module to use it

9 years agovideodecoder: expose getcaps virtual function
Thiago Santos [Wed, 17 Dec 2014 17:18:03 +0000 (14:18 -0300)]
videodecoder: expose getcaps virtual function

Allows subclasses to do custom caps query replies.

Also exposes the standard caps query handler so subclasses can just
extend on top of it instead of reimplementing the caps query proxying.

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

9 years agovideodecoder: accept-caps should only require fields from the template
Thiago Santos [Mon, 15 Dec 2014 21:46:21 +0000 (18:46 -0300)]
videodecoder: accept-caps should only require fields from the template

With the new caps query results the caps returned might have extra fields
that are not required by the decoder (framerate for image decoders) and it
causes a regression making, for example, jpegdec reject caps that don't
have framerates.

The accept-caps implementation will do 2 checks:

1) Do subset check with the template caps, making sure all the required
fields that are present on the template are present on the received caps.
2) Do a intersection check with the result of a caps query, making sure
that downstream can accept the fields in the received caps.

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

9 years agovideoutils: proxy filter when doing a caps query downstream
Thiago Santos [Tue, 9 Dec 2014 19:08:12 +0000 (16:08 -0300)]
videoutils: proxy filter when doing a caps query downstream

Allows downstream to use the filter and possibly reduce caps complexity
to speed up negotiation

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

9 years agovideoutils: return empty if the element has no possible allowed caps
Thiago Santos [Tue, 9 Dec 2014 19:05:27 +0000 (16:05 -0300)]
videoutils: return empty if the element has no possible allowed caps

Instead of returning the template caps and having a failure happen
later because there are no possible caps

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

9 years agovideodecoder: implement caps query
Thiago Santos [Mon, 8 Dec 2014 19:33:33 +0000 (16:33 -0300)]
videodecoder: implement caps query

Refactor the encoder's caps query proxying function to a common place
and use it in the videodecoder to proxy downstream restrictions.

The new function is private to the gstvideo lib.

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

9 years agoconfigure: require release version of orc now that there is one
Tim-Philipp Müller [Wed, 17 Dec 2014 12:01:19 +0000 (12:01 +0000)]
configure: require release version of orc now that there is one

9 years agoximagesink: clear src and dest rectangles
Wim Taymans [Tue, 16 Dec 2014 11:57:55 +0000 (12:57 +0100)]
ximagesink: clear src and dest rectangles

Now that the center function also takes into account the x and y
coordinates of the dest rectangle, better clear all the fields before
using them.

9 years agovideopool: update buffer size after video alignment
Song Bing [Tue, 16 Dec 2014 11:10:53 +0000 (12:10 +0100)]
videopool: update buffer size after video alignment

Update the new buffer size after alignment in the pool configuration
before calling the parent set_config. This ensures that the parent knows
about the buffer size that we will allocate and makes the size check
work in the release_buffer method.

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

9 years agoaudiobasesrc/sink: Add _CAST macros
Sebastian Dröge [Mon, 15 Dec 2014 19:57:14 +0000 (20:57 +0100)]
audiobasesrc/sink: Add _CAST macros

9 years agovideo: Fix non-default usage of gst_video_sink_center_rect
Edward Hervey [Mon, 15 Dec 2014 13:10:17 +0000 (14:10 +0100)]
video: Fix non-default usage of gst_video_sink_center_rect

Make sure we take into account non-0 x/y destination rectangles

9 years agoexamples: improve playback-test help text a little
Tim-Philipp Müller [Mon, 15 Dec 2014 12:12:44 +0000 (12:12 +0000)]
examples: improve playback-test help text a little

And allow pipeline type to be specified as string.

9 years agopango: Add license/copyright header to header file
Sebastian Dröge [Mon, 15 Dec 2014 09:35:35 +0000 (10:35 +0100)]
pango: Add license/copyright header to header file

9 years agoRevert "decodebin: Only emit the drain signal for the main decode chain, not any...
Sebastian Dröge [Mon, 15 Dec 2014 08:45:43 +0000 (09:45 +0100)]
Revert "decodebin: Only emit the drain signal for the main decode chain, not any subchains"

This reverts commit a391dfe17f1a325f60e1d51a6d40c1a68eb196de.

It breaks gapless playback: https://bugzilla.gnome.org/show_bug.cgi?id=740045

9 years agoaudiorate: Fill gap events
Matej Knopp [Tue, 9 Dec 2014 02:18:37 +0000 (03:18 +0100)]
audiorate: Fill gap events

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

9 years agoaudio: Add error handling to gst_audio_decoder_drain()
Sanjay NM [Wed, 10 Dec 2014 10:40:58 +0000 (16:10 +0530)]
audio: Add error handling to gst_audio_decoder_drain()

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

9 years agoaudioclock: Fix redundant definitions compiler warning
Sebastian Dröge [Sat, 13 Dec 2014 15:14:49 +0000 (16:14 +0100)]
audioclock: Fix redundant definitions compiler warning

gstaudioclock.c:51:31: error: redundant redeclaration of 'gst_audio_clock_init' [-Werror=redundant-decls]
 G_DEFINE_TYPE (GstAudioClock, gst_audio_clock, GST_TYPE_SYSTEM_CLOCK);

gstaudioclock.c:51:31: error: redundant redeclaration of 'gst_audio_clock_class_init' [-Werror=redundant-decls]
 G_DEFINE_TYPE (GstAudioClock, gst_audio_clock, GST_TYPE_SYSTEM_CLOCK);

9 years agoaudioclock: No need to get the parent class in class_init, G_DEFINE_TYPE does that...
Sebastian Dröge [Sat, 13 Dec 2014 15:04:40 +0000 (16:04 +0100)]
audioclock: No need to get the parent class in class_init, G_DEFINE_TYPE does that for us

9 years agoaudioclock: Use G_DEFINE_TYPE instead of a custom get_type() function
Sebastian Dröge [Sat, 13 Dec 2014 15:01:44 +0000 (16:01 +0100)]
audioclock: Use G_DEFINE_TYPE instead of a custom get_type() function

9 years agortcpbuffer: fix spelling of word in comment
Zaheer Abbas Merali [Fri, 12 Dec 2014 16:32:15 +0000 (08:32 -0800)]
rtcpbuffer: fix spelling of word in comment

9 years agotests: rtpbasepayload: fix indentation
Tim-Philipp Müller [Fri, 12 Dec 2014 14:59:49 +0000 (14:59 +0000)]
tests: rtpbasepayload: fix indentation

9 years agotests: audiodecoder: fix indentation
Tim-Philipp Müller [Fri, 12 Dec 2014 14:59:03 +0000 (14:59 +0000)]
tests: audiodecoder: fix indentation

9 years agotests: audiodecoder: fix broken refcounting in unit test
Tim-Philipp Müller [Fri, 12 Dec 2014 14:56:36 +0000 (14:56 +0000)]
tests: audiodecoder: fix broken refcounting in unit test

The set_format vfunc does not pass ownership of the caps
to the decoder, so we mustn't unref the caps there.

gst_event_new_caps() does not take ownership of the caps
passed, so we must unref the caps afterwards.

Fixes leaks when running test in valgrind in 1.4 branch.

9 years agovideo: Update disted orc source files
Sebastian Dröge [Fri, 12 Dec 2014 09:02:43 +0000 (10:02 +0100)]
video: Update disted orc source files

9 years agoRevert "video-converter: Fix compiler warning because of missing prototype of non...
Sebastian Dröge [Fri, 12 Dec 2014 09:01:36 +0000 (10:01 +0100)]
Revert "video-converter: Fix compiler warning because of missing prototype of non-static function"

This reverts commit 406f32a9468c837a4d71f988de10dc2198a8edc9.

The problem was apparently that my video-orc.h was not updated and did not
include the prototype for that function. Only a "make clean" caused it to
be regenerated.

9 years agovideo-converter: Fix compiler warning because of missing prototype of non-static...
Sebastian Dröge [Fri, 12 Dec 2014 08:51:05 +0000 (09:51 +0100)]
video-converter: Fix compiler warning because of missing prototype of non-static function

video-converter.c:838:1: error: no previous prototype for function
      '_custom_video_orc_matrix8' [-Werror,-Wmissing-prototypes]

9 years agoaudiodecoder: do not use fixed caps on source pad
Thiago Santos [Wed, 10 Dec 2014 01:47:31 +0000 (22:47 -0300)]
audiodecoder: do not use fixed caps on source pad

decoders can change the caps on their source pads, so they don't
use fixed caps. Having fixed caps can cause renegotiation issues.

9 years agovideodecoder: do not use fixed caps on source pad
Thiago Santos [Wed, 10 Dec 2014 01:46:42 +0000 (22:46 -0300)]
videodecoder: do not use fixed caps on source pad

decoders can change the caps on their source pads, so they don't
use fixed caps. Having fixed caps can cause renegotiation issues.

9 years agoplaybin: Do not mix up stream type when getting stream combiner element
Thibault Saunier [Thu, 11 Dec 2014 12:45:38 +0000 (13:45 +0100)]
playbin: Do not mix up stream type when getting stream combiner element

We were always returning the video stream combiner whatever stream type
combiner was wanted.

9 years agoplaybin2: always unref the combiner sinkpad when removing the srcpad
Thiago Santos [Wed, 10 Dec 2014 16:23:23 +0000 (13:23 -0300)]
playbin2: always unref the combiner sinkpad when removing the srcpad

Create a function to do the pad cleanup of the GstSourceCombine struct
and use it to not forget to also cleanup the sink pad and fix a memory
leak.

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

9 years agovideo-orc: make RGB pack/unpack faster
Wim Taymans [Wed, 10 Dec 2014 15:42:12 +0000 (16:42 +0100)]
video-orc: make RGB pack/unpack faster

Avoid all the merging and splitting and use a pair of shifts and or

9 years agovideodecoder: Add GST_VIDEO_DECODER_CAST macro
Jan Schmidt [Wed, 10 Dec 2014 14:53:15 +0000 (01:53 +1100)]
videodecoder: Add GST_VIDEO_DECODER_CAST macro

It's used in some macros already, so let's make it exist.

9 years agortspconnection: No remove child if destroyed.
Göran Jönsson [Tue, 25 Nov 2014 12:31:48 +0000 (13:31 +0100)]
rtspconnection: No remove child if destroyed.

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

9 years agoreverse-play: fix seek to end when starting reverse
Jan Schmidt [Mon, 8 Dec 2014 07:53:35 +0000 (18:53 +1100)]
reverse-play: fix seek to end when starting reverse

Start reverse playback by actually seeking to the end of
the file.

9 years agovideo-converter: set bits and format after conversion
Wim Taymans [Sat, 6 Dec 2014 20:02:37 +0000 (21:02 +0100)]
video-converter: set bits and format after conversion

Update the current format, bits and pstride.

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

9 years agovideo-converter: free dither_lines
Thiago Santos [Sat, 6 Dec 2014 01:09:45 +0000 (22:09 -0300)]
video-converter: free dither_lines

Avoid a memory leak

9 years agoBump ORC requirement to 4.22.1
Nicolas Dufresne [Fri, 5 Dec 2014 23:16:53 +0000 (18:16 -0500)]
Bump ORC requirement to 4.22.1

We now depend on git commit f1cfa5, "orcc: allow setting custom
backup function"

9 years agovideo-converter: use custom backup function
Wim Taymans [Fri, 5 Dec 2014 13:51:28 +0000 (14:51 +0100)]
video-converter: use custom backup function

Use the new orc feature to set a custom backup function.

9 years agovideo-converter: improve matrix8 function
Wim Taymans [Fri, 5 Dec 2014 11:18:42 +0000 (12:18 +0100)]
video-converter: improve matrix8 function

Avoid using a constant.
Avoid doing saturated adds, results are not supposed to overflow here.
Rework the C backup function a little in preparation for custom backup
functions in ORC.

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

9 years agoaudiodecoder: Push pending events before sending EOS.
Mathieu Duponchelle [Fri, 28 Nov 2014 14:06:27 +0000 (15:06 +0100)]
audiodecoder: Push pending events before sending EOS.

Segments are added to the pending events, and pushing a segment
is mandatory before sending EOS.

+ Adds a test.

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

9 years agooggdemux: Fix seeking before the first frame.
Mathieu Duponchelle [Thu, 27 Nov 2014 04:53:20 +0000 (05:53 +0100)]
oggdemux: Fix seeking before the first frame.

The previous code was setting keytarget to target
to make sure the keyframe found for each pad was
indeed before the target.

Then if target == keytarget, it assumed a keyframe had been
found, which was not the case if target was before the first frame
in the file.

This patch checks that a keyframe was indeed found, and if not
seeks to 0, without bisecting again.

Assuming default gst qa assets in $HOME/gst-validate

seek_before_first_frame.scenario:

description, seek=true, handles-states=true
pause, playback-time=0.0
seek, playback-time=0.0, start=0.0, flags=accurate+flush
seek, playback-time=0.0, start=0.01, flags=accurate+flush
seek, playback-time=0.0, start=0.1, flags=accurate+flush

GST_DEBUG=*theoradec*:2 gst-validate-1.0 playbin \
uri=file://$HOME/gst-validate/gst-qa-assets/medias/ogg/vorbis_theora.0.ogg \
--set-scenario seek_before_first_frame.scenario

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

9 years agoplaybin: Only check sinks which are in >= GST_STATE_READY
Edward Hervey [Wed, 8 Oct 2014 06:54:57 +0000 (08:54 +0200)]
playbin: Only check sinks which are in >= GST_STATE_READY

Otherwise we endup with bogus caps intersection (from the pad template
caps and not from what the actual hardware/device supports)

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

9 years agovideo-converter: fix chroma resampling check
Wim Taymans [Wed, 3 Dec 2014 09:15:18 +0000 (10:15 +0100)]
video-converter: fix chroma resampling check

Decide if we need chroma resampling by checking if we have a progressive
or interlaced chroma resampler.

9 years agovideo-converter: only do dithering when needed
Wim Taymans [Wed, 3 Dec 2014 09:14:34 +0000 (10:14 +0100)]
video-converter: only do dithering when needed

Only do dithering when one of the quantizers is > 1.

9 years agoaudiorate: Use gst_util_uint64_scale_int_round()
Chad [Tue, 2 Dec 2014 20:58:00 +0000 (15:58 -0500)]
audiorate: Use gst_util_uint64_scale_int_round()

Using gst_util_uint64_scale_int() causes slight drift
which accumulates over time.

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

9 years agodefs: update defs file
Wim Taymans [Tue, 2 Dec 2014 12:39:52 +0000 (13:39 +0100)]
defs: update defs file

9 years agovideoconvert: add dither-bits option
Wim Taymans [Tue, 2 Dec 2014 10:51:19 +0000 (11:51 +0100)]
videoconvert: add dither-bits option

Fix the dither option.
Add a new option to set the quantizer

9 years agovideo-scaler: add where orc functions could go
Wim Taymans [Tue, 2 Dec 2014 10:48:11 +0000 (11:48 +0100)]
video-scaler: add where orc functions could go

Add the disabled orc functions in #if 0 lines for when we can enable
them.

9 years agovideo-converter: add dithering
Wim Taymans [Tue, 2 Dec 2014 10:40:59 +0000 (11:40 +0100)]
video-converter: add dithering

Use the new dither object to perform dithering.
Add option to select dithering method.
Add option to quantize to a specific value

9 years agovideo-converter: add palette when needed
Wim Taymans [Tue, 2 Dec 2014 10:39:42 +0000 (11:39 +0100)]
video-converter: add palette when needed

9 years agovideo-dither: add video dither helper object
Wim Taymans [Tue, 2 Dec 2014 10:32:28 +0000 (11:32 +0100)]
video-dither: add video dither helper object

Add a new object that implements various dithering methods.

9 years agogst-play: do not set system's volume to 100% by default
Thiago Santos [Tue, 2 Dec 2014 01:28:52 +0000 (22:28 -0300)]
gst-play: do not set system's volume to 100% by default

Only change the volume if requested

9 years agoalsa: Use EPIPE instead of ESTRPIPE if the latter does not exist
Thomas Klausner [Mon, 1 Dec 2014 08:50:24 +0000 (09:50 +0100)]
alsa: Use EPIPE instead of ESTRPIPE if the latter does not exist

NetBSD does not have ESTRPIPE.

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

9 years agoDon't compare booleans for equality to TRUE and FALSE
Sebastian Dröge [Fri, 28 Nov 2014 13:28:06 +0000 (14:28 +0100)]
Don't compare booleans for equality to TRUE and FALSE

TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.

9 years agoencodebin: Add a way to disable caps renegotiation for output stream format
Thibault Saunier [Sun, 16 Nov 2014 14:54:56 +0000 (15:54 +0100)]
encodebin: Add a way to disable caps renegotiation for output stream format

In some cases, the user might want the stream outputted by encodebin to
be in the exact same format during all the stream. We should let the
user specify when this is the case. This commit add some API in the
GstEncodingProfile to determine whether the format can be renegotiated
after the encoding started or not.

API:
    gst_encoding_profile_set_allow_dynamic_output
    gst_encoding_profile_get_allow_dynamic_output

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

9 years agotests: remove libs/video and videoconvert test from valgrind blacklist
Tim-Philipp Müller [Fri, 28 Nov 2014 13:31:39 +0000 (13:31 +0000)]
tests: remove libs/video and videoconvert test from valgrind blacklist

Seem to work fine.

9 years agotests: don't run orc/* tests under valgrind
Tim-Philipp Müller [Fri, 28 Nov 2014 13:29:37 +0000 (13:29 +0000)]
tests: don't run orc/* tests under valgrind

They just seem to blow up for some reason that needs investigating.

9 years agotagmux: fix criticals when there are no tags at all
Tim-Philipp Müller [Fri, 28 Nov 2014 13:11:33 +0000 (13:11 +0000)]
tagmux: fix criticals when there are no tags at all

9 years agotest-reverseplay: Use uridecodebin for input
Jan Schmidt [Thu, 20 Nov 2014 14:47:35 +0000 (01:47 +1100)]
test-reverseplay: Use uridecodebin for input

Work with any installed URI handler
Add some more debug output

9 years agovideo-frame: Mapping a frame with inconsistent values between GstVideoMeta and GstVid...
Sebastian Dröge [Fri, 28 Nov 2014 09:27:28 +0000 (10:27 +0100)]
video-frame: Mapping a frame with inconsistent values between GstVideoMeta and GstVideoInfo is a bug

It will cause the frame to be initialized with inconsistent values that then
later can cause crashes or any other kind of interesting and hard to debug
bugs.

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

From 7bb2bce to ef1ffdc

9 years agovideo-blend: make use of x offset when unpacking overlay image pixels
Tim-Philipp Müller [Thu, 27 Nov 2014 15:28:36 +0000 (15:28 +0000)]
video-blend: make use of x offset when unpacking overlay image pixels

Now that it's implemented we can use it, which is a minor
optimisation when the image to overlay gets cropped on the
left.

9 years agovideo-format: sprinkle some 'restrict' keywords in pack/unpack functions
Tim-Philipp Müller [Thu, 27 Nov 2014 15:04:12 +0000 (15:04 +0000)]
video-format: sprinkle some 'restrict' keywords in pack/unpack functions

In cases where we just call orc directly this is somewhat
superfluous, but let's do it anyway for consistency. In
other cases the compiler can hopefully use this to optimise
memory access a little.

9 years agovideo-format: handle x offset in unpack
Wim Taymans [Thu, 27 Nov 2014 12:01:03 +0000 (13:01 +0100)]
video-format: handle x offset in unpack

Add support for x offset in almost all unpack methods.
Fix naming of source and dest pixels.
Add const to source pixels.

9 years agovideo-format: improve unpack i420
Wim Taymans [Thu, 27 Nov 2014 09:51:58 +0000 (10:51 +0100)]
video-format: improve unpack i420

unpack_i420 does not need extra code to handle odd widths, the orc code
already handles it fine.

9 years agovideoscale: use old property name
Wim Taymans [Thu, 27 Nov 2014 08:45:07 +0000 (09:45 +0100)]
videoscale: use old property name

Unbreak ABI by changing to the old property name again.

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

9 years agodecodebin: Analyze source pad before setting to PAUSED for 'simple demuxers'
Thibault Saunier [Tue, 25 Nov 2014 12:39:07 +0000 (13:39 +0100)]
decodebin: Analyze source pad before setting to PAUSED for 'simple demuxers'

Before we were setting them to PAUSED and (much) later connecting to
their source pad caps notify signal.

There was a race where that demuxer was pushing a caps and later a buffer
on its source pad when we were not even connected to its source pad caps notify
signal leading to decodebin missing the information and not keeping on
building the pipeline on CAPS event thus the demuxer was posting an ERROR
(not linked) message on the bus. This need to be done for 'simple
demuxers' because those have one ALWAYS source pad, not like usual demuxers
that have several dynamic source pads.

A "simple demuxer" is a demuxer that has one and only one ALWAYS source
pad.

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

9 years agodecodebin2: Take STREAM_LOCK before sending sticky events.
Mathieu Duponchelle [Tue, 25 Nov 2014 15:46:50 +0000 (16:46 +0100)]
decodebin2: Take STREAM_LOCK before sending sticky events.

There was a race where:

1) we would put the element to PAUSED
2) It would get data sent to it from upstream
3) It would thus send caps
3) caps_notify_cb would continue autoplugging
4) caps would flow downstream, the last pad would get exposed
5) we were still not done sending the sticky events

Taking the stream lock on the new element's sinkpad and only
releasing it when sticky events have all been sent prevents
the caps from reaching the source pad of the element before
we're all set.

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

9 years agotypefindfunctions: detect mp4 common file format variant
Tim-Philipp Müller [Wed, 6 Aug 2014 18:31:25 +0000 (19:31 +0100)]
typefindfunctions: detect mp4 common file format variant

Used e.g. by UltraViolet.

9 years agoalsasrc: debug message fixes
Tim-Philipp Müller [Tue, 25 Nov 2014 22:01:08 +0000 (22:01 +0000)]
alsasrc: debug message fixes

In the same vein as 74e9640a.

9 years agovideo-scale: combine adds when max_taps equals combine size
Wim Taymans [Tue, 25 Nov 2014 16:42:07 +0000 (17:42 +0100)]
video-scale: combine adds when max_taps equals combine size

When the amount of pixels/lines matches the amount we can combine,
combine the adds and multiplies and do the scale as a separate
operation.

9 years agovideo-scaler: combine scaling operations
Wim Taymans [Tue, 25 Nov 2014 16:25:02 +0000 (17:25 +0100)]
video-scaler: combine scaling operations

Combine add and scale of multiple lines/pixels to reduce the amount of
read and writes to temporary memory.

9 years agotimeoverlay: add "time-line" property
Tim-Philipp Müller [Tue, 25 Nov 2014 14:45:23 +0000 (14:45 +0000)]
timeoverlay: add "time-line" property

So we can also show running time or stream time, not just the
buffer time stamps.

9 years agovideoscale: add property to do scaling after gamma-decode
Wim Taymans [Tue, 25 Nov 2014 10:54:51 +0000 (11:54 +0100)]
videoscale: add property to do scaling after gamma-decode

9 years agovideoscale: add more scaling filters
Wim Taymans [Tue, 25 Nov 2014 10:28:42 +0000 (11:28 +0100)]
videoscale: add more scaling filters

Adjust the filter parameters so that they use the same number of taps
and method as the old ones.
Add some new filters