[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:gst-droid.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos/gst-droid.git</param>
<param name="branch">master</param>
- <param name="revision">3552038424d8501b14ff2939dd64c9715d3fe60b</param>
+ <param name="revision">HEAD</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcamsrc/gstdroidcamsrc.c
^
|
@@ -481,8 +481,7 @@
}
if (num > MAX_CAMERAS) {
- GST_ERROR_OBJECT (src, "cannot support %d cameras", num);
- return FALSE;
+ GST_WARNING_OBJECT (src, "cannot support %d cameras", num);
}
src->info[0].num = src->info[1].num = -1;
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcparams.c
^
|
@@ -51,6 +51,12 @@
g_strfreev (parts);
}
+gboolean
+gst_droidcamsrc_has_param (GstDroidCamSrcParams * params, const char *key)
+{
+ return g_hash_table_contains (params->params, key);
+}
+
static int
gst_droidcamsrc_params_get_int_locked (GstDroidCamSrcParams * params,
const char *key)
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcparams.h
^
|
@@ -38,6 +38,7 @@
GstDroidCamSrcParams * gst_droidcamsrc_params_new (const gchar * params);
void gst_droidcamsrc_params_destroy (GstDroidCamSrcParams *params);
+gboolean gst_droidcamsrc_has_param (GstDroidCamSrcParams * params, const char *key);
void gst_droidcamsrc_params_reload (GstDroidCamSrcParams *params, const gchar * str);
gchar *gst_droidcamsrc_params_to_string (GstDroidCamSrcParams *params);
@@ -47,8 +48,7 @@
GstCaps *gst_droidcamsrc_params_get_video_caps (GstDroidCamSrcParams *params);
GstCaps *gst_droidcamsrc_params_get_image_caps (GstDroidCamSrcParams *params);
-void gst_droidcamsrc_params_set_string (GstDroidCamSrcParams *params, const gchar *key,
- const gchar *value);
+void gst_droidcamsrc_params_set_string (GstDroidCamSrcParams *params, const gchar *key, const gchar *value);
const gchar *gst_droidcamsrc_params_get_string (GstDroidCamSrcParams * params, const char *key);
int gst_droidcamsrc_params_get_int (GstDroidCamSrcParams * params, const char *key);
float gst_droidcamsrc_params_get_float (GstDroidCamSrcParams * params, const char *key);
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcphotography.c
^
|
@@ -76,6 +76,7 @@
GList *scene;
GList *wb;
GList *iso;
+ gchar *iso_key;
GList *flicker;
};
@@ -807,6 +808,8 @@
}
}
+ g_strfreev(keys);
+
return list;
}
@@ -1040,12 +1043,25 @@
GST_WARNING_OBJECT (src, "setting iso to %d is not supported", iso_speed);
return FALSE;
}
-
+ // find iso param key if not set
+ if (src->photo->iso_key == NULL) {
+ if (src->dev == NULL || src->dev->params == NULL) {
+ GST_WARNING_OBJECT (src, "Params are NULL! Cannot find iso param key.");
+ return FALSE;
+ }
+ if (gst_droidcamsrc_has_param (src->dev->params, "iso")) {
+ src->photo->iso_key = "iso";
+ } else if (gst_droidcamsrc_has_param (src->dev->params, "iso-speed")) {
+ src->photo->iso_key = "iso-speed";
+ } else {
+ GST_WARNING_OBJECT (src, "ISO setting param key not found. Cannot set");
+ return FALSE;
+ }
+ }
GST_OBJECT_LOCK (src);
src->photo->settings.iso_speed = iso_speed;
GST_OBJECT_UNLOCK (src);
-
- return gst_droidcamsrc_set_and_apply (src, "iso", value);
+ return gst_droidcamsrc_set_and_apply (src, src->photo->iso_key, value);
}
static gboolean
@@ -1406,8 +1422,23 @@
src->photo->settings.iso_speed);
return;
}
-
- gst_droidcamsrc_params_set_string (src->dev->params, "iso", value);
+ // find iso param key if not set
+ if (src->photo->iso_key == NULL) {
+ if (src->dev == NULL || src->dev->params == NULL) {
+ GST_WARNING_OBJECT (src, "Params are NULL! Cannot find iso param key.");
+ return FALSE;
+ }
+ if (gst_droidcamsrc_has_param (src->dev->params, "iso")) {
+ src->photo->iso_key = "iso";
+ } else if (gst_droidcamsrc_has_param (src->dev->params, "iso-speed")) {
+ src->photo->iso_key = "iso-speed";
+ } else {
+ GST_WARNING_OBJECT (src, "ISO setting param key not found. Cannot set");
+ return FALSE;
+ }
+ }
+ gst_droidcamsrc_params_set_string (src->dev->params, src->photo->iso_key,
+ value);
}
static void
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcamsrc/gstdroidcamsrcrecorder.c
^
|
@@ -85,6 +85,10 @@
gst_droidcamsrc_recorder_update_vid (GstDroidCamSrcRecorder * recorder,
GstVideoInfo * info, GstCaps * caps)
{
+ if (recorder->codec) {
+ gst_droid_codec_unref (recorder->codec);
+ }
+
recorder->codec =
gst_droid_codec_new_from_caps (caps, GST_DROID_CODEC_ENCODER_VIDEO);
recorder->md.parent.width = info->width;
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/gst/droidcodec/gstdroidaenc.c
^
|
@@ -115,6 +115,14 @@
md.max_input_size = info.bpf * enc->rate;
enc->codec = droid_media_codec_create_encoder (&md);
+ // Reset timestamp clock
+ GstClock *clock = GST_ELEMENT_CLOCK (enc);
+ if (clock) {
+ gst_object_ref (clock);
+ GST_ELEMENT_CAST (enc)->base_time = gst_clock_get_time (clock);
+ gst_object_unref (clock);
+ }
+
if (!enc->codec) {
GST_ELEMENT_ERROR (enc, LIBRARY, SETTINGS, NULL,
("Failed to create encoder"));
@@ -507,8 +515,23 @@
data.data.size = info.size;
data.data.data = g_malloc (info.size);
data.sync = false;
- data.ts = GST_TIME_AS_USECONDS (buffer->pts);
+/* Check if the buffer has a valid timestamp, and if not then set it from the
+ * encoder's clock, as some versions of libstagefright throw away frames if
+ * it doesn't increase
+ */
+ GstClockTime ts = GST_BUFFER_TIMESTAMP (buffer);
+ if (!GST_CLOCK_TIME_IS_VALID (ts)) {
+ GST_DEBUG_OBJECT (enc, "Replacing invalid timestamp: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ts));
+ GstClock *clock = gst_element_get_clock (enc);
+ if (clock) {
+ ts = gst_clock_get_time (clock) - GST_ELEMENT_CAST (enc)->base_time;
+ GST_DEBUG_OBJECT (enc, "New timestamp: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ts));
+ }
+ }
+ data.ts = GST_TIME_AS_USECONDS (ts);
memcpy (data.data.data, info.data, info.size);
gst_buffer_unmap (buffer, &info);
|
[-]
[+]
|
Changed |
_service:tar_git:gstreamer1.0-droid-0.20180503.0.tar.gz/tools/gstdroidcamsrcconf.c
^
|
@@ -123,6 +123,7 @@
ADD_ENTRY (GST_PHOTOGRAPHY_COLOR_TONE_MODE_AQUA, "aqua"),
{NULL, -1}
}},
+ // Qualcomm ISO values (e.g. ISO100) and Intel (iso-100)
{"iso-values", "iso-speed", {
ADD_ENTRY (0, "auto"),
ADD_ENTRY (0, "iso-auto"),
@@ -138,6 +139,16 @@
ADD_ENTRY (3200, "ISO3200"),
{NULL, -1}
}},
+ // Mediatek ISO values
+ {"iso-speed-values", "iso-speed", {
+ ADD_ENTRY (0, "auto"),
+ ADD_ENTRY (100, "100"),
+ ADD_ENTRY (200, "200"),
+ ADD_ENTRY (400, "400"),
+ ADD_ENTRY (800, "800"),
+ ADD_ENTRY (1600, "1600"),
+ {NULL, -1}
+ }},
{"antibanding-values", "flicker-mode", {
ADD_ENTRY (GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF, "off"),
ADD_ENTRY (GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ, "50hz"),
|