summaryrefslogtreecommitdiff
path: root/multimedia/transcode/files/patch-libtc-tc_functions.c
blob: 0104d1240ecbfc4de057258abdf88c8e716e2489 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--- libtc/tc_functions.c.orig	2008-08-09 17:24:38.000000000 -0400
+++ libtc/tc_functions.c	2009-02-01 22:13:42.000000000 -0500
@@ -534,6 +534,15 @@
         /* char device could be several things, depending on system */
         /* *BSD DVD device? v4l? bktr? sunau? */
         if(S_ISCHR(fbuf.st_mode)) {
+#ifdef __FreeBSD__
+            if (strstr(name, "bktr") || strstr(name, "tuner") || strstr(name, "wbi"))
+                return TC_PROBE_PATH_BKTR;
+            else if (strstr(name, "dsp") || strstr(name, "audio") || strstr(name, "music"))
+                return TC_PROBE_PATH_OSS;
+            else
+                return TC_PROBE_PATH_ABSPATH;
+#endif
+
             switch (major(fbuf.st_rdev)) {
 #ifdef OS_BSD
 # ifdef __OpenBSD__
@@ -544,14 +553,6 @@
                 case 49: /* bktr */
                     return TC_PROBE_PATH_BKTR;
 # endif
-# ifdef __FreeBSD__
-                case 4: /* acd */
-                    return TC_PROBE_PATH_ABSPATH;
-                case 229: /* bktr */
-                    return TC_PROBE_PATH_BKTR;
-                case 0: /* OSS */
-                    return TC_PROBE_PATH_OSS;
-# endif
                 default: /* libdvdread uses "raw" disk devices here */
                     return TC_PROBE_PATH_ABSPATH;
 #else