platform/upstream/gst-plugins-bad.git
9 years agoopengl: glstero* are only built with full OpenGL
Nicolas Dufresne [Fri, 19 Jun 2015 02:11:05 +0000 (22:11 -0400)]
opengl: glstero* are only built with full OpenGL

Don't try to register the elements unless they are built.

9 years agostyle: Remove white spaces at the end of line
Nicolas Dufresne [Fri, 19 Jun 2015 01:09:24 +0000 (21:09 -0400)]
style: Remove white spaces at the end of line

9 years agoglviewconvert: Fix GLES2 compatibility
Nicolas Dufresne [Thu, 18 Jun 2015 22:09:55 +0000 (18:09 -0400)]
glviewconvert: Fix GLES2 compatibility

9 years agoglviewconvert: Fix broken validity check
Nicolas Dufresne [Thu, 18 Jun 2015 22:02:21 +0000 (18:02 -0400)]
glviewconvert: Fix broken validity check

9 years agoh264parse: Move PAR calcs, and use them for stereoscopic half-aspect
Jan Schmidt [Mon, 15 Jun 2015 06:06:41 +0000 (16:06 +1000)]
h264parse: Move PAR calcs, and use them for stereoscopic half-aspect

Move the pixel-aspect-ratio calculations higher up in caps
determination, so the results are available for a call to
gst_video_multiview_guess_half_aspect() when stereoscopic video
is detected.

9 years ago3dvideo: Add simple gtk example stereoscopic video player
Jan Schmidt [Fri, 29 May 2015 17:09:17 +0000 (03:09 +1000)]
3dvideo: Add simple gtk example stereoscopic video player

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

9 years agogl: Add glviewconvert, glstereomix and glstereosplit elements
Jan Schmidt [Fri, 29 May 2015 16:29:04 +0000 (02:29 +1000)]
gl: Add glviewconvert, glstereomix and glstereosplit elements

Conversion elements for transforming multiview/stereoscopic video

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

9 years agoglimagesink: Support multiview/stereoscopic video
Jan Schmidt [Fri, 29 May 2015 16:26:32 +0000 (02:26 +1000)]
glimagesink: Support multiview/stereoscopic video

Support video with multiview info in the caps, transform
it to mono anaglyph by default, but allow for configuring
other output modes and handoff to the app via
the draw signal.

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

9 years agogl libs: Add glviewconvert helper object
Jan Schmidt [Fri, 29 May 2015 16:21:43 +0000 (02:21 +1000)]
gl libs: Add glviewconvert helper object

Add API for a helper object that can convert between different
stereoscopic video representations, and later do filtering
of multiple view streams.

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

9 years agodashdemux: added warnings in gst_mpd_client_setup_streaming function
Florin Apostol [Thu, 18 Jun 2015 15:20:26 +0000 (16:20 +0100)]
dashdemux: added warnings in gst_mpd_client_setup_streaming function

Added some warning messages in gst_mpd_client_setup_streaming to help
debug situations when the function will return FALSE.

Renamed a wrongly spelled variable.

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

9 years agodashdemux: corrected comments in gstmpdparser.h
Florin Apostol [Thu, 18 Jun 2015 11:21:43 +0000 (12:21 +0100)]
dashdemux: corrected comments in gstmpdparser.h

Corrected some comments in gstmpdparser.h file.
Moved gst_mpd_client_get_adaptation_sets function to be grouped with
other functions from AdaptationSet group

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

9 years agodashdemux: fixed getting representation based on max bandwidth
Florin Apostol [Thu, 18 Jun 2015 12:08:25 +0000 (13:08 +0100)]
dashdemux: fixed getting representation based on max bandwidth

The gst_mpdparser_get_rep_idx_with_max_bandwidth function assumes
representations are ordered by bandwidth and incorrectly returns the
first one when wanting the one with minimum bandwidth.

Corrected gst_mpdparser_get_rep_idx_with_max_bandwidth function to get the
correct representation in case max_bandwidth parameter is 0.

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

9 years agoandroidmedia: Allow the application to provide the Java VM
Sebastian Dröge [Thu, 18 Jun 2015 12:38:04 +0000 (14:38 +0200)]
androidmedia: Allow the application to provide the Java VM

