platform/upstream/gst-plugins-base.git
9 years agoRelease 1.6.0 1.6.0
Sebastian Dröge [Fri, 25 Sep 2015 21:15:20 +0000 (23:15 +0200)]
Release 1.6.0

9 years agoUpdate .po files
Sebastian Dröge [Fri, 25 Sep 2015 20:50:51 +0000 (22:50 +0200)]
Update .po files

9 years agovideo-dither: Use saturated add when adding ordered dither for > 8 bit targets
Sebastian Dröge [Thu, 24 Sep 2015 16:06:58 +0000 (18:06 +0200)]
video-dither: Use saturated add when adding ordered dither for > 8 bit targets

Otherwise our 16 bit integers are going to overflow in intermediate
calculations, causing video to become mostly black.

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

9 years agovideo-frame: Fix gst_video_frame_copy() for formats with pstride==0
Sebastian Dröge [Thu, 24 Sep 2015 09:33:24 +0000 (11:33 +0200)]
video-frame: Fix gst_video_frame_copy() for formats with pstride==0

v210, UYVP and IYU1 are complex formats for which pixel stride does not really
have a meaning. If we copy width*pstride bytes per line, it's not going to do
the right thing. As a fallback, copy stride bytes per line. This might copy
uninitialized bytes at the end of each line, but at least copies the frame.

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

9 years agofdmemory: remove 'allow-none' annotation in gst_fd_allocator_alloc() doc
Aurélien Zanelli [Thu, 10 Sep 2015 13:08:35 +0000 (15:08 +0200)]
fdmemory: remove 'allow-none' annotation in gst_fd_allocator_alloc() doc

gst_fd_allocator_alloc() ensure that passed allocator is a fd memory
allocator, so that we can't pass NULL allocator.

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

9 years agodmabuf: remove 'allow-none' annotation in gst_dmabuf_allocator_alloc() doc
Aurélien Zanelli [Thu, 10 Sep 2015 13:08:35 +0000 (15:08 +0200)]
dmabuf: remove 'allow-none' annotation in gst_dmabuf_allocator_alloc() doc

gst_dmabuf_allocator_alloc() ensure that passed allocator is a DMABuf
allocator, so that we can't pass NULL allocator.

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

9 years agoRelease 1.5.91
Sebastian Dröge [Fri, 18 Sep 2015 17:20:00 +0000 (19:20 +0200)]
Release 1.5.91

9 years agoUpdate .po files
Sebastian Dröge [Fri, 18 Sep 2015 17:19:16 +0000 (19:19 +0200)]
Update .po files

9 years agoappsink: Fix 'steaming' typo in API doc
Christophe Fergeau [Fri, 18 Sep 2015 15:48:49 +0000 (17:48 +0200)]
appsink: Fix 'steaming' typo in API doc

There are several occurrences of 'steaming' where 'streaming' was meant.

9 years agopo: Update translations
Sebastian Dröge [Fri, 18 Sep 2015 09:49:59 +0000 (11:49 +0200)]
po: Update translations

9 years agoplayback-test: avoid critical on exit
Ravi Kiran K N [Fri, 18 Sep 2015 05:29:46 +0000 (10:59 +0530)]
playback-test: avoid critical on exit

Only free vis_entries array when not null on exit.

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

9 years agobasetextoverlay: fix typo in debug log message
Prashant Gotarne [Fri, 18 Sep 2015 04:18:18 +0000 (09:48 +0530)]
basetextoverlay: fix typo in debug log message

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

9 years agoaudiosink, multisocketsink: Fix error leak during failures
Vineeth T M [Thu, 17 Sep 2015 05:27:33 +0000 (14:27 +0900)]
audiosink, multisocketsink: Fix error leak during failures

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

9 years agouridecodebin: Use the correct caps name for MS Smooth Streaming manifests
Sebastian Dröge [Wed, 16 Sep 2015 17:53:35 +0000 (19:53 +0200)]
uridecodebin: Use the correct caps name for MS Smooth Streaming manifests

Thanks to John Chang <r97922153@gmail.com> for reporting.

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

9 years agoappsink: minor docs fix
Tim-Philipp Müller [Tue, 15 Sep 2015 14:26:44 +0000 (15:26 +0100)]
appsink: minor docs fix

9 years agovideopool: ensure allocation alignment is consistent with video alignment requirements
Tim-Philipp Müller [Fri, 11 Sep 2015 22:36:47 +0000 (23:36 +0100)]
videopool: ensure allocation alignment is consistent with video alignment requirements

