Remove usage of webrtc::NativeHandle since is just adds an extra level of indirection.
BUG=1128 R=magjed@webrtc.org, pbos@webrtc.org TBR=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/43999004 Cr-Commit-Position: refs/heads/master@{#8932}
This commit is contained in:
@ -654,8 +654,9 @@ bool MediaCodecVideoDecoder::DeliverPendingOutputs(
|
||||
int32_t callback_status = WEBRTC_VIDEO_CODEC_OK;
|
||||
if (use_surface_) {
|
||||
native_handle_.SetTextureObject(surface_texture_, texture_id);
|
||||
I420VideoFrame texture_image(
|
||||
&native_handle_, width, height, output_timestamp_, 0);
|
||||
I420VideoFrame texture_image(&native_handle_, width, height,
|
||||
output_timestamp_, 0, webrtc::kVideoRotation_0,
|
||||
rtc::Callback0<void>());
|
||||
texture_image.set_ntp_time_ms(output_ntp_time_ms_);
|
||||
callback_status = callback_->Decoded(texture_image);
|
||||
} else {
|
||||
|
||||
@ -33,19 +33,12 @@
|
||||
|
||||
namespace webrtc_jni {
|
||||
|
||||
// Wrapper for texture object in TextureBuffer.
|
||||
class NativeHandleImpl : public webrtc::NativeHandle {
|
||||
// Wrapper for texture object.
|
||||
class NativeHandleImpl {
|
||||
public:
|
||||
NativeHandleImpl() :
|
||||
ref_count_(0), texture_object_(NULL), texture_id_(-1) {}
|
||||
virtual ~NativeHandleImpl() {}
|
||||
virtual int32_t AddRef() {
|
||||
return ++ref_count_;
|
||||
}
|
||||
virtual int32_t Release() {
|
||||
return --ref_count_;
|
||||
}
|
||||
virtual void* GetHandle() {
|
||||
NativeHandleImpl() : texture_object_(NULL), texture_id_(-1) {}
|
||||
|
||||
void* GetHandle() {
|
||||
return texture_object_;
|
||||
}
|
||||
int GetTextureId() {
|
||||
@ -55,12 +48,8 @@ class NativeHandleImpl : public webrtc::NativeHandle {
|
||||
texture_object_ = reinterpret_cast<jobject>(texture_object);
|
||||
texture_id_ = texture_id;
|
||||
}
|
||||
int32_t ref_count() {
|
||||
return ref_count_;
|
||||
}
|
||||
|
||||
private:
|
||||
int32_t ref_count_;
|
||||
jobject texture_object_;
|
||||
int32_t texture_id_;
|
||||
};
|
||||
|
||||
@ -71,23 +71,6 @@ WebRtcVideoFrame::WebRtcVideoFrame(
|
||||
rotation_(webrtc::kVideoRotation_0) {
|
||||
}
|
||||
|
||||
WebRtcVideoFrame::WebRtcVideoFrame(webrtc::NativeHandle* handle,
|
||||
int width,
|
||||
int height,
|
||||
int64_t elapsed_time_ns,
|
||||
int64_t time_stamp_ns,
|
||||
webrtc::VideoRotation rotation)
|
||||
: video_frame_buffer_(
|
||||
new rtc::RefCountedObject<webrtc::TextureBuffer>(handle,
|
||||
width,
|
||||
height)),
|
||||
pixel_width_(1),
|
||||
pixel_height_(1),
|
||||
elapsed_time_ns_(elapsed_time_ns),
|
||||
time_stamp_ns_(time_stamp_ns),
|
||||
rotation_(rotation) {
|
||||
}
|
||||
|
||||
WebRtcVideoFrame::~WebRtcVideoFrame() {}
|
||||
|
||||
bool WebRtcVideoFrame::Init(uint32 format,
|
||||
|
||||
@ -52,12 +52,6 @@ class WebRtcVideoFrame : public VideoFrame {
|
||||
int64_t elapsed_time_ns,
|
||||
int64_t time_stamp_ns);
|
||||
|
||||
WebRtcVideoFrame(webrtc::NativeHandle* handle,
|
||||
int width,
|
||||
int height,
|
||||
int64_t elapsed_time_ns,
|
||||
int64_t time_stamp_ns,
|
||||
webrtc::VideoRotation rotation);
|
||||
~WebRtcVideoFrame();
|
||||
|
||||
// Creates a frame from a raw sample with FourCC "format" and size "w" x "h".
|
||||
|
||||
@ -30,19 +30,6 @@
|
||||
#include "talk/media/base/videoframe_unittest.h"
|
||||
#include "talk/media/webrtc/webrtcvideoframe.h"
|
||||
|
||||
class NativeHandleImpl : public webrtc::NativeHandle {
|
||||
public:
|
||||
NativeHandleImpl() : ref_count_(0) {}
|
||||
virtual ~NativeHandleImpl() {}
|
||||
virtual int32_t AddRef() { return ++ref_count_; }
|
||||
virtual int32_t Release() { return --ref_count_; }
|
||||
virtual void* GetHandle() { return NULL; }
|
||||
|
||||
int32_t ref_count() { return ref_count_; }
|
||||
private:
|
||||
int32_t ref_count_;
|
||||
};
|
||||
|
||||
namespace {
|
||||
|
||||
class WebRtcVideoTestFrame : public cricket::WebRtcVideoFrame {
|
||||
@ -339,10 +326,12 @@ TEST_F(WebRtcVideoFrameTest, InitRotated90DontApplyRotation) {
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoFrameTest, TextureInitialValues) {
|
||||
NativeHandleImpl handle;
|
||||
cricket::WebRtcVideoFrame frame(&handle, 640, 480, 100, 200,
|
||||
webrtc::kVideoRotation_0);
|
||||
EXPECT_EQ(&handle, frame.GetNativeHandle());
|
||||
void* dummy_handle = reinterpret_cast<void*>(0x1);
|
||||
webrtc::TextureBuffer* buffer =
|
||||
new rtc::RefCountedObject<webrtc::TextureBuffer>(dummy_handle, 640, 480,
|
||||
rtc::Callback0<void>());
|
||||
cricket::WebRtcVideoFrame frame(buffer, 100, 200, webrtc::kVideoRotation_0);
|
||||
EXPECT_EQ(dummy_handle, frame.GetNativeHandle());
|
||||
EXPECT_EQ(640u, frame.GetWidth());
|
||||
EXPECT_EQ(480u, frame.GetHeight());
|
||||
EXPECT_EQ(100, frame.GetElapsedTime());
|
||||
@ -354,9 +343,11 @@ TEST_F(WebRtcVideoFrameTest, TextureInitialValues) {
|
||||
}
|
||||
|
||||
TEST_F(WebRtcVideoFrameTest, CopyTextureFrame) {
|
||||
NativeHandleImpl handle;
|
||||
cricket::WebRtcVideoFrame frame1(&handle, 640, 480, 100, 200,
|
||||
webrtc::kVideoRotation_0);
|
||||
void* dummy_handle = reinterpret_cast<void*>(0x1);
|
||||
webrtc::TextureBuffer* buffer =
|
||||
new rtc::RefCountedObject<webrtc::TextureBuffer>(dummy_handle, 640, 480,
|
||||
rtc::Callback0<void>());
|
||||
cricket::WebRtcVideoFrame frame1(buffer, 100, 200, webrtc::kVideoRotation_0);
|
||||
cricket::VideoFrame* frame2 = frame1.Copy();
|
||||
EXPECT_EQ(frame1.GetNativeHandle(), frame2->GetNativeHandle());
|
||||
EXPECT_EQ(frame1.GetWidth(), frame2->GetWidth());
|
||||
|
||||
Reference in New Issue
Block a user