annotate libmpeg2/attributes.h @ 18044:b693d92e6210

workaround to prevent segfault: when using -ve lavc with b-frames write_chunk(1st video frame) gets called with len=-1UL; -1ULl to whomever calls me that way
author nicodvb
date Wed, 05 Apr 2006 20:51:35 +0000
parents 1385ec491ffb
children 0783dd397f74
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 * attributes.h
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 9852
diff changeset
3 * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
7 * See http://libmpeg2.sourceforge.net/ for updates.
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 * mpeg2dec is free software; you can redistribute it and/or modify
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 * (at your option) any later version.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 * mpeg2dec is distributed in the hope that it will be useful,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 * GNU General Public License for more details.
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14732
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13133
diff changeset
22 *
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13133
diff changeset
23 * Modified for use with MPlayer, see libmpeg-0.4.0.diff for the exact changes.
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13133
diff changeset
24 * detailed CVS changelog at http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
1385ec491ffb Mark locally modified files as such to comply more closely with GPL 2a.
diego
parents: 13133
diff changeset
25 * $Id$
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
28 /* use gcc attribs to align critical data structures */
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 #ifdef ATTRIBUTE_ALIGNED_MAX
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
30 #define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align)))
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 #else
13133
f283e0e499bf allow alignment without ATTRIBUTE_ALIGNED_MAX been defined, it fixes sparc unaligned memory access
iive
parents: 12932
diff changeset
32 #define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((16 < align) ? 16 : align)))
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 #endif
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
34
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
35 #ifdef HAVE_BUILTIN_EXPECT
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
36 #define likely(x) __builtin_expect ((x) != 0, 1)
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
37 #define unlikely(x) __builtin_expect ((x) != 0, 0)
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
38 #else
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
39 #define likely(x) (x)
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
40 #define unlikely(x) (x)
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 8957
diff changeset
41 #endif