libaacs | branch: master | npzacs <npz...@gmail.com> | Mon Jan  5 16:09:56 2015 
+0200| [fb5b6130ff584c8438fe4f80252687173dd112c8] | committer: npzacs

Open all files in aacs.c

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=fb5b6130ff584c8438fe4f80252687173dd112c8
---

 src/libaacs/aacs.c |   22 +++++++++++++++++++---
 src/libaacs/mkb.c  |   36 +++++++++---------------------------
 src/libaacs/mkb.h  |    4 +++-
 3 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index a866a92..729250f 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -382,6 +382,23 @@ static AACS_FILE_H *_file_open(AACS *aacs, const char 
*file)
     return fp;
 }
 
+static MKB *_mkb_open(AACS *aacs)
+{
+    AACS_FILE_H *fp;
+    MKB         *mkb;
+
+    fp = _file_open(aacs, "AACS/MKB_RO.inf");
+    if (!fp) {
+        DEBUG(DBG_AACS | DBG_CRIT, "Error opening MKB file 
(AACS/MKB_RO.inf)\n");
+        return NULL;
+    }
+
+    mkb = mkb_read(fp);
+    file_close(fp);
+
+    return mkb;
+}
+
 static int _calc_mk(AACS *aacs, uint8_t *mk, pk_list *pkl, dk_list *dkl)
 {
     int a, num_uvs = 0;
@@ -396,7 +413,7 @@ static int _calc_mk(AACS *aacs, uint8_t *mk, pk_list *pkl, 
dk_list *dkl)
 
     DEBUG(DBG_AACS, "Calculate media key...\n");
 
-    if ((mkb = mkb_open(aacs->path))) {
+    if ((mkb = _mkb_open(aacs))) {
 
         aacs->mkb_version = mkb_version(mkb);
         _update_rl(mkb);
@@ -443,7 +460,6 @@ static int _calc_mk(AACS *aacs, uint8_t *mk, pk_list *pkl, 
dk_list *dkl)
         return AACS_ERROR_NO_PK;
     }
 
-    DEBUG(DBG_AACS | DBG_CRIT, "Error opening %s/AACS/MKB_RO.inf\n", 
aacs->path);
     return AACS_ERROR_CORRUPTED_DISC;
 }
 
@@ -1046,7 +1062,7 @@ int aacs_get_mkb_version(AACS *aacs)
 {
     if (!aacs->mkb_version) {
         MKB *mkb;
-        if ((mkb = mkb_open(aacs->path))) {
+        if ((mkb = _mkb_open(aacs))) {
             aacs->mkb_version = mkb_version(mkb);
             mkb_close(mkb);
         }
diff --git a/src/libaacs/mkb.c b/src/libaacs/mkb.c
index 979ca66..8a4b756 100644
--- a/src/libaacs/mkb.c
+++ b/src/libaacs/mkb.c
@@ -54,40 +54,22 @@ static const uint8_t *_record(MKB *mkb, uint8_t type, 
size_t *rec_len)
     return NULL;
 }
 
-MKB *mkb_open(const char *path)
+MKB *mkb_read(AACS_FILE_H *fp)
 {
-    AACS_FILE_H *fp = NULL;
-    char   *f_name;
     MKB *mkb = malloc(sizeof(MKB));
 
-    f_name = str_printf("%s/AACS/MKB_RO.inf", path);
+    file_seek(fp, 0, SEEK_END);
+    mkb->size = file_tell(fp);
+    file_seek(fp, 0, SEEK_SET);
 
-    DEBUG(DBG_MKB, "Opening MKB %s...\n", f_name);
-    fp = file_open(f_name, "rb");
+    mkb->buf = malloc(mkb->size);
 
-    X_FREE(f_name);
+    file_read(fp, mkb->buf, mkb->size);
 
-    if (fp) {
-        file_seek(fp, 0, SEEK_END);
-        mkb->size = file_tell(fp);
-        file_seek(fp, 0, SEEK_SET);
+    DEBUG(DBG_MKB, "MKB size: %u\n", (unsigned)mkb->size);
+    DEBUG(DBG_MKB, "MKB version: %d\n", mkb_version(mkb));
 
-        mkb->buf = malloc(mkb->size);
-
-        file_read(fp, mkb->buf, mkb->size);
-
-        DEBUG(DBG_MKB, "MKB size: %u\n", (unsigned)mkb->size);
-        DEBUG(DBG_MKB, "MKB version: %d\n", mkb_version(mkb));
-
-        file_close(fp);
-        return mkb;
-    }
-
-    DEBUG(DBG_MKB, "Error opening MKB!\n");
-
-    X_FREE(mkb);
-
-    return NULL;
+    return mkb;
 }
 
 MKB *mkb_init(uint8_t *data, int len)
diff --git a/src/libaacs/mkb.h b/src/libaacs/mkb.h
index 44d494e..c1a13fb 100644
--- a/src/libaacs/mkb.h
+++ b/src/libaacs/mkb.h
@@ -27,7 +27,9 @@
 
 typedef struct mkb MKB;
 
-AACS_PRIVATE MKB *mkb_open(const char *path);    // init MKB
+struct aacs_file_s;
+
+AACS_PRIVATE MKB *mkb_read(struct aacs_file_s *fp);    // init MKB
 AACS_PRIVATE MKB *mkb_init(uint8_t *data, int len); // init MKB from data
 AACS_PRIVATE void mkb_close(MKB *mkb);           // free MKB
 

_______________________________________________
libaacs-devel mailing list
libaacs-devel@videolan.org
https://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to