changeset 24749:00ad4fc92af3

Remove driver-dependent #ifdef from norm_from_string routine. It will use TVI_CONTROL_SPC_GET_NORMID if supported by driver and fallback to hardcoded norms otherwise. This will not change current behaviour because hardcoded norms were used with drivers which do not support above ioctl.
author voroshil
date Sun, 14 Oct 2007 05:15:51 +0000
parents c9b8748fcae0
children af0540caadd1
files stream/tv.c
diffstat 1 files changed, 14 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/stream/tv.c	Sun Oct 14 04:56:01 2007 +0000
+++ b/stream/tv.c	Sun Oct 14 05:15:51 2007 +0000
@@ -206,14 +206,20 @@
 
 static int norm_from_string(tvi_handle_t *tvh, char* norm)
 {
-    if (1
-#ifdef HAVE_TV_V4L2
-        && strcmp(tvh->tv_param->driver, "v4l2") != 0
-#endif
-#ifdef HAVE_TV_DSHOW
-        && strcmp(tvh->tv_param->driver, "dshow") != 0
-#endif
-    ) {
+	tvi_functions_t *funcs = tvh->functions;
+	char str[8];
+	int ret;
+	strncpy(str, norm, sizeof(str)-1);
+	str[sizeof(str)-1] = '\0';
+        ret=funcs->control(tvh->priv, TVI_CONTROL_SPC_GET_NORMID, str);
+	if(ret==TVI_CONTROL_TRUE)
+	return *(int *)str;
+	if(ret!=TVI_CONTROL_UNKNOWN)
+        {
+	    mp_msg(MSGT_TV, MSGL_WARN, MSGTR_TV_BogusNormParameter, norm,"default");
+	    return 0;
+        }
+
     if (!strcasecmp(norm, "pal"))
 	return TV_NORM_PAL;
     else if (!strcasecmp(norm, "ntsc"))
@@ -232,20 +238,6 @@
 	mp_msg(MSGT_TV, MSGL_WARN, MSGTR_TV_BogusNormParameter, norm, "PAL");
 	return TV_NORM_PAL;
     }
-#if defined(HAVE_TV_V4L2) || defined(HAVE_TV_DSHOW)
-    } else {
-	tvi_functions_t *funcs = tvh->functions;
-	char str[8];
-	strncpy(str, norm, sizeof(str)-1);
-	str[sizeof(str)-1] = '\0';
-        if (funcs->control(tvh->priv, TVI_CONTROL_SPC_GET_NORMID, str) != TVI_CONTROL_TRUE)
-        {
-	    mp_msg(MSGT_TV, MSGL_WARN, MSGTR_TV_BogusNormParameter, norm,"default");
-	    return 0;
-        }
-	return *(int *)str;
-    }
-#endif
 }
 
 static void parse_channels(tvi_handle_t *tvh)