Browse Source

check theora version

Originally committed as revision 4229 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Måns Rullgård 20 years ago
parent
commit
5b558574ba
1 changed files with 8 additions and 5 deletions
  1. +8
    -5
      libavformat/oggparsetheora.c

+ 8
- 5
libavformat/oggparsetheora.c View File

@@ -43,7 +43,7 @@ theora_header (AVFormatContext * s, int idx)
int cds = st->codec.extradata_size + os->psize + 2;
uint8_t *cdp;

if (os->seq > 2)
if(!(os->buf[os->pstart] & 0x80))
return 0;

if(!thp){
@@ -56,8 +56,12 @@ theora_header (AVFormatContext * s, int idx)
init_get_bits(&gb, os->buf + os->pstart, os->psize*8);

skip_bits(&gb, 7*8); /* 0x80"theora" */
skip_bits(&gb, 3*8);
if(get_bits(&gb, 8) != 3) /* major version */
return -1;
if(get_bits(&gb, 8) != 2) /* minor version */
return -1;
skip_bits(&gb, 8); /* revision */

st->codec.width = get_bits(&gb, 16) << 4;
st->codec.height = get_bits(&gb, 16) << 4;

@@ -86,8 +90,7 @@ theora_header (AVFormatContext * s, int idx)
memcpy (cdp, os->buf + os->pstart, os->psize);
st->codec.extradata_size = cds;


return os->seq < 3;
return 1;
}

static uint64_t


Loading…
Cancel
Save