platform/upstream/gstreamer.git
9 years agopbutils: description: move some code into utility function
Tim-Philipp Müller [Sun, 15 Feb 2015 20:08:36 +0000 (20:08 +0000)]
pbutils: description: move some code into utility function

9 years agopbutils: descriptions: add H.265 profile to description if available
Tim-Philipp Müller [Sun, 15 Feb 2015 20:05:13 +0000 (20:05 +0000)]
pbutils: descriptions: add H.265 profile to description if available

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

9 years agopbutils: descriptions: add MPEG-4 video profile to description if available
Tim-Philipp Müller [Sun, 15 Feb 2015 19:03:38 +0000 (19:03 +0000)]
pbutils: descriptions: add MPEG-4 video profile to description if available

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

9 years agopbutils: descriptions: add Dirac/VC-2 profile to description if available
Tim-Philipp Müller [Sun, 15 Feb 2015 18:37:38 +0000 (18:37 +0000)]
pbutils: descriptions: add Dirac/VC-2 profile to description if available

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

9 years agopbutils: descriptions: add H.264 profile to description if available
Tim-Philipp Müller [Sun, 15 Feb 2015 18:14:18 +0000 (18:14 +0000)]
pbutils: descriptions: add H.264 profile to description if available

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

9 years agoinstall-plugins: fix indentation and add Since marker
Tim-Philipp Müller [Fri, 13 Feb 2015 22:56:00 +0000 (22:56 +0000)]
install-plugins: fix indentation and add Since marker

Forgot to squash this into the actual patch before pushing.

9 years agoinstall-plugins: add new API to exports .def and to docs
Tim-Philipp Müller [Fri, 13 Feb 2015 22:49:04 +0000 (22:49 +0000)]
install-plugins: add new API to exports .def and to docs

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

9 years agoinstall-plugins: Add API to suppress confirmation before searching
Kalev Lember [Tue, 3 Feb 2015 09:47:11 +0000 (10:47 +0100)]
install-plugins: Add API to suppress confirmation before searching

The new gst_install_plugins_context_set_confirm_search() API can be used
to pass a hint to modify the behaviour of the external installer
process.

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

9 years agoinstall-plugins: Add API for passing desktop ID and startup ID
Kalev Lember [Mon, 2 Feb 2015 15:16:46 +0000 (16:16 +0100)]
install-plugins: Add API for passing desktop ID and startup ID

The new gst_install_plugins_context_set_desktop_id() and
gst_install_plugins_context_set_startup_notification_id() API can be
used to pass extra details to the external installer process.

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

9 years agovideo-orc: update with new methods
Wim Taymans [Thu, 12 Feb 2015 11:08:16 +0000 (12:08 +0100)]
video-orc: update with new methods

9 years agovideo-format: add orc function for RGB15/16 unpack
Wim Taymans [Thu, 12 Feb 2015 10:38:20 +0000 (11:38 +0100)]
video-format: add orc function for RGB15/16 unpack

9 years agoplaybin: improve debug log
Stefan Sauer [Wed, 11 Feb 2015 05:57:02 +0000 (21:57 -0800)]
playbin: improve debug log

Log the human readable pad_link_return desc as well.

9 years agocodec-utils: Handle the two rext profiles for h265
Sebastian Dröge [Wed, 11 Feb 2015 13:57:54 +0000 (15:57 +0200)]
codec-utils: Handle the two rext profiles for h265

These values are for now taken from x265 and need to be checked against
the spec. Especially we need to check if information from other fields
need to be taken into consideration too, e.g. the bit depth and chroma
index from the SPS.

This however makes 4:4:4 output of x265enc actually work.

9 years agoImprove and fix LATENCY query handling
Sebastian Dröge [Wed, 11 Feb 2015 12:43:11 +0000 (13:43 +0100)]
Improve and fix LATENCY query handling

This now follows the design docs everywhere, especially the maximum latency
handling.

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

9 years agovideo-scaler: add 2d scaler
Wim Taymans [Wed, 11 Feb 2015 12:32:25 +0000 (13:32 +0100)]
video-scaler: add 2d scaler

Make a convenience function that combines 2 scalers to perform a 2d
scale. This removes quite a bit of overhead in method calls when doing a
typical scale and it also can reuse a piece of unused memory in the
vertical scaler.
Use the 2d scaler in video-converter and remove the other scalers and
temp memory.

9 years agovideo-converter: Fix YUY2 formats and friends
Wim Taymans [Tue, 10 Feb 2015 15:43:03 +0000 (16:43 +0100)]
video-converter: Fix YUY2 formats and friends

