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 1157eb8586986a2c77b99124c270bc6caa11165f7fpbos@webrtc.org#include "webrtc/engine_configurations.h" 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#if defined(COCOA_RENDERING) 13470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 14d2cf48de1adfc35cfefde04f62a607f848ca3c1dandresp@webrtc.org#include "webrtc/modules/video_render/mac/cocoa_render_view.h" 15d2cf48de1adfc35cfefde04f62a607f848ca3c1dandresp@webrtc.org#include "webrtc/modules/video_render/mac/video_render_mac_cocoa_impl.h" 16d2cf48de1adfc35cfefde04f62a607f848ca3c1dandresp@webrtc.org#include "webrtc/modules/video_render/mac/video_render_nsopengl.h" 1798f53510b222f71fdd8b799b2f33737ceeb28c61Henrik Kjellander#include "webrtc/system_wrappers/include/critical_section_wrapper.h" 1898f53510b222f71fdd8b799b2f33737ceeb28c61Henrik Kjellander#include "webrtc/system_wrappers/include/trace.h" 19470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 20470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comnamespace webrtc { 21470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 22ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::VideoRenderMacCocoaImpl(const int32_t id, 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const VideoRenderType videoRenderType, 24470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com void* window, 25470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const bool fullscreen) : 26470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_id(id), 27470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_renderMacCocoaCritsect(*CriticalSectionWrapper::CreateCriticalSection()), 28470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_fullScreen(fullscreen), 29470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com_ptrWindow(window) 30470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 31470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 32470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 33470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 34470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 35470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::~VideoRenderMacCocoaImpl() 36470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 37470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Destructor %s:%d", __FUNCTION__, __LINE__); 38470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com delete &_renderMacCocoaCritsect; 39470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (_ptrCocoaRender) 40470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 41470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com delete _ptrCocoaRender; 42470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender = NULL; 43470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 44470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 45470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 46ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 47470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::Init() 48470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 49470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 500e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 51470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d", __FUNCTION__, __LINE__); 52470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 53470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com // cast ptrWindow from void* to CocoaRenderer. Void* was once NSOpenGLView, and CocoaRenderer is NSOpenGLView. 54470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender = new VideoRenderNSOpenGL((CocoaRenderView*)_ptrWindow, _fullScreen, _id); 55470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (!_ptrWindow) 56470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 57470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceWarning, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 59470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 60470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com int retVal = _ptrCocoaRender->Init(); 61470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (retVal == -1) 62470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 63470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Failed to init %s:%d", __FUNCTION__, __LINE__); 64470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 65470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 66470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 67470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 68470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 69470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 70ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 71470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::ChangeWindow(void* window) 72470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 73470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 740e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 75470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s changing ID to ", __FUNCTION__, window); 76470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 77470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if (window == NULL) 78470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 79470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 80470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 81470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrWindow = window; 82470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 83470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 84470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrWindow = window; 85470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->ChangeWindow((CocoaRenderView*)_ptrWindow); 86470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 87470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 88470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 89470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 90470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderCallback* 91ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::AddIncomingRenderStream(const uint32_t streamId, 92ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t zOrder, 93470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 94470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 95470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 96470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 97470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 980e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 99470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s", __FUNCTION__); 100470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com VideoChannelNSOpenGL* nsOpenGLChannel = NULL; 101470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 102470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if(!_ptrWindow) 103470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 104470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 105470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 106470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com if(!nsOpenGLChannel) 107470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com { 108470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com nsOpenGLChannel = _ptrCocoaRender->CreateNSGLChannel(streamId, zOrder, left, top, right, bottom); 109470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com } 110470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 111470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return nsOpenGLChannel; 112470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 113470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 114470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 115ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 116ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::DeleteIncomingRenderStream(const uint32_t streamId) 117470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 118470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 1190e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 120470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->DeleteNSGLChannel(streamId); 121470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 122470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 123470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 124470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 125ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 126ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetIncomingRenderStreamProperties(const uint32_t streamId, 127ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint32_t& zOrder, 128470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& left, 129470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& top, 130470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& right, 131470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com float& bottom) const 132470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 133470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->GetChannelProperties(streamId, zOrder, left, top, right, bottom); 134470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 135470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 136ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 137470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::StartRender() 138470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 139470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->StartRender(); 140470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 141470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 142ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 143470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::StopRender() 144470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 145470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->StopRender(); 146470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 147470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 148470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderType 149470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::RenderType() 150470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 151470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return kRenderCocoa; 152470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 153470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 154470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comRawVideoType 155470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::PerferedVideoType() 156470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 157470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return kVideoI420; 158470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 159470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 160470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.combool 161470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::FullScreen() 162470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 163470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return false; 164470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 165470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 166ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 167ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetGraphicsMemory(uint64_t& totalGraphicsMemory, 168ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint64_t& availableGraphicsMemory) const 169470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 170470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com totalGraphicsMemory = 0; 171470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com availableGraphicsMemory = 0; 172470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 173470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 174470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 175ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 176ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetScreenResolution(uint32_t& screenWidth, 177ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint32_t& screenHeight) const 178470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 1790e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 180470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com NSScreen* mainScreen = [NSScreen mainScreen]; 181470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 182470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com NSRect frame = [mainScreen frame]; 183470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 184470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com screenWidth = frame.size.width; 185470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com screenHeight = frame.size.height; 186470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 187470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 188470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 189ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orguint32_t 190ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::RenderFrameRate(const uint32_t streamId) 191470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 1920e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 193470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 194470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 195470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 196ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 197ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::SetStreamCropping(const uint32_t streamId, 198470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float left, 199470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float top, 200470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float right, 201470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com const float bottom) 202470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 203470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 204470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 205470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 206ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::ConfigureRenderer(const uint32_t streamId, 207ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const unsigned int zOrder, 208ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 209ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 210ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 211ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float bottom) 212470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 213470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 214470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 215470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 216ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 217470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::SetTransparentBackground(const bool enable) 218470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 219470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 220470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 221470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 222ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::SetText(const uint8_t textId, 223ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t* text, 224ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const int32_t textLength, 225ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t textColorRef, 226ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t backgroundColorRef, 227ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 228ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 229ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 230ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float bottom) 231470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 232470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->SetText(textId, text, textLength, textColorRef, backgroundColorRef, left, top, right, bottom); 233470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 234470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 235ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::SetBitmap(const void* bitMap, 236ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t pictureId, 237ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const void* colorKey, 238ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 239ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 240ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 241ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float bottom) 242470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 243470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 244470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 245470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 246ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::FullScreenRender(void* window, const bool enable) 247470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 248470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 249470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 250470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 251d900e8bea84c474696bf0219aed1353ce65ffd8epbos@webrtc.org} // namespace webrtc 252470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 253470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif // COCOA_RENDERING 254