int ff_h263_resync(MpegEncContext *s){
int left, pos, ret;
- if(s->codec_id==CODEC_ID_MPEG4){
+ if(s->codec_id==AV_CODEC_ID_MPEG4){
skip_bits1(&s->gb);
align_get_bits(&s->gb);
}
if(show_bits(&s->gb, 16)==0){
pos= get_bits_count(&s->gb);
- if(CONFIG_MPEG4_DECODER && s->codec_id==CODEC_ID_MPEG4)
+ if(CONFIG_MPEG4_DECODER && s->codec_id==AV_CODEC_ID_MPEG4)
ret= ff_mpeg4_decode_video_packet_header(s);
else
ret= h263_decode_gob_header(s);
GetBitContext bak= s->gb;
pos= get_bits_count(&s->gb);
- if(CONFIG_MPEG4_DECODER && s->codec_id==CODEC_ID_MPEG4)
+ if(CONFIG_MPEG4_DECODER && s->codec_id==AV_CODEC_ID_MPEG4)
ret= ff_mpeg4_decode_video_packet_header(s);
else
ret= h263_decode_gob_header(s);
}
} else if (s->mb_intra) {
/* DC coef */
- if(s->codec_id == CODEC_ID_RV10){
+ if(s->codec_id == AV_CODEC_ID_RV10){
#if CONFIG_RV10_DECODER
if (s->rv10_version == 3 && s->pict_type == AV_PICTURE_TYPE_I) {
int component, diff;
component = (n <= 3 ? 0 : n - 4 + 1);
level = s->last_dc[component];
if (s->rv10_first_dc_coded[component]) {
- diff = rv_decode_dc(s, n);
+ diff = ff_rv_decode_dc(s, n);
if (diff == 0xffff)
return -1;
level += diff;
run = get_bits(&s->gb, 6);
level = (int8_t)get_bits(&s->gb, 8);
if(level == -128){
- if (s->codec_id == CODEC_ID_RV10) {
+ if (s->codec_id == AV_CODEC_ID_RV10) {
/* XXX: should patch encoder too */
level = get_sbits(&s->gb, 12);
}else{
{
int v= show_bits(&s->gb, 16);
- if(get_bits_count(&s->gb) + 16 > s->gb.size_in_bits){
- v>>= get_bits_count(&s->gb) + 16 - s->gb.size_in_bits;
+ if (get_bits_left(&s->gb) < 16) {
+ v >>= 16 - get_bits_left(&s->gb);
}
if(v==0)
skip_bits(&s->gb, 2); /* Quantization information for B-pictures */
}
+ if (s->pict_type!=AV_PICTURE_TYPE_B) {
+ s->time = s->picture_number;
+ s->pp_time = s->time - s->last_non_b_time;
+ s->last_non_b_time = s->time;
+ }else{
+ s->time = s->picture_number;
+ s->pb_time = s->pp_time - (s->last_non_b_time - s->time);
+ if (s->pp_time <=s->pb_time ||
+ s->pp_time <= s->pp_time - s->pb_time ||
+ s->pp_time <= 0){
+ s->pp_time = 2;
+ s->pb_time = 1;
+ }
+ ff_mpeg4_init_direct_mv(s);
+ }
+
/* PEI */
while (get_bits1(&s->gb) != 0) {
skip_bits(&s->gb, 8);