|
|
@ -45,6 +45,8 @@ |
|
|
|
// #undef NDEBUG
|
|
|
|
// #undef NDEBUG
|
|
|
|
#include <assert.h> |
|
|
|
#include <assert.h> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const uint16_t ff_h264_mb_sizes[4] = { 256, 384, 512, 768 }; |
|
|
|
|
|
|
|
|
|
|
|
static const uint8_t rem6[QP_MAX_NUM + 1] = { |
|
|
|
static const uint8_t rem6[QP_MAX_NUM + 1] = { |
|
|
|
0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, |
|
|
|
0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, |
|
|
|
3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, |
|
|
|
3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, |
|
|
@ -2138,12 +2140,11 @@ static av_always_inline void hl_decode_mb_internal(H264Context *h, int simple, |
|
|
|
|
|
|
|
|
|
|
|
if (!simple && IS_INTRA_PCM(mb_type)) { |
|
|
|
if (!simple && IS_INTRA_PCM(mb_type)) { |
|
|
|
if (pixel_shift) { |
|
|
|
if (pixel_shift) { |
|
|
|
static const uint16_t mb_sizes[4] = { 256, 384, 512, 768 }; |
|
|
|
|
|
|
|
const int bit_depth = h->sps.bit_depth_luma; |
|
|
|
const int bit_depth = h->sps.bit_depth_luma; |
|
|
|
int j; |
|
|
|
int j; |
|
|
|
GetBitContext gb; |
|
|
|
GetBitContext gb; |
|
|
|
init_get_bits(&gb, (uint8_t *)h->mb, |
|
|
|
init_get_bits(&gb, (uint8_t *)h->mb, |
|
|
|
mb_sizes[h->sps.chroma_format_idc] * bit_depth); |
|
|
|
ff_h264_mb_sizes[h->sps.chroma_format_idc] * bit_depth); |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < 16; i++) { |
|
|
|
for (i = 0; i < 16; i++) { |
|
|
|
uint16_t *tmp_y = (uint16_t *)(dest_y + i * linesize); |
|
|
|
uint16_t *tmp_y = (uint16_t *)(dest_y + i * linesize); |
|
|
|