List Info

Thread: CR/CN-Client: Fixing GetSeekRange() issues With GetSuperbufferTimelineInfo()




CR/CN-Client: Fixing GetSeekRange() issues With GetSuperbufferTimelineInfo()
country flaguser name
United States
2007-12-27 02:55:58
Modified by: dyekreal.com
Date: 12/26/2007
Project: RealPlayer

Synopsis: 
Created ClientPlayerGetSuperbufferTimelineInfo() to provide

all interesting timeline positions, including 
max-seekable-without-rebuffering.

Overview: 
This change implemented
ClientPlayerGetSuperbufferTimelineInfo()
to provide: 
1. easy-to-use timeline ranges and  
2. maximum-seekable timeline position without causing client
core to 
rebuffer.  

This is different from the output of hxrecordengine's
GetSeekRange() 
(not hxclientkit's) which provides buffered range up to the
last packet 
in the buffer; seeking to this maximum position causes the
client core 
to rebuffer.

This fixed a few issues with Superbuffer timeline position
values.

It also fixed the problem where seeking to the buffer end in

a live stream caused RealPlayer for Linux to rebuffer.
With this, seeking to the end of Superbuffer will playback
immediately.

With this checking, the preroll is hardcoded as 4000 as 
IHXPlayer2->GetMinimumPreroll() didn't seem to be the
right function 
to call.

I'm still having problems with seeking outside the buffered
region of 
an OnDemand clip causes a long pause before the client
continues.

This appears to be related to hxrecordengine as disabling
Superbuffer
appears to fix the problem.

Logging traces showed that clicking on a future timeline
position causes
hxrecordengine to issue seek to the target timeline value on
client core; 
however, when new packets arrived from core to
hxrecordengine, 
the packet timestamp is much too early and thus a very long
buffering
time before the timestamp catches up.

I'm wondering if timestamp fix-up is needed? 

Is hxrecordengine requesting the seek to the right timeline
position 
without needing to offset/change it?



Files Modified:
player/hxclientkit/src/CHXClientPlayer.h  - Added
GetSuperbufferTimelineInfo()
player/hxclientkit/src/CHXClientPlayer.cpp - Added
GetSuperbufferTimelineInfo()
player/hxclientkit/src/IHXClientPlayer.h

player/hxclientkit/src/HXClientCFuncs.cpp
player/hxclientkit/pub/HXClientCFuncs.h   

player/app/gtk/hxstatuspositionslider.cpp
player/app/gtk/superbufhscale.c


Image Size and Heap Use impact (Client -Only):
None.

Platforms and Profiles Affected:
Linux

Distribution Libraries Affected:
None.

Distribution library impact and planned action:
None.

Platforms and Profiles Build Verified:
Profile: helix_client_all_define
Platform: Fedora Core 6

Platforms and Profiles Functionality verified:
Profile: helix_client_all_define
Platform: Fedora Core 6

Branch: 
hxclientkit: 150Cay
player: HEAD

Copyright assignment: I am a RealNetworks employee.




-- 
Daniel Yek.


_______________________________________________
Player-dev mailing list
Player-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/play
er-dev

  
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )