For TL(temporal layers) = 2, the alt-ref frame should not be used as a reference.
Correction for the last frame in the cycle. Review URL: https://webrtc-codereview.appspot.com/343015 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1479 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
0074187436
commit
20cd06123c
@ -63,7 +63,7 @@ bool TemporalLayers::ConfigureBitrates(int bitrateKbit,
|
||||
temporal_pattern_[4] = kTemporalUpdateLast;
|
||||
temporal_pattern_[5] = kTemporalUpdateGolden;
|
||||
temporal_pattern_[6] = kTemporalUpdateLast;
|
||||
temporal_pattern_[7] = kTemporalUpdateNone;
|
||||
temporal_pattern_[7] = kTemporalUpdateNoneNoRefAltref;
|
||||
break;
|
||||
case 3:
|
||||
temporal_ids_length_ = 4;
|
||||
@ -175,6 +175,9 @@ int TemporalLayers::EncodeFlags() {
|
||||
flags |= VP8_EFLAG_NO_UPD_GF;
|
||||
flags |= VP8_EFLAG_NO_UPD_LAST;
|
||||
break;
|
||||
case kTemporalUpdateNoneNoRefAltref:
|
||||
flags |= VP8_EFLAG_NO_REF_ARF;
|
||||
// Deliberately no break here.
|
||||
case kTemporalUpdateNone:
|
||||
flags |= VP8_EFLAG_NO_UPD_GF;
|
||||
flags |= VP8_EFLAG_NO_UPD_ARF;
|
||||
|
@ -35,6 +35,8 @@ class TemporalLayers {
|
||||
|
||||
private:
|
||||
enum TemporalReferences {
|
||||
// Second layer and last frame in cycle, for 2 layers.
|
||||
kTemporalUpdateNoneNoRefAltref = 6,
|
||||
// Highest enhancement layer.
|
||||
kTemporalUpdateNone = 5,
|
||||
// Second enhancement layer.
|
||||
|
@ -40,6 +40,11 @@ enum {
|
||||
VP8_EFLAG_NO_UPD_ARF |
|
||||
VP8_EFLAG_NO_UPD_LAST |
|
||||
VP8_EFLAG_NO_UPD_ENTROPY,
|
||||
kTemporalUpdateNoneNoRefAltRef = VP8_EFLAG_NO_REF_ARF |
|
||||
VP8_EFLAG_NO_UPD_GF |
|
||||
VP8_EFLAG_NO_UPD_ARF |
|
||||
VP8_EFLAG_NO_UPD_LAST |
|
||||
VP8_EFLAG_NO_UPD_ENTROPY,
|
||||
};
|
||||
|
||||
TEST(TemporalLayersTest, 2Layers) {
|
||||
@ -55,7 +60,7 @@ TEST(TemporalLayersTest, 2Layers) {
|
||||
kTemporalUpdateLast,
|
||||
kTemporalUpdateGolden,
|
||||
kTemporalUpdateLast,
|
||||
kTemporalUpdateNone,
|
||||
kTemporalUpdateNoneNoRefAltRef,
|
||||
kTemporalUpdateLast,
|
||||
kTemporalUpdateGoldenWithoutDependency,
|
||||
kTemporalUpdateLast,
|
||||
@ -63,7 +68,7 @@ TEST(TemporalLayersTest, 2Layers) {
|
||||
kTemporalUpdateLast,
|
||||
kTemporalUpdateGolden,
|
||||
kTemporalUpdateLast,
|
||||
kTemporalUpdateNone
|
||||
kTemporalUpdateNoneNoRefAltRef
|
||||
};
|
||||
int expected_temporal_idx[16] =
|
||||
{ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
|
||||
|
Loading…
x
Reference in New Issue
Block a user