On Jul 25, 2014 9:44 PM, "Nidhi Makhijani" <[email protected]> wrote:
>
> ---
> libavcodec/mpeg4video.h | 2 ++
> libavcodec/mpeg4videodec.c | 10 +++++-----
> libavcodec/mpegvideo.h | 1 -
> 3 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
> index 59358eb..b8078ca 100644
> --- a/libavcodec/mpeg4video.h
> +++ b/libavcodec/mpeg4video.h
> @@ -92,6 +92,8 @@ typedef struct Mpeg4DecContext {
> int divx_build;
> int xvid_build;
> int lavc_build;
> + int vol_control_parameters;// does the stream contain the low_delay
flag, used to workaround buggy encoders
> +
Space before //, and break line
> ///< flag for having shown the warning about divxs invalid b frames
> int showed_packed_warning;
>
> diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
> index a4e7725..199e3b3 100644
> --- a/libavcodec/mpeg4videodec.c
> +++ b/libavcodec/mpeg4videodec.c
> @@ -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");
> diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
> index 49774bc..1333d44 100644
> --- a/libavcodec/mpegvideo.h
> +++ b/libavcodec/mpegvideo.h
> @@ -518,7 +518,6 @@ typedef struct MpegEncContext {
> int partitioned_frame; ///< is current frame partitioned
> int low_delay; ///< no reordering needed / has no
b-frames
> int vo_type;
> - int vol_control_parameters; ///< does the stream contain the
low_delay flag, used to workaround buggy encoders
> PutBitContext tex_pb; ///< used for data partitioned VOPs
> PutBitContext pb2; ///< used for data partitioned VOPs
> int mpeg_quant;
> --
> 1.9.1
>
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel