Modified by: dyek real.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-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/play
er-dev
|