From 01d6df438da20538ac9afb8e2219ea45e8a78bd6 Mon Sep 17 00:00:00 2001 From: Youness Alaoui Date: Wed, 7 Nov 2012 15:38:19 -0500 Subject: [PATCH] androidcamera: Do not advertise zoom capabilities if camera doesn't support zoom --- sys/androidcamera/gstahcsrc.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/sys/androidcamera/gstahcsrc.c b/sys/androidcamera/gstahcsrc.c index 912008b58d..80a670508f 100644 --- a/sys/androidcamera/gstahcsrc.c +++ b/sys/androidcamera/gstahcsrc.c @@ -1326,10 +1326,24 @@ gst_ahc_src_set_focus_mode (GstPhotography * photo, GstFocusMode focus_mode) static GstPhotoCaps gst_ahc_src_get_capabilities (GstPhotography * photo) { - return GST_PHOTOGRAPHY_CAPS_EV_COMP | GST_PHOTOGRAPHY_CAPS_WB_MODE | - GST_PHOTOGRAPHY_CAPS_TONE | GST_PHOTOGRAPHY_CAPS_SCENE | - GST_PHOTOGRAPHY_CAPS_FLASH | GST_PHOTOGRAPHY_CAPS_ZOOM | - GST_PHOTOGRAPHY_CAPS_FOCUS; + GstAHCSrc *self = GST_AHC_SRC (photo); + + GstPhotoCaps caps = GST_PHOTOGRAPHY_CAPS_EV_COMP | + GST_PHOTOGRAPHY_CAPS_WB_MODE | GST_PHOTOGRAPHY_CAPS_TONE | + GST_PHOTOGRAPHY_CAPS_SCENE | GST_PHOTOGRAPHY_CAPS_FLASH | + GST_PHOTOGRAPHY_CAPS_FOCUS | GST_PHOTOGRAPHY_CAPS_ZOOM; + + if (self->camera) { + GstAHCParameters *params; + + params = gst_ah_camera_get_parameters (self->camera); + if (!gst_ahc_parameters_is_zoom_supported (params)) + caps &= ~GST_PHOTOGRAPHY_CAPS_ZOOM; + + gst_ahc_parameters_free (params); + } + + return caps; } static void