Give VP9 a different sync code from VP8
authorJingning Han <jingning@google.com>
Sat, 18 May 2013 23:56:12 +0000 (16:56 -0700)
committerPaul Wilkins <paulwilkins@google.com>
Mon, 20 May 2013 10:41:31 +0000 (11:41 +0100)
The new code is 0x49, 0x83, 0x42

There is nothing particularly special about this code bitstream wise.
Its derivation is the word "sync" coded using 4x6bit alphabetic indices.

Change-Id: Ie2430a854af32ddc5a5c25a6c1c90cf6497ba647

vp9/decoder/vp9_decodframe.c
vp9/encoder/vp9_bitstream.c
vp9/vp9_dx_iface.c

index b200e6c..01ab1f9 100644 (file)
@@ -959,7 +959,7 @@ int vp9_decode_frame(VP9D_COMP *pbi, const uint8_t **p_data_end) {
       // When error concealment is enabled we should only check the sync
       // code if we have enough bits available
       if (data + 3 < data_end) {
-        if (data[0] != 0x9d || data[1] != 0x01 || data[2] != 0x2a)
+        if (data[0] != 0x49 || data[1] != 0x83 || data[2] != 0x42)
           vpx_internal_error(&pc->error, VPX_CODEC_UNSUP_BITSTREAM,
                              "Invalid frame sync code");
       }
index bcec13c..d20a2c5 100644 (file)
@@ -1506,9 +1506,9 @@ void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, unsigned long *size) {
    */
   if (oh.type == KEY_FRAME) {
     // Start / synch code
-    cx_data[0] = 0x9D;
-    cx_data[1] = 0x01;
-    cx_data[2] = 0x2a;
+    cx_data[0] = 0x49;
+    cx_data[1] = 0x83;
+    cx_data[2] = 0x42;
     extra_bytes_packed = 3;
     cx_data += extra_bytes_packed;
   }
index 811cea7..ee11304 100644 (file)
@@ -217,7 +217,7 @@ static vpx_codec_err_t vp8_peek_si(const uint8_t         *data,
   else {
     /* Parse uncompresssed part of key frame header.
      * 3 bytes:- including version, frame type and an offset
-     * 3 bytes:- sync code (0x9d, 0x01, 0x2a)
+     * 3 bytes:- sync code (0x49, 0x83, 0x42)
      * 4 bytes:- including image width and height in the lowest 14 bits
      *           of each 2-byte value.
      */
@@ -228,7 +228,7 @@ static vpx_codec_err_t vp8_peek_si(const uint8_t         *data,
       si->is_kf = 1;
 
       /* vet via sync code */
-      if (c[0] != 0x9d || c[1] != 0x01 || c[2] != 0x2a)
+      if (c[0] != 0x49 || c[1] != 0x83 || c[2] != 0x42)
         res = VPX_CODEC_UNSUP_BITSTREAM;
 
       si->w = (c[3] | (c[4] << 8));