Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef VLCSLIDE_H
- #define VLCSLIDE_H
- #include <QObject>
- #include <QMutex>
- #include <QMutexLocker>
- #include <QGLContext>
- #include <QString>
- #include <QDebug>
- #include <vlc/vlc.h>
- #include "slideshowable.h"
- class VlcSlide : public Slideshowable
- {
- Q_OBJECT
- public:
- explicit VlcSlide(QString filename, int x, int y, int w, int h, double fadeTime, QGLContext *ctx, QObject *parent = 0);
- virtual ~VlcSlide();
- protected:
- static void *lock_callback(void *data, void **p_pixels) {
- VlcSlide* obj = (VlcSlide*) data;
- return (obj->*&VlcSlide::lock)(p_pixels);
- }
- static void unlock_callback(void *data, void *id, void *const *p_pixels) {
- VlcSlide* obj = (VlcSlide*) data;
- return (obj->*&VlcSlide::unlock)(id, p_pixels);
- }
- static void display_callback(void *data, void *id){
- VlcSlide* obj = (VlcSlide*) data;
- return (obj->*&VlcSlide::display)(id);
- }
- static void video_end_callback(const libvlc_event_t *, void *data) {
- qDebug() << "Video has ended";
- VlcSlide* obj = (VlcSlide*) data;
- return (obj->*&VlcSlide::video_end)();
- }
- void *lock(void **p_pixels);
- void unlock(void *id, void *const *);
- void display(void *id) const;
- static QSize getVideoSize(libvlc_media_t *m);
- void *pixels;
- libvlc_instance_t *vlc;
- libvlc_media_t *m;
- libvlc_media_player_t *mp;
- QGLContext *ctx;
- QMutex *in, *out;
- QMutexLocker lockin, lockout;
- GLuint texture;
- QSize video_size;
- int nx, ny, nw, nh;
- signals:
- void finished();
- public slots:
- virtual void update();
- virtual void resize(int x, int y, int w, int h);
- virtual void play();
- virtual void stop();
- virtual void rewind();
- virtual void video_end();
- };
- #endif // VLCSLIDE_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement