Home | History | Annotate | Download | only in video

Lines Matching refs:vp9

30 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
1533 config.codecSpecific.VP9.numberOfTemporalLayers);
1545 EXPECT_EQ(0, memcmp(&config.codecSpecific.VP9, &encoder_settings,
1555 VideoCodecConfigObserver<VideoCodecVP9> test(kVideoCodecVP9, "VP9");
1869 virtual void InspectHeader(const RTPVideoHeaderVP9& vp9) = 0;
1880 send_config->encoder_settings.payload_name = "VP9";
1890 EXPECT_TRUE(Wait()) << "Test timed out waiting for VP9 packet, num frames "
1911 VerifyCommonHeader(parsed.type.Video.codecHeader.VP9);
1914 InspectHeader(parsed.type.Video.codecHeader.VP9);
1921 last_vp9_ = parsed.type.Video.codecHeader.VP9;
1927 bool ContinuousPictureId(const RTPVideoHeaderVP9& vp9) const {
1928 if (last_vp9_.picture_id > vp9.picture_id) {
1929 return vp9.picture_id == 0; // Wrap.
1931 return vp9.picture_id == last_vp9_.picture_id + 1;
1935 void VerifySpatialIdxWithinFrame(const RTPVideoHeaderVP9& vp9) const {
1936 bool new_layer = vp9.spatial_idx != last_vp9_.spatial_idx;
1937 EXPECT_EQ(new_layer, vp9.beginning_of_frame);
1940 vp9.spatial_idx);
1943 void VerifyFixedTemporalLayerStructure(const RTPVideoHeaderVP9& vp9,
1947 VerifyTemporalLayerStructure0(vp9);
1950 VerifyTemporalLayerStructure1(vp9);
1953 VerifyTemporalLayerStructure2(vp9);
1956 VerifyTemporalLayerStructure3(vp9);
1963 void VerifyTemporalLayerStructure0(const RTPVideoHeaderVP9& vp9) const {
1964 EXPECT_EQ(kNoTl0PicIdx, vp9.tl0_pic_idx);
1965 EXPECT_EQ(kNoTemporalIdx, vp9.temporal_idx); // no tid
1966 EXPECT_FALSE(vp9.temporal_up_switch);
1969 void VerifyTemporalLayerStructure1(const RTPVideoHeaderVP9& vp9) const {
1970 EXPECT_NE(kNoTl0PicIdx, vp9.tl0_pic_idx);
1971 EXPECT_EQ(0, vp9.temporal_idx); // 0,0,0,...
1972 EXPECT_FALSE(vp9.temporal_up_switch);
1975 void VerifyTemporalLayerStructure2(const RTPVideoHeaderVP9& vp9) const {
1976 EXPECT_NE(kNoTl0PicIdx, vp9.tl0_pic_idx);
1977 EXPECT_GE(vp9.temporal_idx, 0); // 0,1,0,1,... (tid reset on I-frames).
1978 EXPECT_LE(vp9.temporal_idx, 1);
1979 EXPECT_EQ(vp9.temporal_idx > 0, vp9.temporal_up_switch);
1980 if (IsNewPictureId(vp9)) {
1982 (!vp9.inter_pic_predicted || last_vp9_.temporal_idx == 1) ? 0 : 1;
1983 EXPECT_EQ(expected_tid, vp9.temporal_idx);
1987 void VerifyTemporalLayerStructure3(const RTPVideoHeaderVP9& vp9) const {
1988 EXPECT_NE(kNoTl0PicIdx, vp9.tl0_pic_idx);
1989 EXPECT_GE(vp9.temporal_idx, 0); // 0,2,1,2,... (tid reset on I-frames).
1990 EXPECT_LE(vp9.temporal_idx, 2);
1991 if (IsNewPictureId(vp9) && vp9.inter_pic_predicted) {
1992 EXPECT_NE(vp9.temporal_idx, last_vp9_.temporal_idx);
1993 switch (vp9.temporal_idx) {
1996 EXPECT_FALSE(vp9.temporal_up_switch);
2000 EXPECT_TRUE(vp9.temporal_up_switch);
2003 EXPECT_EQ(last_vp9_.temporal_idx == 0, vp9.temporal_up_switch);
2009 void VerifyTl0Idx(const RTPVideoHeaderVP9& vp9) const {
2010 if (vp9.tl0_pic_idx == kNoTl0PicIdx)
2014 if (vp9.temporal_idx == 0)
2016 EXPECT_EQ(expected_tl0_idx, vp9.tl0_pic_idx);
2019 bool IsNewPictureId(const RTPVideoHeaderVP9& vp9) const {
2020 return frames_sent_ > 0 && (vp9.picture_id != last_vp9_.picture_id);
2040 void VerifyCommonHeader(const RTPVideoHeaderVP9& vp9) const {
2041 EXPECT_EQ(kMaxTwoBytePictureId, vp9.max_picture_id); // M:1
2042 EXPECT_NE(kNoPictureId, vp9.picture_id); // I:1
2043 EXPECT_EQ(vp9_settings_.flexibleMode, vp9.flexible_mode); // F
2044 EXPECT_GE(vp9.spatial_idx, 0); // S
2045 EXPECT_LT(vp9.spatial_idx, vp9_settings_.numberOfSpatialLayers);
2046 if (vp9.ss_data_available) // V
2047 VerifySsData(vp9);
2050 EXPECT_FALSE(vp9.inter_pic_predicted); // P
2052 if (!vp9.inter_pic_predicted) {
2053 EXPECT_TRUE(vp9.temporal_idx == 0 || vp9.temporal_idx == kNoTemporalIdx);
2054 EXPECT_FALSE(vp9.temporal_up_switch);
2073 void VerifySsData(const RTPVideoHeaderVP9& vp9) const {
2074 EXPECT_TRUE(vp9.ss_data_available); // V
2076 vp9.num_spatial_layers);
2077 EXPECT_TRUE(vp9.spatial_layer_resolution_present); // Y:1
2080 for (int i = vp9.num_spatial_layers - 1; i >= 0; --i) {
2081 EXPECT_EQ(expected_width, vp9.width[i]); // WIDTH
2082 EXPECT_EQ(expected_height, vp9.height[i]); // HEIGHT
2090 const RTPVideoHeaderVP9& vp9 = video.codecHeader.VP9;
2098 EXPECT_EQ(last_vp9_.picture_id, vp9.picture_id);
2099 EXPECT_EQ(last_vp9_.temporal_idx, vp9.temporal_idx);
2100 EXPECT_EQ(last_vp9_.tl0_pic_idx, vp9.tl0_pic_idx);
2101 VerifySpatialIdxWithinFrame(vp9);
2105 EXPECT_TRUE(vp9.beginning_of_frame);
2112 EXPECT_TRUE(ContinuousPictureId(vp9));
2113 VerifyTl0Idx(vp9);
2184 void InspectHeader(const RTPVideoHeaderVP9& vp9) override {
2185 bool ss_data_expected = !vp9.inter_pic_predicted &&
2186 vp9.beginning_of_frame && vp9.spatial_idx == 0;
2187 EXPECT_EQ(ss_data_expected, vp9.ss_data_available);
2188 EXPECT_EQ(vp9.spatial_idx > 0, vp9.inter_layer_predicted); // D
2189 EXPECT_EQ(!vp9.inter_pic_predicted,
2192 if (IsNewPictureId(vp9)) {
2193 EXPECT_EQ(0, vp9.spatial_idx);
2197 VerifyFixedTemporalLayerStructure(vp9,