summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/wmv2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libffmpeg/libavcodec/wmv2.c')
-rw-r--r--src/libffmpeg/libavcodec/wmv2.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/libffmpeg/libavcodec/wmv2.c b/src/libffmpeg/libavcodec/wmv2.c
index d25b7a5f1..6def6f2a8 100644
--- a/src/libffmpeg/libavcodec/wmv2.c
+++ b/src/libffmpeg/libavcodec/wmv2.c
@@ -313,7 +313,7 @@ static int decode_ext_header(Wmv2Context *w){
if(s->avctx->extradata_size<4) return -1;
- init_get_bits(&gb, s->avctx->extradata, s->avctx->extradata_size);
+ init_get_bits(&gb, s->avctx->extradata, s->avctx->extradata_size*8);
fps = get_bits(&gb, 5);
s->bit_rate = get_bits(&gb, 11)*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;
}
@@ -503,8 +504,7 @@ static int16_t *wmv2_pred_motion(Wmv2Context *w, int *px, int *py){
diff= FFMAX(ABS(A[0] - B[0]), ABS(A[1] - B[1]));
- if(s->mb_x && s->mb_y && !s->mspel && w->top_left_mv_flag && diff >= 8)
- //FIXME top/left bit too if y=!0 && first_slice_line?
+ if(s->mb_x && !s->first_slice_line && !s->mspel && w->top_left_mv_flag && diff >= 8)
type= get_bits1(&s->gb);
else
type= 2;
@@ -577,16 +577,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) {