Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Use GstDataQueue instead of GAsyncQueue for storing buffers
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Use the buffer's free_func to map byteArray data without making a copy
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Remove open failure test code and debug log
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Use YV12 as the default format
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Add a deinit function and remove jclass references in case of error
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
SurfaceTexture constructure needs texture_id
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Add ahcsrc Camera source element prototype
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Add android.hardware.Camera (and deps) JNI wrappers
Youness Alaoui [Wed, 17 Oct 2012 23:42:59 +0000 (19:42 -0400)]
Adding Dalvik Virtual Machine routines and macros
Youness Alaoui [Wed, 17 Oct 2012 21:56:33 +0000 (17:56 -0400)]
androidmedia: Add androidmedia plugin
Sebastian Dröge [Fri, 15 Jan 2016 13:31:54 +0000 (14:31 +0100)]
spandsp: Add tone generator
Hyunjun Ko [Tue, 14 Jul 2015 04:40:46 +0000 (13:40 +0900)]
mpegtsmux: set non-0 payload length in PES header if video ES packet is small enough
https://bugzilla.gnome.org/show_bug.cgi?id=748507
Hyunjun Ko [Tue, 14 Jul 2015 04:42:54 +0000 (13:42 +0900)]
mpegtsmux: reset pes_bytes_written when starting to write new PES packet
In case of an unbounded packet (video usually), pes_bytes_written was
no reset.
https://bugzilla.gnome.org/show_bug.cgi?id=748507
Tim-Philipp Müller [Tue, 19 Jan 2016 17:08:50 +0000 (17:08 +0000)]
mpegtsmux: add support for H.265/HEVC video
https://bugzilla.gnome.org/show_bug.cgi?id=744367
Tim-Philipp Müller [Tue, 19 Jan 2016 13:20:23 +0000 (13:20 +0000)]
gl: fix compiler warnings with gcc-6
In file included from effects/gstgleffectrgbtocurve.c:25:0:
effects/gstgleffectscurves.h:174:32: error: 'xray_curve' defined but not used
static const GstGLEffectsCurve xray_curve = {
...
Tim-Philipp Müller [Tue, 19 Jan 2016 08:39:58 +0000 (08:39 +0000)]
libs: g-i: fix init section to avoid compiler warnings
..GstPlayer-1.0.c: In function ‘main’:
..GstPlayer-1.0.c:587:3: warning: implicit declaration of function ‘gst_init’
https://bugzilla.gnome.org/show_bug.cgi?id=760090
Alessandro Decina [Tue, 19 Jan 2016 08:18:43 +0000 (19:18 +1100)]
applemedia: vtenc: fix build on iOS
Alessandro Decina [Tue, 19 Jan 2016 04:50:22 +0000 (15:50 +1100)]
applemedia: always fill GstBuffers with GstMemory
Always fill buffers with our custom memory. The custom memory will avoid
mapping CV/CM buffers unless necessary.
Ilya Konstantinov [Sat, 18 Apr 2015 21:30:48 +0000 (00:30 +0300)]
applemedia: implement copying of meta
Before this, buffers would lose their Core Video / Core Media meta
over intervideo* boundary.
https://bugzilla.gnome.org/show_bug.cgi?id=747216
Ilya Konstantinov [Thu, 2 Apr 2015 17:04:18 +0000 (20:04 +0300)]
applemedia: implement GstAppleCoreVideoMemory
Implement a new memory type wrapping CVPixelBuffer.
There are two immediate advantages:
a) Make the GstMemory itself retain the CVPixelBuffer. Previously,
the containing GstBuffer was solely responsible for the lifetime of
the backing CVPixelBuffer.
With this change, we remove the GST_MEMORY_FLAG_NO_SHARE so that
GstMemory objects be referenced by multiple GstBuffers (doing away
with the need to copy.)
b) Delay locking CVPixelBuffer into CPU memory until it's actually
mapped -- possibly never.
The CVPixelBuffer object is shared among references, shares and
(in planar formats) planes, so a wrapper GstAppleCoreVideoPixelBuffer
structure was introduced to manage locking.
https://bugzilla.gnome.org/show_bug.cgi?id=747216
Alessandro Decina [Tue, 19 Jan 2016 01:56:40 +0000 (12:56 +1100)]
applemedia: iosurfacememory: alloc with g_new0
...since the base class doesn't use g_slice anymore
Florin Apostol [Fri, 8 Jan 2016 11:04:13 +0000 (11:04 +0000)]
dashdemux: added check that availabilityStartTime is present for live streams
https://bugzilla.gnome.org/show_bug.cgi?id=757602
Florin Apostol [Wed, 4 Nov 2015 18:15:24 +0000 (18:15 +0000)]
adaptivedemux: improved error message if availabilityStartTime is missing for a live stream
For a live mpd, if availabilityStartTime is missing, adaptive demux asserts
with: Unexpected critical/warning: gst_date_time_to_g_date_time: assertion
'datetime != NULL' failed.
This patch improves the error message to:
Unexpected critical/warning: gst_mpd_client_seek_to_time: assertion
'client->mpd_node->availabilityStartTime != NULL' failed
https://bugzilla.gnome.org/show_bug.cgi?id=757602
Florin Apostol [Thu, 14 Jan 2016 18:27:50 +0000 (18:27 +0000)]
tests: adaptive-stremaing: fix memory leak in test_http_src
https://bugzilla.gnome.org/show_bug.cgi?id=760600
Matt Crane [Fri, 15 Jan 2016 15:49:12 +0000 (10:49 -0500)]
shmsink: fix possible deadlock in _render()/ _allocator_free()
Drop object lock before unrefing memory, otherwise the object
lock might be taken again from the allocator and then things
deadlock.
https://bugzilla.gnome.org/show_bug.cgi?id=760551
Sebastian Dröge [Sat, 16 Jan 2016 15:14:54 +0000 (17:14 +0200)]
glfilter: First make caps writable in fixate_caps(), then truncate them
Truncating requires writable caps.
Sebastian Dröge [Sat, 16 Jan 2016 15:12:29 +0000 (17:12 +0200)]
glcolorconvert: Caps passed to fixate_caps() are not owned by us and guaranteed to be fixed
So don't try to fixate them, which takes ownership and steals them from
basetransform.
https://bugzilla.gnome.org/show_bug.cgi?id=760696
Sebastian Dröge [Sat, 16 Jan 2016 14:55:42 +0000 (16:55 +0200)]
Revert "glpool: fix caps refcount issue"
This reverts commit
3bdcdedfa00b87f1db505218789178318a16c743.
gst_caps_replace() takes a new reference already, if there is a problem then
it is elsewhere. And there are a few problems, see
https://bugzilla.gnome.org/show_bug.cgi?id=760696
Luis de Bethencourt [Fri, 15 Jan 2016 16:10:02 +0000 (16:10 +0000)]
rtph265depay: fix unneeded sub-buffer creation
We create a sub-buffer just to copy over its metas and then throw it
away immediately, just use the original input buffer directly.
Luis de Bethencourt [Fri, 15 Jan 2016 15:56:59 +0000 (15:56 +0000)]
rtph265pay: add "send VPS/SPS/PPS with every key frame" mode
It's not enough to have timeout or event based VPS/SPS/PPS information
sent in RTP packets. There are some scenarios when key frames may appear
more frequently than once a second, in which case the minimum timeout
for "config-interval" of 1 second for sending VPS/SPS/PPS isn't enough.
It might also be desirable in general to make sure the VPS/SPS/PPS is
available with every keyframe (packet loss aside), so receivers can
actually pick up decoding immediately from the first keyframe if
VPS/SPS/PPS is not signaled out of band.
This commit adds the possibility to send VPS/SPS/PPS with every key frame.
This mode can be enabled by setting "config-interval" property to -1. In
this case the payloader will add VPS, SPS and PPS before every key (IDR)
frame.
https://bugzilla.gnome.org/show_bug.cgi?id=757892
Luis de Bethencourt [Fri, 15 Jan 2016 15:19:41 +0000 (15:19 +0000)]
rtph265pay: change config-interval property type from uint to int
This way we can use -1 as special value, which is nicer than MAXUINT.
https://bugzilla.gnome.org/show_bug.cgi?id=757892
Thiago Santos [Wed, 13 Jan 2016 12:51:20 +0000 (09:51 -0300)]
adaptivedemux: replace ghostpad with a standard pad
Handling the ghostpad and its internal pad was causing more issues
than helping because of their coupled activation/deactivation
actions.
As we have to install custom chain,event and query functions it is
better to use a floating sink pad internally in the demuxer and just
use those pad functions to push through a standard pad in the demuxer
https://bugzilla.gnome.org/show_bug.cgi?id=757951
Florin Apostol [Wed, 11 Nov 2015 17:24:33 +0000 (17:24 +0000)]
adaptivedemux: do not flush the input pad
gst_adaptive_demux_stream_clear_eos_and_flush_state() function will do
all the necessary cleaning.
https://bugzilla.gnome.org/show_bug.cgi?id=757951
Luis de Bethencourt [Fri, 15 Jan 2016 11:44:52 +0000 (11:44 +0000)]
videosegmentclip: fail to set_caps if problem in caps structure
gst_video_segment_clip_set_caps () should return FALSE if there was a
problem reading the framerate values from the caps structure.
Matthew Waters [Fri, 15 Jan 2016 06:00:55 +0000 (17:00 +1100)]
glquery: provide compat definition for GL_QUERY_RESULT
e.g. android doesn't have it
While we're here move a state specific assertion after the supported check.
Removes an assertion on GLES
Matthew Waters [Fri, 15 Jan 2016 05:07:27 +0000 (16:07 +1100)]
gl: add compatibility definition of GLint64
e.g. anrdoid doesn't have it
Sergey Borovkov [Fri, 8 Jan 2016 19:19:06 +0000 (22:19 +0300)]
qml: Mark material dirty when texture buffer is updated
Qt might not redraw the scene otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=758286
Matthew Waters [Fri, 15 Jan 2016 03:00:56 +0000 (14:00 +1100)]
glpool: fix caps refcount issue
The caps are from an allocation query which are transfer none but were being
treated as transfer full.
Matthew Waters [Mon, 11 Jan 2016 02:30:05 +0000 (13:30 +1100)]
glmemory: log the time for glTexSubImage/glReadPixels
Matthew Waters [Fri, 8 Jan 2016 07:36:54 +0000 (18:36 +1100)]
gl: add a gstglquery object for arbitrary GL queries
Currently only GL_TIME_ELAPSED and GL_TIMESTAMP are supported
Matthew Waters [Mon, 11 Jan 2016 06:22:26 +0000 (17:22 +1100)]
gldebug: implement a delayed debug system
The messages are stored by gst_gl_async_debug_store_log_msg() and output later
by a corresponding store(), output() or an unset()/free().
Some wrapper macros are provided to avoid callers explicitly using __FILE__,
GST_FUNCTION and __LINE__
Matthew Waters [Mon, 11 Jan 2016 06:26:08 +0000 (17:26 +1100)]
gldebug: use gst_info_vasprintf in insert_debug_marker()
Allows expansion of GST_PTR_FORMAT and GST_SEGMENT_FORMAT arguments.
Matthew Waters [Fri, 15 Jan 2016 00:22:40 +0000 (11:22 +1100)]
gl: add a videoflip element
Behaves exactly the same as the non-GL videoflip element
Matthew Waters [Thu, 14 Jan 2016 13:04:20 +0000 (00:04 +1100)]
glfilter: recreate the fbo on caps changes
The width/height may change which requires recreating the depth buffer.
Matthew Waters [Thu, 14 Jan 2016 13:02:43 +0000 (00:02 +1100)]
glbasefilter: add a class function on set_caps (from GL)
This is simply a convenience to avoid duplicating the thread marshalling on
set_caps.
Matthew Waters [Thu, 14 Jan 2016 13:00:29 +0000 (00:00 +1100)]
gltransformation: always build a valid mvp matrix
The default case is to build an identity matrix.
Matthew Waters [Thu, 14 Jan 2016 08:03:04 +0000 (19:03 +1100)]
gltransformation: support negative scales
A scale of -1.0 means to flip the video.
Matthew Waters [Thu, 14 Jan 2016 07:42:05 +0000 (18:42 +1100)]
gltransformation: implement passthrough handling
Matthew Waters [Thu, 14 Jan 2016 06:45:03 +0000 (17:45 +1100)]
gltransformation: implement navigation events
Reverses the transformation applied through the properties and forwards the
event.
The process for finding the coordinates on the video are as follows:
1. Convert the given pointer_x and pointer_y to model space at the near and far planes
2. Get the equation of the video plane
3. Find where the ray in 1 intersects the plane
4. Profit!
Matthew Waters [Thu, 14 Jan 2016 05:59:12 +0000 (16:59 +1100)]
glimagesink: remove reduntant glimagesink from debug logging
Matthew Waters [Thu, 14 Jan 2016 05:57:40 +0000 (16:57 +1100)]
gl/x11/navigation: add button press to the selected event mask
Otherwise we won't get the button press events and GstNavigation fails.
Alessandro Decina [Thu, 14 Jan 2016 05:00:00 +0000 (16:00 +1100)]
glcolorconvert: try harder to passthrough
This makes a pipeline like:
... ! video/x-raw(memory:GLMemory),format=UYVY ! glcolorconvert !
video/x-raw(memory:GLMemory),format={UYVY, NV12} ! ...
passthrough instead of converting UYVY => NV12. The conversion would happen
before this change since the element (and basetransform) transform the src caps
to format={NV12, UYVY} (since NV12 comes first in the glcolorconvert:src
template) and then the default caps fixate func would fixate to NV12. Blah.
Also there's no need to intersect against the template caps in ::transform_caps
since basetransform does that right after calling the vfunc.
Matthew Waters [Tue, 12 Jan 2016 07:31:29 +0000 (18:31 +1100)]
gl: implement a colorbalance element
It performs the exact same operation as videobalance but with opengl shaders and
was tested with glvideomixer by comparing frames from videobalance and
glcolorbalance.
Matthew Waters [Tue, 12 Jan 2016 07:21:50 +0000 (18:21 +1100)]
glvideomixer: implement glBlendFunc and glBlendEquation
Allows more blending options than just A over B
e.g. frame comparisons are now possible.
glvideomixer name=m
sink_0::zorder=0
sink_1::zorder=1
sink_1::blend-equation-rgb={subtract,reverse-subtract}
sink_1::blend-function-src-rgb=src-color
sink_1::blend-function-dst-rgb=dst-color
! glimagesinkelement
videotestsrc pattern=checkers-4 ! m.sink_0
videotestsrc pattern=checkers-8 ! m.sink_1
Matthew Waters [Fri, 8 Jan 2016 07:38:46 +0000 (18:38 +1100)]
gldebug: add a specific category for the debug spam from the driver
Tim Sheridan [Tue, 12 Jan 2016 14:54:23 +0000 (14:54 +0000)]
sbc: sbcdec: Fix frame length calculation
SBC frame length calculation wasn't being rounded up to the nearest byte
(as specified in the A2DP 1.0 specification, section 12.9). This could
cause 'stereo' and 'joint stereo' mode SBC streams to have incorrectly
calculated frame lengths.
https://bugzilla.gnome.org/show_bug.cgi?id=742446
Matthew Waters [Tue, 12 Jan 2016 12:34:31 +0000 (23:34 +1100)]
nvenc: update for recent GL api changes
Specifically the GstGLMemoryPBO addition (which was the unadorned GstGLMemory).
Alessandro Decina [Tue, 12 Jan 2016 03:36:02 +0000 (14:36 +1100)]
applemedia: avfvideosrc: optionally get the GL context from gst_element_set_context
Allow setting the GL context with gst_element_set_context. When available, the
local context obtained via the context query still has the precedence.
Alessandro Decina [Tue, 12 Jan 2016 03:02:46 +0000 (14:02 +1100)]
applemedia: iosurfacememory: remove NO_SHARE flag
The full memory can be safely shared. Sharing a sub region can't be done and
will fail in the base allocator, triggering a copy.
Thiago Santos [Mon, 11 Jan 2016 16:33:46 +0000 (13:33 -0300)]
frei0rmixer: replace accept-caps with caps query
It wants to check if upstream can produce a certain format,
accept-caps might only check if the next element can produce it.
Matthew Waters [Thu, 7 Jan 2016 09:56:54 +0000 (20:56 +1100)]
glbasememory: Free the actual memory object when requested
Otherwise we are leaking ~400B on each GstMemory allocation.
Freeing in the base class matches the GObject semantics.
Matthew Waters [Thu, 7 Jan 2016 09:54:41 +0000 (20:54 +1100)]
glmemorypbo: don't double read pixels
The optimistic download_transfer was not setting the required flag to not
perform glReadPixels on subsequent map (READ). resulting in glReadPixels
happening twice.
Matthew Waters [Thu, 7 Jan 2016 07:47:37 +0000 (18:47 +1100)]
glmemory: expose gst_gl_memory_texsubimage
Removes extremely similar code from glmemorypbo.
Matthew Waters [Thu, 7 Jan 2016 07:05:23 +0000 (18:05 +1100)]
glfeature add a specific debug category
Saves having to trawl through the 'default' category when function retrieval
goes wrong.
Bob Holcomb [Tue, 5 Jan 2016 19:35:11 +0000 (14:35 -0500)]
mpegtsmux: fix reserve bits so they are 1's
The MPEG standard (ISO-13880-1) says the reserve bits need to be set
to one (2.1.64). This is causing transport streams to fail validation
on some systems.
https://bugzilla.gnome.org/show_bug.cgi?id=760127
Luis de Bethencourt [Fri, 8 Jan 2016 17:11:09 +0000 (17:11 +0000)]
opencv: remove check for OpenCV version
After commit
64080e632, configure checks for all the header files that
should be available in OpenCV 2.3 and later. If any of these files isn't
there the OpenCV elements won't be part of the build.
No need to recheck for opencv2/legacy/legacy.hpp again in
gstpyramidsegment.h. Minimum supported OpenCV version must have this header
and configure already checks for it. Removing check.
Luis de Bethencourt [Fri, 8 Jan 2016 15:01:47 +0000 (15:01 +0000)]
opencv: always do cvsmooth in place
After the update to new OpenCV API the transform function using an out
buffer is not necessary. We can always do the transformation in place.
Luis de Bethencourt [Fri, 8 Jan 2016 12:39:29 +0000 (12:39 +0000)]
opencv: do pyramidsegment's transformation in place
Run the transform function of pyramidsegment in place, reusing the image
data as both source and destination in cvPyrSegmentation. This avoids
copying the image back and forth and the extra memory.
Thiago Santos [Thu, 7 Jan 2016 18:21:40 +0000 (15:21 -0300)]
tests: hlsdemux: add test for updating segment stop
Add a test for seeking that only updates stop position and verifies
that start is unmodified
Thiago Santos [Thu, 7 Jan 2016 18:21:22 +0000 (15:21 -0300)]
adaptivedemux: fix seeking that just updates stop position
Fixed adaptivedemux seeking without flushing that just wants
to update stop position. This required protecting the segment
variables with a new mutex so that the seeking thread and the
download threads could safely manipulate the segment and
events related to it.
This contention is only locked/unlocked when starting a new
download, when the first fragment of a segment is received and
when seeking so, hopefully, it won't damage performance.
Thiago Santos [Wed, 6 Jan 2016 19:51:08 +0000 (16:51 -0300)]
adaptivedemux: fix segment update on seeks
Fixes typo on reverse rate check and also only update the
position when the start/stop was actually changed.
Sebastian Dröge [Thu, 7 Jan 2016 16:10:49 +0000 (18:10 +0200)]
mxftypes: Don't store pointers in stack allocated guints
This works usually in this place, unless the compiler optimizes things in
interesting ways in which case it causes stack corruption and crashes later.
The compiler in question here is clang with -O1, which seems to pack the stack
a bit more and causes writing to the guint as pointer to overwrite map.memory,
which then later crashes during unmapping of the memory.
Sebastian Dröge [Thu, 7 Jan 2016 16:02:33 +0000 (18:02 +0200)]
mxfmetadata: Initialize boolean to FALSE to fix valgrind warning
Seems to be a false warning though.
Matthew Waters [Thu, 7 Jan 2016 03:08:39 +0000 (14:08 +1100)]
glsyncmeta: only flush with a shared context
The wait code will flush for us for single context pipelines.
Matthew Waters [Thu, 7 Jan 2016 03:02:52 +0000 (14:02 +1100)]
glcontext: implement checking whether a context has been shared
Some operations are unnecessary when running with only a single GL
context.
e.g. glFlush when setting a fence object as the flush happens on wait.
API: gst_gl_context_is_shared
Tim-Philipp Müller [Wed, 6 Jan 2016 14:54:30 +0000 (14:54 +0000)]
hlsdemux: put boolean values into gboolean variables
And remove superfluous assignments.
Sebastian Dröge [Wed, 6 Jan 2016 14:54:49 +0000 (16:54 +0200)]
player: Only set the pipeline to PLAYING in play() if buffering>=100%
Otherwise the application can break the buffering logic by setting the
pipeline to PLAYING before we buffered enough.
Thiago Santos [Tue, 5 Jan 2016 20:41:23 +0000 (17:41 -0300)]
tests: dashdemux: add tests for post-seek segment boundaries check
Checks if the post seek segment is what is expected.
Also makes it easy to add more tests with different seeking flags using the
same functions.
Thiago Santos [Tue, 5 Jan 2016 13:41:27 +0000 (10:41 -0300)]
tests: hlsdemux: add tests for seek with reverse rate and snap flags
Add tests to ensure snap flags work as expected for reverse
rates
Thiago Santos [Tue, 5 Jan 2016 13:39:11 +0000 (10:39 -0300)]
adaptivedemux: stop reverse playback when we reach the limit
Avoids downloading and pushing a full segment just to get 1 nanosecond
of data. This happens frequently when seeking is done with flags
that adjust to boundaries or when the start is aligned with segment
starts. The later is common when segment durations is a multiple of
a second.
Thiago Santos [Tue, 5 Jan 2016 12:16:45 +0000 (09:16 -0300)]
hlsdemux: fix reverse playback seek with snap flags
Properly handle snap flags during reverse seeking. In this case
the before/after are also reversed, so handle those as such.
For example: with a sequence of 1s fragments:
|-- 0 --|-- 1 --|-- 2 --|-- 3 --|
If you seek to 1.5s it is inside fragment 1. With reverse and
snap-before: should play from the end of fragment 1
snap-after: should play from the end of fragment 0
Thiago Santos [Tue, 5 Jan 2016 12:01:10 +0000 (09:01 -0300)]
adaptivedemux: correctly track segment.position in reverse playback
For reverse, set position to segment.stop when starting and also
don't set the position to fragment end timestamp when it finishes,
just leave it at the fragment start.
Thiago Santos [Tue, 5 Jan 2016 11:59:26 +0000 (08:59 -0300)]
hlsdemux: simplify snap flags checking
Replace:
if (boolean) var = true;
with:
var = (boolean);
Thiago Santos [Mon, 28 Dec 2015 05:18:06 +0000 (02:18 -0300)]
hlsdemux: respect keyunit flag for position
Set the segment start position when keyunit flag is active
Thiago Santos [Thu, 24 Dec 2015 21:49:39 +0000 (18:49 -0300)]
tests: hls_demux: add tests for seeking segment
Tests that check that the segment sent after a seek is correct.
Allows testing that multiple seeking flags work as expected
Thiago Santos [Thu, 24 Dec 2015 12:27:33 +0000 (09:27 -0300)]
tests: adaptive_demux: add function to be able to check demuxer events
Allows writing tests that verify that events are correct.
Useful to monitor and check segments after seeks, for example.
Thiago Santos [Wed, 23 Dec 2015 18:25:29 +0000 (15:25 -0300)]
tests: adaptive: update to allow more flexible seeking tests
Allows defining a seek event to be able to change seeking parameters
and create more seeking test scenarios
Thiago Santos [Wed, 23 Dec 2015 18:23:27 +0000 (15:23 -0300)]
tests: hlsdemux: fix makefile variable typo
Alessandro Decina [Wed, 6 Jan 2016 05:50:00 +0000 (16:50 +1100)]
applemedia: avfvideosrc: enable renegotiation
We can actually renegotiate now, so remove old check which disabled it.
Matthew Waters [Wed, 6 Jan 2016 05:25:38 +0000 (16:25 +1100)]
glcolorconvert: implement usage of a buffer pool
Saves unnecessary glGenTextures and glDeleteTextures which may have a
non-trivial cost.
Matthew Waters [Wed, 6 Jan 2016 04:50:07 +0000 (15:50 +1100)]
glbasememory: fix copying GstGLAllocationParams
Fixes a GST_IS_GL_CONTEXT critical
Matthew Waters [Wed, 6 Jan 2016 04:44:52 +0000 (15:44 +1100)]
glmemorypbo: remove unused code
https://bugzilla.gnome.org/show_bug.cgi?id=759679
Alessandro Decina [Wed, 6 Jan 2016 02:20:17 +0000 (13:20 +1100)]
applemedia: avfvideosrc: small negotiation fix
Fix negotiation when GLMemory is requested but a context is not available
Alessandro Decina [Wed, 6 Jan 2016 00:40:38 +0000 (11:40 +1100)]
applemedia: vtenc: accept UYVY on Mac
When doing GLMemory avfvideosrc negotiates UYVY. This change allows avfvideosrc
! tee name=t ! ... ! glimagesink t. ! ... ! gldownload ! vtenc_h264 ! ...
to do GLMemory and 0-copy with the encoder (with the CV meta).
Alessandro Decina [Wed, 6 Jan 2016 00:29:15 +0000 (11:29 +1100)]
applemedia: avfvideosrc: change texture format from BGRA to NV12 on iOS
Change texture format from BGRA to NV12. This allows a pipeline like avfvideosrc
! tee name=t ! ... ! glimagesink t. ! ... ! gldownload ! vtenc_h264 ! ... to
negotiate GLMemory. This makes the glimagesink branch much faster (obviously)
and triggers the 0-copy path between avfvideosrc and vtenc (using the CV meta).
Combined this results in a huge perf improvement on iOS (25-30% of CPU time in a
pipeline like the one above).
Note that this doesn't introduce a new shader conversion in the sink, since BGRA
textures had to be copied/converted from format=BGRA,texture-target=RECTANGLE to
format=RGBA,texture-target=2D anyway.
Matthew Waters [Mon, 4 Jan 2016 09:26:09 +0000 (20:26 +1100)]
glupload: always add texture-target field to GL caps
1. Various elements/base classes only perform a subset check on accept-caps
2. Some GL elements have texture-target in their pad template
3. When checking subsets, only the caps to check are allowed to contain extra
fields. If the 'template' caps have extra fields, the subset fails.
Thus without texture-target on the caps, various accept-caps implementations
were failing.
Also, add some convenience functions for setting and retrieving
texture targets to/from GValue.
https://bugzilla.gnome.org/show_bug.cgi?id=759860
Matthew Waters [Tue, 29 Dec 2015 07:16:04 +0000 (18:16 +1100)]
glupload: passthrough composition caps features
Don't unconditionally add it to any and all caps transformations.
https://bugzilla.gnome.org/show_bug.cgi?id=759860
Sebastian Dröge [Mon, 4 Jan 2016 07:52:47 +0000 (09:52 +0200)]
player: Remove gst_player_new() and make gst_player_new_full() the normal constructor
In very few cases the simple version was actually needed and having the
parameters hidden by a _full() version caused application that actually needed
it to not use it.
Jan Schmidt [Sun, 3 Jan 2016 14:03:08 +0000 (01:03 +1100)]
glviewconvert: Fix stereoscopic handling w/ texture-target
The addition of texture-target negotiation broke stereoscopic
handling when not in passthrough mode, so fix that.
Hyunjun Ko [Wed, 7 Oct 2015 09:53:43 +0000 (18:53 +0900)]
sdpdemux: replace duplicated codes to call new base sdp apis
https://bugzilla.gnome.org/show_bug.cgi?id=745880