shithub: opus

Download patch

ref: 38805f35d572833e9a54ad247c72aeb93619b1da
parent: a5ff49ecdcf8db706b9d163e64b65c5eae1020de
author: Gregory Maxwell <[email protected]>
date: Wed Oct 26 16:05:56 EDT 2011

Rename test_repacketizer to repacketizer_demo.

--- a/Makefile.am
+++ b/Makefile.am
@@ -26,7 +26,7 @@
 
 noinst_HEADERS = $(OPUS_HEAD) $(SILK_HEAD) $(CELT_HEAD)
 
-noinst_PROGRAMS = opus_demo test_repacketizer opus_compare test_opus_api test_opus_encode test_opus_decode
+noinst_PROGRAMS = opus_demo repacketizer_demo opus_compare test_opus_api test_opus_encode test_opus_decode
 
 TESTS = test_opus_api test_opus_decode test_opus_encode
 
@@ -34,9 +34,9 @@
 
 opus_demo_LDADD = libopus.la -lm
 
-test_repacketizer_SOURCES = src/test_repacketizer.c
+repacketizer_demo_SOURCES = src/repacketizer_demo.c
 
-test_repacketizer_LDADD = libopus.la -lm
+repacketizer_demo_LDADD = libopus.la -lm
 
 opus_compare_SOURCES = src/opus_compare.c
 opus_compare_LDADD = -lm