Make sure GstAllocationParams alignment is not less than
any alignment requirement specified via GstVideoAlignment.

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

9 years agoxvimagesink: fix error leak when context creation fails
Vineeth TM [Mon, 14 Sep 2015 00:36:20 +0000 (09:36 +0900)]
xvimagesink: fix error leak when context creation fails

When context creation fails, error is getting leaked.

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

9 years agoplayback: Add POINTER_TO_ULONG() macro for consistency
Sebastian Dröge [Fri, 11 Sep 2015 21:28:37 +0000 (23:28 +0200)]
playback: Add POINTER_TO_ULONG() macro for consistency

9 years agoplayback: fix build error for 64bit Windows build by MinGW
Kouhei Sutou [Fri, 11 Sep 2015 14:48:05 +0000 (23:48 +0900)]
playback: fix build error for 64bit Windows build by MinGW

Casting to gpointer from gulong generates the following warning with
64bit Windows target MinGW:

    gstplaybin2.c: In function 'pad_added_cb':
    gstplaybin2.c:3476:7: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
           (gpointer) group_id_probe_handler);
           ^
    cc1: all warnings being treated as errors

We should cast to guintptr from gulong before we cast to gpointer.

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

9 years agovideo-format: add missing alpha flag for some formats
Thiago Santos [Wed, 9 Sep 2015 22:00:33 +0000 (19:00 -0300)]
video-format: add missing alpha flag for some formats

Some formats didn't have the alpha flag marked, use the correct
macro so they get it right.

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

9 years agoappsrc: Always take the mutex before flushing the queue
Sebastian Dröge [Wed, 9 Sep 2015 09:33:02 +0000 (12:33 +0300)]
appsrc: Always take the mutex before flushing the queue

Otherwise the application might push new buffers into the queue while we're
flushing, potentially causing the GQueue data structure to become inconsistent
and causing crashes soon after.

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

9 years agoappsrc: retain the latest caps in queue when flushing
Vikram Fugro [Mon, 7 Sep 2015 20:05:19 +0000 (01:35 +0530)]
appsrc: retain the latest caps in queue when flushing

- Retain the latest caps in the internal queue, when
  flushing.
- Add a unit test case for the same.

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

9 years agovideo: improve GstVideoFormatUnpack docs
Tim-Philipp Müller [Sun, 6 Sep 2015 23:19:09 +0000 (00:19 +0100)]
video: improve GstVideoFormatUnpack docs

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

9 years agolibs: Fix build error on MinGW where "%ll" is not available
Kouhei Sutou [Sun, 6 Sep 2015 09:17:15 +0000 (18:17 +0900)]
libs: Fix build error on MinGW where "%ll" is not available

"ll" isn't available on MinGW. We can use G_GINT64_MODIFIER for portable
64bit size data modifier.

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

9 years agolibs: build rtp after audio
Havard Graff [Mon, 31 Aug 2015 08:46:43 +0000 (10:46 +0200)]
libs: build rtp after audio

The dependency setup does not seem to work for all systems,
causing the build to fail with:

gstrtpbaseaudiopayload.c:65:0:
fatal error: gst/audio/audio-enumtypes.h: No such file or directory

My setup:
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
autoconf (GNU Autoconf) 2.69
automake (GNU automake) 1.14.1
libtool (GNU libtool) 2.4.2

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

9 years agolibs: rtp is no longer an independent subdir
Tim-Philipp Müller [Mon, 31 Aug 2015 09:49:41 +0000 (10:49 +0100)]
libs: rtp is no longer an independent subdir

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

9 years agovideoscale: fix gamma-decode option
Wim Taymans [Thu, 3 Sep 2015 15:55:10 +0000 (17:55 +0200)]
videoscale: fix gamma-decode option

We need to use the enum to configure the option now.

9 years agobasetextoverlay: FIX crash if padding greater than video size
Prashant Gotarne [Thu, 3 Sep 2015 03:28:08 +0000 (08:58 +0530)]
basetextoverlay: FIX crash if padding greater than video size

Skipping rendering of textimage if overlay is completely
outside video frame.

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

9 years agoappsrc: remove duplicate get_size vfunc assignment
Philippe Normand [Mon, 31 Aug 2015 09:09:09 +0000 (11:09 +0200)]
appsrc: remove duplicate get_size vfunc assignment

