@ -2247,7 +2247,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
slice_height = y + FRAGMENT_PIXELS ;
slice_height = y + FRAGMENT_PIXELS ;
i = s - > macroblock_fragments [ current_macroblock_entry + 5 ] ;
i = s - > macroblock_fragments [ current_macroblock_entry + 5 ] ;
}
}
fragment_width = plane_width / 2 ;
fragment_width = plane_width / FRAGMENT_PIXELS ;
if ( ABS ( stride ) > 2048 )
if ( ABS ( stride ) > 2048 )
return ; //various tables are fixed size
return ; //various tables are fixed size
@ -2396,42 +2396,36 @@ static void render_slice(Vp3DecodeContext *s, int slice)
}
}
#if 0
#if 0
/* do not perform left edge filter for left columns frags */
/* perform the left edge filter if:
* - the fragment is not on the left column
* - the fragment is coded in this frame
* - the fragment is not coded in this frame but the left
* fragment is coded in this frame ( this is done instead
* of a right edge filter when rendering the left fragment
* since this fragment is not available yet ) */
if ( ( x > 0 ) & &
if ( ( x > 0 ) & &
( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) ) {
( ( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) | |
( ( s - > all_fragments [ i ] . coding_method = = MODE_COPY ) & &
( s - > all_fragments [ i - 1 ] . coding_method ! = MODE_COPY ) ) ) ) {
horizontal_filter (
horizontal_filter (
output_plane + s - > all_fragments [ i ] . first_pixel - 7 * stride ,
output_plane + s - > all_fragments [ i ] . first_pixel + 7 * stride ,
stride , bounding_values ) ;
- stride , bounding_values ) ;
}
}
/* do not perform top edge filter for top row fragments */
/* perform the top edge filter if:
* - the fragment is not on the top row
* - the fragment is coded in this frame
* - the fragment is not coded in this frame but the above
* fragment is coded in this frame ( this is done instead
* of a bottom edge filter when rendering the above
* fragment since this fragment is not available yet ) */
if ( ( y > 0 ) & &
if ( ( y > 0 ) & &
( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) ) {
( ( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) | |
( ( s - > all_fragments [ i ] . coding_method = = MODE_COPY ) & &
( s - > all_fragments [ i - fragment_width ] . coding_method ! = MODE_COPY ) ) ) ) {
vertical_filter (
vertical_filter (
output_plane + s - > all_fragments [ i ] . first_pixel + stride ,
output_plane + s - > all_fragments [ i ] . first_pixel - stride ,
stride , bounding_values ) ;
- stride , bounding_values ) ;
}
/* do not perform right edge filter for right column
* fragments or if right fragment neighbor is also coded
* in this frame ( it will be filtered for next fragment ) */
if ( ( x < plane_width - 1 ) & &
( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) & &
( s - > all_fragments [ i + 1 ] . coding_method = = MODE_COPY ) ) {
horizontal_filter (
output_plane + s - > all_fragments [ i + 1 ] . first_pixel - 7 * stride ,
stride , bounding_values ) ;
}
/* do not perform bottom edge filter for bottom row
* fragments or if bottom fragment neighbor is also coded
* in this frame ( it will be filtered in the next row ) */
if ( ( y < plane_height - 1 ) & &
( s - > all_fragments [ i ] . coding_method ! = MODE_COPY ) & &
( s - > all_fragments [ i + fragment_width ] . coding_method = = MODE_COPY ) ) {
vertical_filter (
output_plane + s - > all_fragments [ i + fragment_width ] . first_pixel + stride ,
stride , bounding_values ) ;
}
}
# endif
# endif
}
}