video_render_mac_cocoa_impl.mm revision 57eb8586986a2c77b99124c270bc6caa11165f7f
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 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 23ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::VideoRenderMacCocoaImpl(const int32_t 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 47ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 48470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::Init() 49470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 50470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 510e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org 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 71ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 72ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::ChangeUniqueId(const int32_t id) 73470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 740e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org 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 86ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 87470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::ChangeWindow(void* window) 88470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 89470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 900e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org 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* 107ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::AddIncomingRenderStream(const uint32_t streamId, 108ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t 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{ 1140e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org 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 131ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 132ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::DeleteIncomingRenderStream(const uint32_t streamId) 133470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 134470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 1350e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 136470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com _ptrCocoaRender->DeleteNSGLChannel(streamId); 137470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 138470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 139470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 140470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 141ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 142ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetIncomingRenderStreamProperties(const uint32_t streamId, 143ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint32_t& 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 152ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 153470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::StartRender() 154470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 155470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return _ptrCocoaRender->StartRender(); 156470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 157470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 158ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 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 182ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 183ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetGraphicsMemory(uint64_t& totalGraphicsMemory, 184ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint64_t& 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 191ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 192ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::GetScreenResolution(uint32_t& screenWidth, 193ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org uint32_t& screenHeight) const 194470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 1950e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org 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 205ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orguint32_t 206ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::RenderFrameRate(const uint32_t streamId) 207470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 2080e703f4d0dc1616d11f1620aabff16cd7430406bmflodman@webrtc.org CriticalSectionScoped cs(&_renderMacCocoaCritsect); 209470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 210470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 211470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 212ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 213ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgVideoRenderMacCocoaImpl::SetStreamCropping(const uint32_t 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 222ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::ConfigureRenderer(const uint32_t streamId, 223ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const unsigned int zOrder, 224ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 225ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 226ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 227ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float bottom) 228470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 229470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 230470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 231470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 232ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t 233470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comVideoRenderMacCocoaImpl::SetTransparentBackground(const bool enable) 234470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 235470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 236470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 237470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 238ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::SetText(const uint8_t textId, 239ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t* text, 240ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const int32_t textLength, 241ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t textColorRef, 242ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint32_t backgroundColorRef, 243ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 244ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 245ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 246ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org 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 251ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::SetBitmap(const void* bitMap, 252ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const uint8_t pictureId, 253ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const void* colorKey, 254ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float left, 255ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float top, 256ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float right, 257ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.org const float bottom) 258470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 259470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return 0; 260470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 261470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 262ddf94e71e524371f0cc2f6bcfed9ee5a972f11e9pbos@webrtc.orgint32_t VideoRenderMacCocoaImpl::FullScreenRender(void* window, const bool enable) 263470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com{ 264470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com return -1; 265470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com} 266470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 267d900e8bea84c474696bf0219aed1353ce65ffd8epbos@webrtc.org} // namespace webrtc 268470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 269470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif // COCOA_RENDERING 270