9 years agoallocators: include gstfdmemory.h in the main library header, allocators.h
George Kiagiadakis [Sat, 29 Aug 2015 19:38:52 +0000 (21:38 +0200)]
allocators: include gstfdmemory.h in the main library header, allocators.h

9 years agoaudiobasesink: fix misleading error message debug detail
Tim-Philipp Müller [Sat, 29 Aug 2015 09:44:28 +0000 (10:44 +0100)]
audiobasesink: fix misleading error message debug detail

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

9 years agoplaysinkconvertbin: implement accept-caps handler
Thiago Santos [Fri, 28 Aug 2015 12:36:15 +0000 (09:36 -0300)]
playsinkconvertbin: implement accept-caps handler

The default one will just go through the internal elements which might
just be identity when it is in passthrough which will lead to the query
being handled by the downstream sink, ignoring all that playsinkconvertbin
could actually handle and convert.

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

9 years agoaudiobasesink: Fix incorrect/missing custom slaving method documentation
Carlos Rafael Giani [Thu, 27 Aug 2015 21:08:51 +0000 (23:08 +0200)]
audiobasesink: Fix incorrect/missing custom slaving method documentation

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

9 years agosubparse: use g_clear_error instead of g_error_free
Eunhae Choi [Wed, 19 Aug 2015 12:19:05 +0000 (21:19 +0900)]
subparse: use g_clear_error instead of g_error_free

To avoid invalid pointer accees the err pointer should be set to NULL.
By using g_clear_error() it calls free and clear the pointer.

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

9 years agoRelease 1.5.90
Sebastian Dröge [Wed, 19 Aug 2015 10:10:23 +0000 (13:10 +0300)]
Release 1.5.90

9 years agoUpdate .po files
Sebastian Dröge [Wed, 19 Aug 2015 09:39:17 +0000 (12:39 +0300)]
Update .po files

9 years agopo: Update translations
Sebastian Dröge [Wed, 19 Aug 2015 08:23:09 +0000 (11:23 +0300)]
po: Update translations

9 years agotools: discoverer: When info is NULL just print error and return
Vineeth TM [Tue, 18 Aug 2015 23:37:46 +0000 (08:37 +0900)]
tools: discoverer: When info is NULL just print error and return

In case discover_uri returns NULL info, passing the info to discoverer APIs
result in critical assertion errors. Hence instead of passing NULL info along,
print the error and return.

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

9 years agoRevert "decodebin: Handle the preroll multi-queue size"
Sebastian Dröge [Tue, 18 Aug 2015 15:47:22 +0000 (18:47 +0300)]
Revert "decodebin: Handle the preroll multi-queue size"

This reverts commit 5c8ef0ea05123506dfc35c70c8b165bca7435dad.

9 years agoRevert "decodebin: Store extra_buffer_required per group, not globally"
Sebastian Dröge [Tue, 18 Aug 2015 15:47:21 +0000 (18:47 +0300)]
Revert "decodebin: Store extra_buffer_required per group, not globally"

This reverts commit 1ea81114ea6bd48b581f19002018680933aa7a12.

9 years agoRevert "decodebin: If extra buffers are going to be required, we're still prerolling"
Sebastian Dröge [Tue, 18 Aug 2015 15:47:18 +0000 (18:47 +0300)]
Revert "decodebin: If extra buffers are going to be required, we're still prerolling"

This reverts commit a3b24f0241bd55a005a072ba8ddcd53e0fdbf827.

9 years agovideo(en|de)coder: Return TRUE when we consumed a tag event without creating a new...
Sebastian Dröge [Tue, 18 Aug 2015 13:28:42 +0000 (16:28 +0300)]
video(en|de)coder: Return TRUE when we consumed a tag event without creating a new event

Fixes spurious flow errors that especially break gst-validate.

9 years agoaudiodecoder: If there are no tags, don't try to do event handling on a NULL event
Sebastian Dröge [Tue, 18 Aug 2015 13:01:28 +0000 (16:01 +0300)]
audiodecoder: If there are no tags, don't try to do event handling on a NULL event

Fixes some crashes.

9 years agoaudioencoder: If there are no tags, don't try to do event handling on a NULL event
Sebastian Dröge [Tue, 18 Aug 2015 12:58:57 +0000 (15:58 +0300)]
audioencoder: If there are no tags, don't try to do event handling on a NULL event

Fixes some crashes.

