QuickTime movie playback as OpenGL textures Textures are always bound to the GL_TEXTURE_RECTANGLE_ARB target.

On Mac OS X, the destination CGLContext must be the current context when the MovieGl is constructed. If that doesn't mean anything to you, you should be fine. A call to app::restoreWindowContext() can be used to force this to be the case.


Public Member Functions

  • ~MovieGl ()
  • signals::Signal< void()> &
    getNewFrameSignal ()
  • signals::Signal< void()> &
    getReadySignal ()
  • signals::Signal< void()> &
    getCancelledSignal ()
  • signals::Signal< void()> &
    getEndedSignal ()
  • signals::Signal< void()> &
    getJumpedSignal ()
  • signals::Signal< void()> &
    getOutputWasFlushedSignal ()
  • float *
    getFftData () const
  • uint32_t
    getNumFftBands () const
  • uint32_t
    getNumFftChannels () const

Static Public Member Functions

  • create (const Url &url)
  • create (const fs::path &path)
  • create (const MovieLoaderRef &loader)
  • create (const fs::path &path)
  • create (const MovieLoaderRef &loader)
  • create (const void *data, size_t dataSize, const std::string &fileNameHint, const std::string &mimeTypeHint="")
  • create (DataSourceRef dataSource, const std::string mimeTypeHint="")

Protected Member Functions

  • MovieGl (const Url &url)
  • MovieGl (const fs::path &path)
  • MovieGl (const MovieLoader &loader)
  • NSDictionary *
    avPlayerItemOutputDictionary () const override
  • void
    allocateVisualContext () override
  • void
    deallocateVisualContext () override
  • void
    newFrame (CVImageBufferRef cvImage) override
  • void
    releaseFrame () override
  • MovieGl ()
  • MovieGl (const fs::path &path)
  • MovieGl (const class MovieLoader &loader)
  • MovieGl (DataSourceRef dataSource, const std::string mimeTypeHint="")
  • void
    allocateVisualContext ()
  • getObj () const
  • void
    init ()
  • void
    init ()
  • void
    initFromUrl (const Url &url)
  • void
    initFromPath (const fs::path &filePath)
  • void
    initFromPath (const fs::path &filePath)
  • void
    initFromLoader (const MovieLoader &loader)
  • void
    initFromLoader (const class MovieLoader &loader)
  • void
    loadAsset ()
  • void
    updateFrame ()
  • void
    updateFrame ()
  • uint32_t
    countFrames () const
  • void
    processAssetTracks (AVAsset *asset)
  • void
    createPlayerItemOutput (const AVPlayerItem *playerItem)
  • void
    lock ()
  • void
    unlock ()
  • void
    removeObservers ()
  • void
    addObservers ()
  • void
    playerReady ()
  • void
    playerItemEnded ()
  • void
    playerItemCancelled ()
  • void
    playerItemJumped ()
  • void
    outputWasFlushed (AVPlayerItemOutput *output)
  • void
    updateLoadState ()
  • void
    setupFft (FourCharCode code, uint32_t bandNum, uint8_t channelNum)
  • TimeValue
    getStartTimeOfFirstSample () const
  • void
    initFromMemory (const void *data, size_t dataSize, const std::string &fileNameHint, const std::string &mimeTypeHint)
  • void
    initFromDataSource (DataSourceRef dataSource, const std::string &mimeTypeHint)
  • int32_t
    countFrames (::Movie theMovie)

Protected Attributes

  • std::shared_ptr< TextureCache >
    mTextureCache
  • mTexture
  • std::shared_ptr< Obj >
    mObj
  • int32_t
    mWidth
  • int32_t
    mHeight
  • int32_t
    mFrameCount
  • float
    mFrameRate
  • float
    mDuration
  • std::atomic< bool >
    mAssetLoaded
  • bool
    mLoaded
  • bool
    mPlayThroughOk
  • bool
    mPlayable
  • bool
    mProtected
  • bool
    mPlayingForward
  • bool
    mLoop
  • bool
    mPalindrome
  • bool
    mHasAudio
  • bool
    mHasVideo
  • bool
    mPlaying
  • AVPlayer *
    mPlayer
  • AVPlayerItem *
    mPlayerItem
  • AVURLAsset *
    mAsset
  • AVPlayerItemVideoOutput *
    mPlayerVideoOutput
  • std::mutex
    mMutex
  • mSignalNewFrame
  • mSignalReady
  • mSignalCancelled
  • mSignalEnded
  • mSignalJumped
  • mSignalOutputWasFlushed
  • mResponder
  • MovieDelegate *
    mPlayerDelegate