video_coding: Adding temporal layer info support to receive side

Review URL: http://webrtc-codereview.appspot.com/303005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1134 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
mikhal@webrtc.org
2011-12-08 19:04:47 +00:00
parent 832d7c6000
commit f5ee1dc3e6
4 changed files with 26 additions and 3 deletions

View File

@@ -8,7 +8,6 @@
* be found in the AUTHORS file in the root of the source tree. * be found in the AUTHORS file in the root of the source tree.
*/ */
#include "../../../../engine_configurations.h"
#include "frame_buffer.h" #include "frame_buffer.h"
#include "packet.h" #include "packet.h"
@@ -73,6 +72,14 @@ int VCMFrameBuffer::PictureId() const {
return _sessionInfo.PictureId(); return _sessionInfo.PictureId();
} }
int VCMFrameBuffer::TemporalId() const {
return _sessionInfo.TemporalId();
}
int VCMFrameBuffer::Tl0PicId() const {
return _sessionInfo.Tl0PicId();
}
bool bool
VCMFrameBuffer::IsSessionComplete() const VCMFrameBuffer::IsSessionComplete() const
{ {

View File

@@ -57,6 +57,8 @@ public:
WebRtc_Word32 GetHighSeqNum() const; WebRtc_Word32 GetHighSeqNum() const;
int PictureId() const; int PictureId() const;
int TemporalId() const;
int Tl0PicId() const;
// Set counted status (as counted by JB or not) // Set counted status (as counted by JB or not)
void SetCountedFrame(bool frameCounted); void SetCountedFrame(bool frameCounted);

View File

@@ -28,7 +28,7 @@ VCMSessionInfo::VCMSessionInfo():
_emptySeqNumHigh(-1), _emptySeqNumHigh(-1),
_markerSeqNum(-1), _markerSeqNum(-1),
_packetsNotDecodable(0), _packetsNotDecodable(0),
_pictureId(-1) _pictureId(kNoPictureId)
{ {
} }
@@ -61,6 +61,18 @@ int VCMSessionInfo::PictureId() const {
return _pictureId; 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 void
VCMSessionInfo::Reset() { VCMSessionInfo::Reset() {
for (int i = 0; i <= _highestPacketIndex; ++i) for (int i = 0; i <= _highestPacketIndex; ++i)
@@ -78,7 +90,7 @@ VCMSessionInfo::Reset() {
_highestPacketIndex = 0; _highestPacketIndex = 0;
_markerSeqNum = -1; _markerSeqNum = -1;
_packetsNotDecodable = 0; _packetsNotDecodable = 0;
_pictureId = -1; _pictureId = kNoPictureId;
} }
WebRtc_UWord32 WebRtc_UWord32

View File

@@ -77,6 +77,8 @@ public:
// returns highest seqNum, media or empty // returns highest seqNum, media or empty
WebRtc_Word32 GetHighSeqNum() const; WebRtc_Word32 GetHighSeqNum() const;
int PictureId() const; int PictureId() const;
int TemporalId() const;
int Tl0PicId() const;
WebRtc_UWord32 PrepareForDecode(WebRtc_UWord8* ptrStartOfLayer, WebRtc_UWord32 PrepareForDecode(WebRtc_UWord8* ptrStartOfLayer,
VideoCodecType codec); VideoCodecType codec);