home *** CD-ROM | disk | FTP | other *** search
/ Internet MPEG Audio Archive / IMAA.mdf / UTIL / DOS / MP2SPLIT / MP2SPLIT.C < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-02  |  1.1 KB  |  58 lines

  1.  
  2. /*
  3. From: "Tobias 'Doping' Bading" <bading@cs.tu-berlin.de>
  4. Subject: extract_frames.c
  5. Date: Mon, 9 May 1994 14:44:32 +0200 (MET DST)
  6. Modified-by: phade ;o)
  7. */
  8.  
  9. #include <stdio.h>
  10.  
  11. #define True  1
  12. #define False 0
  13.  
  14. int main (int argc, char *argv[])
  15. {
  16.   int zeichen, sync = False;
  17.   int offset = 0, last_offset = 1;
  18.   int anfang, ende, aktuell = -1;
  19.   FILE *s, *t;
  20.  
  21.   if (argc != 5)
  22.   {
  23.     fprintf (stderr, "usage: mp2split source target #start #end\n");
  24.     exit (0);
  25.   }
  26.   sscanf (argv[3], "%d", &anfang);
  27.   sscanf (argv[4], "%d", &ende);
  28.   s = fopen (argv [1], "rb");
  29.   t = fopen (argv [2], "wb");
  30.   fputc ('\377', t);
  31.   for (;;)
  32.   {
  33.     if ((zeichen = fgetc (s)) == EOF)
  34.       break;
  35.     if (sync && (zeichen & 0xF0) == 0xF0 && zeichen != 255)
  36.     {
  37.       /* Syncwort gefunden */
  38.       last_offset = offset;
  39.       sync = False;
  40.       if (++aktuell > ende)
  41.         break;
  42.     }
  43.     else
  44.       if (zeichen == 255)
  45.         sync = True;
  46.       else
  47.         sync = False;
  48.     if (aktuell >= anfang)
  49.       fputc (zeichen, t);
  50.     ++offset;
  51.   }
  52.   fclose (s);
  53.   fclose (t);
  54.  
  55.   return 0;
  56. }
  57.  
  58.