Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(278)

Side by Side Diff: chromecast/media/cma/test/frame_segmenter_for_test.cc

Issue 2491043003: MediaResource refactoring to support multiple streams (Closed)
Patch Set: Added a TODO about DemuxerStream enabled/set_enabled methods Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chromecast/media/cma/test/frame_segmenter_for_test.h" 5 #include "chromecast/media/cma/test/frame_segmenter_for_test.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 ::media::FFmpegDemuxer demuxer( 316 ::media::FFmpegDemuxer demuxer(
317 base::ThreadTaskRunnerHandle::Get(), &data_source, 317 base::ThreadTaskRunnerHandle::Get(), &data_source,
318 base::Bind(&OnEncryptedMediaInitData), base::Bind(&OnMediaTracksUpdated), 318 base::Bind(&OnEncryptedMediaInitData), base::Bind(&OnMediaTracksUpdated),
319 new ::media::MediaLog()); 319 new ::media::MediaLog());
320 ::media::WaitableMessageLoopEvent init_event; 320 ::media::WaitableMessageLoopEvent init_event;
321 demuxer.Initialize(&fake_demuxer_host, 321 demuxer.Initialize(&fake_demuxer_host,
322 init_event.GetPipelineStatusCB(), 322 init_event.GetPipelineStatusCB(),
323 false); 323 false);
324 init_event.RunAndWaitForStatus(::media::PIPELINE_OK); 324 init_event.RunAndWaitForStatus(::media::PIPELINE_OK);
325 325
326 ::media::DemuxerStream* stream = demuxer.GetStream( 326 auto stream_type =
327 audio ? ::media::DemuxerStream::AUDIO : ::media::DemuxerStream::VIDEO); 327 audio ? ::media::DemuxerStream::AUDIO : ::media::DemuxerStream::VIDEO;
328 ::media::DemuxerStream* stream = demuxer.GetFirstStream(stream_type);
328 CHECK(stream); 329 CHECK(stream);
329 330
330 DemuxResult demux_result; 331 DemuxResult demux_result;
331 if (audio) { 332 if (audio) {
332 demux_result.audio_config = stream->audio_decoder_config(); 333 demux_result.audio_config = stream->audio_decoder_config();
333 } else { 334 } else {
334 demux_result.video_config = stream->video_decoder_config(); 335 demux_result.video_config = stream->video_decoder_config();
335 } 336 }
336 337
337 bool end_of_stream = false; 338 bool end_of_stream = false;
338 while (!end_of_stream) { 339 while (!end_of_stream) {
339 base::RunLoop run_loop; 340 base::RunLoop run_loop;
340 stream->Read(base::Bind(&OnNewBuffer, 341 stream->Read(base::Bind(&OnNewBuffer,
341 base::Unretained(&demux_result.frames), 342 base::Unretained(&demux_result.frames),
342 run_loop.QuitClosure())); 343 run_loop.QuitClosure()));
343 run_loop.Run(); 344 run_loop.Run();
344 CHECK(!demux_result.frames.empty()); 345 CHECK(!demux_result.frames.empty());
345 end_of_stream = demux_result.frames.back()->end_of_stream(); 346 end_of_stream = demux_result.frames.back()->end_of_stream();
346 } 347 }
347 348
348 demuxer.Stop(); 349 demuxer.Stop();
349 return demux_result; 350 return demux_result;
350 } 351 }
351 352
352 } // namespace media 353 } // namespace media
353 } // namespace chromecast 354 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/base/demuxer_stream_for_test.cc ('k') | chromecast/media/service/cast_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698