]> git.sesse.net Git - vlc/commitdiff
suite du parseur.
authorChristophe Massiot <massiot@videolan.org>
Wed, 22 Dec 1999 13:18:13 +0000 (13:18 +0000)
committerChristophe Massiot <massiot@videolan.org>
Wed, 22 Dec 1999 13:18:13 +0000 (13:18 +0000)
include/video_parser.h
src/video_parser/vpar_headers.c

index f6a1a2a121e81c93c3446afe381eb666c9d46e29..825c3c1a4c0ed9d6f5a657bcd14e1f0b75ec8474 100644 (file)
@@ -105,6 +105,18 @@ typedef struct vpar_thread_s
 #define SEQUENCE_END_CODE       0x1B7
 #define GROUP_START_CODE        0x1B8
 
+/* extension start code IDs */
+
+#define SEQUENCE_EXTENSION_ID                    1
+#define SEQUENCE_DISPLAY_EXTENSION_ID            2
+#define QUANT_MATRIX_EXTENSION_ID                3
+#define COPYRIGHT_EXTENSION_ID                   4
+#define SEQUENCE_SCALABLE_EXTENSION_ID           5
+#define PICTURE_DISPLAY_EXTENSION_ID             7
+#define PICTURE_CODING_EXTENSION_ID              8
+#define PICTURE_SPATIAL_SCALABLE_EXTENSION_ID    9
+#define PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID  10
+
 /*******************************************************************************
  * Prototypes
  *******************************************************************************/
index c55383877d7ff42bc97a3bb2290171084dc1e58e..7c022ad4a5a2d530b10721b22b7b12b7788b1dc3 100644 (file)
@@ -383,7 +383,7 @@ static void SequenceHeader( vpar_thread_t * p_vpar )
  *****************************************************************************/
 static void GroupHeader( vpar_thread_t * p_vpar )
 {
-    /* Nothing to do, we don't care */
+    /* Nothing to do, we don't care. */
     DumpBits( &p_vpar->bit_stream, 27 );
     ExtensionAndUserData( p_vpar );
 }
@@ -467,9 +467,57 @@ static void __inline__ ReferenceUpdate( vpar_thread_t * p_vpar,
  *****************************************************************************/
 static void ExtensionAndUserData( vpar_thread_t * p_vpar )
 {
-    /* Nothing to do, we don't care. */
-    DumpBits( &p_vpar->bit_stream, 27 );
-    ExtensionAndUserData( p_vpar );
+    while( !p_vpar->b_die )
+    {
+        NextStartCode( p_vpar );
+        switch( ShowBits( &p_vpar->bit_stream, 32 ) )
+        {
+        case EXTENSION_START_CODE:
+            DumpBits32( &p_vpar->bit_stream );
+            switch( GetBits( &p_vpar->bit_stream, 4 ) )
+            {
+            case SEQUENCE_DISPLAY_EXTENSION_ID:
+                SequenceDisplayExtension( p_vpar );
+                break;
+            case QUANT_MATRIX_EXTENSION_ID:
+                QuantMatrixExtension( p_vpar );
+                break;
+            case SEQUENCE_SCALABLE_EXTENSION_ID:
+                SequenceScalableExtension( p_vpar );
+                break;
+            case PICTURE_DISPLAY_EXTENSION_ID:
+                PictureDisplayExtension( p_vpar );
+                break;
+            case PICTURE_SPATIAL_SCALABLE_EXTENSION_ID:
+                PictureSpatialScalableExtension( p_vpar );
+                break;
+            case PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID:
+                PictureTemporalScalableExtension( p_vpar );
+                break;
+            case COPYRIGHT_EXTENSION_ID:
+                CopyrightExtension( p_vpar );
+                break;
+            default:
+            }
+            break;
+
+        case USER_DATA_START_CODE:
+            DumpBits32( &p_vpar->bit_stream );
+            /* Wait for the next start code */
+            break;
+
+        default:
+            return;
+        }
+    }
+}
+
+/*****************************************************************************
+ * SequenceDisplayExtension : Parse the sequence_display_extension structure
+ *****************************************************************************/
+static void SequenceDisplayExtension( vpar_thread_t * p_vpar )
+{
+
 }
 
 /*****************************************************************************