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" | |
46 | 45 |
47 // FFmpeg forward declarations. | 46 // FFmpeg forward declarations. |
48 struct AVFormatContext; | 47 struct AVFormatContext; |
49 struct AVPacket; | 48 struct AVPacket; |
50 struct AVRational; | 49 struct AVRational; |
51 struct AVStream; | 50 struct AVStream; |
52 | 51 |
53 namespace media { | 52 namespace media { |
54 | 53 |
55 class MediaLog; | 54 class MediaLog; |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 Ranges<base::TimeDelta> buffered_ranges_; | 184 Ranges<base::TimeDelta> buffered_ranges_; |
186 VideoRotation video_rotation_; | 185 VideoRotation video_rotation_; |
187 bool is_enabled_; | 186 bool is_enabled_; |
188 bool waiting_for_keyframe_; | 187 bool waiting_for_keyframe_; |
189 bool aborted_; | 188 bool aborted_; |
190 | 189 |
191 DecoderBufferQueue buffer_queue_; | 190 DecoderBufferQueue buffer_queue_; |
192 ReadCB read_cb_; | 191 ReadCB read_cb_; |
193 StreamStatusChangeCB stream_status_change_cb_; | 192 StreamStatusChangeCB stream_status_change_cb_; |
194 | 193 |
195 #if BUILDFLAG(USE_PROPRIETARY_CODECS) | 194 #if defined(USE_PROPRIETARY_CODECS) |
196 std::unique_ptr<FFmpegBitstreamConverter> bitstream_converter_; | 195 std::unique_ptr<FFmpegBitstreamConverter> bitstream_converter_; |
197 #endif | 196 #endif |
198 | 197 |
199 std::string encryption_key_id_; | 198 std::string encryption_key_id_; |
200 bool fixup_negative_timestamps_; | 199 bool fixup_negative_timestamps_; |
201 | 200 |
202 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerStream); | 201 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxerStream); |
203 }; | 202 }; |
204 | 203 |
205 class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { | 204 class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 base::WeakPtr<FFmpegDemuxer> weak_this_; | 365 base::WeakPtr<FFmpegDemuxer> weak_this_; |
367 base::WeakPtrFactory<FFmpegDemuxer> cancel_pending_seek_factory_; | 366 base::WeakPtrFactory<FFmpegDemuxer> cancel_pending_seek_factory_; |
368 base::WeakPtrFactory<FFmpegDemuxer> weak_factory_; | 367 base::WeakPtrFactory<FFmpegDemuxer> weak_factory_; |
369 | 368 |
370 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); | 369 DISALLOW_COPY_AND_ASSIGN(FFmpegDemuxer); |
371 }; | 370 }; |
372 | 371 |
373 } // namespace media | 372 } // namespace media |
374 | 373 |
375 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ | 374 #endif // MEDIA_FILTERS_FFMPEG_DEMUXER_H_ |
OLD | NEW |