Mercurial > libavcodec.hg
annotate lzw.h @ 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 |
| rev | line source |
|---|---|
| 4080 | 1 /* |
| 2 * LZW decoder | |
|
8629
04423b2f6e0b
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
7760
diff
changeset
|
3 * Copyright (c) 2003 Fabrice Bellard |
|
04423b2f6e0b
cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents:
7760
diff
changeset
|
4 * Copyright (c) 2006 Konstantin Shishkov |
| 4080 | 5 * |
| 6 * This file is part of FFmpeg. | |
| 7 * | |
| 8 * FFmpeg is free software; you can redistribute it and/or | |
| 9 * modify it under the terms of the GNU Lesser General Public | |
| 10 * License as published by the Free Software Foundation; either | |
| 11 * version 2.1 of the License, or (at your option) any later version. | |
| 12 * | |
| 13 * FFmpeg is distributed in the hope that it will be useful, | |
| 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 16 * Lesser General Public License for more details. | |
| 17 * | |
| 18 * You should have received a copy of the GNU Lesser General Public | |
| 19 * License along with FFmpeg; if not, write to the Free Software | |
| 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| 21 */ | |
| 22 | |
| 23 /** | |
|
11644
7dd2a45249a9
Remove explicit filename from Doxygen @file commands.
diego
parents:
11412
diff
changeset
|
24 * @file |
| 4080 | 25 * @brief LZW decoding routines |
| 26 * @author Fabrice Bellard | |
| 27 * Modified for use in TIFF by Konstantin Shishkov | |
| 28 */ | |
| 29 | |
| 7760 | 30 #ifndef AVCODEC_LZW_H |
| 31 #define AVCODEC_LZW_H | |
| 4080 | 32 |
| 11412 | 33 #include <stdint.h> |
| 34 | |
| 10634 | 35 struct PutBitContext; |
| 36 | |
| 4080 | 37 enum FF_LZW_MODES{ |
| 38 FF_LZW_GIF, | |
| 39 FF_LZW_TIFF | |
| 40 }; | |
| 41 | |
| 42 /* clients should not know what LZWState is */ | |
| 43 typedef void LZWState; | |
| 44 | |
| 45 /* first two functions de/allocate memory for LZWState */ | |
| 46 void ff_lzw_decode_open(LZWState **p); | |
| 47 void ff_lzw_decode_close(LZWState **p); | |
| 6218 | 48 int ff_lzw_decode_init(LZWState *s, int csize, const uint8_t *buf, int buf_size, int mode); |
| 4080 | 49 int ff_lzw_decode(LZWState *s, uint8_t *buf, int len); |
| 6218 | 50 const uint8_t* ff_lzw_cur_ptr(LZWState *lzw); |
| 4080 | 51 void ff_lzw_decode_tail(LZWState *lzw); |
| 52 | |
|
4798
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
53 /** LZW encode state */ |
|
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
54 struct LZWEncodeState; |
|
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
55 extern const int ff_lzw_encode_state_size; |
|
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
56 |
| 10634 | 57 void ff_lzw_encode_init(struct LZWEncodeState *s, uint8_t *outbuf, int outsize, |
| 58 int maxbits, enum FF_LZW_MODES mode, | |
| 59 void (*lzw_put_bits)(struct PutBitContext *, int, unsigned int)); | |
|
4798
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
60 int ff_lzw_encode(struct LZWEncodeState * s, const uint8_t * inbuf, int insize); |
| 10634 | 61 int ff_lzw_encode_flush(struct LZWEncodeState *s, |
| 62 void (*lzw_flush_put_bits)(struct PutBitContext *)); | |
|
4798
c68b9a261f79
LZW encoder by Bartlomiej Wolowiec b.wolowiec students mimuw edu pl
michael
parents:
4080
diff
changeset
|
63 |
| 7760 | 64 #endif /* AVCODEC_LZW_H */ |
