Index: webrtc/modules/video_coding/codecs/test/videoprocessor.cc |
diff --git a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc |
index 7b0c8e397e3ef5310cd0ebf66eae4728e14e00ac..8436eb00425e02f5cf2d7eb5911ccca7aac895f0 100644 |
--- a/webrtc/modules/video_coding/codecs/test/videoprocessor.cc |
+++ b/webrtc/modules/video_coding/codecs/test/videoprocessor.cc |
@@ -56,7 +56,6 @@ VideoProcessorImpl::VideoProcessorImpl(webrtc::VideoEncoder* encoder, |
stats_(stats), |
encode_callback_(NULL), |
decode_callback_(NULL), |
- source_buffer_(NULL), |
first_key_frame_has_been_excluded_(false), |
last_frame_missing_(false), |
initialized_(false), |
@@ -81,7 +80,6 @@ bool VideoProcessorImpl::Init() { |
// Initialize data structures used by the encoder/decoder APIs |
size_t frame_length_in_bytes = frame_reader_->FrameLength(); |
- source_buffer_ = new uint8_t[frame_length_in_bytes]; |
last_successful_frame_buffer_ = new uint8_t[frame_length_in_bytes]; |
// Set fixed properties common for all frames. |
// To keep track of spatial resize actions by encoder. |
@@ -143,7 +141,6 @@ bool VideoProcessorImpl::Init() { |
} |
VideoProcessorImpl::~VideoProcessorImpl() { |
- delete[] source_buffer_; |
delete[] last_successful_frame_buffer_; |
encoder_->RegisterEncodeCompleteCallback(NULL); |
delete encode_callback_; |
@@ -190,17 +187,15 @@ bool VideoProcessorImpl::ProcessFrame(int frame_number) { |
if (frame_number == 0) { |
prev_time_stamp_ = -1; |
} |
- if (frame_reader_->ReadFrame(source_buffer_)) { |
- // Copy the source frame to the newly read frame data. |
- source_frame_.CreateFrame(source_buffer_, config_.codec_settings->width, |
- config_.codec_settings->height, kVideoRotation_0); |
+ rtc::scoped_refptr<VideoFrameBuffer> buffer(frame_reader_->ReadFrame()); |
+ if (buffer) { |
+ // Use the frame number as "timestamp" to identify frames |
+ VideoFrame source_frame(buffer, frame_number, 0, webrtc::kVideoRotation_0); |
// Ensure we have a new statistics data object we can fill: |
FrameStatistic& stat = stats_->NewFrame(frame_number); |
encode_start_ns_ = rtc::TimeNanos(); |
- // Use the frame number as "timestamp" to identify frames |
- source_frame_.set_timestamp(frame_number); |
// Decide if we're going to force a keyframe: |
std::vector<FrameType> frame_types(1, kVideoFrameDelta); |
@@ -213,7 +208,7 @@ bool VideoProcessorImpl::ProcessFrame(int frame_number) { |
encoded_frame_size_ = 0; |
encoded_frame_type_ = kVideoFrameDelta; |
- int32_t encode_result = encoder_->Encode(source_frame_, NULL, &frame_types); |
+ int32_t encode_result = encoder_->Encode(source_frame, NULL, &frame_types); |
if (encode_result != WEBRTC_VIDEO_CODEC_OK) { |
fprintf(stderr, "Failed to encode frame %d, return code: %d\n", |