Index: webrtc/modules/video_coding/codecs/vp8/vp8_sequence_coder.cc |
diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_sequence_coder.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_sequence_coder.cc |
index d2d317773a3018b3f40e81ce3e2496a2a0a1c542..9e546653db1ff0ad40460eb0f60827f81749725e 100644 |
--- a/webrtc/modules/video_coding/codecs/vp8/vp8_sequence_coder.cc |
+++ b/webrtc/modules/video_coding/codecs/vp8/vp8_sequence_coder.cc |
@@ -1,4 +1,4 @@ |
- /* |
+/* |
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
* |
* Use of this source code is governed by a BSD-style license |
@@ -23,8 +23,7 @@ |
class Vp8SequenceCoderEncodeCallback : public webrtc::EncodedImageCallback { |
public: |
explicit Vp8SequenceCoderEncodeCallback(FILE* encoded_file) |
- : encoded_file_(encoded_file), |
- encoded_bytes_(0) {} |
+ : encoded_file_(encoded_file), encoded_bytes_(0) {} |
~Vp8SequenceCoderEncodeCallback(); |
int Encoded(const webrtc::EncodedImage& encoded_image, |
const webrtc::CodecSpecificInfo* codecSpecificInfo, |
@@ -32,6 +31,7 @@ class Vp8SequenceCoderEncodeCallback : public webrtc::EncodedImageCallback { |
// Returns the encoded image. |
webrtc::EncodedImage encoded_image() { return encoded_image_; } |
size_t encoded_bytes() { return encoded_bytes_; } |
+ |
private: |
webrtc::EncodedImage encoded_image_; |
FILE* encoded_file_; |
@@ -39,7 +39,7 @@ class Vp8SequenceCoderEncodeCallback : public webrtc::EncodedImageCallback { |
}; |
Vp8SequenceCoderEncodeCallback::~Vp8SequenceCoderEncodeCallback() { |
- delete [] encoded_image_._buffer; |
+ delete[] encoded_image_._buffer; |
encoded_image_._buffer = NULL; |
} |
int Vp8SequenceCoderEncodeCallback::Encoded( |
@@ -47,7 +47,7 @@ int Vp8SequenceCoderEncodeCallback::Encoded( |
const webrtc::CodecSpecificInfo* codecSpecificInfo, |
const webrtc::RTPFragmentationHeader* fragmentation) { |
if (encoded_image_._size < encoded_image._size) { |
- delete [] encoded_image_._buffer; |
+ delete[] encoded_image_._buffer; |
encoded_image_._buffer = NULL; |
encoded_image_._buffer = new uint8_t[encoded_image._size]; |
encoded_image_._size = encoded_image._size; |
@@ -72,7 +72,7 @@ class Vp8SequenceCoderDecodeCallback : public webrtc::DecodedImageCallback { |
int32_t Decoded(webrtc::VideoFrame& frame) override; |
int32_t Decoded(webrtc::VideoFrame& frame, int64_t decode_time_ms) override { |
RTC_NOTREACHED(); |
- return -1;; |
+ return -1; |
} |
bool DecodeComplete(); |
@@ -85,16 +85,16 @@ int Vp8SequenceCoderDecodeCallback::Decoded(webrtc::VideoFrame& image) { |
return 0; |
} |
-int SequenceCoder(webrtc::test::CommandLineParser& parser) { |
- int width = strtol((parser.GetFlag("w")).c_str(), NULL, 10); |
- int height = strtol((parser.GetFlag("h")).c_str(), NULL, 10); |
- int framerate = strtol((parser.GetFlag("f")).c_str(), NULL, 10); |
+int SequenceCoder(webrtc::test::CommandLineParser* parser) { |
+ int width = strtol((parser->GetFlag("w")).c_str(), NULL, 10); |
+ int height = strtol((parser->GetFlag("h")).c_str(), NULL, 10); |
+ int framerate = strtol((parser->GetFlag("f")).c_str(), NULL, 10); |
if (width <= 0 || height <= 0 || framerate <= 0) { |
fprintf(stderr, "Error: Resolution cannot be <= 0!\n"); |
return -1; |
} |
- int target_bitrate = strtol((parser.GetFlag("b")).c_str(), NULL, 10); |
+ int target_bitrate = strtol((parser->GetFlag("b")).c_str(), NULL, 10); |
if (target_bitrate <= 0) { |
fprintf(stderr, "Error: Bit-rate cannot be <= 0!\n"); |
return -1; |
@@ -102,20 +102,20 @@ int SequenceCoder(webrtc::test::CommandLineParser& parser) { |
// SetUp |
// Open input file. |
- std::string encoded_file_name = parser.GetFlag("encoded_file"); |
+ std::string encoded_file_name = parser->GetFlag("encoded_file"); |
FILE* encoded_file = fopen(encoded_file_name.c_str(), "wb"); |
if (encoded_file == NULL) { |
fprintf(stderr, "Error: Cannot open encoded file\n"); |
return -1; |
} |
- std::string input_file_name = parser.GetFlag("input_file"); |
+ std::string input_file_name = parser->GetFlag("input_file"); |
FILE* input_file = fopen(input_file_name.c_str(), "rb"); |
if (input_file == NULL) { |
fprintf(stderr, "Error: Cannot open input file\n"); |
return -1; |
} |
// Open output file. |
- std::string output_file_name = parser.GetFlag("output_file"); |
+ std::string output_file_name = parser->GetFlag("output_file"); |
FILE* output_file = fopen(output_file_name.c_str(), "wb"); |
if (output_file == NULL) { |
fprintf(stderr, "Error: Cannot open output file\n"); |
@@ -123,8 +123,8 @@ int SequenceCoder(webrtc::test::CommandLineParser& parser) { |
} |
// Get range of frames: will encode num_frames following start_frame). |
- int start_frame = strtol((parser.GetFlag("start_frame")).c_str(), NULL, 10); |
- int num_frames = strtol((parser.GetFlag("num_frames")).c_str(), NULL, 10); |
+ int start_frame = strtol((parser->GetFlag("start_frame")).c_str(), NULL, 10); |
+ int num_frames = strtol((parser->GetFlag("num_frames")).c_str(), NULL, 10); |
// Codec SetUp. |
webrtc::VideoCodec inst; |
@@ -162,8 +162,8 @@ int SequenceCoder(webrtc::test::CommandLineParser& parser) { |
int frames_processed = 0; |
input_frame.CreateEmptyFrame(width, height, width, half_width, half_width); |
while (!feof(input_file) && |
- (num_frames == -1 || frames_processed < num_frames)) { |
- if (fread(frame_buffer.get(), 1, length, input_file) != length) |
+ (num_frames == -1 || frames_processed < num_frames)) { |
+ if (fread(frame_buffer.get(), 1, length, input_file) != length) |
continue; |
if (frame_cnt >= start_frame) { |
webrtc::ConvertToI420(webrtc::kI420, frame_buffer.get(), 0, 0, width, |
@@ -184,33 +184,35 @@ int SequenceCoder(webrtc::test::CommandLineParser& parser) { |
printf("Actual bitrate: %f kbps\n", actual_bit_rate / 1000); |
webrtc::test::QualityMetricsResult psnr_result, ssim_result; |
EXPECT_EQ(0, webrtc::test::I420MetricsFromFiles( |
- input_file_name.c_str(), output_file_name.c_str(), |
- inst.width, inst.height, |
- &psnr_result, &ssim_result)); |
+ input_file_name.c_str(), output_file_name.c_str(), |
+ inst.width, inst.height, &psnr_result, &ssim_result)); |
printf("PSNR avg: %f[dB], min: %f[dB]\nSSIM avg: %f, min: %f\n", |
- psnr_result.average, psnr_result.min, |
- ssim_result.average, ssim_result.min); |
+ psnr_result.average, psnr_result.min, ssim_result.average, |
+ ssim_result.min); |
return frame_cnt; |
} |
int main(int argc, char** argv) { |
std::string program_name = argv[0]; |
- std::string usage = "Encode and decodes a video sequence, and writes" |
- "results to a file.\n" |
- "Example usage:\n" + program_name + " functionality" |
- " --w=352 --h=288 --input_file=input.yuv --output_file=output.yuv " |
- " Command line flags:\n" |
- " - width(int): The width of the input file. Default: 352\n" |
- " - height(int): The height of the input file. Default: 288\n" |
- " - input_file(string): The YUV file to encode." |
- " Default: foreman.yuv\n" |
- " - encoded_file(string): The vp8 encoded file (encoder output)." |
- " Default: vp8_encoded.vp8\n" |
- " - output_file(string): The yuv decoded file (decoder output)." |
- " Default: vp8_decoded.yuv\n." |
- " - start_frame - frame number in which encoding will begin. Default: 0" |
- " - num_frames - Number of frames to be processed. " |
- " Default: -1 (entire sequence)."; |
+ std::string usage = |
+ "Encode and decodes a video sequence, and writes" |
+ "results to a file.\n" |
+ "Example usage:\n" + |
+ program_name + |
+ " functionality" |
+ " --w=352 --h=288 --input_file=input.yuv --output_file=output.yuv " |
+ " Command line flags:\n" |
+ " - width(int): The width of the input file. Default: 352\n" |
+ " - height(int): The height of the input file. Default: 288\n" |
+ " - input_file(string): The YUV file to encode." |
+ " Default: foreman.yuv\n" |
+ " - encoded_file(string): The vp8 encoded file (encoder output)." |
+ " Default: vp8_encoded.vp8\n" |
+ " - output_file(string): The yuv decoded file (decoder output)." |
+ " Default: vp8_decoded.yuv\n." |
+ " - start_frame - frame number in which encoding will begin. Default: 0" |
+ " - num_frames - Number of frames to be processed. " |
+ " Default: -1 (entire sequence)."; |
webrtc::test::CommandLineParser parser; |
@@ -228,8 +230,8 @@ int main(int argc, char** argv) { |
parser.SetFlag("output_file", webrtc::test::OutputPath() + "vp8_decoded.yuv"); |
parser.SetFlag("encoded_file", |
webrtc::test::OutputPath() + "vp8_encoded.vp8"); |
- parser.SetFlag("input_file", webrtc::test::ResourcePath("foreman_cif", |
- "yuv")); |
+ parser.SetFlag("input_file", |
+ webrtc::test::ResourcePath("foreman_cif", "yuv")); |
parser.SetFlag("help", "false"); |
parser.ProcessFlags(); |
@@ -239,5 +241,5 @@ int main(int argc, char** argv) { |
} |
parser.PrintEnteredFlags(); |
- return SequenceCoder(parser); |
+ return SequenceCoder(&parser); |
} |