platform/upstream/gst-plugins-base.git
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

9 years agotools: gst-play: seek at least in steps of a second
Tim-Philipp Müller [Fri, 24 Jul 2015 09:15:21 +0000 (10:15 +0100)]
tools: gst-play: seek at least in steps of a second

In case of very short files we might end up seeking in
steps of a fraction of a second, which is silly and gives
the impression that seeking doesn't actually work. Make
minimum seek step a second instead.

9 years agobasetextoverlay: Improve further the negotiation function
Nicolas Dufresne [Wed, 22 Jul 2015 20:19:48 +0000 (16:19 -0400)]
basetextoverlay: Improve further the negotiation function

* Only send the caps event once if the query had support for the
  overlay composition meta.
* Only do the allocation query if it is supported through caps.
* Send overlay_caps before doing allocation query rather then normal
  caps

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

9 years agobasetextoverlay: Add missing linking against -lm
Rico Tzschichholz [Wed, 22 Jul 2015 18:50:10 +0000 (20:50 +0200)]
basetextoverlay: Add missing linking against -lm

9 years agobasetextoverlay: Ensure meta coordinate are in stream scale
Nicolas Dufresne [Tue, 21 Jul 2015 22:40:59 +0000 (18:40 -0400)]
basetextoverlay: Ensure meta coordinate are in stream scale

The GstVideoOverlayComposition meta coordinates should always be
in stream scale, regardless of the window size downstream. This
way the sink can always scale the composition if the window size
have changed after a buffer (with his meta) was rendered before.

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

9 years agobasetextoverlay: Reorder and cleanup class attribute
Nicolas Dufresne [Tue, 21 Jul 2015 18:12:41 +0000 (14:12 -0400)]
basetextoverlay: Reorder and cleanup class attribute

Also add a minimum amount of comment so we can understand what
is doing what.

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

9 years agotypefind: Treat *.umx (Unreal Music Package) as audio/x-mod
Ville Skyttä [Wed, 15 Jul 2015 18:56:17 +0000 (21:56 +0300)]
typefind: Treat *.umx (Unreal Music Package) as audio/x-mod

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

9 years agobasetextoverlay: Fix upstream composition handling
Nicolas Dufresne [Mon, 20 Jul 2015 20:25:10 +0000 (16:25 -0400)]
basetextoverlay: Fix upstream composition handling

We need to update the render when upstream composition changes
or if it was removed.

http://bugzilla.gnome.org/show_bug.cgi?id=751157

9 years agobasetextoverlay: Clear reconfigure flags before negotation
Nicolas Dufresne [Mon, 20 Jul 2015 20:20:24 +0000 (16:20 -0400)]
basetextoverlay: Clear reconfigure flags before negotation

This avoids negotiating twice. Current the _setcaps() patch does
not clear the initial reconfigure flags, which lead to systematic
double renegotiation.

http://bugzilla.gnome.org/show_bug.cgi?id=751157

9 years agobasetestoverlay: Always query window dimension
Nicolas Dufresne [Mon, 20 Jul 2015 19:55:07 +0000 (15:55 -0400)]
basetestoverlay: Always query window dimension

Remove the optimization to skip allocation query so we can
always have the latest window size information. Also, correctly
deal with the case where there is no window size information.

http://bugzilla.gnome.org/show_bug.cgi?id=751157

9 years agobasetextoverlay: Send caps before doing allocation query
Nicolas Dufresne [Mon, 20 Jul 2015 19:11:06 +0000 (15:11 -0400)]
basetextoverlay: Send caps before doing allocation query

This is currently a limitation of BaseTransform base class. Which means
pretty much every filters out there.

http://bugzilla.gnome.org/show_bug.cgi?id=751157

9 years agobasetextoverlay: Log GstVideoOverlayComposition negotiation
Lubosz Sarnecki [Thu, 18 Jun 2015 04:31:00 +0000 (06:31 +0200)]
basetextoverlay: Log GstVideoOverlayComposition negotiation

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

9 years agobasetextoverlay: Receive window size event and adjust rendering
Lubosz Sarnecki [Wed, 25 Mar 2015 13:10:10 +0000 (14:10 +0100)]
basetextoverlay: Receive window size event and adjust rendering

* cache window size event and update handle ratio
* init width with 1, don't use 0
* don't update overlay when receiving same window size
* receive window size from allocation query

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

