1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 117e5dc8741fbd5f07a709e6fd4d2cd8b08b7cee94pbos@webrtc.org#include "webrtc/engine_configurations.h" 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#if defined(CARBON_RENDERING) 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#include <AGL/agl.h> 157e5dc8741fbd5f07a709e6fd4d2cd8b08b7cee94pbos@webrtc.org#include "webrtc/modules/video_render/mac/video_render_agl.h" 167e5dc8741fbd5f07a709e6fd4d2cd8b08b7cee94pbos@webrtc.org#include "webrtc/modules/video_render/mac/video_render_mac_carbon_impl.h" 177e5dc8741fbd5f07a709e6fd4d2cd8b08b7cee94pbos@webrtc.org#include "webrtc/system_wrappers/interface/critical_section_wrapper.h" 187e5dc8741fbd5f07a709e6fd4d2cd8b08b7cee94pbos@webrtc.org#include "webrtc/system_wrappers/interface/trace.h" 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace webrtc { 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 22e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::VideoRenderMacCarbonImpl(const int32_t id, 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const VideoRenderType videoRenderType, 24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void* window, 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const bool fullscreen) : 26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org_id(id), 27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org_renderMacCarbonCritsect(*CriticalSectionWrapper::CreateCriticalSection()), 28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org_fullScreen(fullscreen), 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org_ptrWindow(window) 30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 32b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 34b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::~VideoRenderMacCarbonImpl() 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 38b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "Destructor %s:%d", __FUNCTION__, __LINE__); 39b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org delete &_renderMacCarbonCritsect; 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 42e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::Init() 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 45b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 46b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d", __FUNCTION__, __LINE__); 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (!_ptrWindow) 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceWarning, kTraceVideoRenderer, _id, "Constructor %s:%d", __FUNCTION__, __LINE__); 51b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 52b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 54b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // We don't know if the user passed us a WindowRef or a HIViewRef, so test. 55b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool referenceIsValid = false; 56b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 57b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org // Check if it's a valid WindowRef 58b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s:%d _ptrWindowRef before WindowRef cast: %x", __FUNCTION__, __LINE__, _ptrWindowRef); 59b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WindowRef* windowRef = static_cast<WindowRef*>(_ptrWindow); 60b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s:%d _ptrWindowRef after cast: %x", __FUNCTION__, __LINE__, _ptrWindowRef); 61b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (IsValidWindowPtr(*windowRef)) 62b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 63b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrCarbonRender = new VideoRenderAGL(*windowRef, _fullScreen, _id); 64b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org referenceIsValid = true; 65b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d Successfully initialized CarbonRenderer with WindowRef:%x", __FUNCTION__, __LINE__, *windowRef); 66b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 67b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org else 68b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 69b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org HIViewRef* hiviewRef = static_cast<HIViewRef*>(_ptrWindow); 70b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (HIViewIsValid(*hiviewRef)) 71b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 72b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrCarbonRender = new VideoRenderAGL(*hiviewRef, _fullScreen, _id); 73b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org referenceIsValid = true; 74b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d Successfully initialized CarbonRenderer with HIViewRef:%x", __FUNCTION__, __LINE__, hiviewRef); 75b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 76b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 77b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 78b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if(!referenceIsValid) 79b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 80b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, "%s:%d Invalid WindowRef/HIViewRef Returning -1", __FUNCTION__, __LINE__); 81b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 82b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 83b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 84b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if(!_ptrCarbonRender) 85b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 86b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, "%s:%d Failed to create an instance of VideoRenderAGL. Returning -1", __FUNCTION__, __LINE__); 87b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 88b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 89b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org int retVal = _ptrCarbonRender->Init(); 90b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (retVal == -1) 91b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 92b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, "%s:%d Failed to init CarbonRenderer", __FUNCTION__, __LINE__); 93b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 94b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 95b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 96b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 97b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 98b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 99e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 100e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::ChangeUniqueId(const int32_t id) 101b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 102b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 103b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 104b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 105b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s", __FUNCTION__); 106b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _id = id; 107b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 108b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if(_ptrCarbonRender) 109b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 110b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrCarbonRender->ChangeUniqueID(_id); 111b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 112b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 113b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 114b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 115b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 116e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 117b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::ChangeWindow(void* window) 118b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 119b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 120b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 121b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s changing ID to ", __FUNCTION__, window); 122b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 123b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if (window == NULL) 124b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 125b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 126b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 127b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrWindow = window; 128b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 129b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 130b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrWindow = window; 131b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 132b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 133b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 134b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 135b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderCallback* 136e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::AddIncomingRenderStream(const uint32_t streamId, 137e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const uint32_t zOrder, 138b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float left, 139b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float top, 140b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float right, 141b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float bottom) 142b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 143b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 144b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 145b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s", __FUNCTION__); 146b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org VideoChannelAGL* AGLChannel = NULL; 147b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 148b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if(!_ptrWindow) 149b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 150b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 151b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 152b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org if(!AGLChannel) 153b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org { 154b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org AGLChannel = _ptrCocoaRender->CreateNSGLChannel(streamId, zOrder, left, top, right, bottom); 155b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org } 156b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 157b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return AGLChannel; 158b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 159b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 160b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 161e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 162e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::DeleteIncomingRenderStream(const uint32_t streamId) 163b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 164b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 165b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "%s:%d", __FUNCTION__, __LINE__); 166b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 167b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org _ptrCarbonRender->DeleteAGLChannel(streamId); 168b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 169b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 170b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 171b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 172e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 173e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::GetIncomingRenderStreamProperties(const uint32_t streamId, 174e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org uint32_t& zOrder, 175b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org float& left, 176b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org float& top, 177b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org float& right, 178b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org float& bottom) const 179b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 180b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return -1; 181b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return _ptrCarbonRender->GetChannelProperties(streamId, zOrder, left, top, right, bottom); 182b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 183b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 184e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 185b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::StartRender() 186b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 187b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return _ptrCarbonRender->StartRender(); 188b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 189b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 190e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 191b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::StopRender() 192b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 193b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return _ptrCarbonRender->StopRender(); 194b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 195b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 196b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderType 197b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::RenderType() 198b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 199b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return kRenderCarbon; 200b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 201b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 202b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgRawVideoType 203b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::PerferedVideoType() 204b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 205b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return kVideoI420; 206b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 207b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 208b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgbool 209b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::FullScreen() 210b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 211b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return false; 212b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 213b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 214e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 215e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::GetGraphicsMemory(uint64_t& totalGraphicsMemory, 216e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org uint64_t& availableGraphicsMemory) const 217b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 218b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org totalGraphicsMemory = 0; 219b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org availableGraphicsMemory = 0; 220b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 221b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 222b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 223e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 224e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::GetScreenResolution(uint32_t& screenWidth, 225e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org uint32_t& screenHeight) const 226b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 227b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 228b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //NSScreen* mainScreen = [NSScreen mainScreen]; 229b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 230b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //NSRect frame = [mainScreen frame]; 231b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 232b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //screenWidth = frame.size.width; 233b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org //screenHeight = frame.size.height; 234b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 235b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 236b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 237e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orguint32_t 238e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::RenderFrameRate(const uint32_t streamId) 239b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 240b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org CriticalSectionScoped cs(&_renderMacCarbonCritsect); 241b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 242b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 243b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 244e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 245e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgVideoRenderMacCarbonImpl::SetStreamCropping(const uint32_t streamId, 246b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float left, 247b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float top, 248b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float right, 249b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const float bottom) 250b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 251b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 252b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 253b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 254e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t VideoRenderMacCarbonImpl::ConfigureRenderer(const uint32_t streamId, 255e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const unsigned int zOrder, 256e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float left, 257e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float top, 258e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float right, 259e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float bottom) 260b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 261b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 262b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 263b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 264e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t 265b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgVideoRenderMacCarbonImpl::SetTransparentBackground(const bool enable) 266b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 267b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 268b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 269b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 270e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t VideoRenderMacCarbonImpl::SetText(const uint8_t textId, 271e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const uint8_t* text, 272e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const int32_t textLength, 273e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const uint32_t textColorRef, 274e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const uint32_t backgroundColorRef, 275e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float left, 276e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float top, 277e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float right, 278e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float bottom) 279b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 280b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 281b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 282b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 283e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.orgint32_t VideoRenderMacCarbonImpl::SetBitmap(const void* bitMap, 284e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const uint8_t pictureId, 285e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const void* colorKey, 286e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float left, 287e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float top, 288e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float right, 289e1ca446434022ad0d05ebd5ed2feafb08ae940e3pbos@webrtc.org const float bottom) 290b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 291b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org return 0; 292b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 293b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 294b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 2953b89e10f31160da35b408fd00cb8f89d2b08862dpbos@webrtc.org} // namespace webrtc 296b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 297b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // CARBON_RENDERING 298