bool nsMediaFragmentURIParser::ParseNPTSec(nsDependentSubstring& aString, double& aSec) { nsDependentSubstring original(aString); if (aString.Length() == 0) { return PR_FALSE; } PRUint32 index = FirstNonDigit(aString, 0); if (index == 0) { return PR_FALSE; } nsDependentSubstring n(aString, 0, index); PRInt32 ec; PRInt32 s = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return PR_FALSE; } aString.Rebind(aString, index); double fraction = 0.0; if (!ParseNPTFraction(aString, fraction)) { aString.Rebind(original, 0); return PR_FALSE; } aSec = s + fraction; return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPTMMSS(nsDependentSubstring& aString, double& aTime) { nsDependentSubstring original(aString); PRUint32 mm = 0; PRUint32 ss = 0; double fraction = 0.0; if (!ParseNPTMM(aString, mm)) { aString.Rebind(original, 0); return PR_FALSE; } if (aString.Length() < 2 || aString[0] != ':') { aString.Rebind(original, 0); return PR_FALSE; } aString.Rebind(aString, 1); if (!ParseNPTSS(aString, ss)) { aString.Rebind(original, 0); return PR_FALSE; } if (!ParseNPTFraction(aString, fraction)) { aString.Rebind(original, 0); return PR_FALSE; } aTime = mm * 60 + ss + fraction; return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPTSec(nsDependentSubstring& aString, double& aSec) { nsDependentSubstring original(aString); if (aString.Length() == 0) { return false; } uint32_t index = FirstNonDigit(aString, 0); if (index == 0) { return false; } nsDependentSubstring n(aString, 0, index); nsresult ec; int32_t s = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return false; } aString.Rebind(aString, index); double fraction = 0.0; if (!ParseNPTFraction(aString, fraction)) { aString.Rebind(original, 0); return false; } aSec = s + fraction; return true; }