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 kstuard (comcast.net), 20 years ago

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 by danielk, 20 years ago

Owner: changed from Isaac Richards to danielk

I'll have a look at this.

comment:3 by anonymous, 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

comment:4 by danielk, 20 years ago

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.