In JNI_OnLoad() we will already get the Java VM passed and could
just directly use that. gstreamer_android-1.0.c will now provide
this to us.

Reason for this is that apparently not all Android system are
providing the JNI functions to get the currently running Java VMs, so
we would fail to get. With this we will always be able to get the Java
VM on such systems.

9 years agoandroidmedia: Prefer software codecs over hardware codecs for audio
Sebastian Dröge [Thu, 18 Jun 2015 12:31:39 +0000 (14:31 +0200)]
androidmedia: Prefer software codecs over hardware codecs for audio

Hardware codecs don't make sense for audio and are generally less reliable on
Android than the software codecs.

9 years agoandroidmedia: Failing to detach a thread is not that much of a problem
Sebastian Dröge [Thu, 18 Jun 2015 12:29:33 +0000 (14:29 +0200)]
androidmedia: Failing to detach a thread is not that much of a problem

Someone else might have detached it before us, so make this just normal debug
output instead of a GST_ERROR()

9 years agoandroidmedia: Don't fail if JNI_CreateJavaVM can't be found
Sebastian Dröge [Thu, 18 Jun 2015 08:43:53 +0000 (10:43 +0200)]
androidmedia: Don't fail if JNI_CreateJavaVM can't be found

We only need that if no Java VM is running yet, and all usual cases,
i.e. when calling GStreamer from an actual Android app, there will already
be a Java VM we can just use.

It seems like some phones come without that symbol, let's hope they come
with the other symbol but for now don't make a missing JNI_CreateJavaVM fatal.

9 years agofpsdisplaysink: get rendered and dropped stats from QOS messages
Alessandro Decina [Thu, 18 Jun 2015 05:59:18 +0000 (12:59 +0700)]
fpsdisplaysink: get rendered and dropped stats from QOS messages

Use QOS messages to update rendered and dropped frame stats. This is
the only accurate method. The old method didn't take max-lateness and
latency into account.

9 years agonalutils: trivial patch to check if
Vineeth TM [Wed, 17 Jun 2015 01:44:16 +0000 (10:44 +0900)]
nalutils: trivial patch to check if

