mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-02 20:42:30 +00:00
androidcamera: Add element documentation
This commit is contained in:
parent
178ef6e9b7
commit
ebbf475437
3 changed files with 129 additions and 0 deletions
28
docs/plugins/inspect/plugin-androidcamera.xml
Normal file
28
docs/plugins/inspect/plugin-androidcamera.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<plugin>
|
||||||
|
<name>androidcamera</name>
|
||||||
|
<description>Capture from Android cameras</description>
|
||||||
|
<filename>../../sys/androidcamera/.libs/libgstandroidcamera.so</filename>
|
||||||
|
<basename>libgstandroidcamera.so</basename>
|
||||||
|
<version>0.10.22.1</version>
|
||||||
|
<license>LGPL</license>
|
||||||
|
<source>gst-plugins-bad</source>
|
||||||
|
<package>GStreamer Bad Plug-ins git</package>
|
||||||
|
<origin>Unknown package origin</origin>
|
||||||
|
<elements>
|
||||||
|
<element>
|
||||||
|
<name>ahcsrc</name>
|
||||||
|
<longname>Android Camera Source</longname>
|
||||||
|
<class>Source/Video</class>
|
||||||
|
<description>Reads frames from android.hardware.Camera class into buffers</description>
|
||||||
|
<author>Youness Alaoui <youness.alaoui@collabora.co.uk></author>
|
||||||
|
<pads>
|
||||||
|
<caps>
|
||||||
|
<name>src</name>
|
||||||
|
<direction>source</direction>
|
||||||
|
<presence>always</presence>
|
||||||
|
<details>video/x-raw-yuv, format=(fourcc) { YV12 , YUY2 , NV21 , NV16 }, width=(int) [ 1, 2147483647 ], height=(int) [ 1, 2147483647 ], framerate=(fraction) [ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int) [ 1, 2147483647 ], height=(int) [ 1, 2147483647 ], framerate=(fraction) [ 0/1, 2147483647/1 ] </details>
|
||||||
|
</caps>
|
||||||
|
</pads>
|
||||||
|
</element>
|
||||||
|
</elements>
|
||||||
|
</plugin>
|
|
@ -19,6 +19,52 @@
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:element-ahcsrc
|
||||||
|
*
|
||||||
|
* ahcsrc can be used to capture video from android devices. It uses the
|
||||||
|
* android.hardware.Camera Java API to capture from the system's cameras.
|
||||||
|
*
|
||||||
|
* In order for the plugin to get registered, it must be able to find its
|
||||||
|
* Java callbacks class. That class is embedded as a jar file inside the source
|
||||||
|
* element (if properly compiled) and will be written to a temporary directory
|
||||||
|
* so it can be loaded into the virtual machine.
|
||||||
|
* In order for it to work, an environment variable must be set to a writable
|
||||||
|
* directory.
|
||||||
|
* The source will look for the environment variable “TMP” which must contain
|
||||||
|
* the absolute path to a writable directory.
|
||||||
|
* It can be retreived using the following Java code :
|
||||||
|
* |[
|
||||||
|
* context.getCacheDir().getAbsolutePath();
|
||||||
|
* ]|
|
||||||
|
* Where the @context variable is an object of type android.content.Context
|
||||||
|
* (including its subclasses android.app.Activity or android.app.Application).
|
||||||
|
* Another optional environment variable can be set for pointing to the
|
||||||
|
* optimized dex classes directory. If the environment variable “DEX” is
|
||||||
|
* available, it will be used, otherwise, the directory in the “TMP” environment
|
||||||
|
* variable will be used for the optimized dex directory.
|
||||||
|
* The system dex directory can be obtained using the following Java code :
|
||||||
|
* |[
|
||||||
|
* context.getDir(“dex”, 0).getAbsolutePath();
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* <note>
|
||||||
|
* Those environment variable must be set before gst_init is called from
|
||||||
|
* the native code.
|
||||||
|
* </note>
|
||||||
|
*
|
||||||
|
* <note>
|
||||||
|
* If the “TMP” environment variable is not available or the directory is not
|
||||||
|
* writable or any other issue happens while trying to load the embedded jar
|
||||||
|
* file, then the source will fallback on trying to load the class directly
|
||||||
|
* from the running application.
|
||||||
|
* The file com/gstreamer/GstAhcCallback.java in the source's directory can be
|
||||||
|
* copied into the Android application so it can be loaded at runtime
|
||||||
|
* as a fallback mechanism.
|
||||||
|
* </note>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -254,18 +300,40 @@ gst_ahc_src_class_init (GstAHCSrcClass * klass)
|
||||||
|
|
||||||
gstpushsrc_class->create = gst_ahc_src_create;
|
gstpushsrc_class->create = gst_ahc_src_create;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:device:
|
||||||
|
*
|
||||||
|
* The Device ID of the camera to capture from
|
||||||
|
*/
|
||||||
properties[PROP_DEVICE] = g_param_spec_string ("device",
|
properties[PROP_DEVICE] = g_param_spec_string ("device",
|
||||||
"device", "Device ID", DEFAULT_DEVICE,
|
"device", "Device ID", DEFAULT_DEVICE,
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (gobject_class, PROP_DEVICE,
|
g_object_class_install_property (gobject_class, PROP_DEVICE,
|
||||||
properties[PROP_DEVICE]);
|
properties[PROP_DEVICE]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:device-orientation:
|
||||||
|
*
|
||||||
|
* The orientation of the currently set camera @device.
|
||||||
|
* The value is the angle that the camera image needs to be rotated clockwise
|
||||||
|
* so it shows correctly on the display in its natural orientation.
|
||||||
|
* It should be 0, 90, 180, or 270.
|
||||||
|
*/
|
||||||
properties[PROP_DEVICE_ORIENTATION] = g_param_spec_int ("device-orientation",
|
properties[PROP_DEVICE_ORIENTATION] = g_param_spec_int ("device-orientation",
|
||||||
"Device orientation", "The orientation of the camera image",
|
"Device orientation", "The orientation of the camera image",
|
||||||
0, 360, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
0, 360, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (gobject_class, PROP_DEVICE_ORIENTATION,
|
g_object_class_install_property (gobject_class, PROP_DEVICE_ORIENTATION,
|
||||||
properties[PROP_DEVICE_ORIENTATION]);
|
properties[PROP_DEVICE_ORIENTATION]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:device-facing:
|
||||||
|
*
|
||||||
|
* The direction that the currently select camera @device faces.
|
||||||
|
*
|
||||||
|
* A value of 0 means the camera is facing the opposite direction as the
|
||||||
|
* screen while a value of 1 means the camera is facing the same direction
|
||||||
|
* as the screen.
|
||||||
|
*/
|
||||||
properties[PROP_DEVICE_FACING] = g_param_spec_enum ("device-facing",
|
properties[PROP_DEVICE_FACING] = g_param_spec_enum ("device-facing",
|
||||||
"Device facing", "The direction that the camera faces",
|
"Device facing", "The direction that the camera faces",
|
||||||
GST_AHC_SRC_FACING_TYPE, CAMERA_FACING_BACK,
|
GST_AHC_SRC_FACING_TYPE, CAMERA_FACING_BACK,
|
||||||
|
@ -273,12 +341,22 @@ gst_ahc_src_class_init (GstAHCSrcClass * klass)
|
||||||
g_object_class_install_property (gobject_class, PROP_DEVICE_FACING,
|
g_object_class_install_property (gobject_class, PROP_DEVICE_FACING,
|
||||||
properties[PROP_DEVICE_FACING]);
|
properties[PROP_DEVICE_FACING]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:focal-length:
|
||||||
|
*
|
||||||
|
* Gets the focal length (in millimeter) of the camera.
|
||||||
|
*/
|
||||||
properties[PROP_FOCAL_LENGTH] = g_param_spec_float ("focal-length",
|
properties[PROP_FOCAL_LENGTH] = g_param_spec_float ("focal-length",
|
||||||
"Focal length", "Gets the focal length (in millimeter) of the camera",
|
"Focal length", "Gets the focal length (in millimeter) of the camera",
|
||||||
-G_MAXFLOAT, G_MAXFLOAT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
-G_MAXFLOAT, G_MAXFLOAT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||||
g_object_class_install_property (gobject_class, PROP_FOCAL_LENGTH,
|
g_object_class_install_property (gobject_class, PROP_FOCAL_LENGTH,
|
||||||
properties[PROP_FOCAL_LENGTH]);
|
properties[PROP_FOCAL_LENGTH]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:horizontal-view-angle:
|
||||||
|
*
|
||||||
|
* Gets the horizontal angle of view in degrees.
|
||||||
|
*/
|
||||||
properties[PROP_HORIZONTAL_VIEW_ANGLE] =
|
properties[PROP_HORIZONTAL_VIEW_ANGLE] =
|
||||||
g_param_spec_float ("horizontal-view-angle", "Horizontal view angle",
|
g_param_spec_float ("horizontal-view-angle", "Horizontal view angle",
|
||||||
"Gets the horizontal angle of view in degrees",
|
"Gets the horizontal angle of view in degrees",
|
||||||
|
@ -286,6 +364,11 @@ gst_ahc_src_class_init (GstAHCSrcClass * klass)
|
||||||
g_object_class_install_property (gobject_class, PROP_HORIZONTAL_VIEW_ANGLE,
|
g_object_class_install_property (gobject_class, PROP_HORIZONTAL_VIEW_ANGLE,
|
||||||
properties[PROP_HORIZONTAL_VIEW_ANGLE]);
|
properties[PROP_HORIZONTAL_VIEW_ANGLE]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:vertical-view-angle:
|
||||||
|
*
|
||||||
|
* Gets the vertical angle of view in degrees.
|
||||||
|
*/
|
||||||
properties[PROP_VERTICAL_VIEW_ANGLE] =
|
properties[PROP_VERTICAL_VIEW_ANGLE] =
|
||||||
g_param_spec_float ("vertical-view-angle", "Vertical view angle",
|
g_param_spec_float ("vertical-view-angle", "Vertical view angle",
|
||||||
"Gets the vertical angle of view in degrees",
|
"Gets the vertical angle of view in degrees",
|
||||||
|
@ -293,6 +376,11 @@ gst_ahc_src_class_init (GstAHCSrcClass * klass)
|
||||||
g_object_class_install_property (gobject_class, PROP_VERTICAL_VIEW_ANGLE,
|
g_object_class_install_property (gobject_class, PROP_VERTICAL_VIEW_ANGLE,
|
||||||
properties[PROP_VERTICAL_VIEW_ANGLE]);
|
properties[PROP_VERTICAL_VIEW_ANGLE]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:video-stabilizatio:
|
||||||
|
*
|
||||||
|
* Video stabilization reduces the shaking due to the motion of the camera.
|
||||||
|
*/
|
||||||
properties[PROP_VIDEO_STABILIZATION] =
|
properties[PROP_VIDEO_STABILIZATION] =
|
||||||
g_param_spec_boolean ("video-stabilization", "Video stabilization",
|
g_param_spec_boolean ("video-stabilization", "Video stabilization",
|
||||||
"Video stabilization reduces the shaking due to the motion of the camera",
|
"Video stabilization reduces the shaking due to the motion of the camera",
|
||||||
|
@ -300,6 +388,13 @@ gst_ahc_src_class_init (GstAHCSrcClass * klass)
|
||||||
g_object_class_install_property (gobject_class, PROP_VIDEO_STABILIZATION,
|
g_object_class_install_property (gobject_class, PROP_VIDEO_STABILIZATION,
|
||||||
properties[PROP_VIDEO_STABILIZATION]);
|
properties[PROP_VIDEO_STABILIZATION]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:smooth-zoom:
|
||||||
|
*
|
||||||
|
* If enabled, then smooth zooming will be used when the @zoom property is
|
||||||
|
* changed. In that case, the @zoom property can be queried to know the
|
||||||
|
* current zoom level while the smooth zoom is in progress.
|
||||||
|
*/
|
||||||
properties[PROP_SMOOTH_ZOOM] = g_param_spec_boolean ("smooth-zoom",
|
properties[PROP_SMOOTH_ZOOM] = g_param_spec_boolean ("smooth-zoom",
|
||||||
"Smooth Zoom", "Use smooth zoom when available",
|
"Smooth Zoom", "Use smooth zoom when available",
|
||||||
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
||||||
|
|
|
@ -45,8 +45,14 @@ G_BEGIN_DECLS
|
||||||
typedef struct _GstAHCSrc GstAHCSrc;
|
typedef struct _GstAHCSrc GstAHCSrc;
|
||||||
typedef struct _GstAHCSrcClass GstAHCSrcClass;
|
typedef struct _GstAHCSrcClass GstAHCSrcClass;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstAHCSrc:
|
||||||
|
*
|
||||||
|
* Opaque data structure.
|
||||||
|
*/
|
||||||
struct _GstAHCSrc
|
struct _GstAHCSrc
|
||||||
{
|
{
|
||||||
|
/*< private >*/
|
||||||
GstPushSrc parent;
|
GstPushSrc parent;
|
||||||
|
|
||||||
GstAHCamera *camera;
|
GstAHCamera *camera;
|
||||||
|
|
Loading…
Reference in a new issue