OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 #include "base/compiler_specific.h" | 5 #include "base/compiler_specific.h" |
6 #include "media/base/filter_host_impl.h" | 6 #include "media/base/filter_host_impl.h" |
7 #include "media/base/media_format.h" | 7 #include "media/base/media_format.h" |
8 #include "media/base/pipeline_impl.h" | 8 #include "media/base/pipeline_impl.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 message_loop()->Quit(); | 411 message_loop()->Quit(); |
412 } | 412 } |
413 } | 413 } |
414 | 414 |
415 template <class Decoder, class Renderer> | 415 template <class Decoder, class Renderer> |
416 void PipelineThread::Render(FilterFactory* filter_factory, Demuxer* demuxer) { | 416 void PipelineThread::Render(FilterFactory* filter_factory, Demuxer* demuxer) { |
417 DCHECK(PipelineOk()); | 417 DCHECK(PipelineOk()); |
418 const std::string major_mime_type = Decoder::major_mime_type(); | 418 const std::string major_mime_type = Decoder::major_mime_type(); |
419 const int num_outputs = demuxer->GetNumberOfStreams(); | 419 const int num_outputs = demuxer->GetNumberOfStreams(); |
420 for (int i = 0; i < num_outputs; ++i) { | 420 for (int i = 0; i < num_outputs; ++i) { |
421 DemuxerStream* demuxer_stream = demuxer->GetStream(i); | 421 scoped_refptr<DemuxerStream> demuxer_stream = demuxer->GetStream(i); |
422 const MediaFormat* stream_format = demuxer_stream->GetMediaFormat(); | 422 const MediaFormat* stream_format = demuxer_stream->GetMediaFormat(); |
423 std::string value; | 423 std::string value; |
424 if (stream_format->GetAsString(MediaFormat::kMimeType, &value) && | 424 if (stream_format->GetAsString(MediaFormat::kMimeType, &value) && |
425 0 == value.compare(0, major_mime_type.length(), major_mime_type)) { | 425 0 == value.compare(0, major_mime_type.length(), major_mime_type)) { |
426 scoped_refptr<Decoder> decoder = | 426 scoped_refptr<Decoder> decoder = |
427 CreateFilter<Decoder, DemuxerStream>(filter_factory, demuxer_stream); | 427 CreateFilter<Decoder, DemuxerStream>(filter_factory, demuxer_stream); |
428 if (PipelineOk()) { | 428 if (PipelineOk()) { |
429 DCHECK(decoder); | 429 DCHECK(decoder); |
430 CreateFilter<Renderer, Decoder>(filter_factory, decoder); | 430 CreateFilter<Renderer, Decoder>(filter_factory, decoder); |
431 } | 431 } |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
554 | 554 |
555 // Called as a result of destruction of the thread. | 555 // Called as a result of destruction of the thread. |
556 void PipelineThread::WillDestroyCurrentMessageLoop() { | 556 void PipelineThread::WillDestroyCurrentMessageLoop() { |
557 while (!filter_hosts_.empty()) { | 557 while (!filter_hosts_.empty()) { |
558 delete filter_hosts_.back(); | 558 delete filter_hosts_.back(); |
559 filter_hosts_.pop_back(); | 559 filter_hosts_.pop_back(); |
560 } | 560 } |
561 } | 561 } |
562 | 562 |
563 } // namespace media | 563 } // namespace media |
OLD | NEW |