1 /* 2 * libjingle 3 * Copyright 2013 Google Inc. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 3. The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #include "talk/media/webrtc/webrtctexturevideoframe.h" 29 30 #include "talk/base/common.h" 31 #include "talk/base/logging.h" 32 #include "talk/base/stream.h" 33 34 #define UNIMPLEMENTED \ 35 LOG(LS_ERROR) << "Call to unimplemented function "<< __FUNCTION__; \ 36 ASSERT(false) 37 38 namespace cricket { 39 40 WebRtcTextureVideoFrame::WebRtcTextureVideoFrame( 41 webrtc::NativeHandle* handle, int width, int height, int64 elapsed_time, 42 int64 time_stamp) 43 : handle_(handle), width_(width), height_(height), 44 elapsed_time_(elapsed_time), time_stamp_(time_stamp) {} 45 46 WebRtcTextureVideoFrame::~WebRtcTextureVideoFrame() {} 47 48 bool WebRtcTextureVideoFrame::InitToBlack( 49 int w, int h, size_t pixel_width, size_t pixel_height, int64 elapsed_time, 50 int64 time_stamp) { 51 UNIMPLEMENTED; 52 return false; 53 } 54 55 bool WebRtcTextureVideoFrame::Reset( 56 uint32 fourcc, int w, int h, int dw, int dh, uint8* sample, 57 size_t sample_size, size_t pixel_width, size_t pixel_height, 58 int64 elapsed_time, int64 time_stamp, int rotation) { 59 UNIMPLEMENTED; 60 return false; 61 } 62 63 const uint8* WebRtcTextureVideoFrame::GetYPlane() const { 64 UNIMPLEMENTED; 65 return NULL; 66 } 67 68 const uint8* WebRtcTextureVideoFrame::GetUPlane() const { 69 UNIMPLEMENTED; 70 return NULL; 71 } 72 73 const uint8* WebRtcTextureVideoFrame::GetVPlane() const { 74 UNIMPLEMENTED; 75 return NULL; 76 } 77 78 uint8* WebRtcTextureVideoFrame::GetYPlane() { 79 UNIMPLEMENTED; 80 return NULL; 81 } 82 83 uint8* WebRtcTextureVideoFrame::GetUPlane() { 84 UNIMPLEMENTED; 85 return NULL; 86 } 87 88 uint8* WebRtcTextureVideoFrame::GetVPlane() { 89 UNIMPLEMENTED; 90 return NULL; 91 } 92 93 int32 WebRtcTextureVideoFrame::GetYPitch() const { 94 UNIMPLEMENTED; 95 return width_; 96 } 97 98 int32 WebRtcTextureVideoFrame::GetUPitch() const { 99 UNIMPLEMENTED; 100 return (width_ + 1) / 2; 101 } 102 103 int32 WebRtcTextureVideoFrame::GetVPitch() const { 104 UNIMPLEMENTED; 105 return (width_ + 1) / 2; 106 } 107 108 VideoFrame* WebRtcTextureVideoFrame::Copy() const { 109 return new WebRtcTextureVideoFrame( 110 handle_, width_, height_, elapsed_time_, time_stamp_); 111 } 112 113 bool WebRtcTextureVideoFrame::MakeExclusive() { 114 UNIMPLEMENTED; 115 return false; 116 } 117 118 size_t WebRtcTextureVideoFrame::CopyToBuffer(uint8* buffer, size_t size) const { 119 UNIMPLEMENTED; 120 return 0; 121 } 122 123 size_t WebRtcTextureVideoFrame::ConvertToRgbBuffer( 124 uint32 to_fourcc, uint8* buffer, size_t size, int stride_rgb) const { 125 UNIMPLEMENTED; 126 return 0; 127 } 128 129 bool WebRtcTextureVideoFrame::CopyToPlanes( 130 uint8* dst_y, uint8* dst_u, uint8* dst_v, int32 dst_pitch_y, 131 int32 dst_pitch_u, int32 dst_pitch_v) const { 132 UNIMPLEMENTED; 133 return false; 134 } 135 136 void WebRtcTextureVideoFrame::CopyToFrame(VideoFrame* dst) const { 137 UNIMPLEMENTED; 138 } 139 140 talk_base::StreamResult WebRtcTextureVideoFrame::Write( 141 talk_base::StreamInterface* stream, int* error) { 142 UNIMPLEMENTED; 143 return talk_base::SR_ERROR; 144 } 145 void WebRtcTextureVideoFrame::StretchToPlanes( 146 uint8* dst_y, uint8* dst_u, uint8* dst_v, int32 dst_pitch_y, 147 int32 dst_pitch_u, int32 dst_pitch_v, size_t width, size_t height, 148 bool interpolate, bool vert_crop) const { 149 UNIMPLEMENTED; 150 } 151 152 size_t WebRtcTextureVideoFrame::StretchToBuffer( 153 size_t dst_width, size_t dst_height, uint8* dst_buffer, size_t size, 154 bool interpolate, bool vert_crop) const { 155 UNIMPLEMENTED; 156 return 0; 157 } 158 159 void WebRtcTextureVideoFrame::StretchToFrame( 160 VideoFrame* dst, bool interpolate, bool vert_crop) const { 161 UNIMPLEMENTED; 162 } 163 164 VideoFrame* WebRtcTextureVideoFrame::Stretch( 165 size_t dst_width, size_t dst_height, bool interpolate, 166 bool vert_crop) const { 167 UNIMPLEMENTED; 168 return NULL; 169 } 170 171 bool WebRtcTextureVideoFrame::SetToBlack() { 172 UNIMPLEMENTED; 173 return false; 174 } 175 176 VideoFrame* WebRtcTextureVideoFrame::CreateEmptyFrame( 177 int w, int h, size_t pixel_width, size_t pixel_height, int64 elapsed_time, 178 int64 time_stamp) const { 179 UNIMPLEMENTED; 180 return NULL; 181 } 182 183 } // namespace cricket 184