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

Side by Side Diff: media/base/demuxer_perftest.cc

Issue 1735803002: Implemented passing media track info from ffmpeg into blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: wolenetz@ CR feedback + better track info extraction in ffmpeg Created 4 years, 9 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
« no previous file with comments | « media/base/demuxer.h ('k') | media/base/media_track.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/at_exit.h" 8 #include "base/at_exit.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "base/strings/string_number_conversions.h" 12 #include "base/strings/string_number_conversions.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "build/build_config.h" 14 #include "build/build_config.h"
15 #include "media/base/media.h" 15 #include "media/base/media.h"
16 #include "media/base/media_log.h" 16 #include "media/base/media_log.h"
17 #include "media/base/media_tracks.h"
17 #include "media/base/test_data_util.h" 18 #include "media/base/test_data_util.h"
18 #include "media/base/timestamp_constants.h" 19 #include "media/base/timestamp_constants.h"
19 #include "media/filters/ffmpeg_demuxer.h" 20 #include "media/filters/ffmpeg_demuxer.h"
20 #include "media/filters/file_data_source.h" 21 #include "media/filters/file_data_source.h"
21 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
22 #include "testing/perf/perf_test.h" 23 #include "testing/perf/perf_test.h"
23 24
24 namespace media { 25 namespace media {
25 26
26 static const int kBenchmarkIterations = 100; 27 static const int kBenchmarkIterations = 100;
(...skipping 20 matching lines...) Expand all
47 media::PipelineStatus status) { 48 media::PipelineStatus status) {
48 CHECK_EQ(status, media::PIPELINE_OK); 49 CHECK_EQ(status, media::PIPELINE_OK);
49 message_loop->PostTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure()); 50 message_loop->PostTask(FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
50 } 51 }
51 52
52 static void OnEncryptedMediaInitData(EmeInitDataType init_data_type, 53 static void OnEncryptedMediaInitData(EmeInitDataType init_data_type,
53 const std::vector<uint8_t>& init_data) { 54 const std::vector<uint8_t>& init_data) {
54 VLOG(0) << "File is encrypted."; 55 VLOG(0) << "File is encrypted.";
55 } 56 }
56 57
58 static void OnMediaTracksUpdated(scoped_ptr<MediaTracks> tracks) {
59 VLOG(0) << "Got media tracks info, tracks = " << tracks->tracks().size();
60 }
61
57 typedef std::vector<media::DemuxerStream* > Streams; 62 typedef std::vector<media::DemuxerStream* > Streams;
58 63
59 // Simulates playback reading requirements by reading from each stream 64 // Simulates playback reading requirements by reading from each stream
60 // present in |demuxer| in as-close-to-monotonically-increasing timestamp order. 65 // present in |demuxer| in as-close-to-monotonically-increasing timestamp order.
61 class StreamReader { 66 class StreamReader {
62 public: 67 public:
63 StreamReader(media::Demuxer* demuxer, bool enable_bitstream_converter); 68 StreamReader(media::Demuxer* demuxer, bool enable_bitstream_converter);
64 ~StreamReader(); 69 ~StreamReader();
65 70
66 // Performs a single step read. 71 // Performs a single step read.
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 double total_time = 0.0; 181 double total_time = 0.0;
177 for (int i = 0; i < kBenchmarkIterations; ++i) { 182 for (int i = 0; i < kBenchmarkIterations; ++i) {
178 // Setup. 183 // Setup.
179 base::MessageLoop message_loop; 184 base::MessageLoop message_loop;
180 DemuxerHostImpl demuxer_host; 185 DemuxerHostImpl demuxer_host;
181 FileDataSource data_source; 186 FileDataSource data_source;
182 ASSERT_TRUE(data_source.Initialize(file_path)); 187 ASSERT_TRUE(data_source.Initialize(file_path));
183 188
184 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = 189 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb =
185 base::Bind(&OnEncryptedMediaInitData); 190 base::Bind(&OnEncryptedMediaInitData);
191 Demuxer::MediaTracksUpdatedCB tracks_updated_cb =
192 base::Bind(&OnMediaTracksUpdated);
186 FFmpegDemuxer demuxer(message_loop.task_runner(), &data_source, 193 FFmpegDemuxer demuxer(message_loop.task_runner(), &data_source,
187 encrypted_media_init_data_cb, new MediaLog()); 194 encrypted_media_init_data_cb, tracks_updated_cb,
195 new MediaLog());
188 196
189 demuxer.Initialize(&demuxer_host, 197 demuxer.Initialize(&demuxer_host,
190 base::Bind(&QuitLoopWithStatus, &message_loop), 198 base::Bind(&QuitLoopWithStatus, &message_loop),
191 false); 199 false);
192 message_loop.Run(); 200 message_loop.Run();
193 StreamReader stream_reader(&demuxer, false); 201 StreamReader stream_reader(&demuxer, false);
194 202
195 // Benchmark. 203 // Benchmark.
196 base::TimeTicks start = base::TimeTicks::Now(); 204 base::TimeTicks start = base::TimeTicks::Now();
197 while (!stream_reader.IsDone()) { 205 while (!stream_reader.IsDone()) {
(...skipping 30 matching lines...) Expand all
228 #endif 236 #endif
229 #if defined(OS_CHROMEOS) 237 #if defined(OS_CHROMEOS)
230 RunDemuxerBenchmark("bear.flac"); 238 RunDemuxerBenchmark("bear.flac");
231 #endif 239 #endif
232 #if defined(USE_PROPRIETARY_CODECS) && defined(OS_CHROMEOS) 240 #if defined(USE_PROPRIETARY_CODECS) && defined(OS_CHROMEOS)
233 RunDemuxerBenchmark("bear.avi"); 241 RunDemuxerBenchmark("bear.avi");
234 #endif 242 #endif
235 } 243 }
236 244
237 } // namespace media 245 } // namespace media
OLDNEW
« no previous file with comments | « media/base/demuxer.h ('k') | media/base/media_track.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698