From 6faf88ba05f174a80c68f01c0412cae9789dbc8c Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期四, 17 八月 2017 17:55:01 +0800
Subject: [PATCH] aaaaa
---
RtspFace/MediaHelper.cpp | 2 ++
RtspFace/PL_RTSPServer2.cpp | 9 +++++++++
RtspFace/PL_AndroidMediaCodecEncoder.cpp | 8 ++++++--
RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp | 3 ++-
4 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/RtspFace/MediaHelper.cpp b/RtspFace/MediaHelper.cpp
index 5081788..25dec53 100644
--- a/RtspFace/MediaHelper.cpp
+++ b/RtspFace/MediaHelper.cpp
@@ -3,6 +3,7 @@
#include <liveMedia/liveMedia.hh>
#include <liveMedia/Base64.hh>
+// the caller is responsible for delete[]ing.
uint8_t* base64_decode(char const* in, size_t inSize, size_t& resultSize, bool trimTrailingZeros)
{
unsigned _resultSize = resultSize;
@@ -12,6 +13,7 @@
return ret;
}
+// the caller is responsible for delete[]ing.
char* base64_encode(char const* orig, size_t origLength)
{
unsigned _origLength = origLength;
diff --git a/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp b/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
index d56500d..f7a258e 100644
--- a/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
+++ b/RtspFace/PL_AndroidMediaCodecDecoder_ndk.cpp
@@ -200,6 +200,7 @@
if (pm.buffer == nullptr)
return false;
+#ifdef 0
if (!in->auxIsSet)
{
//#todo
@@ -225,8 +226,8 @@
in->auxIsSet = true;
}
-
}
+#endif
MB_Frame* frame = (MB_Frame*)pm.buffer;
if (frame->type != MB_Frame::MBFT_H264_NALU)
diff --git a/RtspFace/PL_AndroidMediaCodecEncoder.cpp b/RtspFace/PL_AndroidMediaCodecEncoder.cpp
index 94d3fea..3ce90d6 100644
--- a/RtspFace/PL_AndroidMediaCodecEncoder.cpp
+++ b/RtspFace/PL_AndroidMediaCodecEncoder.cpp
@@ -271,8 +271,12 @@
if (spsSize != 0)
{
- std::string spsStr = base64_encode(((const char*)sps) + 4, spsSize - 4);//#todo aux
- std::string ppsStr = base64_encode(((const char*)pps) + 4, ppsSize - 4);
+ char* tmp = nullptr;
+ std::string spsStr = tmp = base64_encode(((const char*)sps) + 4, spsSize - 4);//#todo aux
+ delete[] tmp;
+ std::string ppsStr = tmp = base64_encode(((const char*)pps) + 4, ppsSize - 4);
+ delete[] tmp;
+ tmp = nullptr;
this->manager->set_param(PLGP_ENC_SPS_B64, spsStr);
this->manager->set_param(PLGP_ENC_PPS_B64, ppsStr);
diff --git a/RtspFace/PL_RTSPServer2.cpp b/RtspFace/PL_RTSPServer2.cpp
index 16da9fa..0506315 100644
--- a/RtspFace/PL_RTSPServer2.cpp
+++ b/RtspFace/PL_RTSPServer2.cpp
@@ -160,6 +160,11 @@
_this->lastBuffer = nullptr;
}
+ //#todo
+ //find frameQueue->Seek is pps/sps
+ // if not: send bufferred pps , return;
+
+
_this->lastBuffer = _this->in->frameQueue->Dequeue();
if (_this->lastBuffer == nullptr)
return false;
@@ -281,6 +286,10 @@
}
}
+//#todo
+ // find if is pps/sps
+ // buffer the frame into RTSPServer2_Internal
+
while (in->config.payBlockFullQueue && in->frameQueue->Full())
{
int ret = pthread_mutex_lock(in->queue_full_mutex);
--
Gitblit v1.8.0