@ -34,21 +34,22 @@ int ff_h264_pred_weight_table(GetBitContext *gb, const SPS *sps,
pwt - > use_weight = 0 ;
pwt - > use_weight_chroma = 0 ;
pwt - > luma_log2_weight_denom = get_ue_golomb ( gb ) ;
if ( sps - > chroma_format_idc )
pwt - > chroma_log2_weight_denom = get_ue_golomb ( gb ) ;
pwt - > luma_log2_weight_denom = get_ue_golomb ( gb ) ;
if ( pwt - > luma_log2_weight_denom > 7U ) {
av_log ( logctx , AV_LOG_ERROR , " luma_log2_weight_denom %d is out of range \n " , pwt - > luma_log2_weight_denom ) ;
pwt - > luma_log2_weight_denom = 0 ;
}
if ( pwt - > chroma_log2_weight_denom > 7U ) {
av_log ( logctx , AV_LOG_ERROR , " chroma_log2_weight_denom %d is out of range \n " , pwt - > chroma_log2_weight_denom ) ;
pwt - > chroma_log2_weight_denom = 0 ;
}
luma_def = 1 < < pwt - > luma_log2_weight_denom ;
luma_def = 1 < < pwt - > luma_log2_weight_denom ;
chroma_def = 1 < < pwt - > chroma_log2_weight_denom ;
if ( sps - > chroma_format_idc ) {
pwt - > chroma_log2_weight_denom = get_ue_golomb ( gb ) ;
if ( pwt - > chroma_log2_weight_denom > 7U ) {
av_log ( logctx , AV_LOG_ERROR , " chroma_log2_weight_denom %d is out of range \n " , pwt - > chroma_log2_weight_denom ) ;
pwt - > chroma_log2_weight_denom = 0 ;
}
chroma_def = 1 < < pwt - > chroma_log2_weight_denom ;
}
for ( list = 0 ; list < 2 ; list + + ) {
pwt - > luma_weight_flag [ list ] = 0 ;
@ -102,9 +103,11 @@ int ff_h264_pred_weight_table(GetBitContext *gb, const SPS *sps,
if ( picture_structure = = PICT_FRAME ) {
pwt - > luma_weight [ 16 + 2 * i ] [ list ] [ 0 ] = pwt - > luma_weight [ 16 + 2 * i + 1 ] [ list ] [ 0 ] = pwt - > luma_weight [ i ] [ list ] [ 0 ] ;
pwt - > luma_weight [ 16 + 2 * i ] [ list ] [ 1 ] = pwt - > luma_weight [ 16 + 2 * i + 1 ] [ list ] [ 1 ] = pwt - > luma_weight [ i ] [ list ] [ 1 ] ;
for ( j = 0 ; j < 2 ; j + + ) {
pwt - > chroma_weight [ 16 + 2 * i ] [ list ] [ j ] [ 0 ] = pwt - > chroma_weight [ 16 + 2 * i + 1 ] [ list ] [ j ] [ 0 ] = pwt - > chroma_weight [ i ] [ list ] [ j ] [ 0 ] ;
pwt - > chroma_weight [ 16 + 2 * i ] [ list ] [ j ] [ 1 ] = pwt - > chroma_weight [ 16 + 2 * i + 1 ] [ list ] [ j ] [ 1 ] = pwt - > chroma_weight [ i ] [ list ] [ j ] [ 1 ] ;
if ( sps - > chroma_format_idc ) {
for ( j = 0 ; j < 2 ; j + + ) {
pwt - > chroma_weight [ 16 + 2 * i ] [ list ] [ j ] [ 0 ] = pwt - > chroma_weight [ 16 + 2 * i + 1 ] [ list ] [ j ] [ 0 ] = pwt - > chroma_weight [ i ] [ list ] [ j ] [ 0 ] ;
pwt - > chroma_weight [ 16 + 2 * i ] [ list ] [ j ] [ 1 ] = pwt - > chroma_weight [ 16 + 2 * i + 1 ] [ list ] [ j ] [ 1 ] = pwt - > chroma_weight [ i ] [ list ] [ j ] [ 1 ] ;
}
}
}
}