ivand_qmul@125: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ ivand_qmul@125: ivand_qmul@125: /* ivand_qmul@125: Sound Access ivand_qmul@125: EASAIER client application. ivand_qmul@125: Queen Mary 2007. Ivan Damnjanovic. ivand_qmul@125: ivand_qmul@125: This program is free software; you can redistribute it and/or ivand_qmul@125: modify it under the terms of the GNU General Public License as ivand_qmul@125: published by the Free Software Foundation; either version 2 of the ivand_qmul@125: License, or (at your option) any later version. See the file ivand_qmul@125: COPYING included with this distribution for more information. lbajardsilogic@191: */ lbajardsilogic@191: lbajardsilogic@191: #ifndef _VIDEO_FILE_READER_H_ lbajardsilogic@191: #define _VIDEO_FILE_READER_H_ lbajardsilogic@191: lbajardsilogic@191: #include lbajardsilogic@191: lbajardsilogic@191: #ifdef HAVE_FFMPEG ivand_qmul@125: #ifdef __cplusplus ivand_qmul@125: extern "C" { lbajardsilogic@191: #endif /*__cplusplus*/ lbajardsilogic@191: #include "videoio/SDL_ffmpeg.h" lbajardsilogic@191: ivand_qmul@125: #ifdef __cplusplus ivand_qmul@125: } lbajardsilogic@191: #endif /*__cplusplus*/ lbajardsilogic@191: lbajardsilogic@191: #include "../../sv/main/MainWindow.h" lbajardsilogic@191: #include "CodedAudioFileReader.h" lbajardsilogic@191: //#include "base/AudioCallbackPlaySource.h" lbajardsilogic@191: lbajardsilogic@191: //class AudioCallbackPlaySource; lbajardsilogic@191: class QProgressDialog; lbajardsilogic@191: lbajardsilogic@191: class VideoFileReader : public CodedAudioFileReader lbajardsilogic@191: { lbajardsilogic@191: public: lbajardsilogic@191: VideoFileReader(QString path, bool showProgress, CacheMode cacheMode); lbajardsilogic@191: virtual ~VideoFileReader(); lbajardsilogic@191: lbajardsilogic@191: virtual QString getError() const { return m_error; } lbajardsilogic@191: lbajardsilogic@191: static void getSupportedExtensions(std::set &extensions); lbajardsilogic@191: void processEvents(); lbajardsilogic@191: lbajardsilogic@191: protected: lbajardsilogic@191: QString m_path; lbajardsilogic@191: QString m_error; lbajardsilogic@191: size_t m_fileSize; lbajardsilogic@191: double m_bitrateNum; lbajardsilogic@191: size_t m_bitrateDenom; lbajardsilogic@191: SDL_Surface *screen; lbajardsilogic@191: SDL_ffmpegFile* film; lbajardsilogic@191: QProgressDialog *m_progress; benoitrigolleau@145: bool m_cancelled; benoitrigolleau@145: int m_width; benoitrigolleau@145: int m_height; benoitrigolleau@167: float m_zoomfactor; ivand_qmul@125: ivand_qmul@125: lbajardsilogic@191: lbajardsilogic@191: lbajardsilogic@191: bool decodeAudio(SDL_ffmpegFile* file); lbajardsilogic@191: bool videoInit(SDL_ffmpegFile* file); lbajardsilogic@191: int videoPlay(); lbajardsilogic@191: static int videoPlayCall(void*); lbajardsilogic@191: }; lbajardsilogic@191: lbajardsilogic@191: #endif /*HAVE_FFMPEG*/ lbajardsilogic@191: lbajardsilogic@191: #endif /*_VIDEO_FILE_READER_H_*/