9 years agotools: gst-play: Use g_build_filename instead of g_strconcat
Vivia Nikolaidou [Tue, 18 Aug 2015 10:50:17 +0000 (13:50 +0300)]
tools: gst-play: Use g_build_filename instead of g_strconcat

When running gst-play against a directory name, and suffix the path with a
directory separator (e.g. tab completion), gst-play was printing two directory
separators in a row. g_build_filename fixes this, and additionally allows for
both '/' and '\' as separators on Windows.

9 years agodecodebin: If extra buffers are going to be required, we're still prerolling
Sebastian Dröge [Tue, 18 Aug 2015 12:16:25 +0000 (15:16 +0300)]
decodebin: If extra buffers are going to be required, we're still prerolling

9 years agodecodebin: Store extra_buffer_required per group, not globally
Sebastian Dröge [Tue, 18 Aug 2015 12:01:33 +0000 (15:01 +0300)]
decodebin: Store extra_buffer_required per group, not globally

It's only relevant for each group, and by storing it in the group
we have locking and everything else like for the other buffering-related
variables. Locking looks a bit fishy still, but it was like that for a long
time already so shouldn't be worse than before.

9 years agodecodebin: Handle the preroll multi-queue size
Myoungsun Lee [Thu, 30 Jul 2015 01:33:25 +0000 (10:33 +0900)]
decodebin: Handle the preroll multi-queue size

Overview:
There are some of interleaved streams which has long-term location of audio data.
It mean the audio data is located far away more than multiqueue size.
In this case, because of multiqueue overrun, the pipeline is stopped.
To prevent hanging-like state, the decodebin needs to handle the queue size.

Caused:
The multiqueue size is not enough, the pipeline will stay being stalled status
and decodebin cannot complete to build decode chain.
In this issue file, decodebin did not receive no_more_pads signal or audio data yet.

Steps to Reproduce:
play the high-resolution(4K file) files or some streaming media(push mode).

Actual Results:
There is no audio or subtitle.
We can see only video or infinite loading.

Resolution:
Decodebin detect this problem, and add extra buffer size to multiqueue.
The multiqueue is larger than before, the next data can be pushed the downstream element.

Additional Information:
The max-preroll extra buffer size is set 8MB.
We can use total pre-roll buffer 10MB.
Only first overrun callback can handle multiqueue size.

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

9 years agovideoencoder: fix tag handling
Tim-Philipp Müller [Tue, 18 Aug 2015 11:29:29 +0000 (12:29 +0100)]
videoencoder: fix tag handling

Merge upstream tags with encoder tags and update whenever
any of those changes.

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

9 years agoaudioencoder: fix tag handling
Tim-Philipp Müller [Tue, 18 Aug 2015 10:45:24 +0000 (11:45 +0100)]
audioencoder: fix tag handling

Merge upstream tags with encoder tags and update whenever
any of those changes.

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

9 years agotypefindfunctions: Add typefinder for TTML+XML
Sebastian Dröge [Tue, 18 Aug 2015 09:56:33 +0000 (12:56 +0300)]
typefindfunctions: Add typefinder for TTML+XML

Used in DASH among other things, as SMPTE Timed Text.

9 years agopbutils: discoverer: Set GError when NULL info is being returned.
Vineeth TM [Tue, 18 Aug 2015 00:06:39 +0000 (09:06 +0900)]
pbutils: discoverer: Set GError when NULL info is being returned.

When discovering the URI, if info is NULL, then instead of just returning NULL,
set the GError, so the error can be printed and notified.

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

9 years agodiscoverer: free context and error during failures
Vineeth TM [Mon, 17 Aug 2015 02:18:25 +0000 (11:18 +0900)]
discoverer: free context and error during failures

When g_option_context_parse or gst_discoverer_new fails, then there will
be memory leaks for ctx and err variables. Free'ing the same.

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

9 years agoaudiodecoder: try harder to avoid sending unnecessary tag updates
Tim-Philipp Müller [Sun, 16 Aug 2015 17:28:09 +0000 (18:28 +0100)]
audiodecoder: try harder to avoid sending unnecessary tag updates

9 years agovideodecoder: fix tag handling
Tim-Philipp Müller [Sun, 16 Aug 2015 16:55:22 +0000 (17:55 +0100)]
videodecoder: fix tag handling

Before we just merged everything in pretty much random ways
ad-hoc instead of keeping state properly. In 0.10 that was
how it worked, but in 1.x the tag events sent should always
reflect the latest state and replace any previous tags.

So save the upstream (stream) tags, and save the tags set
by the decoder subclass with merge mode, and then update
the merged tags whenever either of those two changes.

This slightly changes the behaviour of gst_video_decoder_merge_tags()
in case it is called multiple times, since now any call replaces
the previously-set tags. However, it leads to much more predictable
outcomes, and also we are not aware of any subclass which sets this
multiple times and expects all the tags set to be merged.

If more complex tag merging scenarios are required, we'll have
to add a new vfunc for that or the subclass has to intercept
the upstream tags itself and send merged tags itself.

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

9 years agotests: audiodecoder: add unit test for tag handling
Tim-Philipp Müller [Fri, 14 Aug 2015 16:59:29 +0000 (17:59 +0100)]
tests: audiodecoder: add unit test for tag handling

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

9 years agoaudiodecoder: fix tag handling
Tim-Philipp Müller [Fri, 14 Aug 2015 16:44:59 +0000 (17:44 +0100)]
audiodecoder: fix tag handling

Before we just merged everything in pretty much random ways
ad-hoc instead of keeping state properly. In 0.10 that was
how it worked, but in 1.x the tag events sent should always
reflect the latest state and replace any previous tags.

So save the upstream (stream) tags, and save the tags set
by the decoder subclass with merge mode, and then update
the merged tags whenever either of those two changes.

This slightly changes the behaviour of gst_audio_decoder_merge_tags()
in case it is called multiple times, since now any call replaces
the previously-set tags. However, it leads to much more predictable
outcomes, and also we are not aware of any subclass which sets this
multiple times and expects all the tags set to be merged.

If more complex tag merging scenarios are required, we'll have
to add a new vfunc for that or the subclass has to intercept
the upstream tags itself and send merged tags itself.

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

9 years agovorbisenc: use template subset check for accept-caps
Thiago Santos [Sun, 16 Aug 2015 01:23:15 +0000 (22:23 -0300)]
vorbisenc: use template subset check for accept-caps

It is faster than doing a query that propagates downstream and
should be enough

9 years agovorbisenc: use more accurate sink pad template caps
Thiago Santos [Sun, 16 Aug 2015 15:20:51 +0000 (12:20 -0300)]
vorbisenc: use more accurate sink pad template caps

Removes the need for custom caps query handling and makes it more
correct from the beginning on the template. It is a bit uglier
to read because there is 1 entry per channel but makes code easier
to maintain.

9 years agotheoraenc: use template subset check for accept-caps
Thiago Santos [Sun, 16 Aug 2015 01:22:41 +0000 (22:22 -0300)]
theoraenc: use template subset check for accept-caps

It is faster than doing a query that propagates downstream and
should be enough

9 years agoaudioencoder: add src and sink query methods
Thiago Santos [Sun, 16 Aug 2015 11:12:01 +0000 (08:12 -0300)]
audioencoder: add src and sink query methods

Allows subclasses to do their own handling of GstQuery and still
chain up to the parent class to handle the ones that they don't want
to handle

9 years agodecodebin: Fix list iteration
Edward Hervey [Sun, 16 Aug 2015 10:53:02 +0000 (12:53 +0200)]
decodebin: Fix list iteration

We were using the wrong variable ...

CID #1316477

9 years agodecodebin2: Handle flushing with multiple decode groups
Edward Hervey [Mon, 4 May 2015 09:19:28 +0000 (11:19 +0200)]
decodebin2: Handle flushing with multiple decode groups

When an upstream element wants to flush downstream, we need to take
all chains/groups into consideration.

To that effect, when a FLUSH_START event is seen, after having it
sent downstream we mark all those chains/groups as "drained" (as if
they had seen a EOS event on the endpads).

When a FLUSH_STOP event is received, we check if we need to switch groups.
This is done by checking if there are next groups. If so, we will switch
over to the latest next_group. The actual switch will be done when
that group is blocked.

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

9 years agodecodebin2: Forward event/queries for unlinked groups
Edward Hervey [Wed, 29 Apr 2015 13:56:39 +0000 (15:56 +0200)]
decodebin2: Forward event/queries for unlinked groups

When upstream events/queries reach sinkpads of unlinked groups (i.e.
no longer linked to the upstream demuxer), this patch attempts to find
the linked group and forward it upstream of that group.

