From Martin von Gagern, "The xine osg plugin won't compile against xine-lib-1.2.0:
OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c:2772:25: error: ?video_driver_class_t? has no member named ?get_identifier? OpenSceneGraph-3.0.1/src/osgPlugins/xine/video_out_rgb.c:2773:25: error: ?video_driver_class_t? has no member named ?get_description? This has been reported on Gentoo: https://bugs.gentoo.org/397643 The relevant commit to the xine-lib repository is http://anonscm.debian.org/hg/xine-lib/xine-lib-1.2/diff/806b590a4d38/src/xine-engine/video_out.h This change addresses the issue. I'm sending the full modified file as an attachment. It is based on the 3.0.1 release of OSG. I'll also paste a diff below. You will find a colorized view in the Gentoo bugzilla. The xine-lib API changed in the following way: the identifier and description members are now "const char*" strings instead of "char* (*)(video_driver_class_t*)" getter function. As the functions in the osg plugin will always simply return a string literal, without accessing their argument, it is safe to simply call them with a NULL argument and use the returned string. This makes it easy to support both API versions. When you drop support for older xine one day, you might want to move the string literals to the assignment, getting rid of the functions in the process. The modified code compiles for me. I'm not sure how to test it, as I've only got OSG around in order to build (and hopefully one day even use) Flightgear. I'm assigning my copyright in this change to the osg project leads. "
This commit is contained in:
@@ -2769,8 +2769,14 @@ init_class(xine_t* xine, void* vo_visual)
|
||||
clear(rgb_class, sizeof(rgbout_class_t));
|
||||
|
||||
rgb_class->driver_class.open_plugin = open_plugin;
|
||||
#if XINE_MAJOR_VERSION < 1 || (XINE_MAJOR_VERSION == 1 && XINE_MINOR_VERSION < 2)
|
||||
rgb_class->driver_class.get_identifier = get_identifier;
|
||||
rgb_class->driver_class.get_description = get_description;
|
||||
#else
|
||||
rgb_class->driver_class.identifier = get_identifier(NULL);
|
||||
rgb_class->driver_class.description = get_description(NULL);
|
||||
#endif
|
||||
|
||||
rgb_class->driver_class.dispose = dispose_class;
|
||||
|
||||
return(rgb_class);
|
||||
|
||||
Reference in New Issue
Block a user