123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- #include <stdint.h>
- #include "RvcFaceVideo.h"
- #include <stdio.h>
- #include <assert.h>
- #include <string.h>
- #include <winpr/string.h>
- RvcFaceVideo::RvcFaceVideo(void)
- {
- memset(m_env_videoname, 0, MAX_PATH);
- memset(m_opt_videoname, 0, MAX_PATH);
- memset(m_preview_env_videoname, 0, MAX_PATH);
- memset(m_preview_opt_videoname, 0, MAX_PATH);
- m_env_videoqueue = NULL;
- m_opt_videoqueue = NULL;
- m_env_videoframe = NULL;
- m_opt_videoframe = NULL;
- m_preview_env_videoqueue = NULL;
- m_preview_opt_videoqueue = NULL;
- m_preview_env_videoframe = NULL;
- m_preview_opt_videoframe = NULL;
- }
- RvcFaceVideo::~RvcFaceVideo(void)
- {
- if (NULL != m_env_videoqueue){
- delete m_env_videoqueue;
- m_env_videoqueue = NULL;
- }
- if (NULL != m_opt_videoqueue){
- delete m_opt_videoqueue;
- m_opt_videoqueue = NULL;
- }
- if (NULL != m_preview_env_videoqueue){
- delete m_preview_env_videoqueue;
- m_preview_env_videoqueue = NULL;
- }
- if (NULL != m_preview_opt_videoqueue){
- delete m_preview_opt_videoqueue;
- m_preview_opt_videoqueue = NULL;
- }
- if (NULL != m_env_videoframe){
- delete m_env_videoframe;
- m_env_videoframe = NULL;
- }
- if (NULL != m_opt_videoframe){
- delete m_opt_videoframe;
- m_opt_videoframe = NULL;
- }
- if (NULL != m_preview_env_videoframe){
- delete []m_preview_env_videoname;
- m_preview_env_videoframe = NULL;
- }
- if (NULL != m_preview_opt_videoframe){
- delete m_preview_opt_videoframe;
- m_preview_opt_videoframe = NULL;
- }
- }
- int RvcFaceVideo::InitVideoQueue(const char* strenvqueue, const char* stroptqueue, const char* strpreview_envqueue, const char* strpreview_optqueue)
- {
- int iRet = -1;
- if (NULL != strenvqueue){
- _snprintf(m_env_videoname, MAX_PATH, "%s", strenvqueue);
- }
- if (NULL != stroptqueue){
- _snprintf(m_opt_videoname, MAX_PATH, "%s", stroptqueue);
- }
- if (NULL != strpreview_envqueue){
- _snprintf(m_preview_env_videoname, MAX_PATH, "%s", strpreview_envqueue);
- }
- if (NULL != strpreview_optqueue){
- _snprintf(m_preview_opt_videoname, MAX_PATH, "%s", strpreview_optqueue);
- }
- if (strlen(m_env_videoname)){
- m_env_videoqueue = new Clibvideoqueue(m_env_videoname);
- iRet = 0;
- }
- if (strlen(m_opt_videoname)){
- m_opt_videoqueue = new Clibvideoqueue(m_opt_videoname);
- iRet = 0;
- }
- if (strlen(m_preview_env_videoname)){
- m_preview_env_videoqueue = new Clibvideoqueue(m_preview_env_videoname);
- iRet = 0;
- }
- if (strlen(m_preview_opt_videoname)){
- m_preview_opt_videoqueue = new Clibvideoqueue(m_preview_opt_videoname);
- iRet = 0;
- }
- DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("init video queue success.");
- return iRet;
- }
- int RvcFaceVideo::GetVideoFrameSize(int icameraid, int* ivideowidth, int* ivideoheight)
- {
- assert(icameraid == 0 || icameraid == 1);
- int isize = 0;
- if (icameraid == 0){
- int width = 0;
- int height = 0;
- if (NULL != m_env_videoqueue){
- m_env_videoqueue->GetFrameSize(width,height);
- }
- *ivideowidth = width;
- *ivideoheight = height;
- isize = width*height*3;
- }
- else{
- int width = 0;
- int height = 0;
- if (NULL != m_opt_videoqueue){
- m_opt_videoqueue->GetFrameSize(width,height);
- }
- *ivideowidth = width;
- *ivideoheight = height;
- isize = width*height*3;
- }
- return isize;
- }
- int RvcFaceVideo::GetPreViewVideoFrameSize(int icameraid, int* ivideowidth, int* ivideoheight)
- {
- assert(icameraid == 0 || icameraid == 1);
- int isize = 0;
- if (0 == icameraid){
- int width = 0;
- int height = 0;
- if (NULL != m_preview_env_videoqueue){
- m_preview_env_videoqueue->GetFrameSize(width,height);
- }
- *ivideowidth = width;
- *ivideoheight = height;
- isize = width*height*3;
- }
- else{
- int width = 0;
- int height = 0;
- if (NULL != m_preview_opt_videoqueue){
- m_preview_opt_videoqueue->GetFrameSize(width,height);
- }
- *ivideowidth = width;
- *ivideoheight = height;
- isize = width*height*3;
- }
- return isize;
- }
- bool RvcFaceVideo::GetVideoFrame(int icameraid, videoq_frame* videoframe, int iflags)
- {
- assert(icameraid == 0 || icameraid == 1);
- bool bRslt = false;
- if (icameraid == 0){
- bRslt = m_env_videoqueue->GetVideo(videoframe, iflags);
- }
- else{
- if (NULL != m_opt_videoqueue){//横向摄像头图像,拼接
- bRslt = m_opt_videoqueue->GetVideo(videoframe, iflags);
- }
- }
- return bRslt;
- }
- bool RvcFaceVideo::GetPreViewVideoFrame(int icameraid, videoq_frame* videoframe, int iflags)
- {
- assert(icameraid == 0 || icameraid == 1);
- bool bRslt = false;
- if (icameraid == 0){
- bRslt = m_preview_env_videoqueue->GetVideo(videoframe, iflags);
- }
- else{
- if (NULL != m_preview_opt_videoqueue){//横向摄像头图像,拼接
- bRslt = m_preview_opt_videoqueue->GetVideo(videoframe, iflags);
- }
- }
- return bRslt;
- }
- int RvcFaceVideo::InitVideoFrame()
- {
- int iRet = -1;
- if (NULL != m_env_videoqueue){
- int iwidth = 0;
- int iheight = 0;
- int isize = GetVideoFrameSize(0, &iwidth, &iheight);
- m_env_videoframe = new videoq_frame();
- m_env_videoframe->data = new unsigned char[isize];
- m_env_videoframe->framesize = isize;
- m_env_videoframe->width = iwidth;
- m_env_videoframe->height = iheight;
- m_env_videoframe->format = VIDEO_FORMAT_RGB24;
- iRet = 0;
- }
- if (NULL != m_opt_videoqueue){
- int iwidth = 0;
- int iheight = 0;
- int isize = GetVideoFrameSize(1, &iwidth, &iheight);
- m_opt_videoframe = new videoq_frame();
- m_opt_videoframe->data = new unsigned char[isize];
- m_opt_videoframe->framesize = isize;
- m_opt_videoframe->width = iwidth;
- m_opt_videoframe->height = iheight;
- m_opt_videoframe->format = VIDEO_FORMAT_RGB24;
- iRet = 0;
- }
- if (NULL != m_preview_env_videoqueue){
- int iwidth = 0;
- int iheight = 0;
- int isize = GetPreViewVideoFrameSize(0, &iwidth, &iheight);
- m_preview_env_videoframe = new videoq_frame();
- m_preview_env_videoframe->data = new unsigned char[isize];
- m_preview_env_videoframe->framesize = isize;
- m_preview_env_videoframe->width = iwidth;
- m_preview_env_videoframe->height = iheight;
- m_preview_env_videoframe->format = VIDEO_FORMAT_RGB24;
- iRet = 0;
- }
- if (NULL != m_preview_opt_videoqueue){
- int iwidth = 0;
- int iheight = 0;
- int isize = GetPreViewVideoFrameSize(1, &iwidth, &iheight);
- m_preview_opt_videoframe = new videoq_frame();
- m_preview_opt_videoframe->data = new unsigned char[isize];
- m_preview_opt_videoframe->framesize = isize;
- m_preview_opt_videoframe->width = iwidth;
- m_preview_opt_videoframe->height = iheight;
- m_preview_opt_videoframe->format = VIDEO_FORMAT_RGB24;
- iRet = 0;
- }
- return iRet;
- }
|