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:
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user