[FFmpeg-devel] [PATCH] H264 DXVA2 implementation

Reimar Döffinger Reimar.Doeffinger
Sun Jan 10 16:22:32 CET 2010


On Sun, Jan 10, 2010 at 04:13:43PM +0100, Reimar D?ffinger wrote:
> On Sun, Jan 10, 2010 at 04:08:50PM +0100, Jean-Baptiste Kempf wrote:
> > On Sun, Jan 10, 2010 at 03:01:25PM +0000, M?ns Rullg?rd wrote :
> > > >> > j-b pointed me to the vlc buildbot where this doesn't compile under
> > > >> > "-std=c99" (which is set by default in FFmpeg). I'm no C guru and I'm
> > > >> > quite tired right now, but it seems you can't use anonymous unions in
> > > >> > your dxva2api.h, such as:
> > > >> >
> > > >> > typedef struct {
> > > >> >     union {
> > > >> >         struct {
> > > >> >             UCHAR Index7Bits     : 7;
> > > >> >             UCHAR AssociatedFlag : 1;
> > > >> >         };
> > > >> >         UCHAR bPicEntry;
> > > >> >     };
> > > >> > } DXVA_PicEntry_H264;
> > > >> 
> > > >> WTF?  How would you even begin to access those fields?
> > > >
> > > > It's a Microsoft/GNU extension.
> > > > DXVA_PicEntry_H264.Index7Bits
> > > > accesses right into the union/struct
> > > 
> > > What's the point of that?  Why not put them directly in the outer
> > > struct if you don't want a name?
> > 
> > Because that is how it is done in the Microsoft header Dxva2api.h.
> > See:
> > http://download.microsoft.com/download/5/f/c/5fc4ec5c-bd8c-4624-8034-319c1bab7671/DXVA_H264.pdf
> > page 16, chapter 3.1 for reference.
> > 
> > Our dxva2api.h tries to stay compatible with Microsoft headers like the
> > other DirectX headers from Mingw/wine.
> 
> That doesn't fully excuse sending a patch for review that seems to not even compile...

And to say something constructive: I suggest adding check for a define that if set
will remove the non-portable bitfields and (if any remain) name the remaining unions/structs



More information about the ffmpeg-devel mailing list