9 years agobasetestoverlay: Pass down meta buffers from upstream that supports GstVideoOverlayCo...
Lubosz Sarnecki [Thu, 19 Mar 2015 16:59:16 +0000 (17:59 +0100)]
basetestoverlay: Pass down meta buffers from upstream that supports GstVideoOverlayComposition

This makes pipelines with multiple textoverlay elements possible.
The meta data is collected from the upstream textoverlay element,
merged into a new GstVideoOverlayComposition and passed down downstream.

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

9 years agodepayloader: Use input segment start
Nicolas Dufresne [Fri, 10 Jul 2015 16:49:01 +0000 (12:49 -0400)]
depayloader: Use input segment start

When there is no clock_base provided, the start position is
set to 0 instead of the original segment start value. This
would break synchronization if start was not 0.

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

9 years agotypefindfunctions: add DASH MPD typefinder
Tim-Philipp Müller [Thu, 16 Jul 2015 20:26:30 +0000 (21:26 +0100)]
typefindfunctions: add DASH MPD typefinder

Moved from dashdemux plugin in -bad.

9 years agojsseek: fix memory leaks
Vineeth T M [Thu, 16 Jul 2015 01:07:45 +0000 (10:07 +0900)]
jsseek: fix memory leaks

ctx, list and visual_entries are not being freed
resulting in memory leaks

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

9 years agoUpdate mailing list address from sourceforge to freedesktop
Tim-Philipp Müller [Thu, 16 Jul 2015 16:15:33 +0000 (17:15 +0100)]
Update mailing list address from sourceforge to freedesktop

9 years agotools: gst-device-monitor: fix props leak
Tim-Philipp Müller [Thu, 16 Jul 2015 09:54:29 +0000 (10:54 +0100)]
tools: gst-device-monitor: fix props leak

CID 1311942

9 years agodevice-monitor: print device properties
Wim Taymans [Wed, 15 Jul 2015 16:22:28 +0000 (18:22 +0200)]
device-monitor: print device properties

9 years agovideo: improve logging
Wim Taymans [Wed, 15 Jul 2015 10:45:10 +0000 (12:45 +0200)]
video: improve logging

Add logging categories for most video objects.
Remove some useless debug lines in video-info and videotestsrc.
Add a performance debug line in the video scaler.

9 years agojsseek: fix tag list leak
Vineeth TM [Wed, 15 Jul 2015 03:46:07 +0000 (12:46 +0900)]
jsseek: fix tag list leak

tags are being leaked while updating the streams in jsseek

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

9 years agoplayback-test: fix tag list leak
Vineeth TM [Wed, 15 Jul 2015 01:50:46 +0000 (10:50 +0900)]
playback-test: fix tag list leak

tags are being leaked while updating the streams in playback-test

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

9 years agortsp: Include generated enum types in gstrtsptransport.h
Olivier Crête [Tue, 14 Jul 2015 21:17:34 +0000 (17:17 -0400)]
rtsp: Include generated enum types in gstrtsptransport.h

GST_TYPE_RTSP_LOWER_TRANS used to be defined in there, not
including the generated file makes older gst-p-good fail to build,
so it constitues an API break.

9 years agosocketsrc: add caps property
Wim Taymans [Tue, 14 Jul 2015 13:58:43 +0000 (15:58 +0200)]
socketsrc: add caps property

Add caps property that allows the src to easily negotiate a format.

9 years agoplayback-test: fix memory leak
Vineeth T M [Tue, 14 Jul 2015 04:00:03 +0000 (13:00 +0900)]
playback-test: fix memory leak

context during main and filter list during init
visualization are not being freed resulting in memory leak
and app->vis_entries

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

9 years agodecodebin: only try to expose complete groups
Thiago Santos [Tue, 14 Jul 2015 03:03:10 +0000 (00:03 -0300)]
decodebin: only try to expose complete groups

When switching to a new chain it might be that this new chain
is not yet ready to be exposed so check it before exposing.

Can happen with mpegts that might delay adding pads or pushing data
until it has found the PMT/PAT/PCR and that may take a while depending
on the stream.

It happened frequently with HLS:
http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8

9 years agodecodebin: fix typo
Thiago Santos [Tue, 14 Jul 2015 03:02:40 +0000 (00:02 -0300)]
decodebin: fix typo

