Opened 20 years ago
Closed 20 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 by , 20 years ago
comment:3 by , 20 years ago
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

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 amakewould work without errors.