<div dir="ltr"><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">sorry, I don't know how to report a bug in a proper way, but I saw the only one mailing list can communicate with authors. here is the thing.</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">From my client PLAY request like this:</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><pre></div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">PLAY rtsp://<a href="http://192.168.1.201:556/20141208-064059100-Talon0001-192.168.1.201-Cam0.avi">192.168.1.201:556/20141208-064059100-Talon0001-192.168.1.201-Cam0.avi</a> RTSP/1.0</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="fc0667548cd2dff1882b8a9550854fad", uri="/rtsp://<a href="http://192.168.1.201:556/20141208-064059100-Talon0001-192.168.1.201-Cam0.avi">192.168.1.201:556/20141208-064059100-Talon0001-192.168.1.201-Cam0.avi</a>", response="b203600cffa9ec487011edc4a92b1ce5"</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">CSeq: 6</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">User-Agent: ORCI RTSP Client 1.0</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">Rate-Control: yes</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">Range: clock=20141208T064100.000Z-</div><div class="gmail_default" style="font-family:'courier new',monospace;color:rgb(68,68,68)">Session: 81A6879B</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"></pre></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">I met the problem that is *Range* field, my client didn't fill end time, which means playing from 20141208T064100.000Z to end of file.</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">This is implementing in file: RTSPCommon.cpp line: 248 code: </div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><pre></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"> } else if (sscanf(paramStr, "clock = %n", &numCharsMatched3) == 0 && numCharsMatched3 > 0) {<br></div><div class="gmail_default" style><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> rangeStart = rangeEnd = 0.0;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"><br></font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> char const* utcTimes = ¶mStr[numCharsMatched3];</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> size_t len = strlen(utcTimes) + 1;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> char* as = new char[len];</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> char* ae = new char[len];</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> int sscanfResult = sscanf(utcTimes, "%[^-]-%s", as, ae); /*********************line248*********************************/</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> if (sscanfResult == 2) {</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> absStartTime = as;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> absEndTime = ae;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> } else if (sscanfResult == 1) {</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> absStartTime = as;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> delete[] ae;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> } else {</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> delete[] as; delete[] ae;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> return False;</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> }</font></div><div class="gmail_default" style><font color="#444444" face="courier new, monospace"> } else if (sscanf(paramStr, "smtpe = %n", &numCharsMatched4) == 0 && numCharsMatched4 > 0) {</font></div></div><div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"></pre></div><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">If the range like the above that I'v offered, the sscanf(utcTimes, "%[^-]-%s", as, ae) will have a problem.</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">Another thing:</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">file: RTSPServer.cpp line: 2002 code:</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><pre></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><div class="gmail_default"> for (i = 0; i < fNumStreamStates; ++i) {</div><div class="gmail_default"> if (subsession == NULL /* means: aggregated operation */ || fNumStreamStates == 1) {</div><div class="gmail_default"> if (fStreamStates[i].subsession != NULL) {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>if (sawScaleHeader) {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> fStreamStates[i].subsession->setStreamScale(fOurSessionId, fStreamStates[i].streamToken, scale);</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>}</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>if (absStart != NULL) { /******************line 2002***************************************************/</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // Special case handling for seeking by 'absolute' time:</div><div class="gmail_default"><span class="" style="white-space:pre"> </span></div><div class="gmail_default"><span class="" style="white-space:pre"> </span> fStreamStates[i].subsession->seekStream(fOurSessionId, fStreamStates[i].streamToken, absStart, absEnd);</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>} else {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // Seeking by relative (NPT) time:</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> </div><div class="gmail_default"><span class="" style="white-space:pre"> </span> u_int64_t numBytes;</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> if (!sawRangeHeader || startTimeIsNow) {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // We're resuming streaming without seeking, so we just do a 'null' seek</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // (to get our NPT, and to specify when to end streaming):</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> fStreamStates[i].subsession->nullSeekStream(fOurSessionId, fStreamStates[i].streamToken,</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>rangeEnd, numBytes);</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> } else {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // We do a real 'seek':</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> double streamDuration = 0.0; // by default; means: stream until the end of the media</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> if (rangeEnd > 0.0 && (rangeEnd+0.001) < duration) {</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // the 0.001 is because we limited the values to 3 decimal places</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // We want the stream to end early. Set the duration we want:</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> streamDuration = rangeEnd - rangeStart;</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> if (streamDuration < 0.0) streamDuration = -streamDuration;</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> // should happen only if scale < 0.0</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> }</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> fStreamStates[i].subsession->seekStream(fOurSessionId, fStreamStates[i].streamToken,</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> rangeStart, streamDuration, numBytes);</div><div class="gmail_default"><span class="" style="white-space:pre"> </span> }</div><div class="gmail_default"><span class="" style="white-space:pre"> </span>}</div></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"></pre></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">That if condition should have included NULL != absEnd.</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">Then, my client works well with mediaServer, Please see the attachment that I modified two files, if the modifying inappropriate, I wish someone would tell me.</div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)"><br></div><div class="gmail_default" style="font-family:'courier new',monospace;font-size:small;color:rgb(68,68,68)">Thank you.</div><div><div class="gmail_signature"><div dir="ltr"><a href="http://about.me/kenchowcn" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14px;font-family:proxima-nova-1,proxima-nova-2,Tahoma,Helvetica,Verdana,sans-serif;vertical-align:baseline;color:rgb(58,169,233);text-decoration:none;line-height:18.2000007629395px" target="_blank"></a><a href="http://about.me/kenchowcn" style="margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:rgb(58,169,233);text-decoration:none" target="_blank"><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;border-spacing:0px"><tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:30px"> </td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:bold;font-style:inherit;font-size:18px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;line-height:1;color:rgb(51,51,51)">Ken Chow</div><div style="margin:3px 0px 0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;color:rgb(43,130,173)">about.me/kenchowcn</div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:8px 0px 0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;text-align:right;height:4px;background-color:rgb(197,208,224)"><img src="http://d13pix9kaak6wt.cloudfront.net/signature/colorbar.png" alt="Ken Chow on about.me" width="88" height="4" style="margin: 0px; padding: 0px; border: 0px; outline: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; float: right; display: block;"></div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:20px"> </td></tr></tbody></table></a></div></div></div>
</div>