~ubuntu-branches/ubuntu/trusty/libav/trusty

« back to all changes in this revision

Viewing changes to libavutil/intreadwrite.h

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2011-04-19 15:04:55 UTC
  • mfrom: (1.2.1 upstream)
  • mto: (1.3.4 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20110419150455-c1nac6gjm3t2aa4n
Tags: 4:0.7~b1-1
* New upstream version
* bump SONAME and SHLIBS
* configure flags --disable-stripping was removed upstream
* the MAINTAINERS file was removed upstream
* remove patch disable-configuration-warning.patch
* drop avfilter confflags, it is enable by default in 0.7
* libfaad wrapper has been removed upstream
* also update the *contents* of the lintian overrides

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * This file is part of FFmpeg.
 
2
 * This file is part of Libav.
3
3
 *
4
 
 * FFmpeg is free software; you can redistribute it and/or
 
4
 * Libav is free software; you can redistribute it and/or
5
5
 * modify it under the terms of the GNU Lesser General Public
6
6
 * License as published by the Free Software Foundation; either
7
7
 * version 2.1 of the License, or (at your option) any later version.
8
8
 *
9
 
 * FFmpeg is distributed in the hope that it will be useful,
 
9
 * Libav is distributed in the hope that it will be useful,
10
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
12
 * Lesser General Public License for more details.
13
13
 *
14
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
 
15
 * License along with Libav; if not, write to the Free Software
16
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 */
18
18
 
20
20
#define AVUTIL_INTREADWRITE_H
21
21
 
22
22
#include <stdint.h>
23
 
#include "config.h"
 
23
#include "libavutil/avconfig.h"
 
24
#include "attributes.h"
24
25
#include "bswap.h"
25
 
#include "common.h"
26
26
 
27
27
typedef union {
28
28
    uint64_t u64;
52
52
 * as inline functions.
53
53
 */
54
54
 
 
55
#ifdef HAVE_AV_CONFIG_H
 
56
 
 
57
#include "config.h"
 
58
 
55
59
#if   ARCH_ARM
56
60
#   include "arm/intreadwrite.h"
57
61
#elif ARCH_AVR32
66
70
#   include "x86/intreadwrite.h"
67
71
#endif
68
72
 
 
73
#endif /* HAVE_AV_CONFIG_H */
 
74
 
69
75
/*
70
76
 * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers.
71
77
 */
72
78
 
73
 
#if HAVE_BIGENDIAN
 
79
#if AV_HAVE_BIGENDIAN
74
80
 
75
81
#   if    defined(AV_RN16) && !defined(AV_RB16)
76
82
#       define AV_RB16(p) AV_RN16(p)
120
126
#       define AV_WN64(p, v) AV_WB64(p, v)
121
127
#   endif
122
128
 
123
 
#else /* HAVE_BIGENDIAN */
 
129
#else /* AV_HAVE_BIGENDIAN */
124
130
 
125
131
#   if    defined(AV_RN16) && !defined(AV_RL16)
126
132
#       define AV_RL16(p) AV_RN16(p)
170
176
#       define AV_WN64(p, v) AV_WL64(p, v)
171
177
#   endif
172
178
 
173
 
#endif /* !HAVE_BIGENDIAN */
 
179
#endif /* !AV_HAVE_BIGENDIAN */
174
180
 
175
181
/*
176
182
 * Define AV_[RW]N helper macros to simplify definitions not provided
177
183
 * by per-arch headers.
178
184
 */
179
185
 
180
 
#if   HAVE_ATTRIBUTE_PACKED
 
186
#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__)
181
187
 
182
188
union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
183
189
union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias;
191
197
#   define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
192
198
#   define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
193
199
 
194
 
#elif HAVE_FAST_UNALIGNED
 
200
#elif AV_HAVE_FAST_UNALIGNED
195
201
 
196
202
#   define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)
197
203
#   define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v))
302
308
    } while(0)
303
309
#endif
304
310
 
305
 
#if HAVE_BIGENDIAN
 
311
#if AV_HAVE_BIGENDIAN
306
312
#   define AV_RN(s, p)    AV_RB##s(p)
307
313
#   define AV_WN(s, p, v) AV_WB##s(p, v)
308
314
#else
336
342
#   define AV_WN64(p, v) AV_WN(64, p, v)
337
343
#endif
338
344
 
339
 
#if HAVE_BIGENDIAN
 
345
#if AV_HAVE_BIGENDIAN
340
346
#   define AV_RB(s, p)    AV_RN##s(p)
341
347
#   define AV_WB(s, p, v) AV_WN##s(p, v)
342
 
#   define AV_RL(s, p)    bswap_##s(AV_RN##s(p))
343
 
#   define AV_WL(s, p, v) AV_WN##s(p, bswap_##s(v))
 
348
#   define AV_RL(s, p)    av_bswap##s(AV_RN##s(p))
 
349
#   define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v))
344
350
#else
345
 
#   define AV_RB(s, p)    bswap_##s(AV_RN##s(p))
346
 
#   define AV_WB(s, p, v) AV_WN##s(p, bswap_##s(v))
 
351
#   define AV_RB(s, p)    av_bswap##s(AV_RN##s(p))
 
352
#   define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v))
347
353
#   define AV_RL(s, p)    AV_RN##s(p)
348
354
#   define AV_WL(s, p, v) AV_WN##s(p, v)
349
355
#endif