| 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 #include "webkit/media/filter_helpers.h" |   5 #include "webkit/media/filter_helpers.h" | 
|   6  |   6  | 
|   7 #include "base/bind.h" |   7 #include "base/bind.h" | 
|   8 #include "media/base/filter_collection.h" |   8 #include "media/base/filter_collection.h" | 
|   9 #include "media/base/message_loop_factory.h" |   9 #include "media/base/message_loop_factory.h" | 
|  10 #include "media/filters/chunk_demuxer.h" |  10 #include "media/filters/chunk_demuxer.h" | 
|  11 #include "media/filters/dummy_demuxer.h" |  11 #include "media/filters/dummy_demuxer.h" | 
|  12 #include "media/filters/ffmpeg_audio_decoder.h" |  12 #include "media/filters/ffmpeg_audio_decoder.h" | 
|  13 #include "media/filters/ffmpeg_demuxer.h" |  13 #include "media/filters/ffmpeg_demuxer.h" | 
|  14 #include "media/filters/ffmpeg_video_decoder.h" |  14 #include "media/filters/ffmpeg_video_decoder.h" | 
|  15 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURL.h" |  15 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURL.h" | 
|  16 #include "webkit/media/media_stream_client.h" |  16 #include "webkit/media/media_stream_client.h" | 
|  17  |  17  | 
|  18 namespace webkit_media { |  18 namespace webkit_media { | 
|  19  |  19  | 
|  20 // Constructs and adds the default audio/video decoders to |filter_collection|. |  20 // Constructs and adds the default audio/video decoders to |filter_collection|. | 
|  21 static void AddDefaultDecodersToCollection( |  21 static void AddDefaultDecodersToCollection( | 
|  22     media::MessageLoopFactory* message_loop_factory, |  22     media::MessageLoopFactory* message_loop_factory, | 
|  23     media::FilterCollection* filter_collection, |  23     media::FilterCollection* filter_collection, | 
|  24     media::AesDecryptor* decryptor, |  24     media::Decryptor* decryptor, | 
|  25     scoped_refptr<media::FFmpegVideoDecoder>* ffmpeg_video_decoder) { |  25     scoped_refptr<media::FFmpegVideoDecoder>* ffmpeg_video_decoder) { | 
|  26   filter_collection->AddAudioDecoder(new media::FFmpegAudioDecoder( |  26   filter_collection->AddAudioDecoder(new media::FFmpegAudioDecoder( | 
|  27       base::Bind(&media::MessageLoopFactory::GetMessageLoop, |  27       base::Bind(&media::MessageLoopFactory::GetMessageLoop, | 
|  28                  base::Unretained(message_loop_factory), |  28                  base::Unretained(message_loop_factory), | 
|  29                  "AudioDecoderThread"))); |  29                  "AudioDecoderThread"))); | 
|  30   *ffmpeg_video_decoder = new media::FFmpegVideoDecoder( |  30   *ffmpeg_video_decoder = new media::FFmpegVideoDecoder( | 
|  31       base::Bind(&media::MessageLoopFactory::GetMessageLoop, |  31       base::Bind(&media::MessageLoopFactory::GetMessageLoop, | 
|  32                  base::Unretained(message_loop_factory), |  32                  base::Unretained(message_loop_factory), | 
|  33                  "VideoDecoderThread")); |  33                  "VideoDecoderThread")); | 
|  34   (*ffmpeg_video_decoder)->set_decryptor(decryptor); |  34   (*ffmpeg_video_decoder)->set_decryptor(decryptor); | 
| (...skipping 27 matching lines...) Expand all  Loading... | 
|  62  |  62  | 
|  63   return true; |  63   return true; | 
|  64 } |  64 } | 
|  65  |  65  | 
|  66 bool BuildMediaSourceCollection( |  66 bool BuildMediaSourceCollection( | 
|  67     const WebKit::WebURL& url, |  67     const WebKit::WebURL& url, | 
|  68     const WebKit::WebURL& media_source_url, |  68     const WebKit::WebURL& media_source_url, | 
|  69     media::ChunkDemuxerClient* client, |  69     media::ChunkDemuxerClient* client, | 
|  70     media::MessageLoopFactory* message_loop_factory, |  70     media::MessageLoopFactory* message_loop_factory, | 
|  71     media::FilterCollection* filter_collection, |  71     media::FilterCollection* filter_collection, | 
|  72     media::AesDecryptor* decryptor, |  72     media::Decryptor* decryptor, | 
|  73     scoped_refptr<media::FFmpegVideoDecoder>* video_decoder) { |  73     scoped_refptr<media::FFmpegVideoDecoder>* video_decoder) { | 
|  74   if (media_source_url.isEmpty() || url != media_source_url) |  74   if (media_source_url.isEmpty() || url != media_source_url) | 
|  75     return false; |  75     return false; | 
|  76  |  76  | 
|  77   filter_collection->SetDemuxer(new media::ChunkDemuxer(client)); |  77   filter_collection->SetDemuxer(new media::ChunkDemuxer(client)); | 
|  78  |  78  | 
|  79   AddDefaultDecodersToCollection(message_loop_factory, filter_collection, |  79   AddDefaultDecodersToCollection(message_loop_factory, filter_collection, | 
|  80                                  decryptor, video_decoder); |  80                                  decryptor, video_decoder); | 
|  81   return true; |  81   return true; | 
|  82 } |  82 } | 
|  83  |  83  | 
|  84 void BuildDefaultCollection( |  84 void BuildDefaultCollection( | 
|  85     const scoped_refptr<media::DataSource>& data_source, |  85     const scoped_refptr<media::DataSource>& data_source, | 
|  86     media::MessageLoopFactory* message_loop_factory, |  86     media::MessageLoopFactory* message_loop_factory, | 
|  87     media::FilterCollection* filter_collection, |  87     media::FilterCollection* filter_collection, | 
|  88     media::AesDecryptor* decryptor, |  88     media::Decryptor* decryptor, | 
|  89     scoped_refptr<media::FFmpegVideoDecoder>* video_decoder) { |  89     scoped_refptr<media::FFmpegVideoDecoder>* video_decoder) { | 
|  90   filter_collection->SetDemuxer(new media::FFmpegDemuxer( |  90   filter_collection->SetDemuxer(new media::FFmpegDemuxer( | 
|  91       message_loop_factory->GetMessageLoop("PipelineThread"), |  91       message_loop_factory->GetMessageLoop("PipelineThread"), | 
|  92       data_source)); |  92       data_source)); | 
|  93  |  93  | 
|  94   AddDefaultDecodersToCollection(message_loop_factory, filter_collection, |  94   AddDefaultDecodersToCollection(message_loop_factory, filter_collection, | 
|  95                                  decryptor, video_decoder); |  95                                  decryptor, video_decoder); | 
|  96 } |  96 } | 
|  97  |  97  | 
|  98 }  // webkit_media |  98 }  // webkit_media | 
| OLD | NEW |