shithub: opus

Download patch

ref: ec6e42ba3d82ffaca24c2debd010111a60628408
parent: c708e68bc69fbe65f3d2e2afd204b1caa12bb677
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Wed May 31 11:57:37 EDT 2023

misc fixes

--- a/dnn/lpcnet_demo.c
+++ b/dnn/lpcnet_demo.c
@@ -225,6 +225,9 @@
         LPCNetPLCState *net;
         if ((plc_flags&0x3) == LPCNET_PLC_NONCAUSAL) skip=extra=80;
         net = lpcnet_plc_create(plc_flags);
+#ifdef USE_WEIGHTS_FILE
+        lpcnet_plc_load_model(net, data, len);
+#endif
         while (1) {
             size_t ret;
             ret = fread(pcm, sizeof(pcm[0]), FRAME_SIZE, fin);
@@ -260,6 +263,7 @@
     }
     fclose(fin);
     fclose(fout);
+    if (plc_file) fclose(plc_file);
 #ifdef USE_WEIGHTS_FILE
     free_blob(data, len);
 #endif
--- a/dnn/lpcnet_plc.c
+++ b/dnn/lpcnet_plc.c
@@ -83,7 +83,9 @@
   parse_weights(&list, data, len);
   ret = init_plc_model(&st->model, list);
   free(list);
-  if (ret == 0) return 0;
+  if (ret == 0) {
+    return lpcnet_load_model(&st->lpcnet, data, len);
+  }
   else return -1;
 }
 
--- a/dnn/parse_lpcnet_weights.c
+++ b/dnn/parse_lpcnet_weights.c
@@ -66,6 +66,10 @@
         *list = realloc(*list, capacity*sizeof(WeightArray));
       }
       (*list)[nb_arrays++] = array;
+    } else {
+      free(*list);
+      *list = NULL;
+      return -1;
     }
   }
   (*list)[nb_arrays].name=NULL;
--