--- /dev/null
+++ b/src/repacketizer_demo.c
@@ -1,0 +1,163 @@
+
+
+#include "opus.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define MAX_PACKETOUT 32000
+
+void usage(char *argv0)
+{
+   fprintf(stderr, "usage: %s [options] input_file output_file\n", argv0);
+}
+
+static void int_to_char(opus_uint32 i, unsigned char ch[4])
+{
+    ch[0] = i>>24;
+    ch[1] = (i>>16)&0xFF;
+    ch[2] = (i>>8)&0xFF;
+    ch[3] = i&0xFF;
+}
+
+static opus_uint32 char_to_int(unsigned char ch[4])
+{
+    return ((opus_uint32)ch[0]<<24) | ((opus_uint32)ch[1]<<16)
+         | ((opus_uint32)ch[2]<< 8) |  (opus_uint32)ch[3];
+}
+
+int main(int argc, char *argv[])
+{
+   int i, eof=0;
+   FILE *fin, *fout;
+   unsigned char packets[48][1500];
+   int len[48];
+   int rng[48];
+   OpusRepacketizer *rp;
+   unsigned char output_packet[MAX_PACKETOUT];
+   int merge = 1, split=0;
+
+   if (argc < 3)
+   {
+      usage(argv[0]);
+      return 1;
+   }
+   for (i=1;i<argc-2;i++)
+   {
+      if (strcmp(argv[i], "-merge")==0)
+      {
+         merge = atoi(argv[i+1]);
+         if(merge<1)
+         {
+            fprintf(stderr, "-merge parameter must be at least 1.\n");
+            return 1;
+         }
+         i++;
+      } else if (strcmp(argv[i], "-split")==0)
+         split = 1;
+      else
+      {
+         fprintf(stderr, "Unknown option: %s\n", argv[i]);
+         usage(argv[0]);
+         return 1;
+      }
+   }
+   fin = fopen(argv[argc-2], "r");
+   if(fin==NULL)
+   {
+     fprintf(stderr, "Error opening input file: %s\n", argv[argc-2]);
+     return 1;
+   }
+   fout = fopen(argv[argc-1], "w");
+   if(fout==NULL)
+   {
+     fprintf(stderr, "Error opening output file: %s\n", argv[argc-1]);
+     return 1;
+   }
+
+   rp = opus_repacketizer_create();
+   while (!eof)
+   {
+      int err;
+      int nb_packets=merge;
+      opus_repacketizer_init(rp);
+      for (i=0;i<nb_packets;i++)
+      {
+         unsigned char ch[4];
+         err = fread(ch, 1, 4, fin);
+         len[i] = char_to_int(ch);
+         /*fprintf(stderr, "in len = %d\n", len[i]);*/
+         if (len[i]>1500 || len[i]<0)
+         {
+             if (feof(fin))
+             {
+                eof = 1;
+             } else {
+                fprintf(stderr, "Invalid payload length\n");
+                return 1;
+             }
+             break;
+         }
+         err = fread(ch, 1, 4, fin);
+         rng[i] = char_to_int(ch);
+         err = fread(packets[i], 1, len[i], fin);
+         if (feof(fin))
+         {
+            eof = 1;
+            break;
+         }
+         err = opus_repacketizer_cat(rp, packets[i], len[i]);
+         if (err!=OPUS_OK)
+         {
+            fprintf(stderr, "opus_repacketizer_cat() failed: %s\n", opus_strerror(err));
+            break;
+         }
+      }
+      nb_packets = i;
+
+      if (eof)
+         break;
+
+      if (!split)
+      {
+         err = opus_repacketizer_out(rp, output_packet, MAX_PACKETOUT);
+         if (err>0) {
+            unsigned char int_field[4];
+            int_to_char(err, int_field);
+            fwrite(int_field, 1, 4, fout);
+            int_to_char(rng[nb_packets-1], int_field);
+            fwrite(int_field, 1, 4, fout);
+            fwrite(output_packet, 1, err, fout);
+            /*fprintf(stderr, "out len = %d\n", err);*/
+         } else {
+            fprintf(stderr, "opus_repacketizer_out() failed: %s\n", opus_strerror(err));
+         }
+      } else {
+         int nb_frames = opus_repacketizer_get_nb_frames(rp);
+         for (i=0;i<nb_frames;i++)
+         {
+            err = opus_repacketizer_out_range(rp, i, i+1, output_packet, MAX_PACKETOUT);
+            if (err>0) {
+               unsigned char int_field[4];
+               int_to_char(err, int_field);
+               fwrite(int_field, 1, 4, fout);
+               if (i==nb_frames-1)
+                  int_to_char(rng[nb_packets-1], int_field);
+               else
+                  int_to_char(0, int_field);
+               fwrite(int_field, 1, 4, fout);
+               fwrite(output_packet, 1, err, fout);
+               /*fprintf(stderr, "out len = %d\n", err);*/
+            } else {
+               fprintf(stderr, "opus_repacketizer_out() failed: %s\n", opus_strerror(err));
+            }
+
+         }
+      }
+
+   }
+
+   fclose(fin);
+   fclose(fout);
+   return 0;
+}
--- a/src/test_repacketizer.c
+++ /dev/null
@@ -1,163 +1,0 @@
-
-
-#include "opus.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define MAX_PACKETOUT 32000
-
-void usage(char *argv0)
-{
-   fprintf(stderr, "usage: %s [options] input_file output_file\n", argv0);
-}
-
-static void int_to_char(opus_uint32 i, unsigned char ch[4])
-{
-    ch[0] = i>>24;
-    ch[1] = (i>>16)&0xFF;
-    ch[2] = (i>>8)&0xFF;
-    ch[3] = i&0xFF;
-}
-
-static opus_uint32 char_to_int(unsigned char ch[4])
-{
-    return ((opus_uint32)ch[0]<<24) | ((opus_uint32)ch[1]<<16)
-         | ((opus_uint32)ch[2]<< 8) |  (opus_uint32)ch[3];
-}
-
-int main(int argc, char *argv[])
-{
-   int i, eof=0;
-   FILE *fin, *fout;
-   unsigned char packets[48][1500];
-   int len[48];
-   int rng[48];
-   OpusRepacketizer *rp;
-   unsigned char output_packet[MAX_PACKETOUT];
-   int merge = 1, split=0;
-
-   if (argc < 3)
-   {
-      usage(argv[0]);
-      return 1;
-   }
-   for (i=1;i<argc-2;i++)
-   {
-      if (strcmp(argv[i], "-merge")==0)
-      {
-         merge = atoi(argv[i+1]);
-         if(merge<1)
-         {
-            fprintf(stderr, "-merge parameter must be at least 1.\n");
-            return 1;
-         }
-         i++;
-      } else if (strcmp(argv[i], "-split")==0)
-         split = 1;
-      else
-      {
-         fprintf(stderr, "Unknown option: %s\n", argv[i]);
-         usage(argv[0]);
-         return 1;
-      }
-   }
-   fin = fopen(argv[argc-2], "r");
-   if(fin==NULL)
-   {
-     fprintf(stderr, "Error opening input file: %s\n", argv[argc-2]);
-     return 1;
-   }
-   fout = fopen(argv[argc-1], "w");
-   if(fout==NULL)
-   {
-     fprintf(stderr, "Error opening output file: %s\n", argv[argc-1]);
-     return 1;
-   }
-
-   rp = opus_repacketizer_create();
-   while (!eof)
-   {
-      int err;
-      int nb_packets=merge;
-      opus_repacketizer_init(rp);
-      for (i=0;i<nb_packets;i++)
-      {
-         unsigned char ch[4];
-         err = fread(ch, 1, 4, fin);
-         len[i] = char_to_int(ch);
-         /*fprintf(stderr, "in len = %d\n", len[i]);*/
-         if (len[i]>1500 || len[i]<0)
-         {
-             if (feof(fin))
-             {
-                eof = 1;
-             } else {
-                fprintf(stderr, "Invalid payload length\n");
-                return 1;
-             }
-             break;
-         }
-         err = fread(ch, 1, 4, fin);
-         rng[i] = char_to_int(ch);
-         err = fread(packets[i], 1, len[i], fin);
-         if (feof(fin))
-         {
-            eof = 1;
-            break;
-         }
-         err = opus_repacketizer_cat(rp, packets[i], len[i]);
-         if (err!=OPUS_OK)
-         {
-            fprintf(stderr, "opus_repacketizer_cat() failed: %s\n", opus_strerror(err));
-            break;
-         }
-      }
-      nb_packets = i;
-
-      if (eof)
-         break;
-
-      if (!split)
-      {
-         err = opus_repacketizer_out(rp, output_packet, MAX_PACKETOUT);
-         if (err>0) {
-            unsigned char int_field[4];
-            int_to_char(err, int_field);
-            fwrite(int_field, 1, 4, fout);
-            int_to_char(rng[nb_packets-1], int_field);
-            fwrite(int_field, 1, 4, fout);
-            fwrite(output_packet, 1, err, fout);
-            /*fprintf(stderr, "out len = %d\n", err);*/
-         } else {
-            fprintf(stderr, "opus_repacketizer_out() failed: %s\n", opus_strerror(err));
-         }
-      } else {
-         int nb_frames = opus_repacketizer_get_nb_frames(rp);
-         for (i=0;i<nb_frames;i++)
-         {
-            err = opus_repacketizer_out_range(rp, i, i+1, output_packet, MAX_PACKETOUT);
-            if (err>0) {
-               unsigned char int_field[4];
-               int_to_char(err, int_field);
-               fwrite(int_field, 1, 4, fout);
-               if (i==nb_frames-1)
-                  int_to_char(rng[nb_packets-1], int_field);
-               else
-                  int_to_char(0, int_field);
-               fwrite(int_field, 1, 4, fout);
-               fwrite(output_packet, 1, err, fout);
-               /*fprintf(stderr, "out len = %d\n", err);*/
-            } else {
-               fprintf(stderr, "opus_repacketizer_out() failed: %s\n", opus_strerror(err));
-            }
-
-         }
-      }
-
-   }
-
-   fclose(fin);
-   fclose(fout);
-   return 0;
-}