• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/message_loop/message_loop.h"
6 #include "media/base/audio_decoder_config.h"
7 #include "media/base/demuxer_stream.h"
8 #include "media/base/video_decoder_config.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 
11 namespace media {
12 
13 // Fake implementation of the DemuxerStream.  These are the stream objects
14 // we pass to the text renderer object when streams are added and removed.
15 class FakeTextTrackStream : public DemuxerStream {
16  public:
17   FakeTextTrackStream();
18   virtual ~FakeTextTrackStream();
19 
20   // DemuxerStream implementation.
21   virtual void Read(const ReadCB&) OVERRIDE;
22   MOCK_METHOD0(audio_decoder_config, AudioDecoderConfig());
23   MOCK_METHOD0(video_decoder_config, VideoDecoderConfig());
24   virtual Type type() OVERRIDE;
25   MOCK_METHOD0(EnableBitstreamConverter, void());
26   virtual bool SupportsConfigChanges();
27 
28   void SatisfyPendingRead(const base::TimeDelta& start,
29                           const base::TimeDelta& duration,
30                           const std::string& id,
31                           const std::string& content,
32                           const std::string& settings);
33   void AbortPendingRead();
34   void SendEosNotification();
35 
36   void Stop();
37 
38   MOCK_METHOD0(OnRead, void());
39 
40  private:
41   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
42   ReadCB read_cb_;
43   bool stopping_;
44 
45   DISALLOW_COPY_AND_ASSIGN(FakeTextTrackStream);
46 };
47 
48 }  // namespace media
49