trivial patch to add proper ( while checking for if(G_UNLIKELY())

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

9 years agoAutomatic update of common submodule
Nicolas Dufresne [Tue, 16 Jun 2015 21:48:51 +0000 (17:48 -0400)]
Automatic update of common submodule

From 6015d26 to f74b2df

9 years agogtkglwidget: Const'ify another array
Sebastian Dröge [Mon, 15 Jun 2015 19:32:43 +0000 (21:32 +0200)]
gtkglwidget: Const'ify another array

9 years agogtkglwidget: Calculate the viewport size ourselves
Sebastian Dröge [Mon, 15 Jun 2015 19:29:46 +0000 (21:29 +0200)]
gtkglwidget: Calculate the viewport size ourselves

Getting the current viewport and modifying it relatively will produce an
interesting feedback loop during widget resizing. Over a few frames we
will gradually move the viewport a bit until it converged again, adding
unnecessary additional borders at the top and left.

9 years agogtk: Use the display width/height for the widget's preferred width/height
Sebastian Dröge [Mon, 15 Jun 2015 19:24:01 +0000 (21:24 +0200)]
gtk: Use the display width/height for the widget's preferred width/height

9 years agogtksink: Add support for xRGB/BGRx
Sebastian Dröge [Mon, 15 Jun 2015 18:45:11 +0000 (20:45 +0200)]
gtksink: Add support for xRGB/BGRx

9 years agogtk: Cairo color formats are in native endianness, GStreamer's in memory order
Sebastian Dröge [Mon, 15 Jun 2015 18:39:59 +0000 (20:39 +0200)]
gtk: Cairo color formats are in native endianness, GStreamer's in memory order

CAIRO_FORMAT_ARGB32 is ARGB on big endian and BGRA on little endian.

9 years agogtk: Implement ignore-alpha property and enable it by default
Sebastian Dröge [Mon, 15 Jun 2015 18:35:38 +0000 (20:35 +0200)]
gtk: Implement ignore-alpha property and enable it by default

9 years agogtk: Sync properties from the sink to the widget upon widget creation
Sebastian Dröge [Mon, 15 Jun 2015 18:13:57 +0000 (20:13 +0200)]
gtk: Sync properties from the sink to the widget upon widget creation

9 years agompegtsmux: Remove redundant min_dts
Nicolas Dufresne [Mon, 15 Jun 2015 14:08:57 +0000 (10:08 -0400)]
mpegtsmux: Remove redundant min_dts

After few iteration, this variable became the same as dts. It's not
the min as the name says, but the dts of the current buffer. Simply
remove and place with dts. Also move the debug trace to actually
print the signed version of the running-time dts.

9 years agoglimagesink: add missing handle-events/ignore-alpha property to the bin
Matthew Waters [Mon, 15 Jun 2015 12:43:54 +0000 (22:43 +1000)]
glimagesink: add missing handle-events/ignore-alpha property to the bin

9 years agogtk: implement pixel and display aspect ratio handling
Matthew Waters [Mon, 15 Jun 2015 08:28:37 +0000 (18:28 +1000)]
gtk: implement pixel and display aspect ratio handling

9 years agovideoaggregator: Print some debug output if we change the timestamp offset
Sebastian Dröge [Mon, 15 Jun 2015 12:29:04 +0000 (14:29 +0200)]
videoaggregator: Print some debug output if we change the timestamp offset

9 years agovideoaggregator: Add some more debug output
Sebastian Dröge [Mon, 15 Jun 2015 12:25:43 +0000 (14:25 +0200)]
videoaggregator: Add some more debug output

9 years agoandroidmedia: Move variables into the scope where they are needed
Sebastian Dröge [Mon, 15 Jun 2015 12:22:00 +0000 (14:22 +0200)]
androidmedia: Move variables into the scope where they are needed

9 years agovideoaggregator: Don't update the ts-offset before updating the actual configured...
Sebastian Dröge [Mon, 15 Jun 2015 12:19:05 +0000 (14:19 +0200)]
videoaggregator: Don't update the ts-offset before updating the actual configured caps

9 years agovideoaggregator: Remember if the last LATENCY query returned live or not and use...
Sebastian Dröge [Mon, 15 Jun 2015 12:18:39 +0000 (14:18 +0200)]
videoaggregator: Remember if the last LATENCY query returned live or not and use the in the QoS messages

9 years agoandroidmedia: Don't query supported color formats for non-video codecs
Sebastian Dröge [Mon, 15 Jun 2015 10:20:24 +0000 (12:20 +0200)]
androidmedia: Don't query supported color formats for non-video codecs

9 years agompegtsmux: fix build error
Vineeth TM [Mon, 15 Jun 2015 01:34:56 +0000 (10:34 +0900)]
mpegtsmux: fix build error

after e000a6f0a4984fbe81190df6cd439c70dafde3d6, there is build error in bad plugins
this happens because, GST_CLOCK_STIME_IS_VALID () is being checked for pad_data
but it expects a GstClockTime parameter. Changing the check to 'dts'

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

9 years agogl/examples: update qt examples for api changes
Matthew Waters [Mon, 15 Jun 2015 06:47:15 +0000 (16:47 +1000)]
gl/examples: update qt examples for api changes

9 years agogtk: silence unused variable warnings for unsupported winsys'
Matthew Waters [Mon, 15 Jun 2015 04:35:35 +0000 (14:35 +1000)]
gtk: silence unused variable warnings for unsupported winsys'

9 years agogtk: implement basic wayland GL support
Matthew Waters [Mon, 15 Jun 2015 04:33:08 +0000 (14:33 +1000)]
gtk: implement basic wayland GL support

9 years agocompositor: update zorder documentation.
Mathieu Duponchelle [Sun, 14 Jun 2015 21:20:38 +0000 (23:20 +0200)]
compositor: update zorder documentation.

It is not bound between 0 and 10000 anymore.

9 years agovideoaggregator: No need to artificially bound the zorder.
Mathieu Duponchelle [Sun, 14 Jun 2015 21:13:59 +0000 (23:13 +0200)]
videoaggregator: No need to artificially bound the zorder.

It is an unsigned integer so the upper bound is G_MAXUINT.

9 years agocodecparsers: mpeg4: actually return full number of bits of resync marker
Luis de Bethencourt [Wed, 29 Oct 2014 15:03:04 +0000 (15:03 +0000)]
codecparsers: mpeg4: actually return full number of bits of resync marker

Switch the increment of markersize from when it is used to when it is
returned from compute_resync_marker_size.

This also makes the CHECK_REMAINING in gst_mpeg4_parse_video_packet_header
check for the actually required number of bits now and not one too few.

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

9 years agoRevert "codecparsers: remove ignored increment of return"
Tim-Philipp Müller [Sat, 13 Jun 2015 16:36:20 +0000 (17:36 +0100)]
Revert "codecparsers: remove ignored increment of return"

This reverts commit 916b954315abc2f94348ec0be3e116c19b080b54.

Clearly something else was intended, and it also makes
more sense to add the extra bit. The resync marker is
N zero bits plus a 1 bit, and the pattern/mask needs to
be run on N+1 bits too.

(Even after the rever the code doesn't do that of course, so
it still needs to be fixed differently.)

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

9 years agoopensles: Fix build with Android API level < 14
Arun Raghavan [Fri, 12 Jun 2015 12:38:44 +0000 (18:08 +0530)]
opensles: Fix build with Android API level < 14

Headers were broken on older Android versions, apparently.

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

9 years agoopenslessink: Allow setting the stream type via a property
Arun Raghavan [Wed, 28 Jan 2015 07:36:39 +0000 (13:06 +0530)]
openslessink: Allow setting the stream type via a property

9 years agoopenslessrc: Implement recording presets
Arun Raghavan [Tue, 27 Jan 2015 09:55:59 +0000 (15:25 +0530)]
openslessrc: Implement recording presets

This allows us to signal what kind of audio we are expecting to record,
which should tell the system to apply filters (such as echo
cancellation, noise suppression, etc.) if required.

9 years agodecklinkvideosink: Remove late frame-dropping workaround for basesink bug
Sebastian Dröge [Sat, 13 Jun 2015 09:40:14 +0000 (11:40 +0200)]
decklinkvideosink: Remove late frame-dropping workaround for basesink bug

This was fixed by https://bugzilla.gnome.org/show_bug.cgi?id=749258
in basesink, and is not necessary to duplicate here anymore.

9 years agoglmixerbin: implement proper dynamic pad removal
Matthew Waters [Sat, 13 Jun 2015 08:43:04 +0000 (18:43 +1000)]
glmixerbin: implement proper dynamic pad removal

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

9 years agoglimagesink: Don't do pool caching
Nicolas Dufresne [Sat, 13 Jun 2015 00:14:37 +0000 (20:14 -0400)]
glimagesink: Don't do pool caching

We now know that pool caching can cause renegotiation issues
when an element in the pipeline change from passthrough to not
passthrough. As it's not needed, don't cache existing pools.

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

9 years agoconfigure.ac: Remove reference to cvs
Nicolas Dufresne [Fri, 12 Jun 2015 22:08:40 +0000 (18:08 -0400)]
configure.ac: Remove reference to cvs

9 years agotsdemux: Segment start should match first PTS
Nicolas Dufresne [Wed, 10 Jun 2015 21:05:52 +0000 (17:05 -0400)]
tsdemux: Segment start should match first PTS

The segment should start at first PTS, and the vairable name lower_pts
state so correctly. Though we where using the first DTS instead. This
could lead to small desynchronization of video stream.

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

9 years agotsmux: Add negative DTS support
Nicolas Dufresne [Wed, 10 Jun 2015 16:32:34 +0000 (12:32 -0400)]
tsmux: Add negative DTS support

Use the saved DTS, make it signed and pass that to the stream muxer. This
preserves the running time sign. All usage of -1 as invalid TS are now
replaced with G_MININT64. Negative values will be seen as wrap-around
point, but the delta between PTS and DTS will remain correct. Demuxers
don't care about absolute values, they only cares about deltas.

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

9 years agotsmux: Remove uneeded cast and cast macro
Nicolas Dufresne [Wed, 10 Jun 2015 16:31:13 +0000 (12:31 -0400)]
tsmux: Remove uneeded cast and cast macro

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

9 years agompegtsmux: Properly detect backward DTS
Nicolas Dufresne [Wed, 10 Jun 2015 15:39:01 +0000 (11:39 -0400)]
mpegtsmux: Properly detect backward DTS

There was code to detect backward dts, but the marker min_dts
was never set. Setting it enable this feature that prevents
potential integer overflow when generating TS.

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

9 years agodashdemux: fixed segfault for missing default namespace
Florin Apostol [Fri, 12 Jun 2015 15:44:55 +0000 (16:44 +0100)]
dashdemux: fixed segfault for missing default namespace

Added a check for a_node->ns before accessing a_node->ns->href in
gst_mpdparser_get_xml_node_namespace. This could happen if the xml
is missing the default namespace.

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

9 years agodecklinkvideosink: Don't require the same framerate in the input as the mode's framerate
Sebastian Dröge [Fri, 12 Jun 2015 20:33:58 +0000 (22:33 +0200)]
decklinkvideosink: Don't require the same framerate in the input as the mode's framerate

We only really care about the timestamps for the sink.

9 years agoexamples: playout: Add better help text
Nirbheek Chauhan [Fri, 12 Jun 2015 20:10:00 +0000 (01:40 +0530)]
examples: playout: Add better help text

This should help people figure out how to use the example a bit better

9 years agoexamples: playout: Decrement the currently-playing counter correctly
Nirbheek Chauhan [Fri, 12 Jun 2015 20:05:59 +0000 (01:35 +0530)]
examples: playout: Decrement the currently-playing counter correctly

Only do that when we're removing an item that was playing, otherwise we'll mess
things up while trying to edit the play queue (playlist).

9 years agoplayout: New example for seamless audio/video playback
Nirbheek Chauhan [Thu, 29 Jan 2015 00:56:26 +0000 (00:56 +0000)]
playout: New example for seamless audio/video playback

An example app that takes video URIs as command line arguments and switches
between them seamlessly one after the other using compositor and audiomixer.
Both audio-video and video-only media files are valid inputs, but mixing files
of both types in a single invocation is cumbersome to support, and hence does
not work. The example attempts to keep the audio stream moving along perfectly,
and duplicates video frames where necessary to cover gaps in the video
timestamps using the 'ignore-eos' videoaggregator pad property.

Ensuring seamless (and mostly-glitch-free) switching is harder than it sounds,
and hence the example contains plenty of pad probes and running time
calculations to make things work.

The GPtrArray play_queue contains items that are being played back, have been
prepared for playback, and will be played back in the future. The queue itself
is mutable besides the first two items (playing and prepared). The item that has
been prepared should not be edited or removed since it has been prepared in
advance to be activated immediately on the current item's EOS.

The example also has support for switching to the next item in the queue
prematurely; see the --switch-after/-s flag to the application.

Note: the output video is hard-coded at 1280x720, and input video is scaled as
needed to fit this size. Set OUTPUT_VIDEO_WIDTH/HEIGHT to change this.

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

9 years agotests: Add test for the 'ignore-eos' compositor sink pad property
Nirbheek Chauhan [Sat, 6 Jun 2015 15:10:13 +0000 (20:40 +0530)]
tests: Add test for the 'ignore-eos' compositor sink pad property

When the 'ignore-eos' property is set on a pad, compositor will keep resending
the last buffer on the pad till the pad is unlinked. We count the buffers
received on appsink, and if it's more than the buffers sent by videotestsrc, the
test passes.

9 years agovideoaggregator: add "ignore-eos" property for input pads
Nirbheek Chauhan [Mon, 9 Feb 2015 19:19:35 +0000 (00:49 +0530)]
videoaggregator: add "ignore-eos" property for input pads

When set, it causes videoaggregator to repeatedly aggregate the last buffer on
an EOS pad instead of skipping it and outputting silence. This is useful, for
instance, while playing back files seamless one after the other, to avoid
videoaggregator ever outputting silence (the checkerboard pattern).

It is to be noted that if all the pads on videoaggregator have this property set
on them, the mixer will never forward EOS downstream for obvious reasons. Hence,
at least one pad with 'ignore-eos' set to FALSE must send EOS to the mixer
before it will be forwarded downstream.

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

9 years agompegts: return early if packetizing short section
Jesper Larsen [Fri, 19 Dec 2014 13:43:20 +0000 (14:43 +0100)]
mpegts: return early if packetizing short section

Short sections have 3 bytes of common header, while other sections
have 8 bytes of common header. If packetizing common header of short
section, we should stop after the first 3 bytes.

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

9 years agodebugutilsbad: Minor cleanup
Vivia Nikolaidou [Fri, 12 Jun 2015 14:14:02 +0000 (17:14 +0300)]
debugutilsbad: Minor cleanup

Ran gst-indent on debugutilsbad.c, moved headers to noinst in Makefile.am

9 years agogtk: Do not try to activate a NULL GLContext
Thibault Saunier [Fri, 12 Jun 2015 13:39:56 +0000 (15:39 +0200)]
gtk: Do not try to activate a NULL GLContext

At that point in the code nothing guarantees it exists

9 years agogl/tests: remove reference to undefined buffer test
Matthew Waters [Fri, 12 Jun 2015 11:31:48 +0000 (21:31 +1000)]
gl/tests: remove reference to undefined buffer test

9 years agoglmemory: separate pbo transfer from texture transfers
Matthew Waters [Thu, 11 Jun 2015 08:26:50 +0000 (18:26 +1000)]
glmemory: separate pbo transfer from texture transfers

When supported, the potentially longer pbo upload/download can be
initiated before the texture upload/download, potentially increasing
throughput.

9 years agoglmemory: implement on top of glbasebuffer
Matthew Waters [Wed, 10 Jun 2015 06:36:15 +0000 (16:36 +1000)]
glmemory: implement on top of glbasebuffer

Provides convenient access to PBO usage.

Currently texture updates are coupled tightly to data transfers.

9 years agogl: new glbasebuffer GstMemory object
Matthew Waters [Wed, 10 Jun 2015 06:24:59 +0000 (16:24 +1000)]
gl: new glbasebuffer GstMemory object

Provides generic handling of GL buffer objects accessible using
the GL bind points (GL_ARRAY_BUFFER, GL_PIXEL_*_BUFFER).

Implementation based off the current GstGLMemory.

9 years agogl/prototypes: add some buffer function prototypes
Matthew Waters [Wed, 10 Jun 2015 06:23:36 +0000 (16:23 +1000)]
gl/prototypes: add some buffer function prototypes

9 years agogtk: implement video aspect-ratio handling
Matthew Waters [Fri, 12 Jun 2015 05:17:30 +0000 (15:17 +1000)]
gtk: implement video aspect-ratio handling

For both the software and the GL sink's.

Doesn't deal with the pixel-aspect-ratio field at all yet.

9 years agogl/window/x11: only listen on the X Display when needed
Matthew Waters [Fri, 12 Jun 2015 03:14:57 +0000 (13:14 +1000)]
gl/window/x11: only listen on the X Display when needed

5697b6b89b4b2a15c45bd47be940a17f4412ea11 causes us to possibly listen
on a toolkit provided Display connection.  We thus could eat their
precious winsys events.  Only listen if we need to
(!foreign_display or videooverlay).

9 years agogtk: fix a couple of typos
Matthew Waters [Fri, 12 Jun 2015 02:40:50 +0000 (12:40 +1000)]
gtk: fix a couple of typos

9 years agogtkglsink: reset the context/display in READY_TO_NULL
Matthew Waters [Fri, 12 Jun 2015 02:29:37 +0000 (12:29 +1000)]
gtkglsink: reset the context/display in READY_TO_NULL

Fixes context propagation in pipelines with upstream GL elements.

9 years agodashdemux: fix error calculating large presentationTimeOffset values
Alex Ashley [Thu, 11 Jun 2015 16:25:49 +0000 (17:25 +0100)]
dashdemux: fix error calculating large presentationTimeOffset values

If the presentationTimeOffset attribute of a DASH manifest contains
a value that is larger than 2^32, gstmpdparser incorrectly calculates
the stream's presentation time offset. This is due to two bugs:

1: Using gst_mpdparser_get_xml_prop_unsigned_integer rather than
   gst_mpdparser_get_xml_prop_unsigned_integer_64 to parse the
   attribute
2: gst_mpd_client_setup_representation multiplying the value by
   GST_SECOND and then dividing by timescale

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

9 years agogstgtk: No need to realize the widget
Nicolas Dufresne [Thu, 11 Jun 2015 16:41:10 +0000 (12:41 -0400)]
gstgtk: No need to realize the widget

The widget already does that.

9 years agogstgtk: Don't leak the widget
Nicolas Dufresne [Thu, 11 Jun 2015 16:38:53 +0000 (12:38 -0400)]
gstgtk: Don't leak the widget

g_object_get() returns a ref, gtk_container_add() only ref_sink().
That mean we still need to unref afterward. This leak was hiding
a reference bug previously present.

9 years agogstgtk: Allow doing gst-inspect-1.0 on these elements
Nicolas Dufresne [Thu, 11 Jun 2015 16:10:23 +0000 (12:10 -0400)]
gstgtk: Allow doing gst-inspect-1.0 on these elements

This patch allow going gst-inspect-1.0 on these elements removing
ugly crash that was previously occurring. The method consist of
making the widget creation as lazy as possible. This way we don't
endup doing gtk_init() before the application. We also ref_sink()
the widget, so we don't crash if the parent widget is discarded,
and cleanly error out with GL if the widget has no parent window,
because calling gtk_widget_realized() can only be done if the widget
has been parented to a window).

