OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 24 matching lines...) Expand all Loading... |
35 #include "base/threading/thread.h" | 35 #include "base/threading/thread.h" |
36 #include "media/base/audio_decoder_config.h" | 36 #include "media/base/audio_decoder_config.h" |
37 #include "media/base/decoder_buffer.h" | 37 #include "media/base/decoder_buffer.h" |
38 #include "media/base/decoder_buffer_queue.h" | 38 #include "media/base/decoder_buffer_queue.h" |
39 #include "media/base/demuxer.h" | 39 #include "media/base/demuxer.h" |
40 #include "media/base/pipeline_status.h" | 40 #include "media/base/pipeline_status.h" |
41 #include "media/base/text_track_config.h" | 41 #include "media/base/text_track_config.h" |
42 #include "media/base/video_decoder_config.h" | 42 #include "media/base/video_decoder_config.h" |
43 #include "media/ffmpeg/ffmpeg_deleters.h" | 43 #include "media/ffmpeg/ffmpeg_deleters.h" |
44 #include "media/filters/blocking_url_protocol.h" | 44 #include "media/filters/blocking_url_protocol.h" |
| 45 #include "media/media_features.h" |
45 | 46 |
46 // FFmpeg forward declarations. | 47 // FFmpeg forward declarations. |
47 struct AVFormatContext; | 48 struct AVFormatContext; |
48 struct AVPacket; | 49 struct AVPacket; |
49 struct AVRational; | 50 struct AVRational; |
50 struct AVStream; | 51 struct AVStream; |
51 | 52 |
52 namespace media { | 53 namespace media { |
53 | 54 |
54 class MediaLog; | 55 class MediaLog; |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 Ranges<base::TimeDelta> buffered_ranges_; | 185 Ranges<base::TimeDelta> buffered_ranges_; |
185 VideoRotation video_rotation_; | 186 VideoRotation video_rotation_; |
186 bool is_enabled_; | 187 bool is_enabled_; |
187 bool waiting_for_keyframe_; | 188 bool waiting_for_keyframe_; |
188 bool aborted_; | 189 bool aborted_; |
189 | 190 |
190 DecoderBufferQueue buffer_queue_; | 191 DecoderBufferQueue buffer_queue_; |
191 ReadCB read_cb_; | 192 ReadCB read_cb_; |
192 StreamStatusChangeCB stream_status_change_cb_; | 193 StreamStatusChangeCB stream_status_change_cb_; |
193 | 194 |
194 #if defined(USE_PROPRIETARY_CODECS) | 195 #if BUILDFLAG(USE_PROPRIETARY_CODECS) |
195 std::unique_ptr<FFmpegBitstreamConverter> bitstream_converter_; | 196 std::unique_ptr<FFmpegBitstreamConverter> bitstream_converter_; |
196 #endif | 197 #endif |
197 | 198 |
198 std::string encryption_key_id_; | 199 std::string encryption_key_id_; |
199 bool fixup_negative_timestamps_; | 200 bool fixup_negative_timestamps_; |
200 | 201 |
201 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerStream); | 202 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerStream); |
202 }; | 203 }; |
203 | 204 |
204 class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { | 205 class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 base::WeakPtr<FFmpegDemuxer> weak_this_; | 369 base::WeakPtr<FFmpegDemuxer> weak_this_; |
369 base::WeakPtrFactory<FFmpegDemuxer> cancel_pending_seek_factory_; | 370 base::WeakPtrFactory<FFmpegDemuxer> cancel_pending_seek_factory_; |
370 base::WeakPtrFactory<FFmpegDemuxer> weak_factory_; | 371 base::WeakPtrFactory<FFmpegDemuxer> weak_factory_; |
371 | 372 |
372 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); | 373 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); |
373 }; | 374 }; |
374 | 375 |
375 } // namespace media | 376 } // namespace media |
376 | 377 |
377 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ | 378 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ |
OLD | NEW |