| Index: webrtc/video/video_send_stream_tests.cc
 | 
| diff --git a/webrtc/video/video_send_stream_tests.cc b/webrtc/video/video_send_stream_tests.cc
 | 
| index e19dc48fabb87f4b5a82b5f315ba9d7e7fc94988..0f44c6fd5224f40386e14c5b05247e3966ed311f 100644
 | 
| --- a/webrtc/video/video_send_stream_tests.cc
 | 
| +++ b/webrtc/video/video_send_stream_tests.cc
 | 
| @@ -1793,7 +1793,10 @@ class VP9HeaderObeserver : public test::SendTest {
 | 
|    VP9HeaderObeserver()
 | 
|        : SendTest(VideoSendStreamTest::kDefaultTimeoutMs),
 | 
|          vp9_encoder_(VP9Encoder::Create()),
 | 
| -        vp9_settings_(VideoEncoder::GetDefaultVp9Settings()) {}
 | 
| +        vp9_settings_(VideoEncoder::GetDefaultVp9Settings()) {
 | 
| +    vp9_settings_.numberOfTemporalLayers = 1;
 | 
| +    vp9_settings_.numberOfSpatialLayers = 2;
 | 
| +  }
 | 
|  
 | 
|    virtual void ModifyConfigsHook(
 | 
|        VideoSendStream::Config* send_config,
 | 
| @@ -1809,6 +1812,7 @@ class VP9HeaderObeserver : public test::SendTest {
 | 
|                       std::vector<VideoReceiveStream::Config>* receive_configs,
 | 
|                       VideoEncoderConfig* encoder_config) override {
 | 
|      encoder_config->encoder_specific_settings = &vp9_settings_;
 | 
| +    encoder_config->content_type = VideoEncoderConfig::ContentType::kScreen;
 | 
|      send_config->encoder_settings.encoder = vp9_encoder_.get();
 | 
|      send_config->encoder_settings.payload_name = "VP9";
 | 
|      send_config->encoder_settings.payload_type = kVp9PayloadType;
 | 
| @@ -1857,10 +1861,17 @@ class VP9HeaderObeserver : public test::SendTest {
 | 
|    VideoCodecVP9 vp9_settings_;
 | 
|  };
 | 
|  
 | 
| -TEST_F(VideoSendStreamTest, VP9NoFlexMode) {
 | 
| -  class NoFlexibleMode : public VP9HeaderObeserver {
 | 
| +TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
 | 
| +  class FlexibleMode : public VP9HeaderObeserver {
 | 
| +    void ModifyConfigsHook(
 | 
| +        VideoSendStream::Config* send_config,
 | 
| +        std::vector<VideoReceiveStream::Config>* receive_configs,
 | 
| +        VideoEncoderConfig* encoder_config) override {
 | 
| +      vp9_settings_.flexibleMode = true;
 | 
| +    }
 | 
| +
 | 
|      void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
 | 
| -      EXPECT_FALSE(vp9videoHeader->flexible_mode);
 | 
| +      EXPECT_TRUE(vp9videoHeader->flexible_mode);
 | 
|        observation_complete_->Set();
 | 
|      }
 | 
|    } test;
 | 
| @@ -1868,7 +1879,7 @@ TEST_F(VideoSendStreamTest, VP9NoFlexMode) {
 | 
|    RunBaseTest(&test, FakeNetworkPipe::Config());
 | 
|  }
 | 
|  
 | 
| -TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
 | 
| +TEST_F(VideoSendStreamTest, VP9FlexModeHasPictureId) {
 | 
|    class FlexibleMode : public VP9HeaderObeserver {
 | 
|      void ModifyConfigsHook(
 | 
|          VideoSendStream::Config* send_config,
 | 
| @@ -1878,9 +1889,51 @@ TEST_F(VideoSendStreamTest, DISABLED_VP9FlexMode) {
 | 
|      }
 | 
|  
 | 
|      void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
 | 
| -      EXPECT_TRUE(vp9videoHeader->flexible_mode);
 | 
| +      EXPECT_NE(vp9videoHeader->picture_id, kNoPictureId);
 | 
|        observation_complete_->Set();
 | 
|      }
 | 
| +  } test;
 | 
| +
 | 
| +  RunBaseTest(&test, FakeNetworkPipe::Config());
 | 
| +}
 | 
| +
 | 
| +TEST_F(VideoSendStreamTest, VP9FlexModeRefCount) {
 | 
| +  class FlexibleMode : public VP9HeaderObeserver {
 | 
| +    void ModifyConfigsHook(
 | 
| +        VideoSendStream::Config* send_config,
 | 
| +        std::vector<VideoReceiveStream::Config>* receive_configs,
 | 
| +        VideoEncoderConfig* encoder_config) override {
 | 
| +      vp9_settings_.flexibleMode = true;
 | 
| +    }
 | 
| +
 | 
| +    void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
 | 
| +      EXPECT_TRUE(vp9videoHeader->flexible_mode);
 | 
| +      if (vp9videoHeader->inter_pic_predicted) {
 | 
| +        EXPECT_GT(vp9videoHeader->num_ref_pics, 0u);
 | 
| +        observation_complete_->Set();
 | 
| +      }
 | 
| +    }
 | 
| +  } test;
 | 
| +
 | 
| +  RunBaseTest(&test, FakeNetworkPipe::Config());
 | 
| +}
 | 
| +
 | 
| +TEST_F(VideoSendStreamTest, VP9FlexModeRefs) {
 | 
| +  class FlexibleMode : public VP9HeaderObeserver {
 | 
| +    void ModifyConfigsHook(
 | 
| +        VideoSendStream::Config* send_config,
 | 
| +        std::vector<VideoReceiveStream::Config>* receive_configs,
 | 
| +        VideoEncoderConfig* encoder_config) override {
 | 
| +      vp9_settings_.flexibleMode = true;
 | 
| +    }
 | 
| +
 | 
| +    void InspectHeader(RTPVideoHeaderVP9* vp9videoHeader) override {
 | 
| +      EXPECT_TRUE(vp9videoHeader->flexible_mode);
 | 
| +      if (vp9videoHeader->inter_pic_predicted) {
 | 
| +        EXPECT_GT(vp9videoHeader->num_ref_pics, 0u);
 | 
| +        observation_complete_->Set();
 | 
| +      }
 | 
| +    }
 | 
|  
 | 
|    } test;
 | 
|  
 | 
| 
 |