9 years agogl: Add support for multiple views in upload, colour convert and download
Jan Schmidt [Fri, 29 May 2015 16:15:51 +0000 (02:15 +1000)]
gl: Add support for multiple views in upload, colour convert and download

Support multiple attached views on input/output buffers
by processing each one, not just the first.

9 years agoh264parse: Add support for passing stereoscopic/multiview info
Jan Schmidt [Fri, 29 May 2015 15:38:16 +0000 (01:38 +1000)]
h264parse: Add support for passing stereoscopic/multiview info

Pass any multiview info from the container or SEI info downstream

9 years agoh264parse: Don't switch to passthrough on set_caps()
Jan Schmidt [Wed, 10 Jun 2015 15:57:08 +0000 (01:57 +1000)]
h264parse: Don't switch to passthrough on set_caps()

Wait until at least one keyframe has been parsed before
deciding to switch to passthrough mode, in case the
stream contains SEI messages that supplement the output
caps - for example by providing stereoscopic information

9 years agogl/window/x11: don't create our own X11 display
Matthew Waters [Thu, 11 Jun 2015 14:32:00 +0000 (00:32 +1000)]
gl/window/x11: don't create our own X11 display

It's not needed anymore with most window operations occuring in the
GL thread.

9 years agogl/window/x11: handle_events() may be called before the window has been created
Matthew Waters [Thu, 11 Jun 2015 14:30:58 +0000 (00:30 +1000)]
gl/window/x11: handle_events() may be called before the window has been created

