Opened 14 years ago

Closed 14 years ago

#522 closed defect (fixed)

Newer DirectFB and DFBCardCapabilities

Reported by: kstuard (comcast.net) Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: medium Keywords: DFBCardCapabilities GetCardCapabilities
Cc: Ticket locked: no

Description

Problem:

Trying to compile the latest mythtv. Following error encountered:

videoout_directfb.cpp:195: error: ‘DFBCardCapabilities’ does not name a type

Resolution:

Search of Google returned the following page that was of help to me: http://mail.directfb.org/pipermail/directfb-users/2005-April/000179.html

It seems that DFBGraphicsDeviceDescription has replaced DFBCardCapabilities and GetDeviceDescription has replaced GetCardCapabilities.

The only file I changed was Files: source:mythtv/libs/libmythtv/videoout_directfb.cpp

Line 195 contains the reference to DFBCardCapabilities. Line 340 contains the reference to GetCardCapabilities.

Once these changes were made, myth compiled without any errors.

Additional Details:

Compiling with qt-embedded-free-3.3.5, DirectFB-0.9.23, and linux-fusion-1.8.

I would submit a diff of this myself, but that would break myth with earlier versions of DirectFB. I do not know which versions the change is in so do not know which #IFDEF and what-not to make the change for all versions.

I will be monitoring this ticket for any additional questions or information you might need.

Change History (4)

comment:1 Changed 14 years ago by kstuard (comcast.net)

I downloaded one of the example programs (DFBSee-0.7.4) to see what they do with the problem of different functions in different versions. Turns out that it wasn't able to handle the change, either. I had to do the change in that program before a make would work without errors.

comment:2 Changed 14 years ago by danielk

Owner: changed from Isaac Richards to danielk

I'll have a look at this.

comment:3 Changed 14 years ago by anonymous

The API changed in 0.9.23, and it is incompatible with previous versions. The only way to support both is conditional code, testing the DirectFB version.

#if (DIRECTFB_MAJOR_VERSION = 0) && (DIRECTFB_MINOR_VERSION <= 9) && (DIRECTFB_MICRO_VERSION <= 22)
   DFBCardCapabilities cardCapabilities;
#else
   DFBGraphicsDeviceDescription cardDescription;
#endif

The corresponding interface function has changed too:

- GetCardCapabilities(data->dfb, &(data->cardCapabilities)), false);
+ GetDeviceDescription(data->dfb, &(data->cardDescription)), false);

Michael

comment:4 Changed 14 years ago by danielk

Resolution: fixed
Status: newclosed

(In [7622]) Fixes #522.

Allows MythTV to be compiled with DirectFB 9.23+ as well as current supported versions.

Note: See TracTickets for help on using tickets.