video_render_mac_cocoa_impl.mm revision 843c8c78ff74f2ea11c5eb6384255d11ebe68b6d
1470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com/* 2843c8c78ff74f2ea11c5eb6384255d11ebe68b6dxians@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 4470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Use of this source code is governed by a BSD-style license 5470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * that can be found in the LICENSE file in the root of the source 6470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * tree. An additional intellectual property rights grant can be found 7470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * in the file PATENTS. All contributing project authors may 8470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * be found in the AUTHORS file in the root of the source tree. 9470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com */ 10470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 11470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "engine_configurations.h" 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#if defined(COCOA_RENDERING) 13470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 14470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#import "cocoa_render_view.h" 15470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 16470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "video_render_mac_cocoa_impl.h" 17470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "critical_section_wrapper.h" 18470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "video_render_nsopengl.h" 19470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "trace.h" 20470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 21470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comnamespace webrtc { 22470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::VideoRenderMacCocoaImpl(const WebRtc_Word32 id, 24470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const VideoRenderType videoRenderType, 25470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com void* window, 26470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const bool fullscreen) : 27470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_id(id), 28470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_renderMacCocoaCritsect(*CriticalSectionWrapper::CreateCriticalSection()), 29470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_fullScreen(fullscreen), 30470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_ptrWindow(window) 31470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 32470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 33470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 34470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 35470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 36470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::~VideoRenderMacCocoaImpl() 37470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 38470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Destructor %s:%d", __FUNCTION__, __LINE__); 39470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com delete &_renderMacCocoaCritsect; 40470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (_ptrCocoaRender) 41470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 42470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com delete _ptrCocoaRender; 43470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender = NULL; 44470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 45470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 46470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 47470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 48470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::Init() 49470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 50470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 51470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 52470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d", __FUNCTION__, __LINE__); 53470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 54470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com // cast ptrWindow from void* to CocoaRenderer. Void* was once NSOpenGLView, and CocoaRenderer is NSOpenGLView. 55470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender = new VideoRenderNSOpenGL((CocoaRenderView*)_ptrWindow, _fullScreen, _id); 56470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (!_ptrWindow) 57470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceWarning, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 59470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 60470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 61470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com int retVal = _ptrCocoaRender->Init(); 62470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (retVal == -1) 63470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 64470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Failed to init %s:%d", __FUNCTION__, __LINE__); 65470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 66470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 67470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 68470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 69470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 70470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 71470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 72470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::ChangeUniqueId(const WebRtc_Word32 id) 73470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 74470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 75470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s", __FUNCTION__); 76470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _id = id; 77470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 78470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if(_ptrCocoaRender) 79470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 80470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->ChangeUniqueID(_id); 81470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 82470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 83470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 84470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 85470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 86470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 87470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::ChangeWindow(void* window) 88470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 89470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 90470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 91470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s changing ID to ", __FUNCTION__, window); 92470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 93470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (window == NULL) 94470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 95470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 96470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 97470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrWindow = window; 98470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 99470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 100470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrWindow = window; 101470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->ChangeWindow((CocoaRenderView*)_ptrWindow); 102470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 103470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 104470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 105470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 106470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderCallback* 107470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::AddIncomingRenderStream(const WebRtc_UWord32 streamId, 108470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_UWord32 zOrder, 109470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 110470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 111470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 112470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 113470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 114470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 115470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s", __FUNCTION__); 116470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com VideoChannelNSOpenGL* nsOpenGLChannel = NULL; 117470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 118470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if(!_ptrWindow) 119470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 120470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 121470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 122470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if(!nsOpenGLChannel) 123470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 124470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com nsOpenGLChannel = _ptrCocoaRender->CreateNSGLChannel(streamId, zOrder, left, top, right, bottom); 125470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 126470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 127470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return nsOpenGLChannel; 128470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 129470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 130470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 131470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 132470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::DeleteIncomingRenderStream(const WebRtc_UWord32 streamId) 133470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 134470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 135470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 136470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->DeleteNSGLChannel(streamId); 137470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 138470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 139470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 140470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 141470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 142470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::GetIncomingRenderStreamProperties(const WebRtc_UWord32 streamId, 143470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WebRtc_UWord32& zOrder, 144470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& left, 145470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& top, 146470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& right, 147470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& bottom) const 148470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 149470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->GetChannelProperties(streamId, zOrder, left, top, right, bottom); 150470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 151470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 152470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 153470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::StartRender() 154470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 155470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->StartRender(); 156470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 157470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 158470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 159470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::StopRender() 160470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 161470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->StopRender(); 162470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 163470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 164470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderType 165470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::RenderType() 166470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 167470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return kRenderCocoa; 168470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 169470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 170470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comRawVideoType 171470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::PerferedVideoType() 172470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 173470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return kVideoI420; 174470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 175470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 176470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.combool 177470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::FullScreen() 178470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 179470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return false; 180470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 181470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 182470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 183470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::GetGraphicsMemory(WebRtc_UWord64& totalGraphicsMemory, 184470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WebRtc_UWord64& availableGraphicsMemory) const 185470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 186470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com totalGraphicsMemory = 0; 187470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com availableGraphicsMemory = 0; 188470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 189470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 190470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 191470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 192470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::GetScreenResolution(WebRtc_UWord32& screenWidth, 193470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WebRtc_UWord32& screenHeight) const 194470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 195470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 196470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com NSScreen* mainScreen = [NSScreen mainScreen]; 197470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 198470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com NSRect frame = [mainScreen frame]; 199470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 200470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com screenWidth = frame.size.width; 201470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com screenHeight = frame.size.height; 202470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 203470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 204470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 205470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_UWord32 206470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::RenderFrameRate(const WebRtc_UWord32 streamId) 207470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 208470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com CriticalSectionScoped cs(_renderMacCocoaCritsect); 209470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 210470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 211470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 212470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 213470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::SetStreamCropping(const WebRtc_UWord32 streamId, 214470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 215470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 216470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 217470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 218470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 219470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 220470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 221470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 222470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 VideoRenderMacCocoaImpl::ConfigureRenderer(const WebRtc_UWord32 streamId, 223470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const unsigned int zOrder, 224470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 225470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 226470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 227470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 228470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 229470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 230470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 231470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 232470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 233470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::SetTransparentBackground(const bool enable) 234470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 235470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 236470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 237470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 238470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 VideoRenderMacCocoaImpl::SetText(const WebRtc_UWord8 textId, 239470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_UWord8* text, 240470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_Word32 textLength, 241470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_UWord32 textColorRef, 242470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_UWord32 backgroundColorRef, 243470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 244470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 245470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 246470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 247470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 248470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->SetText(textId, text, textLength, textColorRef, backgroundColorRef, left, top, right, bottom); 249470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 250470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 251470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 VideoRenderMacCocoaImpl::SetBitmap(const void* bitMap, 252470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const WebRtc_UWord8 pictureId, 253470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const void* colorKey, 254470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 255470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 256470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 257470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 258470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 259470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 260470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 261470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 262470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comWebRtc_Word32 VideoRenderMacCocoaImpl::FullScreenRender(void* window, const bool enable) 263470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 264470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 265470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 266470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 267470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} //namespace webrtc 268470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 269470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif // COCOA_RENDERING 270