Fixes an XIO fatal error

9 years agogl: move basesink properties from glimagesinkbin to glsinkbin
Matthew Waters [Thu, 11 Jun 2015 14:29:23 +0000 (00:29 +1000)]
gl: move basesink properties from glimagesinkbin to glsinkbin

9 years agompegtsmux: Remove arbitrary constraint on prog-map program ids
Yanko Kaneti [Wed, 25 Mar 2015 17:27:42 +0000 (19:27 +0200)]
mpegtsmux: Remove arbitrary constraint on prog-map program ids

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

9 years agogl: Use gst_object_ref_sink() for gl{filter,mixer,src}bin too
Sebastian Dröge [Thu, 11 Jun 2015 13:22:04 +0000 (15:22 +0200)]
gl: Use gst_object_ref_sink() for gl{filter,mixer,src}bin too

9 years agoglsinkbin: Use gst_object_ref_sink() for consistency with the video-sink property...
Sebastian Dröge [Thu, 11 Jun 2015 13:17:02 +0000 (15:17 +0200)]
glsinkbin: Use gst_object_ref_sink() for consistency with the video-sink property on playbin

9 years agogtk: Do not try to initialize display if we have not have a GLContext yet
Thibault Saunier [Thu, 11 Jun 2015 13:02:44 +0000 (15:02 +0200)]
gtk: Do not try to initialize display if we have not have a GLContext yet

