Fixed-sized 32-bit types are incorrect on LP64

Bug #1936441 reported by Ridley Combs
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libomxil-bellagio (Ubuntu)
New
Undecided
Unassigned

Bug Description

The file `include/OMX_Types.h` contains these lines:
```
/** OMX_U32 is a 32 bit unsigned quantity that is 32 bit word aligned */
typedef unsigned long OMX_U32;

/** OMX_S32 is a 32 bit signed quantity that is 32 bit word aligned */
typedef signed long OMX_S32;
```

These differ from the corresponding lines in the official OMX headers (https://www.khronos.org/registry/OpenMAX-IL/api/1.1.2/OpenMAX_IL_1_1_2_Header.zip):
```
/** OMX_U32 is a 32 bit unsigned quantity that is 32 bit word aligned */
typedef uint32_t OMX_U32;

/** OMX_S32 is a 32 bit signed quantity that is 32 bit word aligned */
typedef int32_t OMX_S32;
```

It's unclear where this difference originated, but it results in the type `OMX_U32` being 64-bit on LP64 platforms, which produces an ABI incompatibility with software built with the official headers using correct types. I'd suggest replacing the headers in this package with the upstream ones, and possibly moving the standard `/usr/include/OMX_*.h` headers to their own package (`openmax-il-headers`? `openmax-il-devel`?) rather than bundling them with the Bellagio implementation.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.