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

Side by Side Diff: media/tools/player_x11/player_x11.cc

Issue 23702007: Render inband text tracks in the media pipeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: modified ffmpeg demuxer unittest Created 7 years, 1 month 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 (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 <signal.h> 5 #include <signal.h>
6 6
7 #include <iostream> // NOLINT 7 #include <iostream> // NOLINT
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 &GlVideoRenderer::Paint, new GlVideoRenderer(g_display, g_window)); 272 &GlVideoRenderer::Paint, new GlVideoRenderer(g_display, g_window));
273 } else { 273 } else {
274 paint_cb = base::Bind( 274 paint_cb = base::Bind(
275 &X11VideoRenderer::Paint, new X11VideoRenderer(g_display, g_window)); 275 &X11VideoRenderer::Paint, new X11VideoRenderer(g_display, g_window));
276 } 276 }
277 277
278 scoped_ptr<media::DataSource> data_source(new DataSourceLogger( 278 scoped_ptr<media::DataSource> data_source(new DataSourceLogger(
279 CreateDataSource(filename), command_line->HasSwitch("streaming"))); 279 CreateDataSource(filename), command_line->HasSwitch("streaming")));
280 scoped_ptr<media::Demuxer> demuxer(new media::FFmpegDemuxer( 280 scoped_ptr<media::Demuxer> demuxer(new media::FFmpegDemuxer(
281 media_thread.message_loop_proxy(), data_source.get(), 281 media_thread.message_loop_proxy(), data_source.get(),
282 base::Bind(&NeedKey), new media::MediaLog())); 282 base::Bind(&NeedKey), true, new media::MediaLog()));
283 283
284 media::Pipeline pipeline(media_thread.message_loop_proxy(), 284 media::Pipeline pipeline(media_thread.message_loop_proxy(),
285 new media::MediaLog()); 285 new media::MediaLog());
286 InitPipeline(&pipeline, media_thread.message_loop_proxy(), demuxer.get(), 286 InitPipeline(&pipeline, media_thread.message_loop_proxy(), demuxer.get(),
287 paint_cb, command_line->HasSwitch("audio"), &message_loop); 287 paint_cb, command_line->HasSwitch("audio"), &message_loop);
288 288
289 // Main loop of the application. 289 // Main loop of the application.
290 g_running = true; 290 g_running = true;
291 291
292 message_loop.PostTask(FROM_HERE, base::Bind( 292 message_loop.PostTask(FROM_HERE, base::Bind(
293 &PeriodicalUpdate, base::Unretained(&pipeline), &message_loop, 293 &PeriodicalUpdate, base::Unretained(&pipeline), &message_loop,
294 !pipeline.HasVideo())); 294 !pipeline.HasVideo()));
295 message_loop.Run(); 295 message_loop.Run();
296 296
297 // Cleanup tasks. 297 // Cleanup tasks.
298 media_thread.Stop(); 298 media_thread.Stop();
299 299
300 // Release callback which releases video renderer. Do this before cleaning up 300 // Release callback which releases video renderer. Do this before cleaning up
301 // X below since the video renderer has some X cleanup duties as well. 301 // X below since the video renderer has some X cleanup duties as well.
302 paint_cb.Reset(); 302 paint_cb.Reset();
303 303
304 XDestroyWindow(g_display, g_window); 304 XDestroyWindow(g_display, g_window);
305 XCloseDisplay(g_display); 305 XCloseDisplay(g_display);
306 g_audio_manager = NULL; 306 g_audio_manager = NULL;
307 307
308 return 0; 308 return 0;
309 } 309 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698