[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] protocol/rtsp crtspbase.cpp,1.103,1.104
From: juanitomoore () helixcommunity ! org
Date: 2012-03-12 22:01:48
[Download RAW message or body]
Update of /cvsroot/server/protocol/rtsp
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv7568
Modified Files:
crtspbase.cpp
Log Message:
Synopsis:
=========
Fix for Bug 270284: Bookmarking doesn't work with Kindle Fire,
Motorola Xoom or Asus Transformer
Branches: HEAD
Reviewer: Chytanya
Description:
============
If no range headers are available, we were setting the start to zero.
Instead, if we also had a bookmark (and/or bookmark-buffer), we use
that value instead.
Files affected:
===============
server/protocol/rtsp/crtspbase.cpp
Testing Performed:
================
Unit Tests: None
Integration tests: Using a debug build, ran the same clip with bookmarking
from a Kindle Fire and saw that we indeed get the expected bookmark.
Leak Tests: None
Performance Tests: N/A
Platforms Tested: linux-rhel5-x86_64
Builds Verified: linux-rhel5-x86_64
QA Hints
========
Test both bookmarks and bookmark buffer on the devices mentioned
Index: crtspbase.cpp
===================================================================
RCS file: /cvsroot/server/protocol/rtsp/crtspbase.cpp,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- crtspbase.cpp 1 Dec 2011 20:32:53 -0000 1.103
+++ crtspbase.cpp 12 Mar 2012 22:01:45 -0000 1.104
@@ -3867,7 +3867,7 @@
INT64 nBegin = m_nBookmarkValue - m_nBookmarkBuffer;
if (!m_bPlayReceived && m_nBookmarkType == 1 &&
ulReqRangeUnits == RTSPRange::TR_NPT &&
- nBegin > 0 && tBegin/100 != nBegin/100)
+ nBegin > 0 && tBegin/100 != (UINT64)(nBegin/100))
{
if (nBegin < pSession->m_ulSessionDuration - 1000)
tBegin = (UINT64)nBegin;
@@ -3896,8 +3896,20 @@
else if (!m_bPlayReceived)
{
// if this is the first PLAY request for this session and it has
- // no Range, then they want 0 to end
- tBegin = (UINT64)0;
+ // no Range, then use bookmark if provided, otherwise 0.
+ INT64 nBegin = m_nBookmarkValue - m_nBookmarkBuffer;
+ if (m_nBookmarkType == 1 && nBegin > 0 && tBegin/100 != (UINT64)(nBegin/100))
+ {
+ if (nBegin < pSession->m_ulSessionDuration - 1000)
+ tBegin = (UINT64)nBegin;
+ else
+ tBegin = (UINT64)(pSession->m_ulSessionDuration - 1000);
+ }
+ else
+ {
+ tBegin = 0ULL;
+ }
+
tEnd = RTSP_PLAY_RANGE_BLANK;
pSession->m_bRangeResponsePending = FALSE;
_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic