I am trying to compile a python extension that uses
        Quicktime Video Output Components

as shown in the Mac Developers Library
        SimpleVideoOutXcode.xodeproj


i am building the extension using the setup.py script attached below
I need to run python in 32-bit because Quicktime has not been upgraded to 64-bit
I am running 10.7.2  and the Apple installed python 2.7.1

/usr/bin/python: Mach-O universal binary with 2 architectures
/usr/bin/python (for architecture x86_64):      Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386):        Mach-O executable i386


this is an excerpt of the output i am getting when I try to build the extension
NOTE: this line
        KVoutModule.c:44: error: expected specifier-qualifier-list before 
‘QTVideoOutputComponent’
seems to indicate that I am not including the Quicktime/QuicktimeComponents.h 
header (which I am)
as shown in the excerpt from the KVout.c source.

relavent setup.py line:
include_dirs = ['.', '/System/Library/Frameworks/Quicktime.framework/Headers/']


------------------------------------
-----------------> output from : arch -i386 /usr/bin/python setup.py build
-----------------------------------


running build
running build_ext
building 'KVout' extension
creating build
creating build/temp.macosx-10.7-intel-2.7
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common 
-fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG 
-Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall 
-Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe 
-DMAJOR_VERSION=1 -DMINOR_VERSION=0 -I. 
-I/System/Library/Frameworks/Quicktime.framework/Headers/ 
-I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c 
KVoutModule.c -o build/temp.macosx-10.7-intel-2.7/KVoutModule.o -m32 -framework 
Quicktime
KVoutModule.c: In function ‘KVout_Begin’:
KVoutModule.c:197: warning: ‘ComponentFunctionImplemented’ is deprecated 
(declared at 
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/Components.h:1216)
KVoutModule.c: At top level:
KVoutModule.c:537: warning: initialization from incompatible pointer type
i686-apple-darwin11-llvm-gcc-4.2: -framework: linker input file unused because 
linking not done
i686-apple-darwin11-llvm-gcc-4.2: Quicktime: linker input file unused because 
linking not done
KVoutModule.c:44: error: expected specifier-qualifier-list before 
‘QTVideoOutputComponent’
KVoutModule.c:91: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ 
before ‘KVoutComponent_GetInstance’
KVoutModule.c:93: error: expected ‘)’ before ‘container’
KVoutModule.c:94: error: expected declaration specifiers or ‘...’ before 
‘QTAtom’
KVoutModule.c:94: error: expected declaration specifiers or ‘...’ before 
‘QTAtomContainer’
KVoutModule.c: In function ‘KVout_Open’:
KVoutModule.c:142: warning: implicit declaration of function 
‘KVoutComponent_GetInstance’
KVoutModule.c:142: warning: assignment makes pointer from integer without a cast
KVoutModule.c:148: warning: implicit declaration of function 
‘QTVideoOutputSetClientName’
KVoutModule.c:151: warning: implicit declaration of function 
‘QTVideoOutputSetDisplayMode’
KVoutModule.c: In function ‘KVout_Begin’:
KVoutModule.c:188: warning: assignment makes pointer from integer without a cast
KVoutModule.c:191: warning: implicit declaration of function 
‘QTVideoOutputBegin’
KVoutModule.c:197: warning: implicit declaration of function 
‘ComponentFunctionImplemented’
KVoutModule.c:197: error: ‘kQTVideoOutputSetEchoPortSelect’ undeclared (first 
use in this function)
KVoutModule.c:197: error: (Each undeclared identifier is reported only once
KVoutModule.c:197: error: for each function it appears in.)
KVoutModule.c:201: warning: implicit declaration of function 
‘QTVideoOutputGetGWorld’



QUESTION:
Is there something more I need to do (or am I doing something wrong) that is 
keeping this from compiling

 


------------------------------------
-----------------> excerpt from my KVout.c 
-----------------------------------



#include <Python/Python.h>
#include <Carbon/Carbon.h>

#include <OpenGL/OpenGL.h>
#include <QuickTime/QuickTime.h>
#include <QuickTime/QuickTimeComponents.h>
        
#include <Python/structmember.h>

static PyObject *ErrorObject;           /* loacal exceptions */
#define ErrorExit(msg) \
        { PyErr_SetString (ErrorObject, msg); return NULL; }


extern  void    initKVout(void);

static  int             kMaxNumberOfComponents = 10;

typedef struct {
        long    width, height;  // pixels of the display
        Fixed   hRes, vRes;     // pixels per inch
        Fixed   refreshRate;    // refresh rate
        OSType  pixelType;              // type of pixel used by display format:
                                                        //              
1,2,4,8,16,24,32 :: standard bit depths
                                                        //              
33,34,36,40 :: gray-scale pixel depths
                                                        //      of 1,2,4,8
        char    name[50];               // name of display mode
} DisplayModeAtomRecord, *DisplayModeAtomPtr;


typedef struct {
        Handle                          hName;
        OSType                          subType;
        UInt8                           numberOfModes;
        DisplayModeAtomPtr      pDisplayModeList;
} ComponentListRecord, *ComponentListPtr;



typedef struct {
                Component                               component;
                QTVideoOutputComponent  componentInstance;
                ComponentListPtr                componentList;
                UInt8                                   totalNumOfComponents;
                UInt8                                   whichComponentIndex;
                UInt8                                   whichModeIndex;
} KVoutComponent, *KVoutComponentPtr;


------------------------------------
-----------------> my setup.py
-----------------------------------

from distutils.core import setup, Extension

module1 = Extension('KVout',
                    define_macros = [('MAJOR_VERSION', '1'),
                                     ('MINOR_VERSION', '0')],
                                        extra_compile_args = ['-m32', 
'-framework', 'Quicktime'],
                    include_dirs = ['.', 
'/System/Library/Frameworks/Quicktime.framework/Headers/'],
                    libraries    = [],
                    library_dirs = [],
                    sources = ['KVoutModule.c'])

setup (name = 'KVout',
       version = '1.0',
       description = 'Output Kabuki to Quicktime Video Component',
       author = 'Michael Ferraro',
       author_email = 'mich...@possibleworlds.com',
       url = 'http://www.python.org/doc/current/ext/building.html',
       long_description = '''
This is really just a demo package.
''',
       ext_modules = [module1])
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to