Move size() method to EncodedImage base class

Deleted from subclass video_coding::EncodedFrame. Also delete Length
and SetLength methods on the intermediate class
video_coding::VCMEncodedFrame.

Bug: webrtc:9378
Change-Id: I3c90b14735f622f50b2f403f79072e22fc025d11
Reviewed-on: https://webrtc-review.googlesource.com/c/112131
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25838}
This commit is contained in:
Niels Möller
2018-11-28 16:31:29 +01:00
committed by Commit Bot
parent 2f25ade901
commit f0eee0087f
11 changed files with 20 additions and 22 deletions

View File

@ -64,22 +64,12 @@ class VCMEncodedFrame : protected EncodedImage {
* Get pointer to frame buffer that can be mutated.
*/
uint8_t* MutableBuffer() { return _buffer; }
/**
* Get frame length
*/
size_t Length() const { return _length; }
/**
* Set frame length
*/
void SetLength(size_t length) {
RTC_DCHECK(length <= _size);
_length = length;
}
/**
* Frame RTP timestamp (90kHz)
*/
using EncodedImage::Timestamp;
using EncodedImage::SetTimestamp;
using EncodedImage::size;
/**
* Get render time in milliseconds
*/

View File

@ -102,7 +102,7 @@ VCMFrameBufferEnum VCMFrameBuffer::InsertPacket(
}
uint32_t requiredSizeBytes =
Length() + packet.sizeBytes +
size() + packet.sizeBytes +
(packet.insertStartCode ? kH264StartCodeLengthBytes : 0) +
EncodedImage::GetBufferPaddingBytes(packet.codec);
if (requiredSizeBytes >= _size) {
@ -139,7 +139,7 @@ VCMFrameBufferEnum VCMFrameBuffer::InsertPacket(
return kOutOfBoundsPacket;
}
// update length
_length = Length() + static_cast<uint32_t>(retVal);
_length = size() + static_cast<uint32_t>(retVal);
_latestPacketTimeMs = timeInMs;

View File

@ -135,6 +135,11 @@ int64_t RtpFrameObject::RenderTime() const {
return _renderTimeMs;
}
void RtpFrameObject::SetSize(size_t size) {
RTC_DCHECK_LE(size, _size);
_length = size;
}
bool RtpFrameObject::delayed_by_retransmission() const {
return times_nacked() > 0;
}

View File

@ -39,6 +39,7 @@ class RtpFrameObject : public EncodedFrame {
VideoCodecType codec_type() const;
int64_t ReceivedTime() const override;
int64_t RenderTime() const override;
void SetSize(size_t size);
bool delayed_by_retransmission() const override;
absl::optional<RTPVideoHeader> GetRtpVideoHeader() const;
absl::optional<RtpGenericFrameDescriptor> GetGenericFrameDescriptor() const;

View File

@ -553,7 +553,7 @@ VCMEncodedFrame* VCMJitterBuffer::ExtractAndSetDecode(uint32_t timestamp) {
if (retransmitted) {
if (WaitForRetransmissions())
jitter_estimate_.FrameNacked();
} else if (frame->Length() > 0) {
} else if (frame->size() > 0) {
// Ignore retransmitted and empty frames.
if (waiting_for_completion_.latest_packet_time >= 0) {
UpdateJitterEstimate(waiting_for_completion_, true);
@ -562,7 +562,7 @@ VCMEncodedFrame* VCMJitterBuffer::ExtractAndSetDecode(uint32_t timestamp) {
UpdateJitterEstimate(*frame, false);
} else {
// Wait for this one to get complete.
waiting_for_completion_.frame_size = frame->Length();
waiting_for_completion_.frame_size = frame->size();
waiting_for_completion_.latest_packet_time = frame->LatestPacketTimeMs();
waiting_for_completion_.timestamp = frame->Timestamp();
}
@ -1264,7 +1264,7 @@ void VCMJitterBuffer::UpdateJitterEstimate(const VCMFrameBuffer& frame,
// No retransmitted frames should be a part of the jitter
// estimate.
UpdateJitterEstimate(frame.LatestPacketTimeMs(), frame.Timestamp(),
frame.Length(), incomplete_frame);
frame.size(), incomplete_frame);
}
// Must be called under the critical section |crit_sect_|. Should never be

View File

@ -283,7 +283,7 @@ class TestBasicJitterBuffer : public ::testing::TestWithParam<std::string>,
i += 4;
}
EXPECT_EQ(size, frame_out->Length());
EXPECT_EQ(size, frame_out->size());
int count = 3;
for (; i < size; i++) {
if (outData[i] == 0 && outData[i + 1] == 0 && outData[i + 2] == 0x80) {