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