annotate svq1.c @ 12530:63edd10ad4bc libavcodec tip

Try to fix crashes introduced by r25218 r25218 made assumptions about the existence of past reference frames that weren't necessarily true.
author darkshikari
date Tue, 28 Sep 2010 09:06:22 +0000
parents 7dd2a45249a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
536
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
1 /*
5214
470601203f44 Group all copyright and author notices together.
diego
parents: 5127
diff changeset
2 * SVQ1 decoder
470601203f44 Group all copyright and author notices together.
diego
parents: 5127
diff changeset
3 * ported to MPlayer by Arpi <arpi@thot.banki.hu>
470601203f44 Group all copyright and author notices together.
diego
parents: 5127
diff changeset
4 * ported to libavcodec by Nick Kurshev <nickols_k@mail.ru>
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2860
diff changeset
5 *
536
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
6 * Copyright (C) 2002 the xine project
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
7 * Copyright (C) 2002 the ffmpeg project
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2860
diff changeset
8 *
5214
470601203f44 Group all copyright and author notices together.
diego
parents: 5127
diff changeset
9 * SVQ1 Encoder (c) 2004 Mike Melanson <melanson@pcisys.net>
470601203f44 Group all copyright and author notices together.
diego
parents: 5127
diff changeset
10 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
11 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
12 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
13 * FFmpeg is free software; you can redistribute it and/or
536
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
14 * modify it under the terms of the GNU Lesser General Public
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
15 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
16 * version 2.1 of the License, or (at your option) any later version.
536
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
17 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
18 * FFmpeg is distributed in the hope that it will be useful,
521
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
536
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
21 * Lesser General Public License for more details.
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
22 *
6fac683d9997 Change licence to LGPL since there are no objections from side of original author
nickols_k
parents: 530
diff changeset
23 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3777
diff changeset
24 * License along with FFmpeg; if not, write to the Free Software
3036
0b546eab515d Update licensing information: The FSF changed postal address.
diego
parents: 2979
diff changeset
25 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
521
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
26 */
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
27
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
28 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 10832
diff changeset
29 * @file
2005
28d3f73aa254 first pass at a Sorenson Video 1 (SVQ1) encoder
melanson
parents: 1892
diff changeset
30 * Sorenson Vector Quantizer #1 (SVQ1) video codec.
28d3f73aa254 first pass at a Sorenson Video 1 (SVQ1) encoder
melanson
parents: 1892
diff changeset
31 * For more information of the SVQ1 algorithm, visit:
28d3f73aa254 first pass at a Sorenson Video 1 (SVQ1) encoder
melanson
parents: 1892
diff changeset
32 * http://www.pcisys.net/~melanson/codecs/
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
33 */
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
34
5233
eca08bfad00f split SVQ1 decoder and encoder in their own files
aurel
parents: 5214
diff changeset
35 #include "svq1.h"
579
ba17f7dbe745 moved codebooks to svq1_cb.h
al3x
parents: 561
diff changeset
36 #include "svq1_cb.h"
1283
00dcdda701ca rework SVQ1 decoder to use more intuitive VLC tables as well as ffmpeg's
tmmm
parents: 1282
diff changeset
37 #include "svq1_vlc.h"
521
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
38
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
39 /* standard video sizes */
10832
f20726a6d538 Add a function to match a 2 element vector of uint16_t and use it in h263 and svq1
michael
parents: 8718
diff changeset
40 const struct svq1_frame_size ff_svq1_frame_size_table[7] = {
521
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
41 { 160, 120 }, { 128, 96 }, { 176, 144 }, { 352, 288 },
10832
f20726a6d538 Add a function to match a 2 element vector of uint16_t and use it in h263 and svq1
michael
parents: 8718
diff changeset
42 { 704, 576 }, { 240, 180 }, { 320, 240 }
521
9c66b5183ab3 new codec: Sorenson v1
nickols_k
parents:
diff changeset
43 };