Mercurial > libavcodec.hg
comparison wmv2.c @ 1598:932d306bf1dc libavcodec
av_log() patch by (Michel Bardiaux <mbardiaux at peaktime dot be>)
author | michael |
---|---|
date | Mon, 03 Nov 2003 13:26:22 +0000 |
parents | 7f9f0bedc2e1 |
children | ccf7c96a630f |
comparison
equal
deleted
inserted
replaced
1597:4c9165372ab3 | 1598:932d306bf1dc |
---|---|
336 if(code==0) return -1; | 336 if(code==0) return -1; |
337 | 337 |
338 s->slice_height = s->mb_height / code; | 338 s->slice_height = s->mb_height / code; |
339 | 339 |
340 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ | 340 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ |
341 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", | 341 av_log(s->avctx, AV_LOG_DEBUG, "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", |
342 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, | 342 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, |
343 code); | 343 code); |
344 } | 344 } |
345 return 0; | 345 return 0; |
346 } | 346 } |
364 decode_ext_header(w); | 364 decode_ext_header(w); |
365 | 365 |
366 s->pict_type = get_bits(&s->gb, 1) + 1; | 366 s->pict_type = get_bits(&s->gb, 1) + 1; |
367 if(s->pict_type == I_TYPE){ | 367 if(s->pict_type == I_TYPE){ |
368 code = get_bits(&s->gb, 7); | 368 code = get_bits(&s->gb, 7); |
369 printf("I7:%X/\n", code); | 369 av_log(s->avctx, AV_LOG_ERROR, "I7:%X/\n", code); |
370 } | 370 } |
371 s->qscale = get_bits(&s->gb, 5); | 371 s->qscale = get_bits(&s->gb, 5); |
372 if(s->qscale < 0) | 372 if(s->qscale < 0) |
373 return -1; | 373 return -1; |
374 | 374 |
395 s->dc_table_index = get_bits1(&s->gb); | 395 s->dc_table_index = get_bits1(&s->gb); |
396 } | 396 } |
397 s->inter_intra_pred= 0; | 397 s->inter_intra_pred= 0; |
398 s->no_rounding = 1; | 398 s->no_rounding = 1; |
399 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ | 399 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ |
400 printf("qscale:%d rlc:%d rl:%d dc:%d mbrl:%d j_type:%d \n", | 400 av_log(s->avctx, AV_LOG_DEBUG, "qscale:%d rlc:%d rl:%d dc:%d mbrl:%d j_type:%d \n", |
401 s->qscale, | 401 s->qscale, |
402 s->rl_chroma_table_index, | 402 s->rl_chroma_table_index, |
403 s->rl_table_index, | 403 s->rl_table_index, |
404 s->dc_table_index, | 404 s->dc_table_index, |
405 s->per_mb_rl_table, | 405 s->per_mb_rl_table, |
445 | 445 |
446 s->inter_intra_pred= (s->width*s->height < 320*240 && s->bit_rate<=II_BITRATE); | 446 s->inter_intra_pred= (s->width*s->height < 320*240 && s->bit_rate<=II_BITRATE); |
447 s->no_rounding ^= 1; | 447 s->no_rounding ^= 1; |
448 | 448 |
449 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ | 449 if(s->avctx->debug&FF_DEBUG_PICT_INFO){ |
450 printf("rl:%d rlc:%d dc:%d mv:%d mbrl:%d qp:%d mspel:%d per_mb_abt:%d abt_type:%d cbp:%d ii:%d\n", | 450 av_log(s->avctx, AV_LOG_DEBUG, "rl:%d rlc:%d dc:%d mv:%d mbrl:%d qp:%d mspel:%d per_mb_abt:%d abt_type:%d cbp:%d ii:%d\n", |
451 s->rl_table_index, | 451 s->rl_table_index, |
452 s->rl_chroma_table_index, | 452 s->rl_chroma_table_index, |
453 s->dc_table_index, | 453 s->dc_table_index, |
454 s->mv_table_index, | 454 s->mv_table_index, |
455 s->per_mb_rl_table, | 455 s->per_mb_rl_table, |
469 | 469 |
470 // if(w->j_type) | 470 // if(w->j_type) |
471 // return wmv2_decode_j_picture(w); //FIXME | 471 // return wmv2_decode_j_picture(w); //FIXME |
472 | 472 |
473 if(w->j_type){ | 473 if(w->j_type){ |
474 printf("J-type picture isnt supported\n"); | 474 av_log(s->avctx, AV_LOG_ERROR, "J-type picture isnt supported\n"); |
475 return -1; | 475 return -1; |
476 } | 476 } |
477 | 477 |
478 return 0; | 478 return 0; |
479 } | 479 } |
602 simple_idct48_add(dst , stride, block1); | 602 simple_idct48_add(dst , stride, block1); |
603 simple_idct48_add(dst + 4 , stride, w->abt_block2[n]); | 603 simple_idct48_add(dst + 4 , stride, w->abt_block2[n]); |
604 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); | 604 memset(w->abt_block2[n], 0, 64*sizeof(DCTELEM)); |
605 break; | 605 break; |
606 default: | 606 default: |
607 fprintf(stderr, "internal error in WMV2 abt\n"); | 607 av_log(s->avctx, AV_LOG_ERROR, "internal error in WMV2 abt\n"); |
608 } | 608 } |
609 } | 609 } |
610 | 610 |
611 void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){ | 611 void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr){ |
612 Wmv2Context * const w= (Wmv2Context*)s; | 612 Wmv2Context * const w= (Wmv2Context*)s; |
736 cbp = code & 0x3f; | 736 cbp = code & 0x3f; |
737 } else { | 737 } else { |
738 s->mb_intra = 1; | 738 s->mb_intra = 1; |
739 code = get_vlc2(&s->gb, mb_intra_vlc.table, MB_INTRA_VLC_BITS, 2); | 739 code = get_vlc2(&s->gb, mb_intra_vlc.table, MB_INTRA_VLC_BITS, 2); |
740 if (code < 0){ | 740 if (code < 0){ |
741 fprintf(stderr, "II-cbp illegal at %d %d\n", s->mb_x, s->mb_y); | 741 av_log(s->avctx, AV_LOG_ERROR, "II-cbp illegal at %d %d\n", s->mb_x, s->mb_y); |
742 return -1; | 742 return -1; |
743 } | 743 } |
744 /* predict coded block pattern */ | 744 /* predict coded block pattern */ |
745 cbp = 0; | 745 cbp = 0; |
746 for(i=0;i<6;i++) { | 746 for(i=0;i<6;i++) { |
782 s->mv[0][0][1] = my; | 782 s->mv[0][0][1] = my; |
783 | 783 |
784 for (i = 0; i < 6; i++) { | 784 for (i = 0; i < 6; i++) { |
785 if (wmv2_decode_inter_block(w, block[i], i, (cbp >> (5 - i)) & 1) < 0) | 785 if (wmv2_decode_inter_block(w, block[i], i, (cbp >> (5 - i)) & 1) < 0) |
786 { | 786 { |
787 fprintf(stderr,"\nerror while decoding inter block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); | 787 av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding inter block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); |
788 return -1; | 788 return -1; |
789 } | 789 } |
790 } | 790 } |
791 } else { | 791 } else { |
792 //if(s->pict_type==P_TYPE) | 792 //if(s->pict_type==P_TYPE) |
803 } | 803 } |
804 | 804 |
805 for (i = 0; i < 6; i++) { | 805 for (i = 0; i < 6; i++) { |
806 if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) | 806 if (msmpeg4_decode_block(s, block[i], i, (cbp >> (5 - i)) & 1, NULL) < 0) |
807 { | 807 { |
808 fprintf(stderr,"\nerror while decoding intra block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); | 808 av_log(s->avctx, AV_LOG_ERROR, "\nerror while decoding intra block: %d x %d (%d)\n", s->mb_x, s->mb_y, i); |
809 return -1; | 809 return -1; |
810 } | 810 } |
811 } | 811 } |
812 } | 812 } |
813 | 813 |