9 years agogtk: Add missing CFLAGS to example
Sebastian Dröge [Thu, 11 Jun 2015 12:58:27 +0000 (14:58 +0200)]
gtk: Add missing CFLAGS to example

9 years agoImplement gtk sinks
Matthew Waters [Thu, 18 Dec 2014 06:00:30 +0000 (17:00 +1100)]
Implement gtk sinks

two sinks are provided.  gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.

9 years agoh263parse: Fix PSC matching
Edward Hervey [Wed, 10 Jun 2015 08:36:21 +0000 (10:36 +0200)]
h263parse: Fix PSC matching

We were off by one byte in the matching

It should be (using 24 bit matching):
   * startcode  : 0000 0000 0000 0000 1000 00xx
   * mask (bin) : 1111 1111 1111 1111 1111 1100
   * mask (hex) :    f    f    f    f    f    c
   * match      :    0    0    0    0    8    0

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

9 years agovtenc: always enqueue frames, even on error
Ilya Konstantinov [Mon, 11 May 2015 14:47:25 +0000 (16:47 +0200)]
vtenc: always enqueue frames, even on error

Even when we fail to encode frame, we should still enqueue it so
it could be passed into handle_frame (with output_buffer == NULL).
Otherwise, we risk GstVideoEncoder's queue of frames growing unbounded.

