On Tue, 23 Apr 2013 10:58:27 +0300, Tomas Neverdauskas <[email protected]> wrote: > Hi, > > i'am trying to create python interface to QtAV project > https://github.com/wang-bin/QtAV (AvPlayer.h). Currently wrote this sip > file, but after executing got this "sip: syntax error" and no other hint is > provided. > > Please help to parse this file, thank you. > > %Module AVPlayer > > %Import QtCore/QtCoremod.sip > %Import QtGui/QtGuimod.sip > > namespace QtAV { > > %TypeHeaderCode > #include <../src/QtAV/AVClock.h> > #include <../src/QtAV/AVDemuxer.h> > %End > > class AudioOutput; > class AudioThread; > class VideoThread; > class AudioDecoder; > class VideoDecoder; > class VideoRenderer; > class AVClock; > class AVDemuxThread; > class VideoCapture; > class OSDFilter; > class AVPlayer : QObject > { > public: > explicit AVPlayer(QObject *parent = 0); > ~AVPlayer(); > > //NOT const. This is the only way to access the clock. > AVClock* masterClock(); > void setFile(const QString& path); > QString file() const; > bool load(const QString& path); > bool load(); > bool isLoaded() const; > qreal duration() const; //This function may be removed in the future. > /* > * default: [fmt: PNG, dir: capture, name: basename] > * replace the existing capture; return the replaced one > * set 0 will disable the capture > */ > VideoCapture* setVideoCapture(VideoCapture* cap); > VideoCapture *videoCapture(); > void setCaptureName(const QString& name);//TODO: remove. base name > void setCaptureSaveDir(const QString& dir); //TODO: remove > bool captureVideo(); > OSDFilter* setOSDFilter(OSDFilter* osd); > OSDFilter* osdFilter(); > bool play(const QString& path); > bool isPlaying() const; > bool isPaused() const; > //this will install the default EventFilter. To use customized filter, > register after this > VideoRenderer* setRenderer(VideoRenderer* renderer); > VideoRenderer* renderer(); > AudioOutput* audio(); > void setMute(bool mute); > bool isMute() const; > /*only 1 event filter is available. the previous one will be removed. > setPlayerEventFilter(0) will remove the event filter*/ > void setPlayerEventFilter(QObject *obj); > > signals: > void started(); > void stopped(); > > public slots: > void pause(bool p); > void play(); //replay > void stop(); > void playNextFrame(); > void seek(qreal pos); > void seekForward(); > void seekBackward(); > void updateClock(qint64 msecs); //update AVClock's external clock > > protected slots: > void resizeRenderer(const QSize& size); > > public: //original was protected, but SIP complained that classes must be > public > bool loaded; > AVFormatContext *formatCtx; //changed when reading a packet > AVCodecContext *aCodecCtx; //set once and not change > AVCodecContext *vCodecCtx; //set once and not change > QString path; > QString capture_name; > QString capture_dir; > > //the following things are required and must be setted not null > AVDemuxer demuxer; > AVDemuxThread *demuxer_thread; > AVClock *clock; > VideoRenderer *_renderer; //list? > AudioOutput *_audio; > AudioDecoder *audio_dec; > VideoDecoder *video_dec; > AudioThread *audio_thread; > VideoThread *video_thread; > > //tODO: (un)register api > QObject *event_filter; > VideoCapture *video_capture; > OSDFilter *osd; > }; > > } //namespace QtAV
Maybe a semi-colon after the last closing brace. The general approach is to comment things out until it parses to isolate the line causing the problem. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