Only merge scalers for selected formats.
Use nearest neighbour scaling for chroma when doing nearest neighbour
for the luma.
Also fastpath GRAY16_OE in nearest neighbour.
configure parameters correctly for packed fastpath.

9 years agovideo-scaler: Small performance tweaks
Wim Taymans [Tue, 10 Feb 2015 15:40:21 +0000 (16:40 +0100)]
video-scaler: Small performance tweaks

Small performance tweaks for RGB and friends.
Add, but ifdef out, alternative nearest neighbour scaling, it is slower
than the current table based version.
Use memcpy instead of orc_memcpy because it is measurably faster.
Fix YUY2 and friends vertical scaling.

9 years agovideo-scaler: Guard against (impossible) bits!=16 && bits!=8 case to fix compiler...
Sebastian Dröge [Tue, 10 Feb 2015 15:44:38 +0000 (16:44 +0100)]
video-scaler: Guard against (impossible) bits!=16 && bits!=8 case to fix compiler warning with clang

video-scaler.c:1331:14: error: variable 'func' is used uninitialized whenever 'if' condition is false
      [-Werror,-Wsometimes-uninitialized]
  } else if (bits == 16) {
             ^~~~~~~~~~
video-scaler.c:1348:3: note: uninitialized use occurs here
  func (scale, src_lines, dest, dest_offset, width, n_elems);
  ^~~~
video-scaler.c:1331:10: note: remove the 'if' if its condition is always true
  } else if (bits == 16) {
         ^~~~~~~~~~~~~~~~
video-scaler.c:1260:27: note: initialize the variable 'func' to silence this warning
  GstVideoScalerVFunc func;
                          ^
                           = NULL

9 years agovideo-converter: Use correct enum type to fix compiler warnings with clang
Sebastian Dröge [Tue, 10 Feb 2015 15:38:05 +0000 (16:38 +0100)]
video-converter: Use correct enum type to fix compiler warnings with clang

video-converter.c:3406:12: error: implicit conversion from enumeration type 'GstVideoFormat' to different
      enumeration type 'GstFormat' [-Werror,-Wenum-conversion]
  format = convert->fformat[plane];
         ~ ^~~~~~~~~~~~~~~~~~~~~~~
video-converter.c:3413:44: error: implicit conversion from enumeration type 'GstFormat' to different enumeration
      type 'GstVideoFormat' [-Werror,-Wenum-conversion]
    gst_video_scaler_horizontal (h_scaler, format,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~
video-converter.c:3471:12: error: implicit conversion from enumeration type 'GstVideoFormat' to different
      enumeration type 'GstFormat' [-Werror,-Wenum-conversion]
  format = convert->fformat[plane];
         ~ ^~~~~~~~~~~~~~~~~~~~~~~
video-converter.c:3487:42: error: implicit conversion from enumeration type 'GstFormat' to different enumeration
      type 'GstVideoFormat' [-Werror,-Wenum-conversion]
    gst_video_scaler_vertical (v_scaler, format, lines, d + out_x, i,
    ~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~
video-converter.c:3551:12: error: implicit conversion from enumeration type 'GstVideoFormat' to different
      enumeration type 'GstFormat' [-Werror,-Wenum-conversion]
  format = convert->fformat[plane];
         ~ ^~~~~~~~~~~~~~~~~~~~~~~
video-converter.c:3569:46: error: implicit conversion from enumeration type 'GstFormat' to different enumeration
      type 'GstVideoFormat' [-Werror,-Wenum-conversion]
      gst_video_scaler_horizontal (h_scaler, format,
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~
video-converter.c:3577:42: error: implicit conversion from enumeration type 'GstFormat' to different enumeration
      type 'GstVideoFormat' [-Werror,-Wenum-conversion]
    gst_video_scaler_vertical (v_scaler, format, lines, d + out_x, i,
    ~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~

9 years agovideo-converter: bits variable always set
Luis de Bethencourt [Tue, 10 Feb 2015 15:25:04 +0000 (15:25 +0000)]
video-converter: bits variable always set

In function gst_video_scaler_vertical() the bits variable is always
set to either 8 or 16 in every possible format. No need to initialize it.

If the format isn't valid it goes to no_func, so there is no need to
handle the case of bits not being 8 or 16.

CID #1268401

9 years agovideo-converter: only enable backlog for interlaced video
Wim Taymans [Tue, 10 Feb 2015 10:15:22 +0000 (11:15 +0100)]
video-converter: only enable backlog for interlaced video

Skip lines we don't need.

9 years agovideo-converter: add fastpath for NV formats
Wim Taymans [Tue, 10 Feb 2015 08:30:44 +0000 (09:30 +0100)]
video-converter: add fastpath for NV formats

9 years agovideo-format: fix pstride of NV16 and NV24 formats
Wim Taymans [Tue, 10 Feb 2015 08:20:12 +0000 (09:20 +0100)]
video-format: fix pstride of NV16 and NV24 formats

9 years agortspmessage: map headers we know that are added by string to their enum
Tim-Philipp Müller [Mon, 9 Feb 2015 18:01:30 +0000 (18:01 +0000)]
rtspmessage: map headers we know that are added by string to their enum

That way we can look them up by their field enum later as well.

9 years agotests: rtsp: add some unit tests for new GstRTSPMessage API
Tim-Philipp Müller [Mon, 9 Feb 2015 17:49:12 +0000 (17:49 +0000)]
tests: rtsp: add some unit tests for new GstRTSPMessage API

9 years agortspmessage: add API to add and get custom headers
Tim-Philipp Müller [Mon, 9 Feb 2015 16:24:19 +0000 (16:24 +0000)]
rtspmessage: add API to add and get custom headers

Add API to add and get custom headers that are not
covered by our header fields enum. This is backwards
compatible in that it will also work for our defined
fields, so if we ever add a new header field to the
enum, get_header_by_name() for the same header string
will still work.

API: gst_rtsp_message_add_header_by_name()
API: gst_rtsp_message_take_header_by_name()
API: gst_rtsp_message_remove_header_by_name()
API: gst_rtsp_message_get_header_by_name()

9 years agovideo-converter: Add more fastpaths
Wim Taymans [Mon, 9 Feb 2015 16:51:00 +0000 (17:51 +0100)]
video-converter: Add more fastpaths

Add fastpaths for all planar conversion and scaling.
Improve gray and alpha handling.
Add option to specify the chroma resampler method and set to linear as
default.

9 years agovideo-converter: add generic planar scaler/converter
Wim Taymans [Mon, 9 Feb 2015 12:20:43 +0000 (13:20 +0100)]
video-converter: add generic planar scaler/converter

Add code to convert and scale between any planar format and use it in
the fastpaths of some planare converters.

9 years agovideo-converter: Fix compiler warnings by using the correct enum type
Sebastian Dröge [Mon, 9 Feb 2015 09:20:37 +0000 (10:20 +0100)]
video-converter: Fix compiler warnings by using the correct enum type

video-converter.c:3645:24: error: implicit conversion from enumeration type
      'GstFormat' to different enumeration type 'GstVideoFormat'
      [-Werror,-Wenum-conversion]
    convert->fformat = fformat;
                     ~ ^~~~~~~
video-converter.c:3667:24: error: implicit conversion from enumeration type
      'GstFormat' to different enumeration type 'GstVideoFormat'
      [-Werror,-Wenum-conversion]
    convert->fformat = fformat;
                     ~ ^~~~~~~
video-converter.c:3963:50: error: implicit conversion from enumeration type
      'const GstVideoFormat' to different enumeration type 'GstFormat'
      [-Werror,-Wenum-conversion]
        if (!setup_scale (convert, transforms[i].fformat))
             ~~~~~~~~~~~           ~~~~~~~~~~~~~~^~~~~~~

9 years agooggmux: Don't pass GstCollectData as a GstObject to GST_DEBUG
Jan Schmidt [Fri, 6 Feb 2015 16:56:05 +0000 (03:56 +1100)]
oggmux: Don't pass GstCollectData as a GstObject to GST_DEBUG

9 years agovideo-converter: add more scaler fastpaths
Wim Taymans [Fri, 6 Feb 2015 12:39:04 +0000 (13:39 +0100)]
video-converter: add more scaler fastpaths

9 years agovideo-orc: fix loading of param
Wim Taymans [Fri, 6 Feb 2015 12:25:51 +0000 (13:25 +0100)]
video-orc: fix loading of param

param loading ignores the x4, loading only part of the param.

9 years agovideo-converter: add border and crop to more fastpaths
Wim Taymans [Fri, 6 Feb 2015 11:35:01 +0000 (12:35 +0100)]
video-converter: add border and crop to more fastpaths

9 years agovideo-converter: fix border for YUY2 and friends
Wim Taymans [Fri, 6 Feb 2015 11:28:54 +0000 (12:28 +0100)]
video-converter: fix border for YUY2 and friends

Convert as many pixels as the max subsampling so that we convert a
complete group of pixels.

9 years agovideo-converter: support AYUV border
Ravi Kiran K N [Fri, 6 Feb 2015 10:09:14 +0000 (15:39 +0530)]
video-converter: support AYUV border

Convert the border color from ARGB to AYUV, using
colorimetry matrix when output format is YUV.

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

9 years agovideo-converter: fix swapped border width
Wim Taymans [Fri, 6 Feb 2015 09:57:14 +0000 (10:57 +0100)]
video-converter: fix swapped border width

And also do nothing when there is no border.

9 years agovideo-converter: actually draw the border in some fastpaths
Wim Taymans [Fri, 6 Feb 2015 09:56:21 +0000 (10:56 +0100)]
video-converter: actually draw the border in some fastpaths

Don't forget to draw the border after doing the fastpath conversion.

9 years agovideo-converter: clamp width and heigth
Wim Taymans [Fri, 6 Feb 2015 09:53:20 +0000 (10:53 +0100)]
video-converter: clamp width and heigth

Clamp the width and height based on the in and out offsets.

9 years agovideo-format: add unaligned fallbacks
Wim Taymans [Fri, 6 Feb 2015 09:50:09 +0000 (10:50 +0100)]
video-format: add unaligned fallbacks

Add fallback C implementations for when we can't call the ORC function
because of bad alignment.

9 years agoaudiodecoder: Where possible, skip decode for GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO
Jan Schmidt [Tue, 27 Jan 2015 18:20:19 +0000 (05:20 +1100)]
audiodecoder: Where possible, skip decode for GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO

If we have timestamps on input buffers and are in trickmode no-audio
mode, then don't pass anything to the subclass for decode and simply
send gap events downstream

Only for forward playback for now - reverse requires accumulating
GAP events and pushing out in reverse order.

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

9 years agoaudiobasesink: Re-work GAP buffer and trick-mode handling
Jan Schmidt [Thu, 5 Feb 2015 06:44:59 +0000 (17:44 +1100)]
audiobasesink: Re-work GAP buffer and trick-mode handling

In trickmode no-audio mode, or when receiving a GAP buffer,
discard the contents and render as a GAP event instead.

Make sure when rendering a gap event that the ring buffer will
restart on PAUSED->PLAYING by setting the eos_rendering flag.

This mostly reverts commit 8557ee and replaces it. The problem
with the previous approach is that it hangs in wait_preroll()
on a PLAYING-PAUSED transition because it doesn't commit state
properly.

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

9 years agooggdemux: Add a little timestamping debug output
Jan Schmidt [Tue, 3 Feb 2015 09:38:44 +0000 (20:38 +1100)]
oggdemux: Add a little timestamping debug output

9 years agotheora: If no header packets in stream, look for them in the caps
Jan Schmidt [Mon, 2 Feb 2015 14:19:05 +0000 (01:19 +1100)]
theora: If no header packets in stream, look for them in the caps

Makes theora work in cases where the header packets are only in the caps
(because theoradec was connected to oggdemux late and missed the
beginning of the stream)

9 years agotheora: Remove FIXME and return GST_CUSTOM_FLOW_DROP for header packet handling
Jan Schmidt [Mon, 2 Feb 2015 11:23:51 +0000 (22:23 +1100)]
theora: Remove FIXME and return GST_CUSTOM_FLOW_DROP for header packet handling

This FIXME is easily fixed :)

9 years agoaudiodecoder: Remove pointless else{} around some code
Jan Schmidt [Fri, 30 Jan 2015 18:12:10 +0000 (05:12 +1100)]
audiodecoder: Remove pointless else{} around some code

9 years agoaudiodecoder: Fix reverse playback when there's only one gather set.
Jan Schmidt [Fri, 30 Jan 2015 18:09:46 +0000 (05:09 +1100)]
audiodecoder: Fix reverse playback when there's only one gather set.

The decoder can fail to drain on EOS if there was only one gather
set, because it will never have sent the segment event downstream
and set the output segment, and fail to detect that the rate < 0.0

Make sure to send pending events before sending all the gather data
for decode.

9 years agovideo: Fix simple typo in GstVideoFrameMapFlags docs
Jan Schmidt [Wed, 8 Oct 2014 16:31:58 +0000 (03:31 +1100)]
video: Fix simple typo in GstVideoFrameMapFlags docs

9 years agovideo-converter: add crop and border to some fastpaths
Wim Taymans [Thu, 5 Feb 2015 16:49:55 +0000 (17:49 +0100)]
video-converter: add crop and border to some fastpaths

9 years agovideo-converter: add support for borders in scale fastpath
Wim Taymans [Thu, 5 Feb 2015 16:18:20 +0000 (17:18 +0100)]
video-converter: add support for borders in scale fastpath

Add support for borders and cropping in the scaler fastpaths.

9 years agovideo-converter: disable fastpath for crop and border
Wim Taymans [Thu, 5 Feb 2015 14:03:24 +0000 (15:03 +0100)]
video-converter: disable fastpath for crop and border

Add crop and border properties to the fastpath table and only select
fastpath functions when it can handle the cropping or borders.

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

9 years agovideo-converter: add fastpath for some gray formats
Wim Taymans [Wed, 4 Feb 2015 17:01:51 +0000 (18:01 +0100)]
video-converter: add fastpath for some gray formats

9 years agovideo-converter: add fastpath for some more RGB formats
Wim Taymans [Wed, 4 Feb 2015 16:44:31 +0000 (17:44 +0100)]
video-converter: add fastpath for some more RGB formats

Add fastpath for RGB and BGR.
Add fastpath for nearest resampling for RGB15 and RGB16 formats.

9 years agovideo-converter: skip lines we don't need
Wim Taymans [Wed, 4 Feb 2015 15:37:22 +0000 (16:37 +0100)]
video-converter: skip lines we don't need

Make sure to skip unused lines instead of doing a useless horizontal
resampling.

9 years agovideoscale: fix memory leak
Luis de Bethencourt [Wed, 4 Feb 2015 12:08:21 +0000 (12:08 +0000)]
videoscale: fix memory leak

In gst_video_scale_fixate_caps () it can goto done without freeing the memory
of the tmp GstStructure. This makes it go out of scope and leak.

CID #1265766

9 years agovideo-resampler: make sure params.envelope is initialized
Luis de Bethencourt [Wed, 4 Feb 2015 11:25:54 +0000 (11:25 +0000)]
video-resampler: make sure params.envelope is initialized

In gst_video_resampler_init () if method is GST_VIDEO_RESAMPLER_METHOD_NEAREST
then params.envelope is not initialized but still used later in line 382.
Make sure this variable is initiliazed to avoid undefined behaviour.

CID #1256568

9 years agovideo{enc,dec}oder: Don't reset latency all the time and handle max=GST_CLOCK_TIME_NO...
Sebastian Dröge [Tue, 3 Feb 2015 11:23:06 +0000 (12:23 +0100)]
video{enc,dec}oder: Don't reset latency all the time and handle max=GST_CLOCK_TIME_NONE correctly

max=NONE means that *this* element has no maximum latency. If upstream had a
maximum latency we must not override it with NONE.

9 years agoaudio{enc,dec}oder: Always directly post latency messages on the bus when the subclas...
Sebastian Dröge [Tue, 3 Feb 2015 11:15:25 +0000 (12:15 +0100)]
audio{enc,dec}oder: Always directly post latency messages on the bus when the subclass sets the latency

Instead of doing it only in setcaps for the encoder, and never at all for the
decoder.

9 years agoaudio{enc,dec}oder: Handle max_latency == GST_CLOCK_TIME_NONE
Sebastian Dröge [Tue, 3 Feb 2015 11:12:18 +0000 (12:12 +0100)]
audio{enc,dec}oder: Handle max_latency == GST_CLOCK_TIME_NONE

And initialize the latencies with 0 and NONE.

9 years agoaudiobasesink: Don't render a GAP silence buffer
Jan Schmidt [Tue, 27 Jan 2015 18:26:06 +0000 (05:26 +1100)]
audiobasesink: Don't render a GAP silence buffer

Don't render out silence samples to a buffer, just
start the clock running, since any buffer with the
GAP flag will be discarded in render() now anyway.

9 years agoaudiobasesink: Make sure the ringbuffer is started before waiting
Jan Schmidt [Wed, 28 Jan 2015 11:42:17 +0000 (22:42 +1100)]
audiobasesink: Make sure the ringbuffer is started before waiting

Don't call the basesink wait_event implementation until we're sure
the ringbuffer is running, because it might wait on a non-running
clock.

9 years agoaudiobasesink: drop GAP buffers, or all buffers in trickmode no-audio mode
Jan Schmidt [Mon, 26 Jan 2015 15:04:22 +0000 (02:04 +1100)]
audiobasesink: drop GAP buffers, or all buffers in trickmode no-audio mode

Make the base audio sink throw away buffers marked GAP, or all
incoming buffers when performing a trick play with
GST_SEGMENT_TRICKMODE_NO_AUDIO flag set, and make sure to start
the ringbuffer when that happens so the clock starts running.

Preserve the timing calculations when rendering, so state is all
updated the same, but just don't render samples.

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

9 years agooggdemux: do not throw a flow error on flushing
Vincent Penquerc'h [Thu, 29 Jan 2015 17:58:27 +0000 (17:58 +0000)]
oggdemux: do not throw a flow error on flushing

If the streaming task attempts to read a chain while the pipeline
is stopping (which can happen if the pipeline stops shortly after
start or a new URI being setup in gapless playback case), it will
see a flushing return from upstream, and should then also return
flushing to the caller, rather than emit a flow error.

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

9 years agovideo-converter: Fix compiler warnings
Sebastian Dröge [Wed, 28 Jan 2015 16:44:57 +0000 (17:44 +0100)]
video-converter: Fix compiler warnings

video-converter.c:3073:48: error: implicit conversion from enumeration type 'GstFormat' to different enumeration type 'GstVideoFormat'
      [-Werror,-Wenum-conversion]
        gst_video_scaler_horizontal (h_scaler, format,
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~
video-converter.c:3081:44: error: implicit conversion from enumeration type 'GstFormat' to different enumeration type 'GstVideoFormat'
      [-Werror,-Wenum-conversion]
      gst_video_scaler_vertical (v_scaler, format, lines, d, i, out_w);
      ~~~~~~~~~~~~~~~~~~~~~~~~~            ^~~~~~
video-converter.c:3137:24: error: implicit conversion from enumeration type 'const GstVideoFormat' to different enumeration type 'GstFormat'
      [-Werror,-Wenum-conversion]
    convert->fformat = GST_VIDEO_INFO_FORMAT (in_info);
                     ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../gst-libs/gst/video/video-info.h:125:43: note: expanded from macro 'GST_VIDEO_INFO_FORMAT'
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../gst-libs/gst/video/video-format.h:361:59: note: expanded from macro 'GST_VIDEO_FORMAT_INFO_FORMAT'
                                                  ~~~~~~~~^~~~~~
video-converter.c:3157:24: error: implicit conversion from enumeration type 'GstVideoFormat' to different enumeration type 'GstFormat'
      [-Werror,-Wenum-conversion]
    convert->fformat = GST_VIDEO_FORMAT_GRAY8;

9 years agovideo: Update orc files
Sebastian Dröge [Wed, 28 Jan 2015 16:43:59 +0000 (17:43 +0100)]
video: Update orc files

9 years agodefs: update
Wim Taymans [Wed, 28 Jan 2015 16:37:35 +0000 (17:37 +0100)]
defs: update

9 years agovideo-converter: add fast-path scaler for some packed YUV formats
Wim Taymans [Wed, 28 Jan 2015 16:32:12 +0000 (17:32 +0100)]
video-converter: add fast-path scaler for some packed YUV formats

Add fast path scaling for YUY2 and other packed YUV formats. Add a new
method to merge the scalers of the Y and UV components into one scaler.
Add faster horizontal 2tap scaler.

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

9 years agovideoscale: don't do dithering
Wim Taymans [Wed, 28 Jan 2015 16:30:53 +0000 (17:30 +0100)]
videoscale: don't do dithering

9 years agovideo-converter: the default is BAYER dithering
Wim Taymans [Wed, 28 Jan 2015 16:30:14 +0000 (17:30 +0100)]
video-converter: the default is BAYER dithering

9 years agovideo-converter: don't do dither when set to NONE
Wim Taymans [Wed, 28 Jan 2015 16:29:45 +0000 (17:29 +0100)]
video-converter: don't do dither when set to NONE

9 years agovideo-scaler: fix taps calculation for pstride == 1
Wim Taymans [Wed, 28 Jan 2015 10:38:16 +0000 (11:38 +0100)]
video-scaler: fix taps calculation for pstride == 1

Take pstride into consideration when calculating the scaler taps.

9 years agoaudiobasesink: Make sure the ringbuffer really starts when we need it to
Jan Schmidt [Tue, 27 Jan 2015 17:51:25 +0000 (04:51 +1100)]
audiobasesink: Make sure the ringbuffer really starts when we need it to

Some audio sink sub-classes (pulsesink) don't start their clock
when the ringbuffer starts, but always have to on EOS. When we
explicitly need to start the ringbuffer, make sure sub-classes will
do it by (ab)using the existing eos_rendering flag.

9 years agoplayback-test: Support new skip seek flags
Jan Schmidt [Wed, 10 Dec 2014 14:54:07 +0000 (01:54 +1100)]
playback-test: Support new skip seek flags

Support the new SEEK_TRICKMODE_KEY_UNITS and SEEK_TRICKMODE_NO_AUDIO
flags added to core

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

9 years agoorc: update orc files
Luis de Bethencourt [Tue, 27 Jan 2015 13:39:14 +0000 (13:39 +0000)]
orc: update orc files

9 years agovideo-converter: add fastpath for planar scaling
Wim Taymans [Tue, 27 Jan 2015 09:28:35 +0000 (10:28 +0100)]
video-converter: add fastpath for planar scaling

Add fastpaths for scaling of planar subsampled formats.

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

9 years agovideo-scaler: add support for monochroma formats
Wim Taymans [Tue, 27 Jan 2015 09:04:11 +0000 (10:04 +0100)]
video-scaler: add support for monochroma formats

Add support for scaling of images with pstride == 1. This can be used
to scale individual planes later.
Rework some of the scaling code to take the pstride as a parameter.

9 years agovideoscale: disable chroma and matrix operations
Wim Taymans [Tue, 27 Jan 2015 08:51:47 +0000 (09:51 +0100)]
videoscale: disable chroma and matrix operations

Ignore chroma subsampling and color matrix transformations like the
old videoscale used to do. This is to make the performance like it was
before.

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

9 years agovideo-format: fix GBR unpack
Wim Taymans [Mon, 26 Jan 2015 11:52:40 +0000 (12:52 +0100)]
video-format: fix GBR unpack

9 years agoaudiodecoder: Fix typo in documentation
Jan Schmidt [Mon, 26 Jan 2015 14:31:50 +0000 (01:31 +1100)]
audiodecoder: Fix typo in documentation

Fix a couple of harmless warnings in the gtk-doc parsing

9 years agovideo: Fix leaked dither object in error cases
Edward Hervey [Fri, 23 Jan 2015 11:46:41 +0000 (12:46 +0100)]
video: Fix leaked dither object in error cases

Coverity CID : 1256564

9 years agovisual: fix caps leak
Luis de Bethencourt [Wed, 21 Jan 2015 15:22:15 +0000 (15:22 +0000)]
visual: fix caps leak

Fix leak of caps event and of caps objects when setting caps on sink and src
pads. Sync audiovisualizer class implementation to the one in gst-plugins-bad.
This commit matches c5ef1bee7318f057aa1f542d5a1474b75e85131a in that module.

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

9 years agovisual: post QoS messages when dropping frames due to QoS
Luis de Bethencourt [Wed, 21 Jan 2015 14:46:15 +0000 (14:46 +0000)]
visual: post QoS messages when dropping frames due to QoS

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

9 years agoConstify some static arrays everywhere
Sebastian Dröge [Wed, 21 Jan 2015 08:49:47 +0000 (09:49 +0100)]
Constify some static arrays everywhere

9 years agoalsa: Constify channel position table
Sebastian Dröge [Wed, 21 Jan 2015 08:42:21 +0000 (09:42 +0100)]
alsa: Constify channel position table

9 years agoalsa: Fix indention
Sebastian Dröge [Wed, 21 Jan 2015 08:41:23 +0000 (09:41 +0100)]
alsa: Fix indention

9 years agoalsa: Allow to use 8 bit samples with ALSA
Thomas Roos [Wed, 21 Jan 2015 07:33:57 +0000 (08:33 +0100)]
alsa: Allow to use 8 bit samples with ALSA

8 bit samples have no (0) as endianness, not the native endianness.

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

9 years agoaudio-format: Constify the audio format table
Sebastian Dröge [Wed, 21 Jan 2015 08:39:30 +0000 (09:39 +0100)]
audio-format: Constify the audio format table

9 years agoaudiosrc: Fill in the correct silence
Sebastian Dröge [Wed, 21 Jan 2015 08:37:30 +0000 (09:37 +0100)]
audiosrc: Fill in the correct silence

For unsigned raw formats this is not all zeroes, and for non-raw formats
we just continue to assume all zeroes for now.

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

9 years agoaudiosink: Fill in the correct silence
Thomas Roos [Wed, 21 Jan 2015 07:47:26 +0000 (08:47 +0100)]
audiosink: Fill in the correct silence

For unsigned raw formats this is not all zeroes, and for non-raw formats
we just continue to assume all zeroes for now.

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

9 years agoappsink: Only emit EOS signal after all buffers are consumed
Sebastian Dröge [Tue, 20 Jan 2015 18:14:21 +0000 (19:14 +0100)]
appsink: Only emit EOS signal after all buffers are consumed

Otherwise the application will possibly shut down the pipeline already
because EOS is received, while there are still some buffers pending.

9 years agodcodebin2: fix lock/unlock mismatch on multiqueue overrun
Vincent Penquerc'h [Tue, 20 Jan 2015 15:08:24 +0000 (15:08 +0000)]
dcodebin2: fix lock/unlock mismatch on multiqueue overrun

9 years agoaudioresample: Try to prevent endless looping
Jan Alexander Steffens (heftig) [Tue, 13 Jan 2015 15:07:06 +0000 (16:07 +0100)]
audioresample: Try to prevent endless looping

Speex may decide not to consume any samples because it can't write any. I've
seen a hang during draining caused by the resample loop never terminating.
In that case, resampling happened as normal until olen was 0 but ilen was
still 1. _process_native then reduced ichunk to 0, so ilen never decreased
below 1 and the loop never terminated.

Instead of reverting 684cf44 ({audioresample: don't skip input samples),
break only if all output samples have been produced and speex refuses
to consume any more input samples.

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

9 years agovideorate: Add $(GST_PLUGINS_BASE_CFLAGS) to be able to find gst/video/video.h
Sebastian Dröge [Mon, 19 Jan 2015 10:17:18 +0000 (11:17 +0100)]
videorate: Add $(GST_PLUGINS_BASE_CFLAGS) to be able to find gst/video/video.h

9 years agovideorate: Implement allocation query
Nicolas Dufresne [Sun, 18 Jan 2015 19:58:36 +0000 (14:58 -0500)]
videorate: Implement allocation query

The videorate element keeps 1 buffer internally. This buffer need
to be requested during allocation query otherwise the pipeline may
stall.

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

9 years agoRevert "videorate: Implement allocation query"
Nicolas Dufresne [Sun, 18 Jan 2015 19:17:07 +0000 (14:17 -0500)]
Revert "videorate: Implement allocation query"

This reverts commit 3c04db4a307048db70ee1d08c1d62e26ad9569d8.

9 years agovideorate: Implement allocation query
Nicolas Dufresne [Sun, 18 Jan 2015 16:02:00 +0000 (11:02 -0500)]
videorate: Implement allocation query

VideRate keeps 1 buffer in order to duplicate base on closest buffer
relative to targeted time. This extra buffer need to be request
otherwise the pipeline may stall when fixed size buffer pool is used.

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

9 years agodecodebin: Fix compilation
Sebastian Dröge [Sat, 17 Jan 2015 13:51:48 +0000 (14:51 +0100)]
decodebin: Fix compilation

9 years agodecodebin: do call set_queue_size in no_more_pads_cb
Branislav Katreniak [Mon, 12 Jan 2015 13:38:09 +0000 (14:38 +0100)]
decodebin: do call set_queue_size in no_more_pads_cb

Consider pipeline: gst-launch-1.0 playbin uri=http://example.com/a.ogg
Consider 128kbit audio stream.

As soon as uridecodebin detects the bitrate, it configures its input
queue2 max-size to 32000 bytes.
The 2MB buffer in multiqueue is nearly 2 orders of magnitude bigger.
This non-deterministically drives queue2 buffer anywhere from
100% to 0% until multiqueue is filled.

This patch sets multiqueue size to 5 buffers early in no_more_pads_cb.

Partly reverts commit db771185ed750627a6a1824c42b651d739e1b4a4.

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

9 years agodecodebin: free old groups when switching groups
Vincent Penquerc'h [Fri, 16 Jan 2015 15:21:14 +0000 (15:21 +0000)]
decodebin: free old groups when switching groups

Old groups are freed with one switch's delay when switching groups.
They're freed in a scratch thread to avoid delaying the switch.

9 years agooggmux: fix clipped duration determination for non 0 based segments
Vincent Penquerc'h [Fri, 12 Dec 2014 17:02:35 +0000 (17:02 +0000)]
oggmux: fix clipped duration determination for non 0 based segments

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

9 years agoaudio: Keep caps features when building the downstream filter
Sebastian Dröge [Thu, 15 Jan 2015 09:51:37 +0000 (10:51 +0100)]
audio: Keep caps features when building the downstream filter

Based on 5fd4e3e0b6cc4f30d7b1489a105db946b43f1a9f for video
by Alessandro Decina.