aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/decoder.h
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-12-13 13:26:48 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-12-13 13:26:48 +0000
commitb5b839edc91a6902966079ec0b0bb5026df9df57 (patch)
treeaa7ab629412e0c52041ba39425f299531274d386 /lib/dvb/decoder.h
parent1394bbf36f7e0cc591f1a31b7d5db4e8f0f2c0c6 (diff)
downloadenigma2-b5b839edc91a6902966079ec0b0bb5026df9df57.tar.gz
enigma2-b5b839edc91a6902966079ec0b0bb5026df9df57.zip
use aspect ratio information from mpeg sequence header instead of eit (needs
new drivers)
Diffstat (limited to 'lib/dvb/decoder.h')
-rw-r--r--lib/dvb/decoder.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h
index 8e8f65ad..c864c095 100644
--- a/lib/dvb/decoder.h
+++ b/lib/dvb/decoder.h
@@ -4,6 +4,8 @@
#include <lib/base/object.h>
#include <lib/dvb/demux.h>
+class eSocketNotifier;
+
class eDVBAudio: public iObject
{
DECLARE_REF(eDVBAudio);
@@ -28,7 +30,7 @@ public:
virtual ~eDVBAudio();
};
-class eDVBVideo: public iObject
+class eDVBVideo: public iObject, public Object
{
DECLARE_REF(eDVBVideo);
private:
@@ -36,6 +38,9 @@ private:
int m_fd, m_fd_demux, m_dev;
int m_is_slow_motion, m_is_fast_forward;
+ eSocketNotifier *m_sn;
+ void video_event(int what);
+ Signal1<void, struct iTSMPEGDecoder::videoEvent> m_event;
public:
enum { MPEG2, MPEG4_H264 };
eDVBVideo(eDVBDemux *demux, int dev);
@@ -52,6 +57,7 @@ public:
void unfreeze();
int getPTS(pts_t &now);
virtual ~eDVBVideo();
+ RESULT connectEvent(const Slot1<void, struct iTSMPEGDecoder::videoEvent> &event, ePtr<eConnection> &conn);
};
class eDVBPCR: public iObject
@@ -104,9 +110,12 @@ private:
int m_changed, m_decoder;
int m_is_ff, m_is_sm, m_is_trickmode;
int setState();
- ePtr<eConnection> m_demux_event;
+ ePtr<eConnection> m_demux_event_conn;
+ ePtr<eConnection> m_video_event_conn;
void demux_event(int event);
+ void video_event(struct videoEvent);
+ Signal1<void, struct videoEvent> m_video_event;
public:
enum { pidNone = -1 };
eTSMPEGDecoder(eDVBDemux *demux, int decoder);
@@ -136,6 +145,7 @@ public:
RESULT setRadioPic(const std::string &filename);
/* what 0=auto, 1=video, 2=audio. */
RESULT getPTS(int what, pts_t &pts);
+ RESULT connectVideoEvent(const Slot1<void, struct videoEvent> &event, ePtr<eConnection> &connection);
};
#endif