This is done by adding upstream event/query probes on new group sinkpads
and then:
* Checking if the pad is linked or not (has a peer or not)
* If there is a peer, just let the event/query follow through normally
* If there is no peer, we find a pad to which to proxy it and return
  GST_PROBE_HANDLED if it succeeded (allowing the event/query to be properly
  returned to the initial called)

Note that this is definitely not thread-safe for the time being

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

9 years agoRevert "audiodecoder: expose default query handling function"
Thiago Santos [Sat, 15 Aug 2015 11:18:59 +0000 (08:18 -0300)]
Revert "audiodecoder: expose default query handling function"

Apparently I forgot how gobject works, there is no need to expose
it directly as one can call it from the parent_class pointer

This reverts commit 8a64592481dab985ca520a5b1cb394a609275c60.

9 years agoRevert "videodecoder: expose default query handling function"
Thiago Santos [Sat, 15 Aug 2015 11:14:00 +0000 (08:14 -0300)]
Revert "videodecoder: expose default query handling function"

Apparently I forgot how gobject works, there is no need to expose
it directly as one can call it from the parent_class pointer

This reverts commit ea9b6a7e3c4eea512650adf530b7f1acb0eccd84.

9 years agovorbisdec: use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 10:41:24 +0000 (07:41 -0300)]
vorbisdec: use default pad accept-caps handling

Avoids useless check of downstream caps when handling an
accept-caps query

9 years agotheoradec: use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 10:40:55 +0000 (07:40 -0300)]
theoradec: use default pad accept-caps handling

Avoids useless check of downstream caps when handling an
accept-caps query

9 years agoaudiodecoder: add option to use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 10:31:54 +0000 (07:31 -0300)]
audiodecoder: add option to use default pad accept-caps handling

Add gst_audio_decoder_set_use_default_pad_acceptcaps() to allow
subclasses to make videodecoder use the default pad acceptcaps
handling instead of resorting to the caps query that is, usually,
less efficient and unecessary

API: gst_audio_decoder_set_use_default_pad_acceptcaps

9 years agovideodecoder: add option to use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 10:20:25 +0000 (07:20 -0300)]
videodecoder: add option to use default pad accept-caps handling

Add gst_video_decoder_set_use_default_pad_acceptcaps() to allow
subclasses to make videodecoder use the default pad acceptcaps
handling instead of resorting to the caps query that is, usually,
less efficient and unecessary

API: gst_video_decoder_set_use_default_pad_acceptcaps

9 years agortpbasedepayload: Make stats creation threadsafe, fix a CRITICAL
Jan Schmidt [Sat, 15 Aug 2015 13:33:14 +0000 (23:33 +1000)]
rtpbasedepayload: Make stats creation threadsafe, fix a CRITICAL

Use the object lock to protect the internal segment when updating
against access from getting the stats property.

Fix a critical in gst-inspect or when retrieving the stats
before any segment has arrived by checking whether the
segment has been initted..

9 years agotypefind: Make the H.264 typefind a tiny bit more lenient.
Jan Schmidt [Tue, 11 Aug 2015 17:00:15 +0000 (03:00 +1000)]
typefind: Make the H.264 typefind a tiny bit more lenient.

When we see prefix NALs before a Subset SPS has been spotted,
it might just be because the stream was truncated at the
start, so don't count those as either 'bad' or 'good' packets.

9 years agoappsink: unref the preroll buffer and cleanup the segments on stop()
George Kiagiadakis [Fri, 14 Aug 2015 16:43:03 +0000 (18:43 +0200)]
appsink: unref the preroll buffer and cleanup the segments on stop()

Just for consistency. No need to keep data around.

9 years agoappsink: do not update preroll_caps unless the sink is prerolling
George Kiagiadakis [Fri, 14 Aug 2015 16:35:22 +0000 (18:35 +0200)]
appsink: do not update preroll_caps unless the sink is prerolling

Just for consistency with the preroll_segment

9 years agotests/appsink: add test to ensure that the segment returned by pull-preroll/sample...
George Kiagiadakis [Fri, 14 Aug 2015 16:06:03 +0000 (18:06 +0200)]
tests/appsink: add test to ensure that the segment returned by pull-preroll/sample is correct

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

9 years agoappsink: put the correct segment in the preroll sample
George Kiagiadakis [Thu, 18 Jun 2015 10:30:24 +0000 (12:30 +0200)]
appsink: put the correct segment in the preroll sample