Note: We're slightly changing the renegotiation code to accommodate for
frames without output buffers, but this commit takes no ownership over
the way negotiation is being done.

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

9 years agod3dvideosink: Avoid frame rendering while the window is completely hidden
Fabio Cetrini [Wed, 10 Jun 2015 13:03:31 +0000 (15:03 +0200)]
d3dvideosink: Avoid frame rendering while the window is completely hidden

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

9 years agogl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP
Sebastian Dröge [Wed, 10 Jun 2015 09:42:06 +0000 (11:42 +0200)]
gl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP

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

9 years agovtenc: free input buffer ASAP
Ilya Konstantinov [Mon, 11 May 2015 14:40:07 +0000 (16:40 +0200)]
vtenc: free input buffer ASAP

VTCompressionSessionEncodeFrame retains the CVPixelBuffer during
encoding, and will release it as soon as it can (e.g. before it even
calls our callback). This means we can safely release input buffer
at this point, possibly allowing the system to reuse it sooner.

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

9 years agovtenc: Add missing gst_vtenc_frame_free() in error path
Ilya Konstantinov [Mon, 11 May 2015 14:39:19 +0000 (16:39 +0200)]
vtenc: Add missing gst_vtenc_frame_free() in error path

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

9 years agoliveadder: Fix memory leaks iterating over pads
Santiago Carot-Nemesio [Tue, 9 Jun 2015 14:33:39 +0000 (16:33 +0200)]
liveadder: Fix memory leaks iterating over pads

Rebased for latest master by Nicolas Huet <nicolas.huet@parrot.com>.

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

9 years agovtenc: add alignment=au to sink caps
Ilya Konstantinov [Tue, 9 Jun 2015 21:16:27 +0000 (00:16 +0300)]
vtenc: add alignment=au to sink caps

VT compression callback gets a CMSampleBuffer per frame, so vtenc_h264
should set 'alignment=au' in sink caps to indicate this.

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

9 years agouvch264src: fix compiler warnings
Chris Clayton [Tue, 9 Jun 2015 17:30:55 +0000 (18:30 +0100)]
uvch264src: fix compiler warnings

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

9 years agoavfassetsrc: fix huge memory leak
Ilya Konstantinov [Mon, 11 May 2015 22:18:02 +0000 (00:18 +0200)]
avfassetsrc: fix huge memory leak

CMSampleBuffers were retained -> huge memory leak.

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

9 years agovtenc: no need for queue_length with try_pop
Ilya Konstantinov [Mon, 11 May 2015 14:44:33 +0000 (16:44 +0200)]
vtenc: no need for queue_length with try_pop