Torc  0.1
torcomxport.h
Go to the documentation of this file.
1 #ifndef TORCOMXPORT_H
2 #define TORCOMXPORT_H
3 
4 // Qt
5 #include <QMutex>
6 #include <QQueue>
7 #include <QWaitCondition>
8 
9 // Torc
10 #include "torcomxcore.h"
11 #include "torcomxcomponent.h"
12 
13 // OpenMaxIL
14 #include "OMX_Core.h"
15 #include "OMX_Component.h"
16 
17 class TorcOMXPort final : public QObject
18 {
19  Q_OBJECT
20 
21  public:
22  TorcOMXPort(TorcOMXComponent *Parent, OMX_HANDLETYPE Handle, OMX_U32 Port, OMX_INDEXTYPE Domain);
23  ~TorcOMXPort();
24 
25  OMX_U32 GetPort (void);
26  OMX_INDEXTYPE GetDomain (void);
27  OMX_ERRORTYPE EnablePort (bool Enable, bool Wait = true);
28  OMX_U32 GetAvailableBuffers (void);
29  OMX_U32 GetInUseBuffers (void);
30  OMX_ERRORTYPE CreateBuffers (QObject* Owner = nullptr);
31  OMX_ERRORTYPE DestroyBuffers (void);
32  OMX_ERRORTYPE Flush (void);
33  OMX_ERRORTYPE MakeAvailable (OMX_BUFFERHEADERTYPE* Buffer);
34  OMX_BUFFERHEADERTYPE* GetBuffer (OMX_S32 Timeout);
35 
36  signals:
37  void BufferReady (OMX_BUFFERHEADERTYPE* Buffer, quint64 Type);
38 
39  private:
40  QObject *m_owner;
41  TorcOMXComponent *m_parent;
42  OMX_HANDLETYPE m_handle;
43  OMX_U32 m_port;
44  OMX_INDEXTYPE m_domain;
45  QMutex m_lock;
46  QWaitCondition m_wait;
47  QList<OMX_BUFFERHEADERTYPE*> m_buffers;
48  QQueue<OMX_BUFFERHEADERTYPE*> m_availableBuffers;
49  OMX_U32 m_alignment;
50 
51  private:
52  Q_DISABLE_COPY(TorcOMXPort)
53 };
54 
55 #endif // TORCOMXPORT_H
OMX_ERRORTYPE Flush(void)
OMX_U32 GetInUseBuffers(void)
OMX_ERRORTYPE DestroyBuffers(void)
OMX_ERRORTYPE MakeAvailable(OMX_BUFFERHEADERTYPE *Buffer)
TorcOMXPort(TorcOMXComponent *Parent, OMX_HANDLETYPE Handle, OMX_U32 Port, OMX_INDEXTYPE Domain)
Definition: torcomxport.cpp:30
OMX_U32 GetAvailableBuffers(void)
Definition: torcomxport.cpp:95
OMX_ERRORTYPE CreateBuffers(QObject *Owner=nullptr)
OMX_U32 GetPort(void)
Definition: torcomxport.cpp:49
OMX_ERRORTYPE EnablePort(bool Enable, bool Wait=true)
Definition: torcomxport.cpp:59
OMX_INDEXTYPE GetDomain(void)
Definition: torcomxport.cpp:54
void BufferReady(OMX_BUFFERHEADERTYPE *Buffer, quint64 Type)
OMX_BUFFERHEADERTYPE * GetBuffer(OMX_S32 Timeout)