diff --git a/src/modules/video_coding/main/source/frame_buffer.cc b/src/modules/video_coding/main/source/frame_buffer.cc index 14f448b0b..82dbe2181 100644 --- a/src/modules/video_coding/main/source/frame_buffer.cc +++ b/src/modules/video_coding/main/source/frame_buffer.cc @@ -8,7 +8,6 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "../../../../engine_configurations.h" #include "frame_buffer.h" #include "packet.h" @@ -73,6 +72,14 @@ int VCMFrameBuffer::PictureId() const { return _sessionInfo.PictureId(); } +int VCMFrameBuffer::TemporalId() const { + return _sessionInfo.TemporalId(); +} + +int VCMFrameBuffer::Tl0PicId() const { + return _sessionInfo.Tl0PicId(); +} + bool VCMFrameBuffer::IsSessionComplete() const { diff --git a/src/modules/video_coding/main/source/frame_buffer.h b/src/modules/video_coding/main/source/frame_buffer.h index fcc6f0b49..d7bde6591 100644 --- a/src/modules/video_coding/main/source/frame_buffer.h +++ b/src/modules/video_coding/main/source/frame_buffer.h @@ -57,6 +57,8 @@ public: WebRtc_Word32 GetHighSeqNum() const; int PictureId() const; + int TemporalId() const; + int Tl0PicId() const; // Set counted status (as counted by JB or not) void SetCountedFrame(bool frameCounted); diff --git a/src/modules/video_coding/main/source/session_info.cc b/src/modules/video_coding/main/source/session_info.cc index 58206d0d0..569cb7a7b 100644 --- a/src/modules/video_coding/main/source/session_info.cc +++ b/src/modules/video_coding/main/source/session_info.cc @@ -28,7 +28,7 @@ VCMSessionInfo::VCMSessionInfo(): _emptySeqNumHigh(-1), _markerSeqNum(-1), _packetsNotDecodable(0), - _pictureId(-1) + _pictureId(kNoPictureId) { } @@ -61,6 +61,18 @@ int VCMSessionInfo::PictureId() const { return _pictureId; } +int VCMSessionInfo::TemporalId() const { + if (_lowSeqNum == -1 || _packets[0].codecSpecificHeader.codec != kRTPVideoVP8) + return kNoTemporalIdx; + return _packets[0].codecSpecificHeader.codecHeader.VP8.temporalIdx; +} + +int VCMSessionInfo::Tl0PicId() const { + if (_lowSeqNum == -1 || _packets[0].codecSpecificHeader.codec != kRTPVideoVP8) + return kNoTl0PicIdx; + return _packets[0].codecSpecificHeader.codecHeader.VP8.tl0PicIdx; +} + void VCMSessionInfo::Reset() { for (int i = 0; i <= _highestPacketIndex; ++i) @@ -78,7 +90,7 @@ VCMSessionInfo::Reset() { _highestPacketIndex = 0; _markerSeqNum = -1; _packetsNotDecodable = 0; - _pictureId = -1; + _pictureId = kNoPictureId; } WebRtc_UWord32 diff --git a/src/modules/video_coding/main/source/session_info.h b/src/modules/video_coding/main/source/session_info.h index 3a1aa8eb3..11805791b 100644 --- a/src/modules/video_coding/main/source/session_info.h +++ b/src/modules/video_coding/main/source/session_info.h @@ -77,6 +77,8 @@ public: // returns highest seqNum, media or empty WebRtc_Word32 GetHighSeqNum() const; int PictureId() const; + int TemporalId() const; + int Tl0PicId() const; WebRtc_UWord32 PrepareForDecode(WebRtc_UWord8* ptrStartOfLayer, VideoCodecType codec);