1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ 12 #define WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ 13 14 #include "webrtc/common_types.h" 15 #include "webrtc/common_video/include/incoming_video_stream.h" 16 #include "webrtc/modules/include/module_common_types.h" 17 18 namespace webrtc 19 { 20 // Defines 21 #ifndef NULL 22 #define NULL 0 23 #endif 24 25 // Enums 26 enum VideoRenderType 27 { 28 kRenderExternal = 0, // External 29 kRenderWindows = 1, // Windows 30 kRenderCocoa = 2, // Mac 31 kRenderCarbon = 3, 32 kRenderiOS = 4, // iPhone 33 kRenderAndroid = 5, // Android 34 kRenderX11 = 6, // Linux 35 kRenderDefault 36 }; 37 38 // Runtime errors 39 enum VideoRenderError 40 { 41 kRenderShutDown = 0, 42 kRenderPerformanceAlarm = 1 43 }; 44 45 // Feedback class to be implemented by module user 46 class VideoRenderFeedback 47 { 48 public: 49 virtual void OnRenderError(const int32_t streamId, 50 const VideoRenderError error) = 0; 51 52 protected: ~VideoRenderFeedback()53 virtual ~VideoRenderFeedback() 54 { 55 } 56 }; 57 58 // Mobile enums 59 enum StretchMode 60 { 61 kStretchToInsideEdge = 1, 62 kStretchToOutsideEdge = 2, 63 kStretchMatchWidth = 3, 64 kStretchMatchHeight = 4, 65 kStretchNone = 5 66 }; 67 68 } // namespace webrtc 69 70 #endif // WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ 71