last_segment is only being updated in dequeue_buffer(),
which is only called from _pull_sample(). _pull_preroll()
simply re-uses an old or dummy segment while the actual
one sits and waits in the queue.

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

9 years agovideodecoder: expose default query handling function
Thiago Santos [Fri, 14 Aug 2015 11:59:51 +0000 (08:59 -0300)]
videodecoder: expose default query handling function

Subclasses can use it to select what queries they want to handle
and forward the rest to the default handling function.

API: gst_video_decoder_sink_query_default

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

9 years agoaudiodecoder: expose default query handling function
Thiago Santos [Fri, 14 Aug 2015 11:58:58 +0000 (08:58 -0300)]
audiodecoder: expose default query handling function

Subclasses can use it to select what queries they want to handle
and forward the rest to the default handling function.

API: gst_audio_decoder_sink_query_default

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

9 years agocheck: Rename states unit test
Edward Hervey [Fri, 14 Aug 2015 09:11:10 +0000 (11:11 +0200)]
check: Rename states unit test

Makes it easier to differentiate from other modules states unit test

9 years agoplaysinkconvertbin: remove accept-caps handling
Thiago Santos [Fri, 14 Aug 2015 08:48:31 +0000 (05:48 -0300)]
playsinkconvertbin: remove accept-caps handling

Just let the internal element of the bin do it instead of forcing a
caps query to do it.

9 years agovideorate: fixate the pixel-aspect-ratio
Thiago Santos [Thu, 13 Aug 2015 16:52:17 +0000 (13:52 -0300)]
videorate: fixate the pixel-aspect-ratio

If the pixel-aspect-ratio is not fixed, try to get it as close
to 1/1 as possible

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

9 years agotheoraenc: mention videorate is often needed in docs
Tim-Philipp Müller [Tue, 11 Aug 2015 14:09:10 +0000 (15:09 +0100)]
theoraenc: mention videorate is often needed in docs

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

9 years agortp: Depend on the audio library
Sebastian Dröge [Tue, 11 Aug 2015 12:10:57 +0000 (14:10 +0200)]
rtp: Depend on the audio library

9 years agortpbaseaudiopayload: Copy metadata in the (de)payloader, but only the relevant ones
Sebastian Dröge [Wed, 1 Jul 2015 14:25:13 +0000 (16:25 +0200)]
rtpbaseaudiopayload: Copy metadata in the (de)payloader, but only the relevant ones

The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the audio tag.

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

9 years agovideorate: add support for bayer formats
Joan Pau Beltran [Mon, 10 Aug 2015 20:03:48 +0000 (22:03 +0200)]
videorate: add support for bayer formats

Since the videorate element just duplicates or drops frames
to achieve the desired framerate, it can accept video/x-bayer media
(in any format), which are not present in the current caps.
Just add "video/x-bayer(ANY);" to the caps of the static pad template
(fixing line style to pass the indent commit hook).

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

9 years agobasedepayloader: Don't re-timestamp with running-time
Nicolas Dufresne [Wed, 5 Aug 2015 19:32:54 +0000 (15:32 -0400)]
basedepayloader: Don't re-timestamp with running-time

There was a confusion, six depayloaders where passing through the
timestamp while the base class was re-timestamping to running
time. This inconstancy has been unnoticed has in most use cases
the incoming segment is [0, inifnity] in which case timestamps are
the same as running time. With DTS/PTS shifting added (to avoid
negative values) and pcapparse sending a different segment this
started being an issue.

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

9 years agovideoencoder: remove empty line to make g-i-scanner happy
Thiago Santos [Mon, 10 Aug 2015 12:49:19 +0000 (09:49 -0300)]
videoencoder: remove empty line to make g-i-scanner happy

gstvideoencoder.h:228: Warning: GstVideo: "@transform_meta"
parameter unexpected at this location:
 * @transform_meta: Optional. Transform the metadata on ...

9 years agovideodecoder: documentation cleanup
Thiago Santos [Mon, 10 Aug 2015 11:17:09 +0000 (08:17 -0300)]
videodecoder: documentation cleanup

Remove some whitespace and break lines longer than 80 columns

9 years agotests: audiodecoder: add test to make sure gap is pushed before segment
Thiago Santos [Mon, 10 Aug 2015 03:21:42 +0000 (00:21 -0300)]
tests: audiodecoder: add test to make sure gap is pushed before segment

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

9 years agovideodecoder: push pending events before gap
Thiago Santos [Mon, 10 Aug 2015 02:23:05 +0000 (23:23 -0300)]
videodecoder: push pending events before gap

