Matthew Waters [Fri, 29 Jan 2016 03:03:26 +0000 (14:03 +1100)]
glvideomixer: par may not exist in the caps
Fixes a critical in the gst-validate tests:
gst_structure_fixate_field_nearest_fraction: assertion 'gst_structure_has_field
(structure, field_name)
Matthew Waters [Fri, 29 Jan 2016 01:45:57 +0000 (12:45 +1100)]
glcontext: back out unintended lost_context changes
Matthew Waters [Thu, 28 Jan 2016 05:39:07 +0000 (16:39 +1100)]
egl: implement selecting opengl3 contexts
Matthew Waters [Thu, 28 Jan 2016 03:31:33 +0000 (14:31 +1100)]
gl/egl: pass the error value to get_error_string()
Aurélien Zanelli [Thu, 28 Jan 2016 17:20:44 +0000 (18:20 +0100)]
videoparse: initialize update_size to FALSE when updating info
Otherwise, behavior will be undefined when no strides/offsets are set
and it will likely go wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Nicolas Dufresne [Thu, 28 Jan 2016 16:56:36 +0000 (11:56 -0500)]
videoparse: Fix framesize calculation
When the framesize is not specified, we try and calculate a size from
the strides and offset information. This was done with the sum of
offsets + the size of the last frame. That is just wrong method. We also
need to account for video meta that may be flipping two planes. An
example is if you convert I420 to YV12 by flipping the two last offsets.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Sebastian Dröge [Thu, 28 Jan 2016 18:36:47 +0000 (19:36 +0100)]
gdpdepay: Add ts-offset property to adjust buffer timestamps
Jan Schmidt [Thu, 28 Jan 2016 17:50:42 +0000 (04:50 +1100)]
pkg-config: Don't generate and install pkg-config with relative paths
Don't put relative paths in pkg-config files, including uninstalled
ones. For those, use @abs_topbuilddir@ and @abs_topsrcdir@ as we
do elsewhere.
Remove libraries= directives, which doesn't seem to be a pkg-config
variable that actually exists, but has been in all our pkg-config
files for as long as they've existed.
Sebastian Dröge [Thu, 28 Jan 2016 15:49:53 +0000 (16:49 +0100)]
mxfmpeg: Write the correct essence container UL for all codecs
Sebastian Dröge [Thu, 28 Jan 2016 15:41:31 +0000 (16:41 +0100)]
mxfmpeg: Write version number into the picture essence coding UL
Sebastian Dröge [Thu, 28 Jan 2016 15:32:34 +0000 (16:32 +0100)]
mxfmux: Write a timecode track into the source package too
Aurélien Zanelli [Mon, 11 Jan 2016 14:47:24 +0000 (15:47 +0100)]
videoparse: use decide_allocation to check if downstream supports videometa
If yes, we add them to each output buffers and we avoid frame copy.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Aurélien Zanelli [Mon, 11 Jan 2016 14:46:16 +0000 (15:46 +0100)]
rawparse: add 'decide_allocation' vfunc to let subclass parse an allocation query
And so send an allocation query. This could be used to check whether
downstream element supports some metas or not.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Aurélien Zanelli [Fri, 8 Jan 2016 16:17:01 +0000 (17:17 +0100)]
rawparse: use size of buffer we got from adapter
Otherwise position in stream could be wrong if subclass 'pre_push_frame'
method changes the buffer size.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Aurélien Zanelli [Thu, 7 Jan 2016 13:27:27 +0000 (14:27 +0100)]
videoparse: add properties to set framesize, strides and planes offsets
To make parser work with image having non-standard strides, plane
offsets or with padding between images.
For now, since element doesn't check for videometa, we can't directly
push buffers when these properties are set so it convert the frame
in the pre_push_buffer method to remove any custom padding.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Aurélien Zanelli [Fri, 8 Jan 2016 14:21:28 +0000 (15:21 +0100)]
rawparse: rename 'set_buffer_flags' vfunc to 'pre_push_buffer'
to allow subclass to change other fields of the buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Aurélien Zanelli [Thu, 7 Jan 2016 13:18:08 +0000 (14:18 +0100)]
videoparse: cache video info in instance
To avoid initializing and filling video info each time we need it.
https://bugzilla.gnome.org/show_bug.cgi?id=760270
Sebastian Dröge [Thu, 28 Jan 2016 14:38:45 +0000 (15:38 +0100)]
mxfmux: Write This Generation UID into the Identification metadata
It's required according to the standard and we forgot to actually write it to
the file although we stored it in the data structures.
Sebastian Dröge [Thu, 28 Jan 2016 14:29:01 +0000 (15:29 +0100)]
mxfmetadata: Add workaround for ffmpeg only writing one Video Line Map value
https://ffmpeg.org/pipermail/ffmpeg-devel/2016-January/188202.html
Matthew Waters [Wed, 14 Oct 2015 10:13:57 +0000 (21:13 +1100)]
videoaggregator: don't do caps processing that is not overridable
Allows the subclass to completely override the chosen src caps.
This is needed as videoaggregator generally has no idea exactly
what operation is being performed.
- Adds a fixate_caps vfunc for fixation
- Merges gst_video_aggregator_update_converters() into
gst_videoaggregator_update_src_caps() as we need some of its info
for proper caps handling.
- Pass the downstream caps to the update_caps vfunc
https://bugzilla.gnome.org/show_bug.cgi?id=756207
Matthew Waters [Wed, 27 Jan 2016 09:23:21 +0000 (20:23 +1100)]
glcolorbalance: return HARDWARE from get_balance_type
Matthew Waters [Wed, 27 Jan 2016 09:04:00 +0000 (20:04 +1100)]
glsinkbin: add glcolorbalance element
This makes playbin not plug videobalance as glcolorbalance already exists and
implements the GstColorBalance interface.
Matthew Waters [Wed, 27 Jan 2016 08:56:36 +0000 (19:56 +1100)]
gl: move control binding proxy implementation from glvideomixer
Other elements may need to use it's functionality
Matthew Waters [Wed, 27 Jan 2016 07:17:06 +0000 (18:17 +1100)]
glcolorbalance: create the shader if it doesn't exist in the render callback
Changing the properties may result in glcolorbalance moving from passthrough to
non-passthrough and we weren't creating the shader in that case.
Matthew Waters [Mon, 25 Jan 2016 05:29:46 +0000 (16:29 +1100)]
qt: specify that we currently only take 2D textures
Fixes black screen video playback on android without a caps filter.
Matthew Waters [Mon, 25 Jan 2016 08:11:38 +0000 (19:11 +1100)]
glvideoflip: incorporate the aspect ratio into the scale_x calculations
1. Otherwise rotating the video will clip and show black bars due to
gltransformation's implementation.
2. The other option of make gltransformation aspect-agnostic produces
incorrect output with perspective transformations.
Alessandro Decina [Wed, 27 Jan 2016 03:36:36 +0000 (14:36 +1100)]
applemedia: avfvideosrc: actually set the configured framerate
Actually set the configured framerate. Before we only used to set the first
matching framerate range. On iOS where the camera reports ranges [2, 60], we
used to configure the camera to output anything between 2 and 60fps.
Luis de Bethencourt [Mon, 25 Jan 2016 22:30:29 +0000 (22:30 +0000)]
opencv: add mask property to cvlaplace
Add a "mask" property that sets whether the edges by cvLaplace should be
used as a mask on the original input or not. The same way the original
image is copied to the edges in edgedetect.
Luis de Bethencourt [Mon, 25 Jan 2016 21:42:52 +0000 (21:42 +0000)]
opencv: add mask property to cvsobel
Add a "mask" property that sets whether the detected derivative edges
should be used as a mask on the original input or not. The same way
the original image is added to the edges in edgedetect.
Luis de Bethencourt [Mon, 25 Jan 2016 15:19:37 +0000 (15:19 +0000)]
opencv: update deprecated function in skindetect
cvCvtPixToPlane() has been deprecated in OpenCV 3.0, and cvSplit() is the
suggested replacement. Since cvSplit() is available in OpenCV 2.4, it is
safe and cautious to update the function usage before it becomes an issue.
Luis de Bethencourt [Mon, 25 Jan 2016 11:43:59 +0000 (11:43 +0000)]
opencv: fix cvlaplace
cvlaplace was also affected by the silent change in OpenCV API, same as
cvsobel. It hasn't been working for a while. It would return a plain black
image. This commit updates the usage of cvLaplace by using cvCvtColor to
create the grayscale intermediate image to process. This also means there
is no need anymore to use GstBaseTransform's transform_caps, since the pads
are RGB.
Vineeth TM [Mon, 25 Jan 2016 04:33:09 +0000 (13:33 +0900)]
h265parse: Fix buffer leak when sps is not present
When sps data is NULL, the buffer allocated and mapped is not being freed.
In this scenario there is no need to allocate the buffer as we are supposed to return NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=761070
Vineeth TM [Mon, 25 Jan 2016 03:05:12 +0000 (12:05 +0900)]
h265parse: Fix buffer memory leak.
While setting caps, codec_data buffer is mapped, but not being unmapped
leading to memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=761070
Luis de Bethencourt [Sat, 23 Jan 2016 17:10:51 +0000 (17:10 +0000)]
opencv: fix cvsobel
cvsobel han't been working for a while due to a silent change in OpenCV
API. It would return a plain black image. This commit updates the usage
of cvSobel by using cvCvtColor to create the grayscale image to process.
This also means there is no need to use GstBaseTransform's transform_caps
anymore, since the pads can be RGB.
Sebastian Dröge [Sat, 23 Jan 2016 03:30:05 +0000 (05:30 +0200)]
pkg-config: Properly version and install base/audio/video .pc files
https://bugzilla.gnome.org/show_bug.cgi?id=760733#c17
Alex Ashley [Fri, 22 Jan 2016 16:43:03 +0000 (16:43 +0000)]
adaptivedemux: fix leak of stream->internal_pad
The function gst_adaptive_demux_stream_update_source() function creates
a new GstPad called internal_pad. This pad is not freed when releasing
the stream.
The solution is to set GST_PAD_FLAG_NEED_PARENT so that the chain
functions do not get called when the pad has no parent and then
remove the parent in the gst_adaptive_demux_stream_free() function. This
causes the refcount of the pad to be set to zero.
https://bugzilla.gnome.org/show_bug.cgi?id=760982
John Chang [Thu, 21 Jan 2016 14:00:44 +0000 (22:00 +0800)]
mpdparser: Use RepresentationIndex instead of Initialization to get the URL of the RepresentationIndex
https://bugzilla.gnome.org/show_bug.cgi?id=760936
Sebastian Dröge [Fri, 22 Jan 2016 15:25:28 +0000 (17:25 +0200)]
ahc: Fail gracefully if our callback class can't be found
Instead of just ignoring that error and then calling JNI functions with NULL,
which will kill the virtual machine.
The error handling here needs some further improvements though, errors in more
places are just ignored.
Sebastian Dröge [Fri, 22 Jan 2016 15:22:47 +0000 (17:22 +0200)]
ahc: Initialize GError pointer with NULL
Otherwise there will be assertions.
Sebastian Dröge [Fri, 22 Jan 2016 15:18:58 +0000 (17:18 +0200)]
amcvideodec: Only free GstAmcBuffer if it's not NULL
And also free it on GL errors.
Julien Moutte [Wed, 13 Jan 2016 21:05:49 +0000 (22:05 +0100)]
decklinkvideosrc: implement RGB capture support
Combine mode and format to generate caps and support the flags from VideoChanged callback to support RGB capture.
https://bugzilla.gnome.org/show_bug.cgi?id=760594
Sebastian Dröge [Fri, 22 Jan 2016 14:22:07 +0000 (16:22 +0200)]
amc: Add an assertion for NULL GErrors
Should never happen! But an assertion is better than a NULL pointer
dereference.
Sebastian Dröge [Fri, 22 Jan 2016 14:14:46 +0000 (16:14 +0200)]
ahc: Fix indentation
Sebastian Dröge [Fri, 22 Jan 2016 14:13:45 +0000 (16:13 +0200)]
amc: MediaCodec::getOutputBuffer() can return NULL without exception
Happens when doing zerocopy rendering, or when passing a wrong index to it.
Handle this properly for zerocopy rendering, fail properly for the other
cases.
https://bugzilla.gnome.org/show_bug.cgi?id=760961
Sebastian Dröge [Sat, 16 Jan 2016 16:59:43 +0000 (18:59 +0200)]
base/audio/video: Install headers and pkg-config files
They are still considered unstable API but it would be good to give them some
wider testing already to make sure the API is useful.
https://bugzilla.gnome.org/show_bug.cgi?id=760733
Sebastian Dröge [Sat, 16 Jan 2016 16:56:26 +0000 (18:56 +0200)]
audio: Move audioaggregator base class to a library
It's useful enough already to be used in other elements for audio aggregation,
let's give people the opportunity to use it and give it some API testing.
https://bugzilla.gnome.org/show_bug.cgi?id=760733
Holger Kaelberer [Thu, 21 Jan 2016 22:13:36 +0000 (23:13 +0100)]
glwindow: Fix android build
https://bugzilla.gnome.org/show_bug.cgi?id=760972
Alessandro Decina [Fri, 22 Jan 2016 02:51:49 +0000 (13:51 +1100)]
applemedia: texture cache: copy the input metas
Copy the input metas so avfvideosrc and vtenc can fast path to using
CVPixelBuffer(s) even when using GLMemory.
Nicolas Dufresne [Thu, 21 Jan 2016 18:50:44 +0000 (13:50 -0500)]
Merge branch 'android-hardware-camera'
This branch adds support for Android Hardware Camera API through a new
element called ahcsrc. This is the "old" Android Camera API, then only
API available on Android 4.X.
https://bugzilla.gnome.org/show_buf.cgi?id=737786
Nicolas Dufresne [Fri, 8 Jan 2016 21:16:09 +0000 (16:16 -0500)]
ahcsrc: Fix latency reporting
Currently it was wrongly reporting min/max as being the shortest and
longest possible frame duration. This is not how latency works in
GStreamer.
Fix by reporting min latency as being the longest possible duration of
one frame. As we don't know how many buffers the stack can accumulate, we
simply assume that max latency is the same (the usual default behaviour).
George Kiagiadakis [Mon, 7 Dec 2015 13:31:40 +0000 (14:31 +0100)]
ahcsrc: fix deadlock when flushing
_data_queue_item_free() calls gst_buffer_unref(), which
calls gst_ahc_src_buffer_free_func(), which calls
g_mutex_lock() on self->mutex and there you go... deadlock!
Justin Kim [Thu, 24 Dec 2015 03:51:13 +0000 (12:51 +0900)]
ahcsrc: porting from 0.10 to 1.0
Justin Kim [Thu, 24 Dec 2015 03:14:24 +0000 (12:14 +0900)]
move androidcamera into androidmedia
This commit is a part of portng android hardware camera from 0.10 implementation.
To preserve history and get diff clearly, the interesting files are moved to
deployment directory and the remaining files are removed.
Youness Alaoui [Mon, 7 Jan 2013 23:27:40 +0000 (18:27 -0500)]
androidcamera: Separate release and free APIs
Youness Alaoui [Mon, 7 Jan 2013 23:20:47 +0000 (18:20 -0500)]
androidmedia: Fix get_level and get_profile exception checking by not using return
Youness Alaoui [Mon, 7 Jan 2013 23:19:28 +0000 (18:19 -0500)]
androidmedia: Add extern gint declarations
Youness Alaoui [Mon, 7 Jan 2013 23:18:18 +0000 (18:18 -0500)]
gstdvm: Fix GST_DVM_GET_STATIC_FIELD
Youness Alaoui [Fri, 30 Nov 2012 01:10:19 +0000 (20:10 -0500)]
androidcamera: Small refactor in case open doesn't throw an exception but returns null
Sebastian Dröge [Thu, 13 Dec 2012 17:57:58 +0000 (17:57 +0000)]
androidcamera: Fix some compiler warnings
Sebastian Dröge [Thu, 13 Dec 2012 17:56:01 +0000 (17:56 +0000)]
dvm: Rename gst-dvm.[ch] to gstdvm.[ch] for consistency with other GStreamer code
Sebastian Dröge [Thu, 13 Dec 2012 17:40:22 +0000 (17:40 +0000)]
dvm: Add new function to check if we started a VM or only used an existing one
Sebastian Dröge [Thu, 13 Dec 2012 17:40:04 +0000 (17:40 +0000)]
androidmedia: Make everything compile with the new wrappers
Sebastian Dröge [Thu, 13 Dec 2012 12:13:27 +0000 (12:13 +0000)]
androidmedia: Add remaining bits of the Java wrappers using libgstdvm
Sebastian Dröge [Thu, 13 Dec 2012 12:13:12 +0000 (12:13 +0000)]
dvm: Add some more helper macros
Sebastian Dröge [Wed, 12 Dec 2012 18:10:13 +0000 (18:10 +0000)]
androidmedia: Remove g_return_if_fails()
This is not public API so it has no advantage to have them here.
Youness Alaoui [Thu, 29 Nov 2012 01:53:51 +0000 (20:53 -0500)]
androidmedia: Use gst-dvm and refactor java wrappers (WIP)
Moved the java wrapper API into its own files and made use of the
gst-dvm macros. Also renamed the API to have the proper naming
convention and coding style in order to match the one in androidcamera.
This is a work in progress! "android/media/MediaCodecList" is still missing
and the actual elements have not been ported to use the new function names.
Youness Alaoui [Wed, 28 Nov 2012 20:26:49 +0000 (15:26 -0500)]
androidcamera: Add G_BEGIN/END_DECLS to the .h
Youness Alaoui [Wed, 28 Nov 2012 00:25:06 +0000 (19:25 -0500)]
gst-dvm: Create a gst-dvm library using part of androidcamera
Youness Alaoui [Tue, 27 Nov 2012 22:24:35 +0000 (17:24 -0500)]
androidcamera: Adding a device-name property
Youness Alaoui [Wed, 21 Nov 2012 00:56:22 +0000 (19:56 -0500)]
androidcamera: Add element documentation
Youness Alaoui [Mon, 19 Nov 2012 23:25:12 +0000 (18:25 -0500)]
androidcamera: Prettify the gstahccallback.c generation line in the makefile
Youness Alaoui [Thu, 15 Nov 2012 17:33:26 +0000 (12:33 -0500)]
androicamera: Make sure the TMP env var exists and check for DEX var too
Youness Alaoui [Wed, 14 Nov 2012 16:38:51 +0000 (11:38 -0500)]
androidcamera: Do not use gst_list_free_full since it requires glib 2.28
Youness Alaoui [Mon, 12 Nov 2012 23:59:57 +0000 (18:59 -0500)]
androidcamera: Add smooth-zoom property for smooth zooming feature
Youness Alaoui [Mon, 12 Nov 2012 23:19:20 +0000 (18:19 -0500)]
androidcamera: Add focal-length, view-angle and video-stabilization properties
Youness Alaoui [Mon, 12 Nov 2012 23:18:11 +0000 (18:18 -0500)]
androidcamera: Add video stabilization API
Youness Alaoui [Mon, 12 Nov 2012 21:38:40 +0000 (16:38 -0500)]
androidcamera: Add property probe for the photography properties
Youness Alaoui [Fri, 9 Nov 2012 23:21:21 +0000 (18:21 -0500)]
androidcamera: Small refactor
Youness Alaoui [Fri, 9 Nov 2012 21:57:30 +0000 (16:57 -0500)]
androidcamera: Fix small memleak
Youness Alaoui [Fri, 9 Nov 2012 21:55:57 +0000 (16:55 -0500)]
androidcamera: Store GParamSpec for properties and use that for the PropertyProbe comparison
Youness Alaoui [Fri, 9 Nov 2012 17:23:37 +0000 (12:23 -0500)]
androidcamera: Handle zoom comparison better, and avoid float precision issue
Youness Alaoui [Fri, 9 Nov 2012 17:22:12 +0000 (12:22 -0500)]
androidcamera: Fix EV compensation support
Youness Alaoui [Thu, 8 Nov 2012 00:16:05 +0000 (19:16 -0500)]
androidcamera: Implement new GstPhotography enums
Youness Alaoui [Wed, 7 Nov 2012 20:38:19 +0000 (15:38 -0500)]
androidcamera: Do not advertise zoom capabilities if camera doesn't support zoom
Youness Alaoui [Wed, 7 Nov 2012 20:37:43 +0000 (15:37 -0500)]
androidcamera: Be NULL-safe when a JNI list is returned
Youness Alaoui [Fri, 2 Nov 2012 22:07:24 +0000 (18:07 -0400)]
androidcamera: Use strcmp on the GParamSpec property name
Use strcmp instead of using the property_id because it's overriden
Youness Alaoui [Fri, 2 Nov 2012 22:00:55 +0000 (18:00 -0400)]
androidmedia: Implement property probe for zoom and ev_compensation
Youness Alaoui [Fri, 2 Nov 2012 21:00:45 +0000 (17:00 -0400)]
androidcamera: Add autofocus support
Youness Alaoui [Fri, 2 Nov 2012 20:59:42 +0000 (16:59 -0400)]
androidcamera: Override properties
Youness Alaoui [Thu, 1 Nov 2012 19:24:12 +0000 (15:24 -0400)]
anroidcamera: Add support for the GstPhotography interface
Youness Alaoui [Thu, 1 Nov 2012 15:58:33 +0000 (11:58 -0400)]
androidcamera: Add more wrappers for the Camera.Parameters class
Youness Alaoui [Wed, 31 Oct 2012 18:21:47 +0000 (14:21 -0400)]
androidcamera: Send proper error when unable to open camera
Youness Alaoui [Tue, 30 Oct 2012 16:13:12 +0000 (12:13 -0400)]
androidcamera: Adding device-orientation and device-facing properties
Youness Alaoui [Tue, 30 Oct 2012 15:35:36 +0000 (11:35 -0400)]
androidcamera: Add device property and property probe it
Youness Alaoui [Tue, 30 Oct 2012 14:12:06 +0000 (10:12 -0400)]
androidcamera: Fix memleak and lose of buffer if the data queue is flushing
Youness Alaoui [Tue, 30 Oct 2012 13:49:39 +0000 (09:49 -0400)]
androidcamera: Calling set_preview_callback with NULL frees all the buffers in the queue.
We must not do it at the stop otherwise we lose all our buffers. It's best to do
it during the close, so we free up the resources.
Youness Alaoui [Tue, 30 Oct 2012 13:49:03 +0000 (09:49 -0400)]
androidcamera: Drop frames if we don't have a clock and var rename
Youness Alaoui [Tue, 30 Oct 2012 13:45:55 +0000 (09:45 -0400)]
androicamera: if buffer size increases, then readd new buffers to the queue and drop old ones
The on_preview callback gets called with NULL if the buffer in the queue is
too small, so we need to handle the case where the array is NULL. Also
there is a bug in the android source which makes it drop one of the buffers
so if we had 5 buffers, and we renegotiate to a higher resolution, then we'd
only get 4 calls to on_preview_frame with NULL, with one being dropped.
This means we can't reallocate the buffers in the if (data == NULL) case
because we might end up with 0 buffers in the end.
Youness Alaoui [Tue, 30 Oct 2012 13:44:31 +0000 (09:44 -0400)]
androidcamera: If callback is NULL then set it to NULL in jni
Nicolas Dufresne [Thu, 21 Jan 2016 18:46:52 +0000 (13:46 -0500)]
androidcamera: Fix debug output