On Thu, Mar 13, 2014 at 4:19 PM, Luca Barbato <[email protected]> wrote:
> If we are parsing forward the Previous partition is immediately known,
> if we are parsing backwards set it to the partition header.
>
> Reported-By: Jean Baptiste Kempf <[email protected]>
> ---
>  libavformat/mxfdec.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> index 8c780ac..0566939 100644
> --- a/libavformat/mxfdec.c
> +++ b/libavformat/mxfdec.c
> @@ -478,6 +478,23 @@ static int mxf_read_partition_pack(void *arg, 
> AVIOContext *pb, int tag, int size
>      avio_read(pb, op, sizeof(UID));
>      nb_essence_containers = avio_rb32(pb);
>
> +    if (partition->this_partition &&
> +        partition->previous_partition == partition->this_partition) {
> +        av_log(mxf->fc, AV_LOG_ERROR,
> +               "PreviousPartition equal to ThisPartition %"PRIx64"\n",
> +               partition->previous_partition);
> +        if (!mxf->parsing_backward && mxf->last_forward_partition) {
> +            MXFPartition *prev =
> +                mxf->partitions + mxf->last_forward_partition - 2;

could you add a comment line about this -2?

> +            partition->previous_partition = prev->this_partition;
> +        }
> +        if (partition->previous_partition == partition->this_partition);
> +            partition->previous_partition = 0;

same here

> +        av_log(mxf->fc, AV_LOG_ERROR,
> +               "Overriding PreviousPartition with %"PRIx64"\n",
> +               partition->previous_partition);
> +    }
> +
>      /* some files don'thave FooterPartition set in every partition */
>      if (footer_partition) {
>          if (mxf->footer_partition && mxf->footer_partition != 
> footer_partition) {

or alternatively you could expand the commit log a little
Feel free to push with that amended.
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to