X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fh263dec.c;h=0eaf4d7f617b4a511ce9d95cafe7be344e003cf7;hb=cb7b47a61dba0b9329ecede5dd3211dc0662dc05;hp=ba7fb8ae123796f1b2a2f20f29f3ccefea93e792;hpb=8701f4f8e8a7aa71c39f0917472d22bf6a1f0f43;p=ffmpeg diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index ba7fb8ae123..0eaf4d7f617 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -59,7 +59,7 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) s->decode_mb= ff_h263_decode_mb; s->low_delay= 1; if (avctx->codec->id == AV_CODEC_ID_MSS2) - avctx->pix_fmt = PIX_FMT_YUV420P; + avctx->pix_fmt = AV_PIX_FMT_YUV420P; else avctx->pix_fmt = avctx->get_format(avctx, avctx->codec->pix_fmts); s->unrestricted_mv= 1; @@ -117,7 +117,7 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) if (ff_MPV_common_init(s) < 0) return -1; - ff_h263_decode_init_vlc(s); + ff_h263_decode_init_vlc(); return 0; } @@ -215,7 +215,8 @@ static int decode_slice(MpegEncContext *s){ s->mv_dir = MV_DIR_FORWARD; s->mv_type = MV_TYPE_16X16; // s->mb_skipped = 0; -//printf("%d %d %06X\n", ret, get_bits_count(&s->gb), show_bits(&s->gb, 24)); + av_dlog(s, "%d %d %06X\n", + ret, get_bits_count(&s->gb), show_bits(&s->gb, 24)); ret= s->decode_mb(s, s->block); if (s->pict_type!=AV_PICTURE_TYPE_B) @@ -228,7 +229,6 @@ static int decode_slice(MpegEncContext *s){ if(s->loop_filter) ff_h263_loop_filter(s); -//printf("%d %d %d %06X\n", s->mb_x, s->mb_y, s->gb.size*8 - get_bits_count(&s->gb), show_bits(&s->gb, 24)); ff_er_add_slice(s, s->resync_mb_x, s->resync_mb_y, s->mb_x, s->mb_y, ER_MB_END&part_mask); s->padding_bug_score--; @@ -340,7 +340,7 @@ static int decode_slice(MpegEncContext *s){ } int ff_h263_decode_frame(AVCodecContext *avctx, - void *data, int *data_size, + void *data, int *got_frame, AVPacket *avpkt) { const uint8_t *buf = avpkt->data; @@ -362,7 +362,7 @@ uint64_t time= rdtsc(); *pict = s->next_picture_ptr->f; s->next_picture_ptr= NULL; - *data_size = sizeof(AVFrame); + *got_frame = 1; } return 0; @@ -441,7 +441,7 @@ retry: if(s->xvid_build==-1 && s->divx_version==-1 && s->lavc_build==-1){ if(s->stream_codec_tag == AV_RL32("XVID") || s->codec_tag == AV_RL32("XVID") || s->codec_tag == AV_RL32("XVIX") || - s->codec_tag == AV_RL32("RMP4") || + s->codec_tag == AV_RL32("RMP4") || s->codec_tag == AV_RL32("ZMP4") || s->codec_tag == AV_RL32("SIPP") ) s->xvid_build= 0; @@ -510,7 +510,6 @@ retry: if(s->divx_version>=0) s->workaround_bugs|= FF_BUG_DIRECT_BLOCKSIZE; -//printf("padding_bug_score: %d\n", s->padding_bug_score); if(s->divx_version==501 && s->divx_build==20020416) s->padding_bug_score= 256*256*256*64; @@ -601,7 +600,9 @@ retry: s->current_picture.f.key_frame = s->pict_type == AV_PICTURE_TYPE_I; /* skip B-frames if we don't have reference frames */ - if(s->last_picture_ptr==NULL && (s->pict_type==AV_PICTURE_TYPE_B || s->dropable)) return get_consumed_bytes(s, buf_size); + if (s->last_picture_ptr == NULL && + (s->pict_type == AV_PICTURE_TYPE_B || s->droppable)) + return get_consumed_bytes(s, buf_size); if( (avctx->skip_frame >= AVDISCARD_NONREF && s->pict_type==AV_PICTURE_TYPE_B) || (avctx->skip_frame >= AVDISCARD_NONKEY && s->pict_type!=AV_PICTURE_TYPE_I) || avctx->skip_frame >= AVDISCARD_ALL) @@ -614,10 +615,7 @@ retry: s->next_p_frame_damaged=0; } - if((s->avctx->flags2 & CODEC_FLAG2_FAST) && s->pict_type==AV_PICTURE_TYPE_B){ - s->me.qpel_put= s->dsp.put_2tap_qpel_pixels_tab; - s->me.qpel_avg= s->dsp.avg_2tap_qpel_pixels_tab; - }else if((!s->no_rounding) || s->pict_type==AV_PICTURE_TYPE_B){ + if((!s->no_rounding) || s->pict_type==AV_PICTURE_TYPE_B){ s->me.qpel_put= s->dsp.put_qpel_pixels_tab; s->me.qpel_avg= s->dsp.avg_qpel_pixels_tab; }else{ @@ -730,7 +728,7 @@ intrax8_decoded: } if(s->last_picture_ptr || s->low_delay){ - *data_size = sizeof(AVFrame); + *got_frame = 1; ff_print_debug_info(s, pict); }