Hided -> hid

9 years agortp: rtpbasedepayload: add process_rtp_packet() vfunc
Tim-Philipp Müller [Wed, 27 May 2015 17:55:20 +0000 (18:55 +0100)]
rtp: rtpbasedepayload: add process_rtp_packet() vfunc

Add process_rtp_packet() vfunc that works just like the
existing process() vfunc only that it takes the GstRTPBuffer
that the base class has already mapped (with MAP_READ),
which means that the subclass doesn't have to map it again,
which allows more performant processing of input buffers
for most RTP depayloaders.

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

9 years agoplaysink: Require the streamvolume interface on the sink when using the sink's volume...
Sebastian Dröge [Fri, 10 Jul 2015 08:53:24 +0000 (11:53 +0300)]
playsink: Require the streamvolume interface on the sink when using the sink's volume/mute properties

If the sink has properties named volume and mute, we have no idea about their
meaning. The streamvolume interface standardizes the meaning.

In the case of osxaudiosink for example, the current volume property has a
range of 0.0 to 1.0, but we need 0.0 to 10.0 or similar. Also osxaudiosink
has no mute property. As such, the volume element should be used here instead.

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

9 years agodoc/build: Fix doc typos
Nicolas Dufresne [Thu, 9 Jul 2015 14:47:20 +0000 (10:47 -0400)]
doc/build: Fix doc typos

This minor update should workaround a build system bug. While the
makefile has been updated to generate more enum type, there is nothing
that updates the header and would lead to the generated code to be
produced again. This minor doc fix should ensure no one get a build with
missing symbols.

9 years agoRevert "win32 def: Remove video flags symbol that don't exist"
Sebastian Dröge [Thu, 9 Jul 2015 14:20:55 +0000 (17:20 +0300)]
Revert "win32 def: Remove video flags symbol that don't exist"

This reverts commit b20cc6a02a007521eabceeceb60356e5a252f38a.

They are actually there in the autogenerated enum header/source file.

9 years agowin32 def: Remove video flags symbol that don't exist
Nicolas Dufresne [Thu, 9 Jul 2015 14:15:11 +0000 (10:15 -0400)]
win32 def: Remove video flags symbol that don't exist

There has been a some refactoring and these symbols don't exist anynmore.
So remove it from the win32 def. This should fix distcheck.

9 years agortpbasedepayload: fix typo in comment
Tim-Philipp Müller [Tue, 7 Jul 2015 18:56:52 +0000 (19:56 +0100)]
rtpbasedepayload: fix typo in comment

9 years agortpbasepayload: fix possible segment event leak
Tim-Philipp Müller [Tue, 7 Jul 2015 14:05:59 +0000 (15:05 +0100)]
rtpbasepayload: fix possible segment event leak

Need to clear it when shutting down, not when starting up.
Fixes leak in rtp-payloading unit test.

9 years agovideo/audio meta: transform_func: return FALSE if not supported or failed
Hyunjun Ko [Tue, 7 Jul 2015 13:23:57 +0000 (22:23 +0900)]
video/audio meta: transform_func: return FALSE if not supported or failed

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

9 years agoxvimagesink: refactor to use gst_pad_push_event
Vineeth T M [Tue, 7 Jul 2015 10:55:44 +0000 (19:55 +0900)]
xvimagesink: refactor to use gst_pad_push_event

Right now navigation events are being sent via gst_pad_send_event
after getting the peer pad of the sinkpad.
But the same functionality can be done using gst_pad_push_event
without need of getting peer pad in xvimagesink.

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

9 years agovideo: Add some more GTypes for enums
Sebastian Dröge [Tue, 7 Jul 2015 11:32:25 +0000 (14:32 +0300)]
video: Add some more GTypes for enums

9 years agoGstVideoScaler: Initialised scaling functions to get rid of compiler messages
Tobias Mueller [Thu, 2 Jul 2015 05:36:12 +0000 (07:36 +0200)]
GstVideoScaler: Initialised scaling functions to get rid of compiler messages

E.g.

video-scaler.c: In function 'gst_video_scaler_horizontal':
video-scaler.c:1332:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   func (scale, src, dest, dest_offset, width, n_elems);
   ^

