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

Side by Side Diff: webrtc/modules/video_coding/main/test/test_util.cc

Issue 1417283007: modules/video_coding refactorings (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix the other copy of the mock include header Created 5 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
(Empty)
1 /*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "webrtc/modules/video_coding/main/test/test_util.h"
12
13 #include <assert.h>
14 #include <math.h>
15
16 #include <iomanip>
17 #include <sstream>
18
19 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
20 #include "webrtc/modules/video_coding/main/source/internal_defines.h"
21 #include "webrtc/test/testsupport/fileutils.h"
22
23 CmdArgs::CmdArgs()
24 : codecName("VP8"),
25 codecType(webrtc::kVideoCodecVP8),
26 width(352),
27 height(288),
28 rtt(0),
29 inputFile(webrtc::test::ProjectRootPath() + "/resources/foreman_cif.yuv"),
30 outputFile(webrtc::test::OutputPath() +
31 "video_coding_test_output_352x288.yuv") {
32 }
33
34 namespace {
35
36 void SplitFilename(const std::string& filename, std::string* basename,
37 std::string* extension) {
38 assert(basename);
39 assert(extension);
40
41 std::string::size_type idx;
42 idx = filename.rfind('.');
43
44 if(idx != std::string::npos) {
45 *basename = filename.substr(0, idx);
46 *extension = filename.substr(idx + 1);
47 } else {
48 *basename = filename;
49 *extension = "";
50 }
51 }
52
53 std::string AppendWidthHeightCount(const std::string& filename, int width,
54 int height, int count) {
55 std::string basename;
56 std::string extension;
57 SplitFilename(filename, &basename, &extension);
58 std::stringstream ss;
59 ss << basename << "_" << count << "." << width << "_" << height << "." <<
60 extension;
61 return ss.str();
62 }
63
64 } // namespace
65
66 FileOutputFrameReceiver::FileOutputFrameReceiver(
67 const std::string& base_out_filename, uint32_t ssrc)
68 : out_filename_(),
69 out_file_(NULL),
70 timing_file_(NULL),
71 width_(0),
72 height_(0),
73 count_(0) {
74 std::string basename;
75 std::string extension;
76 if (base_out_filename.empty()) {
77 basename = webrtc::test::OutputPath() + "rtp_decoded";
78 extension = "yuv";
79 } else {
80 SplitFilename(base_out_filename, &basename, &extension);
81 }
82 std::stringstream ss;
83 ss << basename << "_" << std::hex << std::setw(8) << std::setfill('0') <<
84 ssrc << "." << extension;
85 out_filename_ = ss.str();
86 }
87
88 FileOutputFrameReceiver::~FileOutputFrameReceiver() {
89 if (timing_file_ != NULL) {
90 fclose(timing_file_);
91 }
92 if (out_file_ != NULL) {
93 fclose(out_file_);
94 }
95 }
96
97 int32_t FileOutputFrameReceiver::FrameToRender(
98 webrtc::VideoFrame& video_frame) {
99 if (timing_file_ == NULL) {
100 std::string basename;
101 std::string extension;
102 SplitFilename(out_filename_, &basename, &extension);
103 timing_file_ = fopen((basename + "_renderTiming.txt").c_str(), "w");
104 if (timing_file_ == NULL) {
105 return -1;
106 }
107 }
108 if (out_file_ == NULL || video_frame.width() != width_ ||
109 video_frame.height() != height_) {
110 if (out_file_) {
111 fclose(out_file_);
112 }
113 printf("New size: %dx%d\n", video_frame.width(), video_frame.height());
114 width_ = video_frame.width();
115 height_ = video_frame.height();
116 std::string filename_with_width_height = AppendWidthHeightCount(
117 out_filename_, width_, height_, count_);
118 ++count_;
119 out_file_ = fopen(filename_with_width_height.c_str(), "wb");
120 if (out_file_ == NULL) {
121 return -1;
122 }
123 }
124 fprintf(timing_file_, "%u, %u\n", video_frame.timestamp(),
125 webrtc::MaskWord64ToUWord32(video_frame.render_time_ms()));
126 if (PrintVideoFrame(video_frame, out_file_) < 0) {
127 return -1;
128 }
129 return 0;
130 }
131
132 webrtc::RtpVideoCodecTypes ConvertCodecType(const char* plname) {
133 if (strncmp(plname,"VP8" , 3) == 0) {
134 return webrtc::kRtpVideoVp8;
135 } else {
136 // Default value.
137 return webrtc::kRtpVideoGeneric;
138 }
139 }
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/main/test/test_util.h ('k') | webrtc/modules/video_coding/main/test/tester_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698