[Scummvm-cvs-logs] SF.net SVN: scummvm:[42933] tools/branches/gsoc2009-gui/compress.cpp
Remere at users.sourceforge.net
Remere at users.sourceforge.net
Thu Jul 30 17:29:15 CEST 2009
Revision: 42933
http://scummvm.svn.sourceforge.net/scummvm/?rev=42933&view=rev
Author: Remere
Date: 2009-07-30 15:29:11 +0000 (Thu, 30 Jul 2009)
Log Message:
-----------
*Out of bounds parameters now causes errors instead of truncating the value.
Modified Paths:
--------------
tools/branches/gsoc2009-gui/compress.cpp
Modified: tools/branches/gsoc2009-gui/compress.cpp
===================================================================
--- tools/branches/gsoc2009-gui/compress.cpp 2009-07-30 15:19:15 UTC (rev 42932)
+++ tools/branches/gsoc2009-gui/compress.cpp 2009-07-30 15:29:11 UTC (rev 42933)
@@ -687,17 +687,14 @@
throw ToolException("Could not parse command line options, expected value after -b");
encparms.minBitr = atoi(_arguments[_arguments_parsed].c_str());
- if ((encparms.minBitr % 8) != 0) {
- encparms.minBitr -= encparms.minBitr % 8;
- }
+ if (encparms.minBitr > 160)
+ throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160.");
- if (encparms.minBitr > 160) {
- encparms.minBitr = 160;
- }
+ if (encparms.minBitr == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Minimum bitrate (-b) must be a number.");
- if (encparms.minBitr < 8) {
- encparms.minBitr = 8;
- }
+ if (encparms.minBitr < 8)
+ throw ToolException("Minimum bitrate out of bounds (-b), must be between 8 and 160.");
} else if (arg == "-B") {
++_arguments_parsed;
@@ -709,27 +706,26 @@
encparms.maxBitr -= encparms.maxBitr % 8;
}
- if (encparms.maxBitr > 160) {
- encparms.maxBitr = 160;
- }
+ if (encparms.maxBitr > 160)
+ throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160.");
- if (encparms.maxBitr < 8) {
- encparms.maxBitr = 8;
- }
+ if (encparms.maxBitr == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Maximum bitrate (-B) must be a number.");
+ if (encparms.maxBitr < 8)
+ throw ToolException("Maximum bitrate out of bounds (-B), must be between 8 and 160.");
+
} else if (arg == "-V") {
++_arguments_parsed;
if (_arguments_parsed >= _arguments.size())
throw ToolException("Could not parse command line options, expected value after -V");
encparms.vbrqual = atoi(_arguments[_arguments_parsed].c_str());
- if (encparms.vbrqual < 0) {
- encparms.vbrqual = 0;
- }
+ if (encparms.vbrqual < 0)
+ throw ToolException("Quality (-q) out of bounds, must be between 0 and 9.");
- if (encparms.vbrqual > 9) {
- encparms.vbrqual = 9;
- }
+ if (encparms.vbrqual > 9)
+ throw ToolException("Quality (-q) out of bounds, must be between 0 and 9.");
} else if (arg == "-q") {
++_arguments_parsed;
@@ -737,13 +733,11 @@
throw ToolException("Could not parse command line options, expected value after -q");
encparms.algqual = atoi(_arguments[_arguments_parsed].c_str());
- if (encparms.algqual < 0) {
- encparms.algqual = 0;
- }
+ if (encparms.algqual < 0)
+ throw ToolException("Quality (-q) out of bounds, must be between 0 and 9.");
- if (encparms.algqual > 9) {
- encparms.algqual = 9;
- }
+ if (encparms.algqual > 9)
+ throw ToolException("Quality (-q) out of bounds, must be between 0 and 9.");
} else if (arg == "--silent") {
encparms.silent = 1;
@@ -757,8 +751,6 @@
return true;
}
-#include <iostream>
-
bool CompressionTool::processOggParms() {
while (_arguments_parsed < _arguments.size()) {
std::string arg = _arguments[_arguments_parsed];
@@ -768,59 +760,60 @@
if (_arguments_parsed >= _arguments.size())
throw ToolException("Could not parse command line options, expected value after -b");
oggparms.nominalBitr = atoi(_arguments[_arguments_parsed].c_str());
- std::cout << "Parsed b=" << oggparms.nominalBitr << "\n";
- if ((oggparms.nominalBitr % 8) != 0) {
+ if ((oggparms.nominalBitr % 8) != 0)
oggparms.nominalBitr -= oggparms.nominalBitr % 8;
- }
- if (oggparms.nominalBitr >160) {
- oggparms.nominalBitr = 160;
- }
+ if (oggparms.nominalBitr > 160)
+ throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160.");
- if (oggparms.nominalBitr < 8) {
- oggparms.nominalBitr = 8;
- }
+ if (oggparms.nominalBitr == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Nominal bitrate (-b) must be a number.");
+ if (oggparms.nominalBitr < 8)
+ throw ToolException("Nominal bitrate out of bounds (-b), must be between 8 and 160.");
+
} else if (arg == "-m") {
++_arguments_parsed;
if (_arguments_parsed >= _arguments.size())
throw ToolException("Could not parse command line options, expected value after -m");
oggparms.minBitr = atoi(_arguments[_arguments_parsed].c_str());
- if ((oggparms.minBitr % 8) != 0) {
+ if ((oggparms.minBitr % 8) != 0)
oggparms.minBitr -= oggparms.minBitr % 8;
- }
- if (oggparms.minBitr >160) {
- oggparms.minBitr = 160;
- }
+ if (oggparms.minBitr > 160)
+ throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160.");
- if (oggparms.minBitr < 8) {
- oggparms.minBitr = 8;
- }
+ if (oggparms.minBitr == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Minimal bitrate (-m) must be a number.");
+ if (oggparms.minBitr < 8)
+ throw ToolException("Minimal bitrate out of bounds (-m), must be between 8 and 160.");
+
} else if (arg == "-M") {
++_arguments_parsed;
if (_arguments_parsed >= _arguments.size())
throw ToolException("Could not parse command line options, expected value after -M");
oggparms.maxBitr = atoi(_arguments[_arguments_parsed].c_str());
- if ((oggparms.maxBitr % 8) != 0) {
- oggparms.maxBitr -= encparms.minBitr % 8;
- }
+ if ((oggparms.maxBitr % 8) != 0)
+ oggparms.maxBitr -= oggparms.maxBitr % 8;
- if (oggparms.maxBitr >160) {
- oggparms.maxBitr = 160;
- }
+ if (oggparms.maxBitr > 160)
+ throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160.");
- if (oggparms.maxBitr < 8) {
- oggparms.maxBitr = 8;
- }
+ if (oggparms.maxBitr == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Minimal bitrate (-M) must be a number.");
+ if (oggparms.maxBitr < 8)
+ throw ToolException("Minimal bitrate out of bounds (-M), must be between 8 and 160.");
} else if (arg == "-q") {
++_arguments_parsed;
oggparms.quality = (float)atoi(_arguments[_arguments_parsed].c_str());
+
+ if (oggparms.quality == 0 && _arguments[_arguments_parsed] != "0")
+ throw ToolException("Quality (-q) must be a number.");
} else if (arg == "--silent") {
oggparms.silent = 1;
} else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list