OLD | NEW |
1 /** | 1 /** |
2 Copyright (C) 2005 Matthieu CASTET, Alex Beregszaszi | 2 Copyright (C) 2005 Matthieu CASTET, Alex Beregszaszi |
3 | 3 |
4 Permission is hereby granted, free of charge, to any person | 4 Permission is hereby granted, free of charge, to any person |
5 obtaining a copy of this software and associated documentation | 5 obtaining a copy of this software and associated documentation |
6 files (the "Software"), to deal in the Software without | 6 files (the "Software"), to deal in the Software without |
7 restriction, including without limitation the rights to use, copy, | 7 restriction, including without limitation the rights to use, copy, |
8 modify, merge, publish, distribute, sublicense, and/or sell copies | 8 modify, merge, publish, distribute, sublicense, and/or sell copies |
9 of the Software, and to permit persons to whom the Software is | 9 of the Software, and to permit persons to whom the Software is |
10 furnished to do so, subject to the following conditions: | 10 furnished to do so, subject to the following conditions: |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 if (thp->version >= 0x030200) | 99 if (thp->version >= 0x030200) |
100 skip_bits_long(&gb, 38); | 100 skip_bits_long(&gb, 38); |
101 if (thp->version >= 0x304000) | 101 if (thp->version >= 0x304000) |
102 skip_bits(&gb, 2); | 102 skip_bits(&gb, 2); |
103 | 103 |
104 thp->gpshift = get_bits(&gb, 5); | 104 thp->gpshift = get_bits(&gb, 5); |
105 thp->gpmask = (1 << thp->gpshift) - 1; | 105 thp->gpmask = (1 << thp->gpshift) - 1; |
106 | 106 |
107 st->codec->codec_type = CODEC_TYPE_VIDEO; | 107 st->codec->codec_type = CODEC_TYPE_VIDEO; |
108 st->codec->codec_id = CODEC_ID_THEORA; | 108 st->codec->codec_id = CODEC_ID_THEORA; |
| 109 st->need_parsing = AVSTREAM_PARSE_HEADERS; |
109 | 110 |
110 } else if (os->buf[os->pstart] == 0x83) { | 111 } else if (os->buf[os->pstart] == 0x83) { |
111 vorbis_comment (s, os->buf + os->pstart + 7, os->psize - 8); | 112 vorbis_comment (s, os->buf + os->pstart + 7, os->psize - 8); |
112 } | 113 } |
113 | 114 |
114 st->codec->extradata = av_realloc (st->codec->extradata, | 115 st->codec->extradata = av_realloc (st->codec->extradata, |
115 cds + FF_INPUT_BUFFER_PADDING_SIZE); | 116 cds + FF_INPUT_BUFFER_PADDING_SIZE); |
116 cdp = st->codec->extradata + st->codec->extradata_size; | 117 cdp = st->codec->extradata + st->codec->extradata_size; |
117 *cdp++ = os->psize >> 8; | 118 *cdp++ = os->psize >> 8; |
118 *cdp++ = os->psize & 0xff; | 119 *cdp++ = os->psize & 0xff; |
(...skipping 23 matching lines...) Expand all Loading... |
142 | 143 |
143 return iframe + pframe; | 144 return iframe + pframe; |
144 } | 145 } |
145 | 146 |
146 const struct ogg_codec ff_theora_codec = { | 147 const struct ogg_codec ff_theora_codec = { |
147 .magic = "\200theora", | 148 .magic = "\200theora", |
148 .magicsize = 7, | 149 .magicsize = 7, |
149 .header = theora_header, | 150 .header = theora_header, |
150 .gptopts = theora_gptopts | 151 .gptopts = theora_gptopts |
151 }; | 152 }; |
OLD | NEW |