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:
@ -96,8 +96,7 @@ ModuleVideoRenderImpl::ModuleVideoRenderImpl(
|
||||
void* window,
|
||||
const bool fullscreen) :
|
||||
_id(id), _moduleCrit(*CriticalSectionWrapper::CreateCriticalSection()),
|
||||
_ptrWindow(window), _fullScreen(fullscreen), _ptrRenderer(NULL),
|
||||
_streamRenderMap(*(new MapWrapper()))
|
||||
_ptrWindow(window), _fullScreen(fullscreen), _ptrRenderer(NULL)
|
||||
{
|
||||
|
||||
// Create platform specific renderer
|
||||
@ -222,16 +221,11 @@ ModuleVideoRenderImpl::~ModuleVideoRenderImpl()
|
||||
{
|
||||
delete &_moduleCrit;
|
||||
|
||||
while (_streamRenderMap.Size() > 0)
|
||||
{
|
||||
MapItem* item = _streamRenderMap.First();
|
||||
IncomingVideoStream* ptrIncomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
assert(ptrIncomingStream != NULL);
|
||||
delete ptrIncomingStream;
|
||||
_streamRenderMap.Erase(item);
|
||||
for (IncomingVideoStreamMap::iterator it = _streamRenderMap.begin();
|
||||
it != _streamRenderMap.end();
|
||||
++it) {
|
||||
delete it->second;
|
||||
}
|
||||
delete &_streamRenderMap;
|
||||
|
||||
// Delete platform specific renderer
|
||||
if (_ptrRenderer)
|
||||
@ -410,29 +404,22 @@ int32_t ModuleVideoRenderImpl::Id()
|
||||
return _id;
|
||||
}
|
||||
|
||||
uint32_t ModuleVideoRenderImpl::GetIncomingFrameRate(
|
||||
const uint32_t streamId)
|
||||
{
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
uint32_t ModuleVideoRenderImpl::GetIncomingFrameRate(const uint32_t streamId) {
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
MapItem* mapItem = _streamRenderMap.Find(streamId);
|
||||
if (mapItem == NULL)
|
||||
{
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (mapItem->GetItem());
|
||||
if (incomingStream == NULL)
|
||||
{
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(mapItem);
|
||||
return 0;
|
||||
}
|
||||
return incomingStream->IncomingRate();
|
||||
IncomingVideoStreamMap::iterator it = _streamRenderMap.find(streamId);
|
||||
|
||||
if (it == _streamRenderMap.end()) {
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError,
|
||||
kTraceVideoRenderer,
|
||||
_id,
|
||||
"%s: stream doesn't exist",
|
||||
__FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
assert(it->second != NULL);
|
||||
return it->second->IncomingRate();
|
||||
}
|
||||
|
||||
VideoRenderCallback*
|
||||
@ -452,8 +439,7 @@ ModuleVideoRenderImpl::AddIncomingRenderStream(const uint32_t streamId,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (_streamRenderMap.Find(streamId) != NULL)
|
||||
{
|
||||
if (_streamRenderMap.find(streamId) != _streamRenderMap.end()) {
|
||||
// The stream already exists...
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream already exists", __FUNCTION__);
|
||||
@ -495,7 +481,7 @@ ModuleVideoRenderImpl::AddIncomingRenderStream(const uint32_t streamId,
|
||||
ptrIncomingStream->ModuleCallback();
|
||||
|
||||
// Store the stream
|
||||
_streamRenderMap.Insert(streamId, ptrIncomingStream);
|
||||
_streamRenderMap[streamId] = ptrIncomingStream;
|
||||
|
||||
return moduleCallback;
|
||||
}
|
||||
@ -512,56 +498,52 @@ int32_t ModuleVideoRenderImpl::DeleteIncomingRenderStream(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MapItem* mapItem = _streamRenderMap.Find(streamId);
|
||||
if (!mapItem)
|
||||
IncomingVideoStreamMap::iterator item = _streamRenderMap.find(streamId);
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
IncomingVideoStream* ptrIncomingStream =
|
||||
static_cast<IncomingVideoStream*> (mapItem->GetItem());
|
||||
delete ptrIncomingStream;
|
||||
ptrIncomingStream = NULL;
|
||||
delete item->second;
|
||||
|
||||
_ptrRenderer->DeleteIncomingRenderStream(streamId);
|
||||
_streamRenderMap.Erase(mapItem);
|
||||
|
||||
_streamRenderMap.erase(item);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::AddExternalRenderCallback(
|
||||
const uint32_t streamId,
|
||||
VideoRenderCallback* renderObject)
|
||||
{
|
||||
const uint32_t streamId,
|
||||
VideoRenderCallback* renderObject) {
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
MapItem* mapItem = _streamRenderMap.Find(streamId);
|
||||
if (!mapItem)
|
||||
IncomingVideoStreamMap::iterator item = _streamRenderMap.find(streamId);
|
||||
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
IncomingVideoStream* ptrIncomingStream =
|
||||
static_cast<IncomingVideoStream*> (mapItem->GetItem());
|
||||
if (!ptrIncomingStream) {
|
||||
if (item->second == NULL) {
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: could not get stream", __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
return ptrIncomingStream->SetExternalCallback(renderObject);
|
||||
return item->second->SetExternalCallback(renderObject);
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::GetIncomingRenderStreamProperties(
|
||||
const uint32_t streamId,
|
||||
uint32_t& zOrder,
|
||||
float& left,
|
||||
float& top,
|
||||
float& right,
|
||||
float& bottom) const
|
||||
{
|
||||
const uint32_t streamId,
|
||||
uint32_t& zOrder,
|
||||
float& left,
|
||||
float& top,
|
||||
float& right,
|
||||
float& bottom) const {
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
if (!_ptrRenderer)
|
||||
@ -580,27 +562,20 @@ uint32_t ModuleVideoRenderImpl::GetNumIncomingRenderStreams() const
|
||||
{
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
return (uint32_t) _streamRenderMap.Size();
|
||||
return static_cast<uint32_t>(_streamRenderMap.size());
|
||||
}
|
||||
|
||||
bool ModuleVideoRenderImpl::HasIncomingRenderStream(
|
||||
const uint32_t streamId) const
|
||||
{
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
const uint32_t streamId) const {
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
bool hasStream = false;
|
||||
if (_streamRenderMap.Find(streamId) != NULL)
|
||||
{
|
||||
hasStream = true;
|
||||
}
|
||||
return hasStream;
|
||||
return _streamRenderMap.find(streamId) != _streamRenderMap.end();
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::RegisterRawFrameCallback(
|
||||
const uint32_t streamId,
|
||||
VideoRenderCallback* callbackObj)
|
||||
{
|
||||
return -1;
|
||||
const uint32_t streamId,
|
||||
VideoRenderCallback* callbackObj) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::StartRender(const uint32_t streamId)
|
||||
@ -615,15 +590,14 @@ int32_t ModuleVideoRenderImpl::StartRender(const uint32_t streamId)
|
||||
}
|
||||
|
||||
// Start the stream
|
||||
MapItem* item = _streamRenderMap.Find(streamId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::iterator item = _streamRenderMap.find(streamId);
|
||||
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream->Start() == -1)
|
||||
if (item->second->Start() == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
@ -648,15 +622,14 @@ int32_t ModuleVideoRenderImpl::StopRender(const uint32_t streamId)
|
||||
}
|
||||
|
||||
// Stop the incoming stream
|
||||
MapItem* item = _streamRenderMap.Find(streamId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::iterator item = _streamRenderMap.find(streamId);
|
||||
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream->Stop() == -1)
|
||||
if (item->second->Stop() == -1)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
@ -668,21 +641,15 @@ int32_t ModuleVideoRenderImpl::ResetRender()
|
||||
{
|
||||
CriticalSectionScoped cs(&_moduleCrit);
|
||||
|
||||
int32_t error = 0;
|
||||
|
||||
// Loop through all incoming streams and stop them
|
||||
MapItem* item = _streamRenderMap.First();
|
||||
while (item)
|
||||
{
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream->Reset() == -1)
|
||||
{
|
||||
error = -1;
|
||||
}
|
||||
item = _streamRenderMap.Next(item);
|
||||
int32_t ret = 0;
|
||||
// Loop through all incoming streams and reset them
|
||||
for (IncomingVideoStreamMap::iterator it = _streamRenderMap.begin();
|
||||
it != _streamRenderMap.end();
|
||||
++it) {
|
||||
if (it->second->Reset() == -1)
|
||||
ret = -1;
|
||||
}
|
||||
return error;
|
||||
return ret;
|
||||
}
|
||||
|
||||
RawVideoType ModuleVideoRenderImpl::PreferredVideoType() const
|
||||
@ -830,24 +797,18 @@ int32_t ModuleVideoRenderImpl::GetLastRenderedFrame(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MapItem *item = _streamRenderMap.Find(streamId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::const_iterator item =
|
||||
_streamRenderMap.find(streamId);
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream == NULL)
|
||||
{
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(item);
|
||||
return 0;
|
||||
}
|
||||
return incomingStream->GetLastRenderedFrame(frame);
|
||||
|
||||
assert(item->second != NULL);
|
||||
return item->second->GetLastRenderedFrame(frame);
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::SetExpectedRenderDelay(
|
||||
@ -860,8 +821,9 @@ int32_t ModuleVideoRenderImpl::SetExpectedRenderDelay(
|
||||
return false;
|
||||
}
|
||||
|
||||
MapItem *item = _streamRenderMap.Find(stream_id);
|
||||
if (item == NULL) {
|
||||
IncomingVideoStreamMap::const_iterator item =
|
||||
_streamRenderMap.find(stream_id);
|
||||
if (item == _streamRenderMap.end()) {
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s(%u, %d): stream doesn't exist", __FUNCTION__, stream_id,
|
||||
@ -869,16 +831,8 @@ int32_t ModuleVideoRenderImpl::SetExpectedRenderDelay(
|
||||
return -1;
|
||||
}
|
||||
|
||||
IncomingVideoStream* incoming_stream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incoming_stream == NULL) {
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(item);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return incoming_stream->SetExpectedRenderDelay(delay_ms);
|
||||
assert(item->second != NULL);
|
||||
return item->second->SetExpectedRenderDelay(delay_ms);
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::ConfigureRenderer(
|
||||
@ -914,24 +868,17 @@ int32_t ModuleVideoRenderImpl::SetStartImage(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MapItem *item = _streamRenderMap.Find(streamId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::const_iterator item =
|
||||
_streamRenderMap.find(streamId);
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream == NULL)
|
||||
{
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(item);
|
||||
return 0;
|
||||
}
|
||||
return incomingStream->SetStartImage(videoFrame);
|
||||
assert (item->second != NULL);
|
||||
return item->second->SetStartImage(videoFrame);
|
||||
|
||||
}
|
||||
|
||||
@ -949,24 +896,17 @@ int32_t ModuleVideoRenderImpl::SetTimeoutImage(
|
||||
return -1;
|
||||
}
|
||||
|
||||
MapItem *item = _streamRenderMap.Find(streamId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::const_iterator item =
|
||||
_streamRenderMap.find(streamId);
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream == NULL)
|
||||
{
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(item);
|
||||
return 0;
|
||||
}
|
||||
return incomingStream->SetTimeoutImage(videoFrame, timeout);
|
||||
assert(item->second != NULL);
|
||||
return item->second->SetTimeoutImage(videoFrame, timeout);
|
||||
}
|
||||
|
||||
int32_t ModuleVideoRenderImpl::MirrorRenderStream(const int renderId,
|
||||
@ -983,25 +923,18 @@ int32_t ModuleVideoRenderImpl::MirrorRenderStream(const int renderId,
|
||||
return -1;
|
||||
}
|
||||
|
||||
MapItem *item = _streamRenderMap.Find(renderId);
|
||||
if (item == NULL)
|
||||
IncomingVideoStreamMap::const_iterator item =
|
||||
_streamRenderMap.find(renderId);
|
||||
if (item == _streamRenderMap.end())
|
||||
{
|
||||
// This stream doesn't exist
|
||||
WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id,
|
||||
"%s: stream doesn't exist", __FUNCTION__);
|
||||
return 0;
|
||||
}
|
||||
IncomingVideoStream* incomingStream =
|
||||
static_cast<IncomingVideoStream*> (item->GetItem());
|
||||
if (incomingStream == NULL)
|
||||
{
|
||||
// This should never happen
|
||||
assert(false);
|
||||
_streamRenderMap.Erase(item);
|
||||
return 0;
|
||||
}
|
||||
assert(item->second != NULL);
|
||||
|
||||
return incomingStream->EnableMirroring(enable, mirrorXAxis, mirrorYAxis);
|
||||
return item->second->EnableMirroring(enable, mirrorXAxis, mirrorYAxis);
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user