added (long) GPL headers.
[swftools.git] / src / swfdump.c
index 157c18c..3e15b6a 100644 (file)
@@ -4,8 +4,20 @@
    Part of the swftools package.
    
    Copyright (c) 2001 Matthias Kramm <kramm@quiss.org>
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-   This file is distributed under the GPL, see file COPYING for details */
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 #include "../config.h"
 
@@ -56,7 +68,6 @@ struct options_t options[] =
  {"e","html"},
  {"p","placements"},
  {"u","used"},
- {"v","verbose"},
  {"V","version"},
  {"d","hex"},
  {0,0}
@@ -398,7 +409,7 @@ void handleVideoFrame(TAG*tag, char*prefix)
     U16 id = swf_GetU16(tag);
     U16 frame = swf_GetU16(tag);
     U8 deblock,flags, tmp, bit;
-    U32 quantizer, extrainfo;
+    U32 quantizer;
     char*types[] = {"I-frame", "P-frame", "disposable P-frame", "<reserved>"};
     printf(" (frame %d) ", frame);
 
@@ -410,7 +421,7 @@ void handleVideoFrame(TAG*tag, char*prefix)
     sizeflags = swf_GetBits(tag, 3);
     switch(sizeflags)
     {
-       case 0: width = swf_GetU8(tag); height = swf_GetU8(tag); break;
+       case 0: width = swf_GetBits(tag, 8); height = swf_GetBits(tag, 8); break;
        case 1: width = swf_GetBits(tag, 16); height = swf_GetBits(tag, 16); break;
        case 2: width = 352; height = 288; break;
        case 3: width = 176; height = 144; break;
@@ -423,6 +434,11 @@ void handleVideoFrame(TAG*tag, char*prefix)
     type = swf_GetBits(tag, 2);
     printf("%s", types[type]);
 
+    deblock = swf_GetBits(tag, 1);
+    if(deblock)
+       printf(" deblock ", deblock);
+    quantizer = swf_GetBits(tag, 5);
+    printf(" quant: %d ", quantizer);
 }
 
 void handlePlaceObject2(TAG*tag, char*prefix)
@@ -617,7 +633,7 @@ int main (int argc,char ** argv)
         return 1;
     }
 
-    f = open(filename,O_RDONLY);
+    f = open(filename,O_RDONLY|O_BINARY);
 
     if (f<0)
     { 
@@ -873,6 +889,11 @@ int main (int argc,char ** argv)
            handleEditText(tag);
            printf("\n");
        }
+       else if(tag->id == ST_DEFINEMOVIE) {
+           U16 id = swf_GetU16(tag);
+           char*s = swf_GetString(tag);
+           printf(" URL: %s\n", s);
+       }
        else if(tag->id == ST_DEFINETEXT || tag->id == ST_DEFINETEXT2) {
            if(showtext)
                handleText(tag);