Mercurial > libavutil.hg
annotate x86/bswap.h @ 1028:5dbb12a37c3d libavutil tip
Move av_set_options_string() from libavfilter to libavutil.
author | stefano |
---|---|
date | Mon, 27 Sep 2010 22:09:53 +0000 |
parents | f8db9a2bae05 |
children |
rev | line source |
---|---|
582 | 1 /* |
2 * This file is part of FFmpeg. | |
3 * | |
4 * FFmpeg is free software; you can redistribute it and/or | |
5 * modify it under the terms of the GNU Lesser General Public | |
6 * License as published by the Free Software Foundation; either | |
7 * version 2.1 of the License, or (at your option) any later version. | |
8 * | |
9 * FFmpeg is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 * Lesser General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU Lesser General Public | |
15 * License along with FFmpeg; if not, write to the Free Software | |
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
17 */ | |
18 | |
19 /** | |
899
0795a743bda1
Remove explicit filename from Doxygen @file commands.
diego
parents:
873
diff
changeset
|
20 * @file |
582 | 21 * byte swapping routines |
22 */ | |
23 | |
24 #ifndef AVUTIL_X86_BSWAP_H | |
25 #define AVUTIL_X86_BSWAP_H | |
26 | |
27 #include <stdint.h> | |
28 #include "config.h" | |
873
4d9ad0ed07d0
Replace many includes of libavutil/common.h with what is actually needed
mru
parents:
642
diff
changeset
|
29 #include "libavutil/attributes.h" |
582 | 30 |
993 | 31 #define av_bswap16 av_bswap16 |
32 static av_always_inline av_const uint16_t av_bswap16(uint16_t x) | |
582 | 33 { |
34 __asm__("rorw $8, %0" : "+r"(x)); | |
35 return x; | |
36 } | |
37 | |
993 | 38 #define av_bswap32 av_bswap32 |
39 static av_always_inline av_const uint32_t av_bswap32(uint32_t x) | |
582 | 40 { |
603 | 41 #if HAVE_BSWAP |
582 | 42 __asm__("bswap %0" : "+r" (x)); |
43 #else | |
44 __asm__("rorw $8, %w0 \n\t" | |
45 "rorl $16, %0 \n\t" | |
46 "rorw $8, %w0" | |
47 : "+r"(x)); | |
48 #endif | |
49 return x; | |
50 } | |
51 | |
603 | 52 #if ARCH_X86_64 |
993 | 53 #define av_bswap64 av_bswap64 |
54 static inline uint64_t av_const av_bswap64(uint64_t x) | |
582 | 55 { |
56 __asm__("bswap %0": "=r" (x) : "0" (x)); | |
57 return x; | |
58 } | |
59 #endif | |
60 | |
61 #endif /* AVUTIL_X86_BSWAP_H */ |