| Index: webrtc/modules/video_render/mac/video_render_nsopengl.h
|
| diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.h b/webrtc/modules/video_render/mac/video_render_nsopengl.h
|
| deleted file mode 100644
|
| index 457557dad64cb28c4814194ea6f57ee975b32b65..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/video_render/mac/video_render_nsopengl.h
|
| +++ /dev/null
|
| @@ -1,192 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -#include "webrtc/engine_configurations.h"
|
| -#if defined(COCOA_RENDERING)
|
| -
|
| -#ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_
|
| -#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_
|
| -
|
| -#import <Cocoa/Cocoa.h>
|
| -#import <OpenGL/OpenGL.h>
|
| -#import <OpenGL/glext.h>
|
| -#import <OpenGL/glu.h>
|
| -#include <QuickTime/QuickTime.h>
|
| -#include <list>
|
| -#include <map>
|
| -#include <memory>
|
| -
|
| -#include "webrtc/base/thread_annotations.h"
|
| -#include "webrtc/modules/video_render/video_render_defines.h"
|
| -
|
| -#import "webrtc/modules/video_render/mac/cocoa_full_screen_window.h"
|
| -#import "webrtc/modules/video_render/mac/cocoa_render_view.h"
|
| -
|
| -class Trace;
|
| -
|
| -namespace rtc {
|
| -class PlatformThread;
|
| -} // namespace rtc
|
| -
|
| -namespace webrtc {
|
| -class EventTimerWrapper;
|
| -class VideoRenderNSOpenGL;
|
| -class CriticalSectionWrapper;
|
| -
|
| -class VideoChannelNSOpenGL : public VideoRenderCallback {
|
| -public:
|
| - VideoChannelNSOpenGL(NSOpenGLContext *nsglContext, int iId, VideoRenderNSOpenGL* owner);
|
| - virtual ~VideoChannelNSOpenGL();
|
| -
|
| - // A new frame is delivered
|
| - virtual int DeliverFrame(const VideoFrame& videoFrame);
|
| -
|
| - // Called when the incoming frame size and/or number of streams in mix
|
| - // changes.
|
| - virtual int FrameSizeChange(int width, int height, int numberOfStreams);
|
| -
|
| - virtual int UpdateSize(int width, int height);
|
| -
|
| - // Setup
|
| - int SetStreamSettings(int streamId, float startWidth, float startHeight, float stopWidth, float stopHeight);
|
| - int SetStreamCropSettings(int streamId, float startWidth, float startHeight, float stopWidth, float stopHeight);
|
| -
|
| - // Called when it's time to render the last frame for the channel
|
| - int RenderOffScreenBuffer();
|
| -
|
| - // Returns true if a new buffer has been delivered to the texture
|
| - int IsUpdated(bool& isUpdated);
|
| - virtual int UpdateStretchSize(int stretchHeight, int stretchWidth);
|
| -
|
| - // ********** new module functions ************ //
|
| - virtual int32_t RenderFrame(const uint32_t streamId,
|
| - const VideoFrame& videoFrame);
|
| -
|
| - // ********** new module helper functions ***** //
|
| - int ChangeContext(NSOpenGLContext *nsglContext);
|
| - int32_t GetChannelProperties(float& left,
|
| - float& top,
|
| - float& right,
|
| - float& bottom);
|
| -
|
| -private:
|
| -
|
| - NSOpenGLContext* _nsglContext;
|
| - const int _id;
|
| - VideoRenderNSOpenGL* _owner;
|
| - int32_t _width;
|
| - int32_t _height;
|
| - float _startWidth;
|
| - float _startHeight;
|
| - float _stopWidth;
|
| - float _stopHeight;
|
| - int _stretchedWidth;
|
| - int _stretchedHeight;
|
| - int _oldStretchedHeight;
|
| - int _oldStretchedWidth;
|
| - unsigned char* _buffer;
|
| - size_t _bufferSize;
|
| - size_t _incomingBufferSize;
|
| - bool _bufferIsUpdated;
|
| - int _numberOfStreams;
|
| - GLenum _pixelFormat;
|
| - GLenum _pixelDataType;
|
| - unsigned int _texture;
|
| -};
|
| -
|
| -class VideoRenderNSOpenGL
|
| -{
|
| -
|
| -public: // methods
|
| - VideoRenderNSOpenGL(CocoaRenderView *windowRef, bool fullScreen, int iId);
|
| - ~VideoRenderNSOpenGL();
|
| -
|
| - static int GetOpenGLVersion(int& nsglMajor, int& nsglMinor);
|
| -
|
| - // Allocates textures
|
| - int Init();
|
| - VideoChannelNSOpenGL* CreateNSGLChannel(int streamID, int zOrder, float startWidth, float startHeight, float stopWidth, float stopHeight);
|
| - VideoChannelNSOpenGL* ConfigureNSGLChannel(int channel, int zOrder, float startWidth, float startHeight, float stopWidth, float stopHeight);
|
| - int DeleteNSGLChannel(int channel);
|
| - int DeleteAllNSGLChannels();
|
| - int StopThread();
|
| - bool IsFullScreen();
|
| - bool HasChannels();
|
| - bool HasChannel(int channel);
|
| - int GetChannels(std::list<int>& channelList);
|
| - void LockAGLCntx() EXCLUSIVE_LOCK_FUNCTION(_nsglContextCritSec);
|
| - void UnlockAGLCntx() UNLOCK_FUNCTION(_nsglContextCritSec);
|
| -
|
| - // ********** new module functions ************ //
|
| - int ChangeWindow(CocoaRenderView* newWindowRef);
|
| - int32_t StartRender();
|
| - int32_t StopRender();
|
| - int32_t DeleteNSGLChannel(const uint32_t streamID);
|
| - int32_t GetChannelProperties(const uint16_t streamId,
|
| - uint32_t& zOrder,
|
| - float& left,
|
| - float& top,
|
| - float& right,
|
| - float& bottom);
|
| -
|
| - int32_t SetText(const uint8_t textId,
|
| - const uint8_t* text,
|
| - const int32_t textLength,
|
| - const uint32_t textColorRef,
|
| - const uint32_t backgroundColorRef,
|
| - const float left,
|
| - const float top,
|
| - const float right,
|
| - const float bottom);
|
| -
|
| - // ********** new module helper functions ***** //
|
| - int configureNSOpenGLEngine();
|
| - int configureNSOpenGLView();
|
| - int setRenderTargetWindow();
|
| - int setRenderTargetFullScreen();
|
| -
|
| -protected: // methods
|
| - static bool ScreenUpdateThreadProc(void* obj);
|
| - bool ScreenUpdateProcess();
|
| - int GetWindowRect(Rect& rect);
|
| -
|
| -private: // methods
|
| -
|
| - int CreateMixingContext();
|
| - int RenderOffScreenBuffers();
|
| - int DisplayBuffers();
|
| -
|
| -private: // variables
|
| -
|
| -
|
| - CocoaRenderView* _windowRef;
|
| - bool _fullScreen;
|
| - int _id;
|
| - CriticalSectionWrapper& _nsglContextCritSec;
|
| - // TODO(pbos): Remove unique_ptr and use PlatformThread directly.
|
| - std::unique_ptr<rtc::PlatformThread> _screenUpdateThread;
|
| - EventTimerWrapper* _screenUpdateEvent;
|
| - NSOpenGLContext* _nsglContext;
|
| - NSOpenGLContext* _nsglFullScreenContext;
|
| - CocoaFullScreenWindow* _fullScreenWindow;
|
| - Rect _windowRect; // The size of the window
|
| - int _windowWidth;
|
| - int _windowHeight;
|
| - std::map<int, VideoChannelNSOpenGL*> _nsglChannels;
|
| - std::multimap<int, int> _zOrderToChannel;
|
| - bool _renderingIsPaused;
|
| - NSView* _windowRefSuperView;
|
| - NSRect _windowRefSuperViewFrame;
|
| -};
|
| -
|
| -} // namespace webrtc
|
| -
|
| -#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_NSOPENGL_H_
|
| -#endif // COCOA_RENDERING
|
|
|