| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "media/filters/chunk_demuxer_factory.h" | |
| 6 | |
| 7 #include "base/bind.h" | |
| 8 #include "base/message_loop.h" | |
| 9 #include "media/filters/chunk_demuxer.h" | |
| 10 | |
| 11 namespace media { | |
| 12 | |
| 13 static void InitDone(MessageLoop* message_loop, | |
| 14 const DemuxerFactory::BuildCallback& cb, | |
| 15 scoped_refptr<Demuxer> demuxer, | |
| 16 PipelineStatus status) { | |
| 17 if (status != PIPELINE_OK) | |
| 18 demuxer = NULL; | |
| 19 message_loop->PostTask(FROM_HERE, base::Bind(cb, status, demuxer)); | |
| 20 } | |
| 21 | |
| 22 ChunkDemuxerFactory::ChunkDemuxerFactory(ChunkDemuxerClient* client) | |
| 23 : client_(client) { | |
| 24 DCHECK(client_); | |
| 25 } | |
| 26 | |
| 27 ChunkDemuxerFactory::~ChunkDemuxerFactory() {} | |
| 28 | |
| 29 void ChunkDemuxerFactory::Build(const std::string& url, | |
| 30 const BuildCallback& cb) { | |
| 31 scoped_refptr<ChunkDemuxer> demuxer(new ChunkDemuxer(client_)); | |
| 32 | |
| 33 // Call Init() on demuxer. Note that ownership is being passed to the | |
| 34 // callback here. | |
| 35 demuxer->Init(base::Bind(&InitDone, MessageLoop::current(), cb, demuxer)); | |
| 36 } | |
| 37 | |
| 38 } // namespace media | |
| OLD | NEW |