OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Implements the Demuxer interface using FFmpeg's libavformat. At this time | 5 // Implements the Demuxer interface using FFmpeg's libavformat. At this time |
6 // will support demuxing any audio/video format thrown at it. The streams | 6 // will support demuxing any audio/video format thrown at it. The streams |
7 // output mime types audio/x-ffmpeg and video/x-ffmpeg and include an integer | 7 // output mime types audio/x-ffmpeg and video/x-ffmpeg and include an integer |
8 // key FFmpegCodecID which contains the CodecID enumeration value. The CodecIDs | 8 // key FFmpegCodecID which contains the CodecID enumeration value. The CodecIDs |
9 // can be used to create and initialize the corresponding FFmpeg decoder. | 9 // can be used to create and initialize the corresponding FFmpeg decoder. |
10 // | 10 // |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 // Enqueues and takes ownership over the given AVPacket. | 62 // Enqueues and takes ownership over the given AVPacket. |
63 virtual void EnqueuePacket(AVPacket* packet); | 63 virtual void EnqueuePacket(AVPacket* packet); |
64 | 64 |
65 // Signals to empty the buffer queue and mark next packet as discontinuous. | 65 // Signals to empty the buffer queue and mark next packet as discontinuous. |
66 virtual void FlushBuffers(); | 66 virtual void FlushBuffers(); |
67 | 67 |
68 // Empties the queues and ignores any additional calls to Read(). | 68 // Empties the queues and ignores any additional calls to Read(). |
69 virtual void Stop(); | 69 virtual void Stop(); |
70 | 70 |
71 // Returns the duration of this stream. | 71 // Returns the duration of this stream. |
72 virtual base::TimeDelta duration() { return duration_; } | 72 virtual base::TimeDelta duration(); |
73 | 73 |
74 // DemuxerStream implementation. | 74 // DemuxerStream implementation. |
75 virtual const MediaFormat& media_format(); | 75 virtual const MediaFormat& media_format(); |
76 virtual void Read(Callback1<Buffer*>::Type* read_callback); | 76 virtual void Read(Callback1<Buffer*>::Type* read_callback); |
77 // Bitstream converter to convert input packet. | 77 // Bitstream converter to convert input packet. |
78 virtual void EnableBitstreamConverter(); | 78 virtual void EnableBitstreamConverter(); |
79 | 79 |
80 // AVStreamProvider implementation. | 80 // AVStreamProvider implementation. |
81 virtual AVStream* GetAVStream() { return stream_; } | 81 virtual AVStream* GetAVStream(); |
82 | 82 |
83 | 83 |
84 | 84 |
85 protected: | 85 protected: |
86 virtual void* QueryInterface(const char* interface_id); | 86 virtual void* QueryInterface(const char* interface_id); |
87 | 87 |
88 private: | 88 private: |
89 virtual ~FFmpegDemuxerStream(); | 89 virtual ~FFmpegDemuxerStream(); |
90 | 90 |
91 // Carries out enqueuing a pending read on the demuxer thread. | 91 // Carries out enqueuing a pending read on the demuxer thread. |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
220 | 220 |
221 size_t last_read_bytes_; | 221 size_t last_read_bytes_; |
222 int64 read_position_; | 222 int64 read_position_; |
223 | 223 |
224 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); | 224 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); |
225 }; | 225 }; |
226 | 226 |
227 } // namespace media | 227 } // namespace media |
228 | 228 |
229 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ | 229 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ |
OLD | NEW |