|
|
|
@ -1685,7 +1685,7 @@ static int decode_vol_header(Mpeg4DecContext *ctx, GetBitContext *gb) |
|
|
|
|
s->avctx->sample_aspect_ratio = ff_h263_pixel_aspect[s->aspect_ratio_info]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ((s->vol_control_parameters = get_bits1(gb))) { /* vol control parameter */ |
|
|
|
|
if ((ctx->vol_control_parameters = get_bits1(gb))) { /* vol control parameter */ |
|
|
|
|
int chroma_format = get_bits(gb, 2); |
|
|
|
|
if (chroma_format != CHROMA_420) |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "illegal chroma format\n"); |
|
|
|
@ -2058,7 +2058,7 @@ static int decode_user_data(Mpeg4DecContext *ctx, GetBitContext *gb) |
|
|
|
|
|
|
|
|
|
if (ctx->xvid_build == -1 && ctx->divx_version == -1 && ctx->lavc_build == -1) |
|
|
|
|
if (s->codec_tag == AV_RL32("DIVX") && s->vo_type == 0 && |
|
|
|
|
s->vol_control_parameters == 0) |
|
|
|
|
ctx->vol_control_parameters == 0) |
|
|
|
|
ctx->divx_version = 400; // divx 4
|
|
|
|
|
|
|
|
|
|
if (ctx->xvid_build >= 0 && ctx->divx_version >= 0) { |
|
|
|
@ -2085,7 +2085,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) |
|
|
|
|
|
|
|
|
|
s->pict_type = get_bits(gb, 2) + AV_PICTURE_TYPE_I; /* pict type: I = 0 , P = 1 */ |
|
|
|
|
if (s->pict_type == AV_PICTURE_TYPE_B && s->low_delay && |
|
|
|
|
s->vol_control_parameters == 0 && !(s->flags & CODEC_FLAG_LOW_DELAY)) { |
|
|
|
|
ctx->vol_control_parameters == 0 && !(s->flags & CODEC_FLAG_LOW_DELAY)) { |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "low_delay flag incorrectly, clearing it\n"); |
|
|
|
|
s->low_delay = 0; |
|
|
|
|
} |
|
|
|
@ -2276,7 +2276,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) |
|
|
|
|
s->data_partitioning, ctx->resync_marker, |
|
|
|
|
ctx->num_sprite_warping_points, s->sprite_warping_accuracy, |
|
|
|
|
1 - s->no_rounding, s->vo_type, |
|
|
|
|
s->vol_control_parameters ? " VOLC" : " ", ctx->intra_dc_threshold, |
|
|
|
|
ctx->vol_control_parameters ? " VOLC" : " ", ctx->intra_dc_threshold, |
|
|
|
|
ctx->cplx_estimation_trash_i, ctx->cplx_estimation_trash_p, |
|
|
|
|
ctx->cplx_estimation_trash_b); |
|
|
|
|
} |
|
|
|
@ -2297,7 +2297,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb) |
|
|
|
|
/* detect buggy encoders which don't set the low_delay flag
|
|
|
|
|
* (divx4/xvid/opendivx). Note we cannot detect divx5 without b-frames |
|
|
|
|
* easily (although it's buggy too) */ |
|
|
|
|
if (s->vo_type == 0 && s->vol_control_parameters == 0 && |
|
|
|
|
if (s->vo_type == 0 && ctx->vol_control_parameters == 0 && |
|
|
|
|
ctx->divx_version == -1 && s->picture_number == 0) { |
|
|
|
|
av_log(s->avctx, AV_LOG_WARNING, |
|
|
|
|
"looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag\n"); |
|
|
|
|