[MPlayer-cvslog] r38314 - trunk/stream/stream_bd.c

reimar subversion at mplayerhq.hu
Sat Sep 4 19:26:51 EEST 2021


Author: reimar
Date: Sat Sep  4 19:26:50 2021
New Revision: 38314

Log:
stream_bd.c: support newer keydb.cfg format

Modified:
   trunk/stream/stream_bd.c

Modified: trunk/stream/stream_bd.c
==============================================================================
--- trunk/stream/stream_bd.c	Fri May 14 23:26:55 2021	(r38313)
+++ trunk/stream/stream_bd.c	Sat Sep  4 19:26:50 2021	(r38314)
@@ -170,10 +170,15 @@ static int find_vuk(struct bd_priv *bd,
         if (vukfound)
             return 1;
     }
-    filename = av_asprintf("%s/.config/aacs/KEYDB.cfg", home);
+    filename = av_asprintf("%s/.config/aacs/keydb.cfg", home);
     file = open_stream(filename, NULL, NULL);
     if (!file) {
         av_freep(&filename);
+        filename = av_asprintf("%s/.config/aacs/KEYDB.cfg", home);
+        file = open_stream(filename, NULL, NULL);
+    }
+    if (!file) {
+        av_freep(&filename);
         filename = av_asprintf("%s/.dvdcss/KEYDB.cfg", home);
         file = open_stream(filename, NULL, NULL);
     }
@@ -197,7 +202,9 @@ static int find_vuk(struct bd_priv *bd,
         // or         I | I-Key
         // can be followed by ; and comment
 
-        if (av_strncasecmp(line, idstr, 40))
+        if (strlen(line) < 40) continue;
+        // Do not care whether it starts with 0x or not
+        if (av_strncasecmp(line, idstr, 40) && av_strncasecmp(line + 2, idstr, 40))
             continue;
         mp_msg(MSGT_OPEN, MSGL_V, "KeyDB found Entry for DiscID:\n%s\n", line);
 
@@ -206,6 +213,7 @@ static int find_vuk(struct bd_priv *bd,
             break;
         vst += 6;
         while (isspace(*vst)) vst++;
+        if (vst[0] == '0' && vst[1] == 'x') vst += 2;
         if (sscanf(vst,      "%16"SCNx64, &bd->vuk.u64[0]) != 1)
             continue;
         if (sscanf(vst + 16, "%16"SCNx64, &bd->vuk.u64[1]) != 1)
@@ -214,6 +222,8 @@ static int find_vuk(struct bd_priv *bd,
         bd->vuk.u64[1] = av_be2ne64(bd->vuk.u64[1]);
         vukfound = 1;
     }
+    if (!vukfound)
+        mp_msg(MSGT_OPEN, MSGL_V, "Failed to find KeyDB Entry for DiscID:\n%s\n", line);
     free_stream(file);
     return vukfound;
 }


More information about the MPlayer-cvslog mailing list