Fixed-sized 32-bit types are incorrect on LP64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libomxil-bellagio (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
The file `include/
```
/** 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:/
```
/** 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/