Eloy Duran
eloy.****@gmail*****
Tue Dec 19 09:56:15 JST 2006
The constant QTZeroTime returns a wrong value: OSX::QTZeroTime.timeValue => 1000000 It should however return 0, as the name says ;) The function QTMakeTime results in a error: blabla = OSX::QTMakeTime(100, 100) irb[20879] XXX returning ffi type void for unrecognized octype 113 irb[20879] XXX returning ffi type void for unrecognized octype 113 (irb):2: [BUG] (irb):2: [BUG] Bus Error However, the first time I tried to use it, ffi also complained but didn't result in a 'Bus Error'. But calling the method timeValue on the instantiated QTTime object results in 1000000 (deja vu). And calling timeScale results in 0 instead of 100. The ruby wrapped object instantiates as it should: whatever = OSX::QTTime.new(100, 1000, 0) whatever.timeValue => 100 whatever.timeScale => 1000 whatever.flags => 0 Exactly the same problem exists for the function QTMakeTimeRange: ahum = OSX::QTMakeTimeRange(OSX::QTTime.new(100, 1000, 0), OSX::QTTime.new(1000, 1000, 0)) irb[20905] XXX returning ffi type void for unrecognized octype 113 (irb):4: [BUG] (irb):4: [BUG] Bus Error And similar the ruby wrapped object instantiates as it should. The same goes basically for any C function that returns a QTTime or QTTimeRange struct. I guess it has something to do with the encoding description in the bridge-support: <struct name='QTTime' encoding='{?="timeValue"q"timeScale"l"flags"l}'/> <struct name='QTTimeRange' encoding='{?="time"{?="timeValue"q"timeScale"l"flags"l}"duration"{?="timeValue"q"timeScale"l"flags"l}}'/> The description(encoding) for a QTTime struct is: {?=qll} The description(encoding) for a QTTimeRange struct is: {?={?=qll}{?=qll}} If I change this encoding in the QTKit.xml file this message disappears: XXX returning ffi type void for unrecognized octype 113 But it still exits with a bus error. Laurant, I'll send you an updated version of the QTKitPlayer where there's some code which uses QTTime & QTTimeRange. Cheers, Eloy.