Switching to I420VideoFrame
Review URL: https://webrtc-codereview.appspot.com/922004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@2983 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_engine/vie_renderer.cc b/video_engine/vie_renderer.cc
index 588f8f6..4efb39d 100644
--- a/video_engine/vie_renderer.cc
+++ b/video_engine/vie_renderer.cc
@@ -51,7 +51,7 @@
}
WebRtc_Word32 ViERenderer::GetLastRenderedFrame(const WebRtc_Word32 renderID,
- VideoFrame& video_frame) {
+ I420VideoFrame& video_frame) {
return render_module_.GetLastRenderedFrame(renderID, video_frame);
}
@@ -80,13 +80,14 @@
mirror_yaxis);
}
-WebRtc_Word32 ViERenderer::SetTimeoutImage(const VideoFrame& timeout_image,
+WebRtc_Word32 ViERenderer::SetTimeoutImage(const I420VideoFrame& timeout_image,
const WebRtc_Word32 timeout_value) {
return render_module_.SetTimeoutImage(render_id_, timeout_image,
timeout_value);
}
-WebRtc_Word32 ViERenderer::SetRenderStartImage(const VideoFrame& start_image) {
+WebRtc_Word32 ViERenderer::SetRenderStartImage(
+ const I420VideoFrame& start_image) {
return render_module_.SetStartImage(render_id_, start_image);
}
@@ -130,7 +131,7 @@
}
void ViERenderer::DeliverFrame(int id,
- VideoFrame* video_frame,
+ I420VideoFrame* video_frame,
int num_csrcs,
const WebRtc_UWord32 CSRC[kRtpCsrcSize]) {
render_callback_->RenderFrame(render_id_, *video_frame);
@@ -167,14 +168,14 @@
WebRtc_Word32 ViEExternalRendererImpl::RenderFrame(
const WebRtc_UWord32 stream_id,
- VideoFrame& video_frame) {
+ I420VideoFrame& video_frame) {
VideoFrame* out_frame = converted_frame_.get();
// Convert to requested format.
VideoType type =
RawVideoTypeToCommonVideoVideoType(external_renderer_format_);
- int buffer_size = CalcBufferSize(type, video_frame.Width(),
- video_frame.Height());
+ int buffer_size = CalcBufferSize(type, video_frame.width(),
+ video_frame.height());
if (buffer_size <= 0) {
// Unsupported video format.
assert(false);
@@ -183,9 +184,16 @@
converted_frame_->VerifyAndAllocate(buffer_size);
switch (external_renderer_format_) {
- case kVideoI420:
- out_frame = &video_frame;
+ case kVideoI420: {
+ // TODO(mikhal): need to copy the buffer as is.
+ // can the output here be a I420 frame?
+ int length = ExtractBuffer(video_frame, out_frame->Size(),
+ out_frame->Buffer());
+ if (length < 0)
+ return -1;
+ out_frame->SetLength(length);
break;
+ }
case kVideoYV12:
case kVideoYUY2:
case kVideoUYVY:
@@ -195,8 +203,7 @@
case kVideoARGB4444:
case kVideoARGB1555 :
{
- ConvertFromI420(video_frame, video_frame.Width(), type, 0,
- converted_frame_->Buffer());
+ ConvertFromI420(video_frame, type, 0, converted_frame_->Buffer());
}
break;
case kVideoIYUV:
@@ -208,10 +215,10 @@
break;
}
- if (external_renderer_width_ != video_frame.Width() ||
- external_renderer_height_ != video_frame.Height()) {
- external_renderer_width_ = video_frame.Width();
- external_renderer_height_ = video_frame.Height();
+ if (external_renderer_width_ != video_frame.width() ||
+ external_renderer_height_ != video_frame.height()) {
+ external_renderer_width_ = video_frame.width();
+ external_renderer_height_ = video_frame.height();
external_renderer_->FrameSizeChange(external_renderer_width_,
external_renderer_height_, stream_id);
}
@@ -219,8 +226,8 @@
if (out_frame) {
external_renderer_->DeliverFrame(out_frame->Buffer(),
out_frame->Length(),
- video_frame.TimeStamp(),
- video_frame.RenderTimeMs());
+ video_frame.timestamp(),
+ video_frame.render_time_ms());
}
return 0;
}