fixed wmv2 slices

Originally committed as revision 1425 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Michael Niedermayer 22 years ago
parent e5ab4fdd8e
commit 2826984994
  1. 2
      libavcodec/h263dec.c
  2. 4
      libavcodec/msmpeg4.c
  3. 14
      libavcodec/wmv2.c

@ -580,7 +580,7 @@ retry:
break;
}
if(s->msmpeg4_version!=4 && s->h263_pred)
if(s->msmpeg4_version<4 && s->h263_pred)
ff_mpeg4_clean_buffers(s);
decode_slice(s);

@ -502,7 +502,7 @@ static void msmpeg4_encode_motion(MpegEncContext * s,
static inline void handle_slices(MpegEncContext *s){
if (s->mb_x == 0) {
if (s->slice_height && (s->mb_y % s->slice_height) == 0) {
if(s->msmpeg4_version != 4){
if(s->msmpeg4_version < 4){
ff_mpeg4_clean_buffers(s);
}
s->first_slice_line = 1;
@ -691,7 +691,7 @@ static inline int msmpeg4_pred_dc(MpegEncContext * s, int n,
b = dc_val[ - 1 - wrap];
c = dc_val[ - wrap];
if(s->first_slice_line && (n&2)==0 && s->msmpeg4_version!=4){
if(s->first_slice_line && (n&2)==0 && s->msmpeg4_version<4){
b=c=1024;
}

@ -330,8 +330,9 @@ static int decode_ext_header(Wmv2Context *w){
s->slice_height = s->mb_height / code;
if(s->avctx->debug&FF_DEBUG_PICT_INFO){
printf("fps:%d, br:%d, qpbit:%d, abt_flag:%d, j_type_bit:%d, tl_mv_flag:%d, mbrl_bit:%d, code:%d, flag3:%d\n",
fps, s->bit_rate, w->mspel_bit, w->abt_flag, w->j_type_bit, w->top_left_mv_flag, w->per_mb_rl_bit, code, w->flag3);
printf("fps:%d, br:%d, qpbit:%d, abt_flag:%d, j_type_bit:%d, tl_mv_flag:%d, mbrl_bit:%d, code:%d, flag3:%d, slices:%d\n",
fps, s->bit_rate, w->mspel_bit, w->abt_flag, w->j_type_bit, w->top_left_mv_flag, w->per_mb_rl_bit, code, w->flag3,
code);
}
return 0;
}
@ -577,16 +578,7 @@ static void wmv2_add_block(Wmv2Context *w, DCTELEM *block1, uint8_t *dst, int st
MpegEncContext * const s= &w->s;
uint8_t temp[2][64];
int i;
if(w->abt_type_table[n] && 0){
int a,b;
a= block1[0];
b= w->abt_block2[n][0];
block1[0]= a+b;
w->abt_block2[n][0]= a-b;
}
switch(w->abt_type_table[n]){
case 0:
if (s->block_last_index[n] >= 0) {

Loading…
Cancel
Save