Document that preferred VideoFrame constructor takes no RTP timestamp.
And update most internal calls to use it. Bug: webrtc:5740, webrtc:9372 Change-Id: Ib57d4ebfa7b0729af6d22981a792f0fdadf8a13f Reviewed-on: https://webrtc-review.googlesource.com/81743 Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23567}
This commit is contained in:
@ -25,11 +25,11 @@ VideoFrame::VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
|
||||
rotation_(rotation) {}
|
||||
|
||||
VideoFrame::VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
|
||||
uint32_t timestamp,
|
||||
uint32_t timestamp_rtp,
|
||||
int64_t render_time_ms,
|
||||
VideoRotation rotation)
|
||||
: video_frame_buffer_(buffer),
|
||||
timestamp_rtp_(timestamp),
|
||||
timestamp_rtp_(timestamp_rtp),
|
||||
ntp_time_ms_(0),
|
||||
timestamp_us_(render_time_ms * rtc::kNumMicrosecsPerMillisec),
|
||||
rotation_(rotation) {
|
||||
|
@ -20,16 +20,14 @@ namespace webrtc {
|
||||
|
||||
class VideoFrame {
|
||||
public:
|
||||
// TODO(nisse): This constructor is consistent with the now deleted
|
||||
// cricket::WebRtcVideoFrame. We should consider whether or not we
|
||||
// want to stick to this style and deprecate the other constructor.
|
||||
// Preferred constructor.
|
||||
VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
|
||||
webrtc::VideoRotation rotation,
|
||||
int64_t timestamp_us);
|
||||
|
||||
// Preferred constructor.
|
||||
// For use by the parts of the pipeline that needs the RTP 90kHz timestamp.
|
||||
VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
|
||||
uint32_t timestamp,
|
||||
uint32_t timestamp_rtp,
|
||||
int64_t render_time_ms,
|
||||
VideoRotation rotation);
|
||||
|
||||
|
@ -70,8 +70,8 @@ class FakeWebRtcVideoCaptureModule : public webrtc::VideoCaptureModule {
|
||||
// Initialize memory to satisfy DrMemory tests. See
|
||||
// https://bugs.chromium.org/p/libyuv/issues/detail?id=377
|
||||
buffer->InitializeData();
|
||||
callback_->OnFrame(
|
||||
webrtc::VideoFrame(buffer, 0, 0, webrtc::kVideoRotation_0));
|
||||
callback_->OnFrame(webrtc::VideoFrame(buffer, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -158,7 +158,8 @@ void VideoEncoderSoftwareFallbackWrapperTest::EncodeFrame(int expected_ret) {
|
||||
I420Buffer::SetBlack(buffer);
|
||||
std::vector<FrameType> types(1, kVideoFrameKey);
|
||||
|
||||
frame_.reset(new VideoFrame(buffer, 0, 0, webrtc::kVideoRotation_0));
|
||||
frame_.reset(
|
||||
new VideoFrame(buffer, webrtc::kVideoRotation_0, 0 /* timestamp_us */));
|
||||
EXPECT_EQ(expected_ret, fallback_wrapper_.Encode(*frame_, nullptr, &types));
|
||||
}
|
||||
|
||||
|
@ -370,8 +370,8 @@ class VideoCaptureExternalTest : public testing::Test {
|
||||
buffer->ChromaHeight() * buffer->StrideU());
|
||||
memset(buffer->MutableDataV(), 127,
|
||||
buffer->ChromaHeight() * buffer->StrideV());
|
||||
test_frame_.reset(
|
||||
new webrtc::VideoFrame(buffer, 0, 0, webrtc::kVideoRotation_0));
|
||||
test_frame_.reset(new webrtc::VideoFrame(buffer, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
|
||||
SleepMs(1); // Wait 1ms so that two tests can't have the same timestamp.
|
||||
|
||||
|
@ -137,9 +137,8 @@ int H264DecoderImpl::AVGetBuffer2(
|
||||
total_size,
|
||||
AVFreeBuffer2,
|
||||
static_cast<void*>(new VideoFrame(frame_buffer,
|
||||
0 /* timestamp */,
|
||||
0 /* render_time_ms */,
|
||||
kVideoRotation_0)),
|
||||
kVideoRotation_0,
|
||||
0 /* timestamp_us */)),
|
||||
0);
|
||||
RTC_CHECK(av_frame->buf[0]);
|
||||
return 0;
|
||||
|
@ -66,7 +66,7 @@ class TestMultiplexAdapter : public VideoCodecUnitTest {
|
||||
yuv_buffer->DataV(), yuv_buffer->StrideV(), yuv_buffer->DataY(),
|
||||
yuv_buffer->StrideY(), rtc::KeepRefUntilDone(yuv_buffer));
|
||||
return rtc::WrapUnique<VideoFrame>(
|
||||
new VideoFrame(yuva_buffer, 123 /* timestamp_us */,
|
||||
new VideoFrame(yuva_buffer, 123 /* RTP timestamp */,
|
||||
345 /* render_time_ms */, kVideoRotation_0));
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ class TestMultiplexAdapter : public VideoCodecUnitTest {
|
||||
yuva_buffer->DataV(), yuva_buffer->StrideV(),
|
||||
rtc::KeepRefUntilDone(yuva_frame.video_frame_buffer()));
|
||||
return rtc::WrapUnique<VideoFrame>(
|
||||
new VideoFrame(axx_buffer, 123 /* timestamp_us */,
|
||||
new VideoFrame(axx_buffer, 123 /* RTP timestamp */,
|
||||
345 /* render_time_ms */, kVideoRotation_0));
|
||||
}
|
||||
|
||||
|
@ -261,8 +261,8 @@ void SimulcastTestFixtureImpl::SetUpCodec(const int* temporal_layer_profile) {
|
||||
EXPECT_EQ(0, decoder_->InitDecode(&settings_, 1));
|
||||
input_buffer_ = I420Buffer::Create(kDefaultWidth, kDefaultHeight);
|
||||
input_buffer_->InitializeData();
|
||||
input_frame_.reset(
|
||||
new VideoFrame(input_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
input_frame_.reset(new VideoFrame(input_buffer_, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
}
|
||||
|
||||
void SimulcastTestFixtureImpl::SetUpRateAllocator() {
|
||||
@ -575,8 +575,8 @@ void SimulcastTestFixtureImpl::SwitchingToOneStream(int width, int height) {
|
||||
input_buffer_ = I420Buffer::Create(settings_.width, settings_.height);
|
||||
input_buffer_->InitializeData();
|
||||
|
||||
input_frame_.reset(
|
||||
new VideoFrame(input_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
input_frame_.reset(new VideoFrame(input_buffer_, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
|
||||
// The for loop above did not set the bitrate of the highest layer.
|
||||
settings_.simulcastStream[settings_.numberOfSimulcastStreams - 1].maxBitrate =
|
||||
@ -615,8 +615,8 @@ void SimulcastTestFixtureImpl::SwitchingToOneStream(int width, int height) {
|
||||
// Resize |input_frame_| to the new resolution.
|
||||
input_buffer_ = I420Buffer::Create(settings_.width, settings_.height);
|
||||
input_buffer_->InitializeData();
|
||||
input_frame_.reset(
|
||||
new VideoFrame(input_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
input_frame_.reset(new VideoFrame(input_buffer_, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
EXPECT_EQ(0, encoder_->Encode(*input_frame_, NULL, &frame_types));
|
||||
}
|
||||
|
||||
@ -773,8 +773,8 @@ void SimulcastTestFixtureImpl::TestStrideEncodeDecode() {
|
||||
int stride_uv = ((kDefaultWidth + 1) / 2) + 5;
|
||||
input_buffer_ = I420Buffer::Create(kDefaultWidth, kDefaultHeight, stride_y,
|
||||
stride_uv, stride_uv);
|
||||
input_frame_.reset(
|
||||
new VideoFrame(input_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
input_frame_.reset(new VideoFrame(input_buffer_, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
|
||||
// Set color.
|
||||
int plane_offset[kNumOfPlanes];
|
||||
|
@ -90,7 +90,8 @@ class SquareGenerator : public FrameGenerator {
|
||||
for (const auto& square : squares_)
|
||||
square->Draw(buffer);
|
||||
|
||||
frame_.reset(new VideoFrame(buffer, 0, 0, webrtc::kVideoRotation_0));
|
||||
frame_.reset(
|
||||
new VideoFrame(buffer, webrtc::kVideoRotation_0, 0 /* timestamp_us */));
|
||||
return frame_.get();
|
||||
}
|
||||
|
||||
@ -192,8 +193,8 @@ class YuvFileGenerator : public FrameGenerator {
|
||||
if (++current_display_count_ >= frame_display_count_)
|
||||
current_display_count_ = 0;
|
||||
|
||||
temp_frame_.reset(
|
||||
new VideoFrame(last_read_buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
temp_frame_.reset(new VideoFrame(
|
||||
last_read_buffer_, webrtc::kVideoRotation_0, 0 /* timestamp_us */));
|
||||
return temp_frame_.get();
|
||||
}
|
||||
|
||||
@ -249,8 +250,8 @@ class SlideGenerator : public FrameGenerator {
|
||||
if (++current_display_count_ >= frame_display_count_)
|
||||
current_display_count_ = 0;
|
||||
|
||||
frame_.reset(
|
||||
new VideoFrame(buffer_, 0, 0, webrtc::kVideoRotation_0));
|
||||
frame_.reset(new VideoFrame(buffer_, webrtc::kVideoRotation_0,
|
||||
0 /* timestamp_us */));
|
||||
return frame_.get();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user