@ -87,6 +87,10 @@
# define CHROMA 1
# endif
# ifndef CABAC
# define CABAC h->pps.cabac
# endif
# define EXTENDED_SAR 255
# define MB_TYPE_REF0 MB_TYPE_ACPRED //dirty but it fits in 16 bit
@ -923,7 +927,7 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
h - > non_zero_count_cache [ 2 + 8 * 0 ] =
h - > non_zero_count_cache [ 1 + 8 * 3 ] =
h - > non_zero_count_cache [ 2 + 8 * 3 ] = h - > pps . cabac & & ! IS_INTRA ( mb_type ) ? 0 : 64 ;
h - > non_zero_count_cache [ 2 + 8 * 3 ] = CABAC & & ! IS_INTRA ( mb_type ) ? 0 : 64 ;
}
@ -937,11 +941,11 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
h - > non_zero_count_cache [ 3 + 8 * 1 + 2 * 8 * i ] =
h - > non_zero_count_cache [ 3 + 8 * 2 + 2 * 8 * i ] =
h - > non_zero_count_cache [ 0 + 8 * 1 + 8 * i ] =
h - > non_zero_count_cache [ 0 + 8 * 4 + 8 * i ] = h - > pps . cabac & & ! IS_INTRA ( mb_type ) ? 0 : 64 ;
h - > non_zero_count_cache [ 0 + 8 * 4 + 8 * i ] = CABAC & & ! IS_INTRA ( mb_type ) ? 0 : 64 ;
}
}
if ( h - > pps . cabac ) {
if ( CABAC ) {
// top_cbp
if ( top_type ) {
h - > top_cbp = h - > cbp_table [ top_xy ] ;
@ -1053,7 +1057,7 @@ static void fill_caches(H264Context *h, int mb_type, int for_deblock){
* ( uint32_t * ) h - > mv_cache [ list ] [ scan8 [ 4 ] ] =
* ( uint32_t * ) h - > mv_cache [ list ] [ scan8 [ 12 ] ] = 0 ;
if ( h - > pps . cabac ) {
if ( CABAC ) {
/* XXX beurk, Load mvd */
if ( USES_LIST ( top_type , list ) ) {
const int b_xy = h - > mb2b_xy [ top_xy ] + 3 * h - > b_stride ;
@ -1210,7 +1214,7 @@ static inline void write_back_motion(H264Context *h, int mb_type){
* ( uint64_t * ) s - > current_picture . motion_val [ list ] [ b_xy + 0 + y * h - > b_stride ] = * ( uint64_t * ) h - > mv_cache [ list ] [ scan8 [ 0 ] + 0 + 8 * y ] ;
* ( uint64_t * ) s - > current_picture . motion_val [ list ] [ b_xy + 2 + y * h - > b_stride ] = * ( uint64_t * ) h - > mv_cache [ list ] [ scan8 [ 0 ] + 2 + 8 * y ] ;
}
if ( h - > pps . cabac ) {
if ( CABAC ) {
if ( IS_SKIP ( mb_type ) )
fill_rectangle ( h - > mvd_table [ list ] [ b_xy ] , 4 , 4 , h - > b_stride , 0 , 4 ) ;
else
@ -1229,7 +1233,7 @@ static inline void write_back_motion(H264Context *h, int mb_type){
}
}
if ( h - > slice_type_nos = = FF_B_TYPE & & h - > pps . cabac ) {
if ( h - > slice_type_nos = = FF_B_TYPE & & CABAC ) {
if ( IS_8X8 ( mb_type ) ) {
uint8_t * direct_table = & h - > direct_table [ b8_xy ] ;
direct_table [ 1 + 0 * h - > b8_stride ] = IS_DIRECT ( h - > sub_mb_type [ 1 ] ) ? 1 : 0 ;