| Index: webrtc/video/end_to_end_tests.cc
 | 
| diff --git a/webrtc/video/end_to_end_tests.cc b/webrtc/video/end_to_end_tests.cc
 | 
| index 659af2f137454d8b5e1b7e4deec4e6bdc834b1d9..38edce3f1a95c847218274cbe98ef1de923aaf5e 100644
 | 
| --- a/webrtc/video/end_to_end_tests.cc
 | 
| +++ b/webrtc/video/end_to_end_tests.cc
 | 
| @@ -22,6 +22,7 @@
 | 
|  #include "webrtc/frame_callback.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
 | 
| +#include "webrtc/modules/video_coding/codecs/h264/include/h264.h"
 | 
|  #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
 | 
|  #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
 | 
|  #include "webrtc/modules/video_coding/include/video_coding_defines.h"
 | 
| @@ -288,12 +289,15 @@ TEST_F(EndToEndTest, SendsAndReceivesVP9) {
 | 
|    RunBaseTest(&test, FakeNetworkPipe::Config());
 | 
|  }
 | 
|  
 | 
| +#if defined(WEBRTC_THIRD_PARTY_H264)
 | 
| +
 | 
|  TEST_F(EndToEndTest, SendsAndReceivesH264) {
 | 
|    class H264Observer : public test::EndToEndTest, public VideoRenderer {
 | 
|     public:
 | 
|      H264Observer()
 | 
|          : EndToEndTest(2 * kDefaultTimeoutMs),
 | 
| -          fake_encoder_(Clock::GetRealTimeClock()),
 | 
| +          encoder_(VideoEncoder::Create(VideoEncoder::kH264)),
 | 
| +          decoder_(H264Decoder::Create()),
 | 
|            frame_counter_(0) {}
 | 
|  
 | 
|      void PerformTest() override {
 | 
| @@ -307,9 +311,9 @@ TEST_F(EndToEndTest, SendsAndReceivesH264) {
 | 
|          VideoEncoderConfig* encoder_config) override {
 | 
|        send_config->rtp.nack.rtp_history_ms =
 | 
|            (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
 | 
| -      send_config->encoder_settings.encoder = &fake_encoder_;
 | 
| +      send_config->encoder_settings.encoder = encoder_.get();
 | 
|        send_config->encoder_settings.payload_name = "H264";
 | 
| -      send_config->encoder_settings.payload_type = kFakeSendPayloadType;
 | 
| +      send_config->encoder_settings.payload_type = 126;
 | 
|        encoder_config->streams[0].min_bitrate_bps = 50000;
 | 
|        encoder_config->streams[0].target_bitrate_bps =
 | 
|            encoder_config->streams[0].max_bitrate_bps = 2000000;
 | 
| @@ -320,7 +324,7 @@ TEST_F(EndToEndTest, SendsAndReceivesH264) {
 | 
|            send_config->encoder_settings.payload_type;
 | 
|        (*receive_configs)[0].decoders[0].payload_name =
 | 
|            send_config->encoder_settings.payload_name;
 | 
| -      (*receive_configs)[0].decoders[0].decoder = &fake_decoder_;
 | 
| +      (*receive_configs)[0].decoders[0].decoder = decoder_.get();
 | 
|      }
 | 
|  
 | 
|      void RenderFrame(const VideoFrame& video_frame,
 | 
| @@ -333,14 +337,16 @@ TEST_F(EndToEndTest, SendsAndReceivesH264) {
 | 
|      bool IsTextureSupported() const override { return false; }
 | 
|  
 | 
|     private:
 | 
| -    test::FakeH264Decoder fake_decoder_;
 | 
| -    test::FakeH264Encoder fake_encoder_;
 | 
| +    rtc::scoped_ptr<webrtc::VideoEncoder> encoder_;
 | 
| +    rtc::scoped_ptr<webrtc::VideoDecoder> decoder_;
 | 
|      int frame_counter_;
 | 
|    } test;
 | 
|  
 | 
|    RunBaseTest(&test, FakeNetworkPipe::Config());
 | 
|  }
 | 
|  
 | 
| +#endif  // defined(WEBRTC_THIRD_PARTY_H264)
 | 
| +
 | 
|  TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
 | 
|    class SyncRtcpObserver : public test::EndToEndTest {
 | 
|     public:
 | 
| 
 |