vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
grab.h
Go to the documentation of this file.
1
20#ifndef __GRAB_H
21#define __GRAB_H
22
23#include <cstdint>
24
25#include <vdr/osd.h>
26
32
33inline const char* GrabtypeToString(Grabtype t) {
34 switch(t) {
35 case Grabtype::GRABVIDEO: return "VIDEO";
36 case Grabtype::GRABPIP: return "PIP";
37 case Grabtype::GRABOSD: return "OSD";
38 }
39 return "Unknown";
40}
41
42class cDrmBuffer;
43class cVideoRender;
44
53{
54public:
55 cGrabBuffer(void) = default;
56
57 void FreeDrmBuf(void);
58 void SetDrmBuf(cDrmBuffer *);
59
60 // setters and getters
61 void SetData(uint8_t *result) { m_pResult = result; };
62 void SetSize(int size) { m_size = size; };
63
64 int GetX(void) { return m_rect.X(); };
65 int GetY(void) { return m_rect.Y(); };
66 int GetWidth(void) { return m_rect.Width(); };
67 int GetHeight(void) { return m_rect.Height(); };
68 uint8_t *GetData(void) { return m_pResult; };
69 int GetSize(void) { return m_size; };
70 cDrmBuffer *GetDrmBuf(void) { return m_pBuf; };
71private:
72 uint8_t *m_pResult = nullptr;
73 struct cDrmBuffer *m_pBuf = nullptr;
74 int m_size = 0;
75 cRect m_rect;
76};
77
82{
83public:
84 cSoftHdGrab(cVideoRender *render) : m_pRender(render) {};
85
86 bool Active(void) { return m_isActive; };
87 bool Start(bool, int, int, int, int, int);
88 uint8_t *Image(void) { return m_grabbedImage; };
89 int Size(void) { return m_grabbedSize; };
90
91private:
95 bool m_isActive = false;
96
97 bool m_isJpeg = true;
103
104 bool ProcessGrab(void);
105 uint8_t *GetGrab(int *, int *, int *, int *, int *, Grabtype);
106};
107
108#endif
cGrabBuffer - Grab buffer class
Definition grab.h:53
void SetData(uint8_t *result)
Definition grab.h:61
void SetSize(int size)
Definition grab.h:62
uint8_t * GetData(void)
Definition grab.h:68
uint8_t * m_pResult
pointer to grabbed image
Definition grab.h:72
cRect m_rect
rect of the grabbed data
Definition grab.h:75
int GetHeight(void)
Definition grab.h:67
cGrabBuffer(void)=default
void FreeDrmBuf(void)
Free the grab buffer.
Definition grab.cpp:293
int GetSize(void)
Definition grab.h:69
int GetWidth(void)
Definition grab.h:66
void SetDrmBuf(cDrmBuffer *)
Set the grab buffer and the dimensions how it is presented on the screen.
Definition grab.cpp:312
int m_size
size of grabbed data
Definition grab.h:74
struct cDrmBuffer * m_pBuf
pointer to original buffer
Definition grab.h:73
int GetY(void)
Definition grab.h:65
cDrmBuffer * GetDrmBuf(void)
Definition grab.h:70
int GetX(void)
Definition grab.h:64
cSoftHdGrab - Grabber class
Definition grab.h:82
int m_screenWidth
Definition grab.h:101
int m_quality
Definition grab.h:98
uint8_t * m_grabbedImage
Definition grab.h:93
int m_grabbedWidth
Definition grab.h:99
int m_screenHeight
Definition grab.h:102
uint8_t * GetGrab(int *, int *, int *, int *, int *, Grabtype)
Convert the cloned drm buffer data to RGB(void, pip) or ARGB (osd) and returns a pointer to the raw d...
Definition grab.cpp:376
bool Start(bool, int, int, int, int, int)
Start a grab in the video renderer.
Definition grab.cpp:332
bool m_isActive
Definition grab.h:95
int m_grabbedSize
Definition grab.h:94
uint8_t * Image(void)
Definition grab.h:88
bool m_isJpeg
Definition grab.h:97
bool ProcessGrab(void)
Start the conversion.
Definition grab.cpp:450
int m_grabbedHeight
Definition grab.h:100
bool Active(void)
Definition grab.h:86
cVideoRender * m_pRender
Definition grab.h:92
int Size(void)
Definition grab.h:89
cSoftHdGrab(cVideoRender *render)
Definition grab.h:84
cVideoRender - Video render class
Grabtype
Definition grab.h:27
@ GRABPIP
Definition grab.h:29
@ GRABOSD
Definition grab.h:30
@ GRABVIDEO
Definition grab.h:28
const char * GrabtypeToString(Grabtype t)
Definition grab.h:33