|
@@ -31,6 +31,18 @@ CameraPlayer::~CameraPlayer()
|
|
/* 释放SDK资源,重复清除资源会怎么样 */
|
|
/* 释放SDK资源,重复清除资源会怎么样 */
|
|
NET_DVR_Cleanup();
|
|
NET_DVR_Cleanup();
|
|
|
|
|
|
|
|
+ if(m_frameTimer.isActive())
|
|
|
|
+ {
|
|
|
|
+ m_frameTimer.stop();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* 释放播放器资源 */
|
|
|
|
+ if(m_player != nullptr)
|
|
|
|
+ {
|
|
|
|
+ delete m_player;
|
|
|
|
+ m_player = nullptr;
|
|
|
|
+ }
|
|
|
|
+
|
|
if(m_transCode != nullptr)
|
|
if(m_transCode != nullptr)
|
|
{
|
|
{
|
|
delete m_transCode;
|
|
delete m_transCode;
|
|
@@ -142,6 +154,14 @@ void CameraPlayer::stopRealPlay()
|
|
{
|
|
{
|
|
//关闭预览
|
|
//关闭预览
|
|
NET_DVR_StopRealPlay(m_realPlayHandle);
|
|
NET_DVR_StopRealPlay(m_realPlayHandle);
|
|
|
|
+ /* 释放播放的通道号 */
|
|
|
|
+ if(m_playPort != -1)
|
|
|
|
+ {
|
|
|
|
+ PlayM4_Stop(m_playPort);
|
|
|
|
+ PlayM4_CloseStream(m_playPort);
|
|
|
|
+ PlayM4_FreePort(m_playPort);
|
|
|
|
+ m_playPort = -1;
|
|
|
|
+ }
|
|
LH_WRITE_LOG("实时获取数据结束");
|
|
LH_WRITE_LOG("实时获取数据结束");
|
|
}
|
|
}
|
|
|
|
|
|
@@ -163,6 +183,7 @@ void CameraPlayer::startPlay()
|
|
void CameraPlayer::setPlayWndParent(QWidget* playWnd)
|
|
void CameraPlayer::setPlayWndParent(QWidget* playWnd)
|
|
{
|
|
{
|
|
m_player->setParent(playWnd);
|
|
m_player->setParent(playWnd);
|
|
|
|
+ m_player->show();
|
|
}
|
|
}
|
|
|
|
|
|
/* 设置播放窗口大小 */
|
|
/* 设置播放窗口大小 */
|
|
@@ -177,9 +198,10 @@ void CameraPlayer::do_updateFrame()
|
|
/* 获取一帧 */
|
|
/* 获取一帧 */
|
|
if(m_imageQueue.isEmpty())
|
|
if(m_imageQueue.isEmpty())
|
|
{
|
|
{
|
|
- // LH_WRITE_LOG("图像环形队列为空");
|
|
|
|
|
|
+ LH_WRITE_LOG("图像环形队列为空");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ // LH_WRITE_LOG("环形队列图片个数:" + QString::number(m_imageQueue.QueueSize()));
|
|
/* 以非阻塞的方式先获取一帧数据,获取成功后再出队 */
|
|
/* 以非阻塞的方式先获取一帧数据,获取成功后再出队 */
|
|
auto one = m_imageQueue.front_pop_NoBlock();
|
|
auto one = m_imageQueue.front_pop_NoBlock();
|
|
if(one != nullptr)
|
|
if(one != nullptr)
|
|
@@ -246,7 +268,7 @@ void CameraPlayer::realDataCallBack(LONG realHandle, DWORD dataType, BYTE *pBuff
|
|
auto cameraPlayer = static_cast<CameraPlayer*>(user);
|
|
auto cameraPlayer = static_cast<CameraPlayer*>(user);
|
|
LONG playPort = cameraPlayer->m_playPort;
|
|
LONG playPort = cameraPlayer->m_playPort;
|
|
|
|
|
|
- PlayM4_GetPort(&realHandle);
|
|
|
|
|
|
+ // PlayM4_GetPort(&realHandle);
|
|
switch (dataType)
|
|
switch (dataType)
|
|
{
|
|
{
|
|
/* 系统头数据 */
|
|
/* 系统头数据 */
|