view data/fileio/VideoFileReader.h @ 167:2ac52ea3c1c4

video mouse events are in SDL now. The code is really better now, but there is a display bug when you zoom in, zoom out
author benoitrigolleau
date Fri, 16 Nov 2007 15:18:44 +0000
parents e63e8272dcb0
children be6d31baecb9
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

/*   
	Sound Access
		EASAIER client application.
		Queen Mary 2007. Ivan Damnjanovic.

	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License as
	published by the Free Software Foundation; either version 2 of the
	License, or (at your option) any later version.  See the file
	COPYING included with this distribution for more information.
*/

#ifndef _VIDEO_FILE_READER_H_
#define _VIDEO_FILE_READER_H_

#ifdef HAVE_FFMPEG
#ifdef __cplusplus
extern "C" {
#endif
#include "SDL_ffmpeg.h"

#ifdef __cplusplus
}
#endif
#include "../../sv/main/MainWindow.h"
#include "CodedAudioFileReader.h"
//#include "base/AudioCallbackPlaySource.h"


#include <set>
//class AudioCallbackPlaySource;
class QProgressDialog;

class VideoFileReader : public CodedAudioFileReader
{
public:
    VideoFileReader(QString path, bool showProgress, CacheMode cacheMode);
    virtual ~VideoFileReader();

    virtual QString getError() const { return m_error; }

    static void getSupportedExtensions(std::set<QString> &extensions);
	void VideoFileReader::processEvents();
    
protected:
    QString m_path;
    QString m_error;
    size_t m_fileSize;
    double m_bitrateNum;
    size_t m_bitrateDenom;
	SDL_Surface *screen;
	SDL_ffmpegFile* film;
    QProgressDialog *m_progress;
    bool m_cancelled;
	int m_width;
	int m_height;
	float m_zoomfactor;
	
	

   
    bool decodeAudio(SDL_ffmpegFile* file);
	bool videoInit(SDL_ffmpegFile* file);
	int videoPlay(); 
	static int videoPlayCall(void*);
};

#endif

#endif