On 09/20/2012 03:51 AM, Luca Barbato wrote:
> ---
>  libavformat/oggparsetheora.c |   15 ++++++++++++---
>  1 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c
> index 632c4ef..dfb73c9 100644
> --- a/libavformat/oggparsetheora.c
> +++ b/libavformat/oggparsetheora.c
> @@ -53,7 +53,8 @@ theora_header (AVFormatContext * s, int idx)
>          os->private = thp;
>      }
>  
> -    if (os->buf[os->pstart] == 0x80) {
> +    switch (os->buf[os->pstart]) {
> +    case 0x80: {
>          GetBitContext gb;
>          int width, height;
>          AVRational timebase;
> @@ -110,8 +111,16 @@ theora_header (AVFormatContext * s, int idx)
>          st->codec->codec_id = AV_CODEC_ID_THEORA;
>          st->need_parsing = AVSTREAM_PARSE_HEADERS;
>  
> -    } else if (os->buf[os->pstart] == 0x83) {
> -        ff_vorbis_comment (s, &st->metadata, os->buf + os->pstart + 7, 
> os->psize - 8);
> +    }
> +    break;
> +    case 0x81:
> +        ff_vorbis_comment(s, &st->metadata, os->buf + os->pstart + 7, 
> os->psize - 8);
> +    case 0x82:
> +        if (!thp->version)
> +            return -1;
> +        break;
> +    default:
> +        return -1;
>      }
>  
>      st->codec->extradata = av_realloc (st->codec->extradata,

I don't quite get the patch. Is it just making sure the 0x80 header
comes first? Also, the existing code parses vorbis comment for 0x83, but
the new patch does it for 0x81. Which is correct? And what is 0x82
supposed to be used for?

-Justin
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to