Push all pending events before pushing the gap. This ensures the
segment is pushed before the gap so it can be properly translated
to the running time

Includes unit test.

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

9 years agooggdemux: Set chain pointers to NULL
Olivier Crête [Thu, 30 Jul 2015 20:39:03 +0000 (16:39 -0400)]
oggdemux: Set chain pointers to NULL

Otherwise, they will refer to freed memory

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

9 years agodecodebin: fix deadend_details string leak
Vineeth TM [Fri, 31 Jul 2015 04:31:56 +0000 (13:31 +0900)]
decodebin: fix deadend_details string leak

deadend_details need not be returned when the pad is not a deadend.
Hence checking if res value is TRUE and clearing the string instead of
passing it on

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

9 years agovideotestsrc: Don't set DTS on buffer
Nicolas Dufresne [Tue, 4 Aug 2015 18:41:10 +0000 (14:41 -0400)]
videotestsrc: Don't set DTS on buffer

DTS is for encoded data and have no meaning for raw. It better to not
set it, as it's confusing.

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

9 years agooggdemux: Return FLUSHING if pad if flushing
Olivier Crête [Thu, 30 Jul 2015 22:43:19 +0000 (18:43 -0400)]
oggdemux: Return FLUSHING if pad if flushing

If the initial seek fails because the pad is
flushing, then return GST_FLOW_FLUSHING instead
of an error.

9 years agortpbuffer: avoid accessing NULL buffer even more
Brian Peters [Thu, 30 Jul 2015 14:16:57 +0000 (15:16 +0100)]
rtpbuffer: avoid accessing NULL buffer even more

Previous commit was incompletely applied.

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

9 years agortp: buffer: don't access NULL buffer pointer
Brian Peters [Thu, 30 Jul 2015 13:30:44 +0000 (14:30 +0100)]
rtp: buffer: don't access NULL buffer pointer

unmap will set rtpbuffer->buffer to NULL, so we need to
save the pointer to access it while the RTP buffer is
unmapped.

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

9 years agortpbasedepayload: fix leaks in error code paths
Tim-Philipp Müller [Thu, 30 Jul 2015 11:50:56 +0000 (12:50 +0100)]
rtpbasedepayload: fix leaks in error code paths

This was introduced when reshuffling the buffer unmaps
in commit bc14cdf529e21356ea7b2c8f34614958a91f7260
rtp: rtpbasedepayload: add process_rtp_packet() vfunc

Fixes make check-valgrind.

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

9 years agotextoverlay: Query downstream caps for checking if caps features are supported, not...
Sebastian Dröge [Tue, 28 Jul 2015 10:57:20 +0000 (13:57 +0300)]
textoverlay: Query downstream caps for checking if caps features are supported, not just accept-caps

accept-caps is not recursive and might stop at the next downstream element,
while caps queries are generally recursive. The next element might accept any
capsfeatures we want, but that doesn't mean that further downstream it will
also work.

Additionally for the future:
We should probably check if downstream *prefers* the
overlay meta, and only enforce usage of it if we can't handle
the format ourselves and thus would have to drop the overlays.
Otherwise we should prefer what downstream wants here.

9 years agobasetextoverlay: Use the extents rectangle for positioning
Nicolas Dufresne [Thu, 23 Jul 2015 19:28:42 +0000 (15:28 -0400)]
basetextoverlay: Use the extents rectangle for positioning

the extents rectangle is what you need to know to properly position
a buffer that has been rendered in a surface of the ink rectangle
size. This patch make the placement on par with the placement we had
before without having to over allocate.

This patch also enable placement for vertical rendering. Note that
the halginement, valighment and line-alignment default are set to
the previous default when this property is set. This is for backward
compatibility, you can change the value after setting vertical render.

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

9 years agobasetextoverlay: Fix clipping issues
Nicolas Dufresne [Thu, 23 Jul 2015 19:19:47 +0000 (15:19 -0400)]
basetextoverlay: Fix clipping issues

This patch uses the ink rectangle in order to compute the size
of the surface require to render. It also correctly compute the
transformation matrix as the ink_rect position might not be at
0, 0. Additionally, shadow_offset and outline_offset (which is
in fact the diameter of a dot, not a really an offset) is now
taken into account. Redundant matrix operation has been removed
for the vertical rendering.

Take note that the matrix operation in cairo are excuted in
reverse order.

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