video-scaler.c: In function 'gst_video_scaler_vertical':
video-scaler.c:1373:3: error: 'func' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   func (scale, src_lines, dest, dest_offset, width, n_elems);
   ^

GCC's analyses seem to be correct, for the simple fact that if you pass
get_functions a known format, but no hscale or vscale, it'll return
True without having done anything.
Some callers check for the scale values to be not NULL, but then
hscale->resampler.max_taps could return 0.
A different approach to the one presented in this patch is to check
for those max_taps, too, before calling get_functions.

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

9 years agoximagesink: Post navigation events as message on the bus
Vineeth T M [Tue, 7 Jul 2015 10:45:43 +0000 (19:45 +0900)]
ximagesink: Post navigation events as message on the bus

post unhandled events to bus, so that
application can utilise the same if needed

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

9 years agoximagesink: fix navigation event leak
Vineeth T M [Tue, 7 Jul 2015 10:35:40 +0000 (19:35 +0900)]
ximagesink: fix navigation event leak

Create event only when pad is created
and send the event to pad.

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

9 years agoxvimagesink: fix pad memory leak
Vineeth TM [Tue, 7 Jul 2015 00:31:01 +0000 (09:31 +0900)]
xvimagesink: fix pad memory leak

pad is not being freed when xwindow is not created

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

9 years agogst-play: fix memory leak
Vineeth TM [Mon, 6 Jul 2015 23:53:09 +0000 (08:53 +0900)]
gst-play: fix memory leak

In gst-play, for GST_MESSAGE_ELEMENT bus message,
event is being allocated through
gst_navigation_message_parse_event, but not freed.

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

9 years agox/xv_image_sink: rename for consitency
Stefan Sauer [Fri, 3 Jul 2015 19:48:52 +0000 (21:48 +0200)]
x/xv_image_sink: rename for consitency

Insert '_' to match the CamelCase. This is needed so that the plugin docs can
guess the names from the type name.

9 years agodocs: update master doc for plugins
Stefan Sauer [Fri, 3 Jul 2015 19:35:32 +0000 (21:35 +0200)]
docs: update master doc for plugins

9 years agotypefind: also check moof to recognize video/quicktime
Thiago Santos [Mon, 6 Jul 2015 13:05:53 +0000 (10:05 -0300)]
typefind: also check moof to recognize video/quicktime

Helps recognizing fragmented files with the right type

9 years agodocs: Add new symbols to the docs and .def files
Sebastian Dröge [Mon, 6 Jul 2015 12:36:07 +0000 (15:36 +0300)]
docs: Add new symbols to the docs and .def files

9 years ago{audio,video}info: Add GST_TYPE_{AUDIO,VIDEO}_INFO macros
Sebastian Dröge [Mon, 6 Jul 2015 09:53:15 +0000 (12:53 +0300)]
{audio,video}info: Add GST_TYPE_{AUDIO,VIDEO}_INFO macros

9 years agovideo-info: implement GstVideoInfo as boxed type
Marcin Kolny [Mon, 6 Jul 2015 09:36:58 +0000 (11:36 +0200)]
video-info: implement GstVideoInfo as boxed type

GstVideoInfo usually is created on the stack, but boxed type can be useful
for bindings.

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

9 years agortcpbuffer: Fix validation of packets with padding
Stian Selnes [Thu, 2 Jul 2015 18:50:00 +0000 (20:50 +0200)]
rtcpbuffer: Fix validation of packets with padding

The padding (if any) is included in the length of the last packet, see
RFC 3550.

Section 6.4.1:
   padding (P): 1 bit
      If the padding bit is set, this individual RTCP packet contains
      some additional padding octets at the end which are not part of
      the control information but are included in the length field. The
      last octet of the padding is a count of how many padding octets
      should be ignored, including itself (it will be a multiple of
      four).

Section A.2:
   *  The padding bit (P) should be zero for the first packet of a
      compound RTCP packet because padding should only be applied, if it
      is needed, to the last packet.

   *  The length fields of the individual RTCP packets must add up to
      the overall length of the compound RTCP packet as received.

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

9 years agovideodecoder: Fix setting default pixel-aspect-ratio
Stian Selnes [Wed, 1 Jul 2015 15:09:35 +0000 (17:09 +0200)]
videodecoder: Fix setting default pixel-aspect-ratio

