annotate bytestream.h @ 4714:fc70a43a4f01 libavcodec

Fix H.264 8x8 transform selection It seems that it's opt parse bug, it can't process the flags which start by digit. After change 8x8dct to dct8x8, I can set it without problem. I guess nobody will use it since it can't work as expected, so the quick fix is change the option name. Patch by Limin Wang lance dot lmwang at gmail com
author mru
date Sat, 24 Mar 2007 12:07:07 +0000
parents d25576b9b50c
children e92146cec4a8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
1 /*
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
2 * Bytestream functions
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
3 * copyright (c) 2006 Baptiste Coudurier <baptiste.coudurier@free.fr>
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
4 *
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
5 * This file is part of FFmpeg.
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
6 *
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
11 *
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
15 * Lesser General Public License for more details.
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
16 *
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
20 */
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
21
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
22 #ifndef FFMPEG_BYTESTREAM_H
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
23 #define FFMPEG_BYTESTREAM_H
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
24
4488
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
25 #define DEF(name, bytes, read, write)\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
26 static av_always_inline unsigned int bytestream_get_ ## name(uint8_t **b){\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
27 (*b) += bytes;\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
28 return read(*b - bytes);\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
29 }\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
30 static av_always_inline void bytestream_put_ ##name(uint8_t **b, const unsigned int value){\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
31 write(*b, value);\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
32 (*b) += bytes;\
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
33 };
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
34
4488
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
35 DEF(le32, 4, AV_RL32, AV_WL32)
4626
d25576b9b50c add little endian 24bit read/write
alex
parents: 4622
diff changeset
36 DEF(le24, 3, AV_RL24, AV_WL24)
4488
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
37 DEF(le16, 2, AV_RL16, AV_WL16)
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
38 DEF(be32, 4, AV_RB32, AV_WB32)
4622
76be6cfd7958 add bytestream_get/put_be24 functions
bcoudurier
parents: 4488
diff changeset
39 DEF(be24, 3, AV_RB24, AV_WB24)
4488
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
40 DEF(be16, 2, AV_RB16, AV_WB16)
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
41 DEF(byte, 1, AV_RB8 , AV_WB8 )
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
42
4488
601865b7fc26 simplify and remove useless index in AV_W*
michael
parents: 4364
diff changeset
43 #undef DEF
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
44
4283
d6f83e2f8804 rename always_inline to av_always_inline and move to common.h
mru
parents: 4251
diff changeset
45 static av_always_inline unsigned int bytestream_get_buffer(uint8_t **b, uint8_t *dst, unsigned int size)
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
46 {
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
47 memcpy(dst, *b, size);
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
48 (*b) += size;
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
49 return size;
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
50 }
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
51
4283
d6f83e2f8804 rename always_inline to av_always_inline and move to common.h
mru
parents: 4251
diff changeset
52 static av_always_inline void bytestream_put_buffer(uint8_t **b, const uint8_t *src, unsigned int size)
4125
f6f67a8bdd09 change gif muxer to simple gif encoder
bcoudurier
parents: 4054
diff changeset
53 {
f6f67a8bdd09 change gif muxer to simple gif encoder
bcoudurier
parents: 4054
diff changeset
54 memcpy(*b, src, size);
f6f67a8bdd09 change gif muxer to simple gif encoder
bcoudurier
parents: 4054
diff changeset
55 (*b) += size;
f6f67a8bdd09 change gif muxer to simple gif encoder
bcoudurier
parents: 4054
diff changeset
56 }
f6f67a8bdd09 change gif muxer to simple gif encoder
bcoudurier
parents: 4054
diff changeset
57
4054
f20c7bb12103 change gif demuxer to gif decoder
bcoudurier
parents:
diff changeset
58 #endif /* FFMPEG_BYTESTREAM_H */