Replace MapWrapper with std::map<>.
MapWrapper was needed on some platforms where STL wasn't supported, we now use std::map<> directly. BUG=2164 TEST=trybots R=henrike@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org, wu@webrtc.org Review URL: https://webrtc-codereview.appspot.com/2001004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4530 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -46,7 +46,6 @@ VideoRenderAndroid::VideoRenderAndroid(
|
||||
_critSect(*CriticalSectionWrapper::CreateCriticalSection()),
|
||||
_renderType(videoRenderType),
|
||||
_ptrWindow((jobject)(window)),
|
||||
_streamsMap(),
|
||||
_javaShutDownFlag(false),
|
||||
_javaShutdownEvent(*EventWrapper::Create()),
|
||||
_javaRenderEvent(*EventWrapper::Create()),
|
||||
@ -62,9 +61,10 @@ VideoRenderAndroid::~VideoRenderAndroid() {
|
||||
if (_javaRenderThread)
|
||||
StopRender();
|
||||
|
||||
for (MapItem* item = _streamsMap.First(); item != NULL; item
|
||||
= _streamsMap.Next(item)) { // Delete streams
|
||||
delete static_cast<AndroidStream*> (item->GetItem());
|
||||
for (AndroidStreamMap::iterator it = _streamsMap.begin();
|
||||
it != _streamsMap.end();
|
||||
++it) {
|
||||
delete it->second;
|
||||
}
|
||||
delete &_javaShutdownEvent;
|
||||
delete &_javaRenderEvent;
|
||||
@ -91,20 +91,20 @@ VideoRenderAndroid::AddIncomingRenderStream(const uint32_t streamId,
|
||||
CriticalSectionScoped cs(&_critSect);
|
||||
|
||||
AndroidStream* renderStream = NULL;
|
||||
MapItem* item = _streamsMap.Find(streamId);
|
||||
if (item) {
|
||||
renderStream = (AndroidStream*) (item->GetItem());
|
||||
if (NULL != renderStream) {
|
||||
WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, -1,
|
||||
"%s: Render stream already exists", __FUNCTION__);
|
||||
return renderStream;
|
||||
}
|
||||
AndroidStreamMap::iterator item = _streamsMap.find(streamId);
|
||||
if (item != _streamsMap.end() && item->second != NULL) {
|
||||
WEBRTC_TRACE(kTraceInfo,
|
||||
kTraceVideoRenderer,
|
||||
-1,
|
||||
"%s: Render stream already exists",
|
||||
__FUNCTION__);
|
||||
return renderStream;
|
||||
}
|
||||
|
||||
renderStream = CreateAndroidRenderChannel(streamId, zOrder, left, top,
|
||||
right, bottom, *this);
|
||||
if (renderStream) {
|
||||
_streamsMap.Insert(streamId, renderStream);
|
||||
_streamsMap[streamId] = renderStream;
|
||||
}
|
||||
else {
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
@ -118,16 +118,14 @@ int32_t VideoRenderAndroid::DeleteIncomingRenderStream(
|
||||
const uint32_t streamId) {
|
||||
CriticalSectionScoped cs(&_critSect);
|
||||
|
||||
MapItem* item = _streamsMap.Find(streamId);
|
||||
if (item) {
|
||||
delete (AndroidStream*) item->GetItem();
|
||||
_streamsMap.Erase(streamId);
|
||||
}
|
||||
else {
|
||||
AndroidStreamMap::iterator item = _streamsMap.find(streamId);
|
||||
if (item == _streamsMap.end()) {
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"(%s:%d): renderStream is NULL", __FUNCTION__, __LINE__);
|
||||
return -1;
|
||||
}
|
||||
delete item->second;
|
||||
_streamsMap.erase(item);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -234,10 +232,10 @@ bool VideoRenderAndroid::JavaRenderThreadProcess()
|
||||
}
|
||||
}
|
||||
|
||||
for (MapItem* item = _streamsMap.First(); item != NULL;
|
||||
item = _streamsMap.Next(item)) {
|
||||
static_cast<AndroidStream*> (item->GetItem())->DeliverFrame(
|
||||
_javaRenderJniEnv);
|
||||
for (AndroidStreamMap::iterator it = _streamsMap.begin();
|
||||
it != _streamsMap.end();
|
||||
++it) {
|
||||
it->second->DeliverFrame(_javaRenderJniEnv);
|
||||
}
|
||||
|
||||
if (_javaShutDownFlag) {
|
||||
|
||||
@ -12,8 +12,10 @@
|
||||
#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_ANDROID_VIDEO_RENDER_ANDROID_IMPL_H_
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
#include <map>
|
||||
|
||||
#include "webrtc/modules/video_render/i_video_render.h"
|
||||
#include "webrtc/system_wrappers/interface/map_wrapper.h"
|
||||
|
||||
|
||||
namespace webrtc {
|
||||
@ -136,7 +138,8 @@ class VideoRenderAndroid: IVideoRender {
|
||||
bool JavaRenderThreadProcess();
|
||||
|
||||
// Map with streams to render.
|
||||
MapWrapper _streamsMap;
|
||||
typedef std::map<int32_t, AndroidStream*> AndroidStreamMap;
|
||||
AndroidStreamMap _streamsMap;
|
||||
// True if the _javaRenderThread thread shall be detached from the JVM.
|
||||
bool _javaShutDownFlag;
|
||||
EventWrapper& _javaShutdownEvent;
|
||||
|
||||
Reference in New Issue
Block a user