Nicolas Dufresne
2193fa8ffe
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
2016-01-21 13:50:44 -05:00
Nicolas Dufresne
09dbc5b298
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).
2016-01-21 13:49:18 -05:00
George Kiagiadakis
9a53d79876
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!
2016-01-21 13:49:18 -05:00
Justin Kim
f1809c4d93
ahcsrc: porting from 0.10 to 1.0
2016-01-21 13:49:17 -05:00
Justin Kim
becaf2852d
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.
2016-01-21 13:49:17 -05:00
Youness Alaoui
fe288a847b
androidcamera: Separate release and free APIs
2016-01-21 13:49:17 -05:00
Youness Alaoui
c84878ad4b
androidmedia: Fix get_level and get_profile exception checking by not using return
2016-01-21 13:49:17 -05:00
Youness Alaoui
86f2535c41
androidmedia: Add extern gint declarations
2016-01-21 13:49:16 -05:00
Youness Alaoui
81c07b54cd
gstdvm: Fix GST_DVM_GET_STATIC_FIELD
2016-01-21 13:49:16 -05:00
Youness Alaoui
11b28224b5
androidcamera: Small refactor in case open doesn't throw an exception but returns null
2016-01-21 13:49:16 -05:00
Sebastian Dröge
acfb1c44a7
androidcamera: Fix some compiler warnings
2016-01-21 13:49:16 -05:00
Sebastian Dröge
64b869ea40
dvm: Rename gst-dvm.[ch] to gstdvm.[ch] for consistency with other GStreamer code
2016-01-21 13:49:15 -05:00
Sebastian Dröge
7da19b9bda
dvm: Add new function to check if we started a VM or only used an existing one
2016-01-21 13:49:15 -05:00
Sebastian Dröge
e3801c041f
androidmedia: Make everything compile with the new wrappers
2016-01-21 13:49:15 -05:00
Sebastian Dröge
ade8590778
androidmedia: Add remaining bits of the Java wrappers using libgstdvm
2016-01-21 13:49:15 -05:00
Sebastian Dröge
ff435e2a7d
dvm: Add some more helper macros
2016-01-21 13:49:14 -05:00
Sebastian Dröge
ea43e42ca5
androidmedia: Remove g_return_if_fails()
...
This is not public API so it has no advantage to have them here.
2016-01-21 13:49:14 -05:00
Youness Alaoui
3ac90867ac
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.
2016-01-21 13:49:14 -05:00
Youness Alaoui
eb949625b9
androidcamera: Add G_BEGIN/END_DECLS to the .h
2016-01-21 13:49:14 -05:00
Youness Alaoui
4a2a73b13f
gst-dvm: Create a gst-dvm library using part of androidcamera
2016-01-21 13:49:10 -05:00
Youness Alaoui
5d90cc85cb
androidcamera: Adding a device-name property
2016-01-21 13:48:45 -05:00
Youness Alaoui
ebbf475437
androidcamera: Add element documentation
2016-01-21 13:48:44 -05:00
Youness Alaoui
178ef6e9b7
androidcamera: Prettify the gstahccallback.c generation line in the makefile
2016-01-21 13:48:44 -05:00
Youness Alaoui
0cc2e86492
androicamera: Make sure the TMP env var exists and check for DEX var too
2016-01-21 13:48:44 -05:00
Youness Alaoui
42ea071c6c
androidcamera: Do not use gst_list_free_full since it requires glib 2.28
2016-01-21 13:48:43 -05:00
Youness Alaoui
832c7adc76
androidcamera: Add smooth-zoom property for smooth zooming feature
2016-01-21 13:48:43 -05:00
Youness Alaoui
9232685782
androidcamera: Add focal-length, view-angle and video-stabilization properties
2016-01-21 13:48:43 -05:00
Youness Alaoui
eea2904e9d
androidcamera: Add video stabilization API
2016-01-21 13:48:43 -05:00
Youness Alaoui
a79beef1c3
androidcamera: Add property probe for the photography properties
2016-01-21 13:48:42 -05:00
Youness Alaoui
f69448ef13
androidcamera: Small refactor
2016-01-21 13:48:42 -05:00
Youness Alaoui
0a8804110f
androidcamera: Fix small memleak
2016-01-21 13:48:42 -05:00
Youness Alaoui
0a2530ef79
androidcamera: Store GParamSpec for properties and use that for the PropertyProbe comparison
2016-01-21 13:48:42 -05:00
Youness Alaoui
dd78e052ae
androidcamera: Handle zoom comparison better, and avoid float precision issue
2016-01-21 13:48:41 -05:00
Youness Alaoui
5975d396e0
androidcamera: Fix EV compensation support
2016-01-21 13:48:41 -05:00
Youness Alaoui
08298ef7f5
androidcamera: Implement new GstPhotography enums
2016-01-21 13:48:41 -05:00
Youness Alaoui
01d6df438d
androidcamera: Do not advertise zoom capabilities if camera doesn't support zoom
2016-01-21 13:48:41 -05:00
Youness Alaoui
39d7729476
androidcamera: Be NULL-safe when a JNI list is returned
2016-01-21 13:48:41 -05:00
Youness Alaoui
dae0337d91
androidcamera: Use strcmp on the GParamSpec property name
...
Use strcmp instead of using the property_id because it's overriden
2016-01-21 13:48:12 -05:00
Youness Alaoui
49a40edae9
androidmedia: Implement property probe for zoom and ev_compensation
2016-01-21 13:48:03 -05:00
Youness Alaoui
1ef65636d1
androidcamera: Add autofocus support
2016-01-21 13:47:53 -05:00
Youness Alaoui
24b29d4266
androidcamera: Override properties
2016-01-21 13:47:52 -05:00
Youness Alaoui
2d45a878b4
anroidcamera: Add support for the GstPhotography interface
2016-01-21 13:47:52 -05:00
Youness Alaoui
77ba73ca7e
androidcamera: Add more wrappers for the Camera.Parameters class
2016-01-21 13:47:52 -05:00
Youness Alaoui
2e745fa1b1
androidcamera: Send proper error when unable to open camera
2016-01-21 13:47:52 -05:00
Youness Alaoui
02f36d92bc
androidcamera: Adding device-orientation and device-facing properties
2016-01-21 13:47:49 -05:00
Youness Alaoui
a08c895303
androidcamera: Add device property and property probe it
2016-01-21 13:47:27 -05:00
Youness Alaoui
0552bb1b2a
androidcamera: Fix memleak and lose of buffer if the data queue is flushing
2016-01-21 13:47:03 -05:00
Youness Alaoui
122083eadb
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.
2016-01-21 13:47:03 -05:00
Youness Alaoui
acb15e4178
androidcamera: Drop frames if we don't have a clock and var rename
2016-01-21 13:47:02 -05:00
Youness Alaoui
691ab727b0
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.
2016-01-21 13:47:02 -05:00