From 2c93a8ed5c840a69e58a52f60e7b6194b5919cf5 Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Sat, 18 May 2013 16:56:12 -0700 Subject: [PATCH] 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 --- vp9/decoder/vp9_decodframe.c | 2 +- vp9/encoder/vp9_bitstream.c | 6 +++--- vp9/vp9_dx_iface.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index b200e6c..01ab1f9 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -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"); } diff --git a/vp9/encoder/vp9_bitstream.c b/vp9/encoder/vp9_bitstream.c index bcec13c..d20a2c5 100644 --- a/vp9/encoder/vp9_bitstream.c +++ b/vp9/encoder/vp9_bitstream.c @@ -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; } diff --git a/vp9/vp9_dx_iface.c b/vp9/vp9_dx_iface.c index 811cea7..ee11304 100644 --- a/vp9/vp9_dx_iface.c +++ b/vp9/vp9_dx_iface.c @@ -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)); -- 2.7.4