It's needed to check if pixel-aspect-ratio exists before fixating.
It does not exist if input caps is not set yet and allowed caps
does not contain pixel-aspect-ratio (e.g. when using GST_VIDEO_CAPS_MAKE)

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

9 years agoAutomatic update of common submodule
Stefan Sauer [Fri, 3 Jul 2015 19:58:04 +0000 (21:58 +0200)]
Automatic update of common submodule

From f74b2df to 9aed1d7

9 years agodocs: order and canonicalize the -sections.txt file
Stefan Sauer [Fri, 3 Jul 2015 19:16:27 +0000 (21:16 +0200)]
docs: order and canonicalize the -sections.txt file

Have all sections in alphabetical order. Also make the macro order consistent.
This is a preparation for generating the file. Remove GET_CLASS macro for
some elements, since it is not used and the header is not installed.

9 years agocdparanoiasrc: remove unused defines
Stefan Sauer [Fri, 3 Jul 2015 19:09:29 +0000 (21:09 +0200)]
cdparanoiasrc: remove unused defines

9 years agovideoscale: fix debug categories
Stefan Sauer [Fri, 3 Jul 2015 19:08:03 +0000 (21:08 +0200)]
videoscale: fix debug categories

Use a local category for the default category and fix the import for the
performance category.

9 years agobasetextoverlay: Fix bug with unused upstream_has_meta
Nicolas Dufresne [Thu, 2 Jul 2015 14:47:45 +0000 (10:47 -0400)]
basetextoverlay: Fix bug with unused upstream_has_meta

The intention was to skip the allocation query if upstream has decided
to use the overlay meta feature in the caps. We can safely assume that
upstream have done that query already before making this decision. This
is an optimization since doing allocation queries is relatively
expensive.

CID #1308943

9 years agoRevert "basetextoverlay: remove dead code"
Nicolas Dufresne [Thu, 2 Jul 2015 14:27:39 +0000 (10:27 -0400)]
Revert "basetextoverlay: remove dead code"

This reverts commit e863e5f8a98ceec0ec0bd24274bbae8795e0ab75.

9 years agobasetextoverlay: remove dead code
Luis de Bethencourt [Thu, 2 Jul 2015 13:52:47 +0000 (14:52 +0100)]
basetextoverlay: remove dead code

upstream_has_meta is set to FALSE and never changed. The two checks for if
upstream_has_meta will never go to the true branch. Removing the boolean
and the true branches of these checks.

CID #1308943

9 years agoaudioencoder: Don't try to get buffers from an empty adapter
Sebastian Dröge [Thu, 2 Jul 2015 11:15:58 +0000 (13:15 +0200)]
audioencoder: Don't try to get buffers from an empty adapter

9 years ago{audio,video}{en,de}oder: Also copy POOL metas and make sure to copy over metas when...
Sebastian Dröge [Wed, 1 Jul 2015 08:58:07 +0000 (10:58 +0200)]
{audio,video}{en,de}oder: Also copy POOL metas and make sure to copy over metas when creating subbuffers

POOL meta just means that this specific instance of the meta is related to a
pool, a copy should be made when reasonable and the flag should just not be
set in the copy.

9 years agoaudiodecoder: Add transform_meta() vfunc with default implementation
Sebastian Dröge [Mon, 29 Jun 2015 16:00:17 +0000 (18:00 +0200)]
audiodecoder: Add transform_meta() vfunc with default implementation

The default implementation copies all metadata without tags, and metadata
with only the audio tag. Same behaviour as in GstAudioFilter.

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

9 years agoaudioencoder: Add transform_meta() vfunc with default implementation
Sebastian Dröge [Mon, 29 Jun 2015 15:38:38 +0000 (17:38 +0200)]
audioencoder: Add transform_meta() vfunc with default implementation

The default implementation copies all metadata without tags, and metadata
with only the audio tag. Same behaviour as in GstAudioFilter.

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

9 years agovideodecoder: Add transform_meta() vfunc with default implementation
Sebastian Dröge [Mon, 29 Jun 2015 13:58:38 +0000 (15:58 +0200)]
videodecoder: Add transform_meta() vfunc with default implementation

The default implementation copies all metadata without tags, and metadata
with only the video tag. Same behaviour as in GstVideoFilter.

This currently does not work if the ::parse() vfunc is implemented as all
metas are getting lost inside GstAdapter.

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