s->h263_pred = 1;
s->msmpeg4_version=5;
break;
+ case CODEC_ID_WMV3:
+ s->h263_msmpeg4 = 1;
+ s->h263_pred = 1;
+ s->msmpeg4_version=6;
+ break;
case CODEC_ID_H263I:
break;
case CODEC_ID_FLV1:
}
/**
- * retunrs the number of bytes consumed for building the current frame
+ * returns the number of bytes consumed for building the current frame
*/
static int get_consumed_bytes(MpegEncContext *s, int buf_size){
int pos= (get_bits_count(&s->gb)+7)>>3;
}
/* DCT & quantize */
- s->dsp.clear_blocks(s->block[0]);
-
+
s->mv_dir = MV_DIR_FORWARD;
s->mv_type = MV_TYPE_16X16;
-// s->mb_skiped = 0;
+// s->mb_skipped = 0;
//printf("%d %d %06X\n", ret, get_bits_count(&s->gb), show_bits(&s->gb, 24));
ret= s->decode_mb(s, s->block);
s->workaround_bugs &= ~FF_BUG_NO_PADDING;
}
- // handle formats which dont have unique end markers
+ // handle formats which don't have unique end markers
if(s->msmpeg4_version || (s->workaround_bugs&FF_BUG_NO_PADDING)){ //FIXME perhaps solve this more cleanly
int left= s->gb.size_in_bits - get_bits_count(&s->gb);
int max_extra=7;
}else if(s->codec_id==CODEC_ID_H263){
next= h263_find_frame_end(&s->parse_context, buf, buf_size);
}else{
- av_log(s->avctx, AV_LOG_ERROR, "this codec doesnt support truncated bitstreams\n");
+ av_log(s->avctx, AV_LOG_ERROR, "this codec does not support truncated bitstreams\n");
return -1;
}
ret = h263_decode_picture_header(s);
}
- if(ret==FRAME_SKIPED) return get_consumed_bytes(s, buf_size);
+ if(ret==FRAME_SKIPPED) return get_consumed_bytes(s, buf_size);
/* skip if the header was thrashed */
if (ret < 0){
s->current_picture.pict_type= s->pict_type;
s->current_picture.key_frame= s->pict_type == I_TYPE;
- /* skip b frames if we dont have reference frames */
+ /* skip B-frames if we don't have reference frames */
if(s->last_picture_ptr==NULL && (s->pict_type==B_TYPE || s->dropable)) return get_consumed_bytes(s, buf_size);
/* skip b frames if we are in a hurry */
if(avctx->hurry_up && s->pict_type==B_TYPE) return get_consumed_bytes(s, buf_size);
/* we substract 1 because it is added on utils.c */
avctx->frame_number = s->picture_number - 1;
- /* dont output the last pic after seeking */
+ /* don't output the last pic after seeking */
if(s->last_picture_ptr || s->low_delay)
*data_size = sizeof(AVFrame);
#ifdef PRINT_FRAME_TIME
return get_consumed_bytes(s, buf_size);
}
-static const AVOption mpeg4_decoptions[] =
-{
- AVOPTION_SUB(avoptions_workaround_bug),
- AVOPTION_END()
-};
-
AVCodec mpeg4_decoder = {
"mpeg4",
CODEC_TYPE_VIDEO,
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1 | CODEC_CAP_TRUNCATED | CODEC_CAP_DELAY,
- .options = mpeg4_decoptions,
.flush= ff_mpeg_flush,
};
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
- mpeg4_decoptions,
};
AVCodec msmpeg4v2_decoder = {
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
- mpeg4_decoptions,
};
AVCodec msmpeg4v3_decoder = {
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
- .options = mpeg4_decoptions,
};
AVCodec wmv1_decoder = {
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
- mpeg4_decoptions,
};
AVCodec h263i_decoder = {
ff_h263_decode_end,
ff_h263_decode_frame,
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
- mpeg4_decoptions,
};
AVCodec flv_decoder = {