shithub: libvpx

Download patch

ref: 2c93a8ed5c840a69e58a52f60e7b6194b5919cf5
parent: 5f3612c35e1cadb024317f6223ceabeebac1235a
author: Jingning Han <jingning@google.com>
date: Sat May 18 12:56:12 EDT 2013

Give VP9 a different sync code from VP8

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

--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -959,7 +959,7 @@
       // 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");
       }
--- a/vp9/encoder/vp9_bitstream.c
+++ b/vp9/encoder/vp9_bitstream.c
@@ -1506,9 +1506,9 @@
    */
   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;
   }
--- a/vp9/vp9_dx_iface.c
+++ b/vp9/vp9_dx_iface.c
@@ -217,7 +217,7 @@
   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 @@
       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));