Opened 13 years ago
Closed 13 years ago
#2203 closed defect (fixed)
libavcodec/vdpau.h is broken when used from C++
| Reported by: | Alexis Ballier | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avcodec |
| Version: | git-master | Keywords: | regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Not sure at all how to fix this, but commit 44e065d56c87d6a9d0effccec5f31517f72924ec moved the definition of VdpPictureInfo from vdpau_render_state to global scope. VdpPictureInfo is also defined by vdpau/vpdau.h here, included from libavcodec/vdpau.h.
While it's fine with C code, it's not from C++ and breaks xbmc.
Sample test case:
$ cat foo.cc
extern "C" {
#include <libavcodec/vdpau.h>
}
int main() {}
$ g++ foo.cc
In file included from foo.cc:2:0:
/usr/include/libavcodec/vdpau.h:55:7: error: using typedef-name ‘VdpPictureInfo’ after ‘union’
In file included from /usr/include/libavcodec/vdpau.h:52:0,
from foo.cc:2:
/usr/include/vdpau/vdpau.h:2650:16: note: ‘VdpPictureInfo’ has a previous declaration here
Change History (3)
comment:1 by , 13 years ago
| Component: | undetermined → avcodec |
|---|---|
| Keywords: | regression added |
| Priority: | normal → important |
| Version: | unspecified → git-master |
comment:2 by , 13 years ago
comment:3 by , 13 years ago
| Reproduced by developer: | set |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
patch applied, we can change the solution later if something better is found



Patch on ML, author of problematic commit contacted