17 #ifndef __NV_DRM_RENDERER_H__
18 #define __NV_DRM_RENDERER_H__
24 #include <unordered_map>
87 uint32_t height, uint32_t w_x, uint32_t w_y,
88 uint32_t connector, uint32_t crtc,
89 struct drm_tegra_hdr_metadata_smpte_2086 metadata,
240 int32_t* plane_index);
272 struct timespec last_render_time;
276 uint32_t width, height;
277 uint32_t drm_conn_id;
279 uint32_t drm_crtc_id;
284 bool renderingStarted;
290 std::queue<int> freeBuffers;
291 std::queue<int> pendingBuffers;
292 std::unordered_map <int, int> map_list;
296 pthread_t render_thread;
298 pthread_mutex_t render_lock;
299 pthread_cond_t render_cond;
300 pthread_mutex_t enqueue_lock;
301 pthread_cond_t enqueue_cond;
302 pthread_mutex_t dequeue_lock;
303 pthread_cond_t dequeue_cond;
306 uint64_t render_time_sec;
308 uint64_t render_time_nsec;
327 NvDrmRenderer(
const char *name, uint32_t width, uint32_t height,
328 uint32_t w_x, uint32_t w_y, uint32_t connector, uint32_t crtc,
329 struct drm_tegra_hdr_metadata_smpte_2086 metadata,
bool streamHDR);
340 static void * renderThread(
void *arg);
341 static void * renderThreadOrin(
void *arg);
347 static void page_flip_handler(
int fd,
unsigned int frame,
348 unsigned int sec,
unsigned int usec,
void *data);
356 int renderInternal(
int fd);
367 int createDumbBO(
int w,
int h,
int bpp,
NvDrmBO *bo);