annotate bswap.h @ 836:af688c6fa72f libavutil

Move read_line() and write_line() definition from pixdesc.h to pixdesc.c, which are now not anymore marked as static inline. Fix the inclusion of the private header intreadwrite.h in the public header pixdesc.h.
author stefano
date Tue, 16 Feb 2010 20:17:50 +0000
parents 7ee08d73ac3a
children 4d9ad0ed07d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
1 /*
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
2 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
3 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
4 * This file is part of FFmpeg.
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
5 *
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
8 * License as published by the Free Software Foundation; either
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
10 *
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
14 * Lesser General Public License for more details.
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
15 *
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
116
d76a36742464 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 108
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
108
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
19 */
11be8e0d1344 Add official LGPL license headers to the files that were missing them.
diego
parents: 29
diff changeset
20
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
21 /**
642
70bdd5501662 Use full internal pathname in doxygen @file directives.
diego
parents: 633
diff changeset
22 * @file libavutil/bswap.h
466
f4fd038fcb58 misc spelling fixes
diego
parents: 464
diff changeset
23 * byte swapping routines
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
24 */
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
25
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 522
diff changeset
26 #ifndef AVUTIL_BSWAP_H
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 522
diff changeset
27 #define AVUTIL_BSWAP_H
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
28
343
f21d1907d47c include all prerequisites in header files
mru
parents: 330
diff changeset
29 #include <stdint.h>
469
bdc8433d739e Add #include "config.h" to headers that need it.
diego
parents: 466
diff changeset
30 #include "config.h"
343
f21d1907d47c include all prerequisites in header files
mru
parents: 330
diff changeset
31 #include "common.h"
f21d1907d47c include all prerequisites in header files
mru
parents: 330
diff changeset
32
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 588
diff changeset
33 #if ARCH_ARM
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
34 # include "arm/bswap.h"
770
7ee08d73ac3a AVR32: inline asm for bswap.h
mru
parents: 758
diff changeset
35 #elif ARCH_AVR32
7ee08d73ac3a AVR32: inline asm for bswap.h
mru
parents: 758
diff changeset
36 # include "avr32/bswap.h"
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 588
diff changeset
37 #elif ARCH_BFIN
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
38 # include "bfin/bswap.h"
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 588
diff changeset
39 #elif ARCH_SH4
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
40 # include "sh4/bswap.h"
603
880c6441f56a Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 588
diff changeset
41 #elif ARCH_X86
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
42 # include "x86/bswap.h"
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
43 #endif
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
44
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
45 #ifndef bswap_16
481
f4187c1c15a6 Reapply r12489: Add pure, const and malloc attributes to proper functions
zuxy
parents: 480
diff changeset
46 static av_always_inline av_const uint16_t bswap_16(uint16_t x)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
47 {
330
2e7209604069 reorder bswap functions into bit-depth, special-casing inside the functions.
benoit
parents: 329
diff changeset
48 x= (x>>8) | (x<<8);
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
49 return x;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
50 }
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
51 #endif
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
52
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
53 #ifndef bswap_32
481
f4187c1c15a6 Reapply r12489: Add pure, const and malloc attributes to proper functions
zuxy
parents: 480
diff changeset
54 static av_always_inline av_const uint32_t bswap_32(uint32_t x)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
55 {
330
2e7209604069 reorder bswap functions into bit-depth, special-casing inside the functions.
benoit
parents: 329
diff changeset
56 x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
2e7209604069 reorder bswap functions into bit-depth, special-casing inside the functions.
benoit
parents: 329
diff changeset
57 x= (x>>16) | (x<<16);
327
e9ee070db39b Faster 32 bit byteswaping code for Blackfin.
diego
parents: 159
diff changeset
58 return x;
e9ee070db39b Faster 32 bit byteswaping code for Blackfin.
diego
parents: 159
diff changeset
59 }
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
60 #endif
327
e9ee070db39b Faster 32 bit byteswaping code for Blackfin.
diego
parents: 159
diff changeset
61
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
62 #ifndef bswap_64
481
f4187c1c15a6 Reapply r12489: Add pure, const and malloc attributes to proper functions
zuxy
parents: 480
diff changeset
63 static inline uint64_t av_const bswap_64(uint64_t x)
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
64 {
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
65 #if 0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
66 x= ((x<< 8)&0xFF00FF00FF00FF00ULL) | ((x>> 8)&0x00FF00FF00FF00FFULL);
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
67 x= ((x<<16)&0xFFFF0000FFFF0000ULL) | ((x>>16)&0x0000FFFF0000FFFFULL);
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
68 return (x>>32) | (x<<32);
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
69 #else
12
ce8f9f4390c3 COSMETICS: Remove all trailing whitespace.
diego
parents: 0
diff changeset
70 union {
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
71 uint64_t ll;
12
ce8f9f4390c3 COSMETICS: Remove all trailing whitespace.
diego
parents: 0
diff changeset
72 uint32_t l[2];
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
73 } w, r;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
74 w.ll = x;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
75 r.l[0] = bswap_32 (w.l[1]);
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
76 r.l[1] = bswap_32 (w.l[0]);
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
77 return r.ll;
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
78 #endif
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
79 }
582
57da90f7c680 split bswap.h into per-arch files
mru
parents: 579
diff changeset
80 #endif
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
81
633
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 603
diff changeset
82 // be2me ... big-endian to machine-endian
8c48a1b999a3 spelling/grammar/consistency review part I
diego
parents: 603
diff changeset
83 // le2me ... little-endian to machine-endian
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
84
758
22a58fc2125d Replace WORDS_BIGENDIAN with HAVE_BIGENDIAN
mru
parents: 642
diff changeset
85 #if HAVE_BIGENDIAN
0
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
86 #define be2me_16(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
87 #define be2me_32(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
88 #define be2me_64(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
89 #define le2me_16(x) bswap_16(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
90 #define le2me_32(x) bswap_32(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
91 #define le2me_64(x) bswap_64(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
92 #else
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
93 #define be2me_16(x) bswap_16(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
94 #define be2me_32(x) bswap_32(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
95 #define be2me_64(x) bswap_64(x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
96 #define le2me_16(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
97 #define le2me_32(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
98 #define le2me_64(x) (x)
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
99 #endif
ee8f44bb7c4d libavutil: Utility code from libavcodec moved to a separate library.
al
parents:
diff changeset
100
567
bd4052d9050c Globally rename the header inclusion guard names.
stefano
parents: 522
diff changeset
101 #endif /* AVUTIL_BSWAP_H */