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 // This standalone binary is a helper for diagnosing seek behavior of the | 5 // This standalone binary is a helper for diagnosing seek behavior of the |
6 // demuxer setup in media/ code. It answers the question: "if I ask the demuxer | 6 // demuxer setup in media/ code. It answers the question: "if I ask the demuxer |
7 // to Seek to X ms, where will it actually seek to? (necessitating | 7 // to Seek to X ms, where will it actually seek to? (necessitating |
8 // frame-dropping until the original seek target is reached)". Sample run: | 8 // frame-dropping until the original seek target is reached)". Sample run: |
9 // | 9 // |
10 // $ ./out/Debug/seek_tester .../LayoutTests/media/content/test.ogv 6300 | 10 // $ ./out/Debug/seek_tester .../LayoutTests/media/content/test.ogv 6300 |
11 // [0207/130327:INFO:seek_tester.cc(63)] Requested: 6123ms | 11 // [0207/130327:INFO:seek_tester.cc(63)] Requested: 6123ms |
12 // [0207/130327:INFO:seek_tester.cc(68)] audio seeked to: 5526ms | 12 // [0207/130327:INFO:seek_tester.cc(68)] audio seeked to: 5526ms |
13 // [0207/130327:INFO:seek_tester.cc(74)] video seeked to: 5577ms | 13 // [0207/130327:INFO:seek_tester.cc(74)] video seeked to: 5577ms |
14 | 14 |
15 | 15 |
16 #include "base/at_exit.h" | 16 #include "base/at_exit.h" |
17 #include "base/bind.h" | 17 #include "base/bind.h" |
18 #include "base/files/file_path.h" | 18 #include "base/files/file_path.h" |
19 #include "base/logging.h" | 19 #include "base/logging.h" |
20 #include "base/message_loop.h" | 20 #include "base/message_loop.h" |
21 #include "base/string_number_conversions.h" | 21 #include "base/strings/string_number_conversions.h" |
22 #include "media/base/media.h" | 22 #include "media/base/media.h" |
23 #include "media/filters/ffmpeg_demuxer.h" | 23 #include "media/filters/ffmpeg_demuxer.h" |
24 #include "media/filters/file_data_source.h" | 24 #include "media/filters/file_data_source.h" |
25 | 25 |
26 class DemuxerHostImpl : public media::DemuxerHost { | 26 class DemuxerHostImpl : public media::DemuxerHost { |
27 public: | 27 public: |
28 // DataSourceHost implementation. | 28 // DataSourceHost implementation. |
29 virtual void SetTotalBytes(int64 total_bytes) OVERRIDE {} | 29 virtual void SetTotalBytes(int64 total_bytes) OVERRIDE {} |
30 virtual void AddBufferedByteRange(int64 start, int64 end) OVERRIDE {} | 30 virtual void AddBufferedByteRange(int64 start, int64 end) OVERRIDE {} |
31 virtual void AddBufferedTimeRange(base::TimeDelta start, | 31 virtual void AddBufferedTimeRange(base::TimeDelta start, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 base::Bind(&TimestampExtractor, &video_seeked_to_ms, &loop)); | 99 base::Bind(&TimestampExtractor, &video_seeked_to_ms, &loop)); |
100 loop.Run(); | 100 loop.Run(); |
101 LOG(INFO) << " video seeked to: " << video_seeked_to_ms << "ms"; | 101 LOG(INFO) << " video seeked to: " << video_seeked_to_ms << "ms"; |
102 } | 102 } |
103 | 103 |
104 demuxer->Stop(base::Bind(&base::MessageLoop::Quit, base::Unretained(&loop))); | 104 demuxer->Stop(base::Bind(&base::MessageLoop::Quit, base::Unretained(&loop))); |
105 loop.Run(); | 105 loop.Run(); |
106 | 106 |
107 return 0; | 107 return 0; |
108 } | 108 } |
OLD | NEW |