mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-30 11:08:34 +00:00
videorate: Use new string fixation function from core
This commit is contained in:
parent
b1a9af61c7
commit
258e519b49
2 changed files with 3 additions and 42 deletions
|
@ -60,7 +60,7 @@ AC_LIBTOOL_WIN32_DLL
|
||||||
AM_PROG_LIBTOOL
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
dnl *** required versions of GStreamer stuff ***
|
dnl *** required versions of GStreamer stuff ***
|
||||||
GST_REQ=0.10.29
|
GST_REQ=0.10.29.1
|
||||||
|
|
||||||
dnl *** autotools stuff ****
|
dnl *** autotools stuff ****
|
||||||
|
|
||||||
|
|
|
@ -268,45 +268,6 @@ gst_video_rate_getcaps (GstPad * pad)
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
_gst_structure_fixate_field_string (GstStructure * structure,
|
|
||||||
const char *field_name, const gchar * target)
|
|
||||||
{
|
|
||||||
const GValue *value;
|
|
||||||
|
|
||||||
value = gst_structure_get_value (structure, field_name);
|
|
||||||
|
|
||||||
if (G_VALUE_TYPE (value) == G_TYPE_STRING) {
|
|
||||||
/* already fixed */
|
|
||||||
return FALSE;
|
|
||||||
} else if (G_VALUE_TYPE (value) == GST_TYPE_LIST) {
|
|
||||||
const GValue *list_value;
|
|
||||||
int i, n;
|
|
||||||
const gchar *best = NULL;
|
|
||||||
int best_index = -1;
|
|
||||||
|
|
||||||
n = gst_value_list_get_size (value);
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
list_value = gst_value_list_get_value (value, i);
|
|
||||||
if (G_VALUE_TYPE (list_value) == G_TYPE_STRING) {
|
|
||||||
const gchar *x = g_value_get_string (list_value);
|
|
||||||
|
|
||||||
if (best_index == -1 || g_str_equal (x, target)) {
|
|
||||||
best_index = i;
|
|
||||||
best = x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (best_index != -1) {
|
|
||||||
gst_structure_set (structure, field_name, G_TYPE_STRING, best, NULL);
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
|
gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
{
|
{
|
||||||
|
@ -388,9 +349,9 @@ gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
|
||||||
if (gst_structure_has_field (structure, "interlaced"))
|
if (gst_structure_has_field (structure, "interlaced"))
|
||||||
gst_structure_fixate_field_boolean (structure, "interlaced", FALSE);
|
gst_structure_fixate_field_boolean (structure, "interlaced", FALSE);
|
||||||
if (gst_structure_has_field (structure, "color-matrix"))
|
if (gst_structure_has_field (structure, "color-matrix"))
|
||||||
_gst_structure_fixate_field_string (structure, "color-matrix", "sdtv");
|
gst_structure_fixate_field_string (structure, "color-matrix", "sdtv");
|
||||||
if (gst_structure_has_field (structure, "chroma-site"))
|
if (gst_structure_has_field (structure, "chroma-site"))
|
||||||
_gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2");
|
gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2");
|
||||||
|
|
||||||
gst_pad_set_caps (otherpad, caps);
|
gst_pad_set_caps (otherpad, caps);
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
|
|
Loading…
Reference in a new issue