| 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 |