ViEExternalRendererImpl: Remove dependency to webrtc::VideoFrame
I had to use std::vector, because rtc::Buffer wasn't in rtc_base_approved. R=mflodman@webrtc.org, pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/34249004 Cr-Commit-Position: refs/heads/master@{#8426} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8426 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
3db042e2f0
commit
32c784c266
@ -149,8 +149,7 @@ ViEExternalRendererImpl::ViEExternalRendererImpl()
|
|||||||
: external_renderer_(NULL),
|
: external_renderer_(NULL),
|
||||||
external_renderer_format_(kVideoUnknown),
|
external_renderer_format_(kVideoUnknown),
|
||||||
external_renderer_width_(0),
|
external_renderer_width_(0),
|
||||||
external_renderer_height_(0),
|
external_renderer_height_(0) {
|
||||||
converted_frame_(new VideoFrame()) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ViEExternalRendererImpl::SetViEExternalRenderer(
|
int ViEExternalRendererImpl::SetViEExternalRenderer(
|
||||||
@ -196,8 +195,6 @@ int32_t ViEExternalRendererImpl::ConvertAndRenderFrame(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoFrame* out_frame = converted_frame_.get();
|
|
||||||
|
|
||||||
// Convert to requested format.
|
// Convert to requested format.
|
||||||
VideoType type =
|
VideoType type =
|
||||||
RawVideoTypeToCommonVideoVideoType(external_renderer_format_);
|
RawVideoTypeToCommonVideoVideoType(external_renderer_format_);
|
||||||
@ -208,7 +205,8 @@ int32_t ViEExternalRendererImpl::ConvertAndRenderFrame(
|
|||||||
assert(false);
|
assert(false);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
converted_frame_->VerifyAndAllocate(buffer_size);
|
converted_frame_.resize(buffer_size);
|
||||||
|
uint8_t* out_frame = &converted_frame_[0];
|
||||||
|
|
||||||
switch (external_renderer_format_) {
|
switch (external_renderer_format_) {
|
||||||
case kVideoYV12:
|
case kVideoYV12:
|
||||||
@ -218,13 +216,9 @@ int32_t ViEExternalRendererImpl::ConvertAndRenderFrame(
|
|||||||
case kVideoRGB24:
|
case kVideoRGB24:
|
||||||
case kVideoRGB565:
|
case kVideoRGB565:
|
||||||
case kVideoARGB4444:
|
case kVideoARGB4444:
|
||||||
case kVideoARGB1555 :
|
case kVideoARGB1555:
|
||||||
{
|
if (ConvertFromI420(video_frame, type, 0, out_frame) < 0)
|
||||||
if (ConvertFromI420(video_frame, type, 0,
|
return -1;
|
||||||
converted_frame_->Buffer()) < 0)
|
|
||||||
return -1;
|
|
||||||
converted_frame_->SetLength(buffer_size);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case kVideoIYUV:
|
case kVideoIYUV:
|
||||||
// no conversion available
|
// no conversion available
|
||||||
@ -238,8 +232,8 @@ int32_t ViEExternalRendererImpl::ConvertAndRenderFrame(
|
|||||||
NotifyFrameSizeChange(stream_id, video_frame);
|
NotifyFrameSizeChange(stream_id, video_frame);
|
||||||
|
|
||||||
if (out_frame) {
|
if (out_frame) {
|
||||||
external_renderer_->DeliverFrame(out_frame->Buffer(),
|
external_renderer_->DeliverFrame(out_frame,
|
||||||
out_frame->Length(),
|
converted_frame_.size(),
|
||||||
video_frame.timestamp(),
|
video_frame.timestamp(),
|
||||||
video_frame.ntp_time_ms(),
|
video_frame.ntp_time_ms(),
|
||||||
video_frame.render_time_ms(),
|
video_frame.render_time_ms(),
|
||||||
|
@ -11,8 +11,9 @@
|
|||||||
#ifndef WEBRTC_VIDEO_ENGINE_VIE_RENDERER_H_
|
#ifndef WEBRTC_VIDEO_ENGINE_VIE_RENDERER_H_
|
||||||
#define WEBRTC_VIDEO_ENGINE_VIE_RENDERER_H_
|
#define WEBRTC_VIDEO_ENGINE_VIE_RENDERER_H_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include "webrtc/modules/video_render/include/video_render_defines.h"
|
#include "webrtc/modules/video_render/include/video_render_defines.h"
|
||||||
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
|
|
||||||
#include "webrtc/video_engine/include/vie_render.h"
|
#include "webrtc/video_engine/include/vie_render.h"
|
||||||
#include "webrtc/video_engine/vie_frame_provider_base.h"
|
#include "webrtc/video_engine/vie_frame_provider_base.h"
|
||||||
|
|
||||||
@ -44,7 +45,7 @@ class ViEExternalRendererImpl : public VideoRenderCallback {
|
|||||||
int external_renderer_width_;
|
int external_renderer_width_;
|
||||||
int external_renderer_height_;
|
int external_renderer_height_;
|
||||||
// Converted_frame_ in color format specified by render_format_.
|
// Converted_frame_ in color format specified by render_format_.
|
||||||
scoped_ptr<VideoFrame> converted_frame_;
|
std::vector<uint8_t> converted_frame_;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ViERenderer: public ViEFrameCallback {
|
class ViERenderer: public ViEFrameCallback {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user