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

Reply via email to