Description
------------------------------------------
After seeking, we want to start packetizing with the *first*
packet of a keyframe. Currently, the packetizer will accept
the first payload it sees which is a part of a keyframe.
However,
if the first ASF packet seen after a seek contains the final
fragment
of a keyframe followed by the first fragment of a keyframe,
then
currently we will put the last fragment of the keyframe on
the
partial payload queue. Later this lone fragment will be
detected
as loss, even though no loss occurred.
The fix is to only start packetizing when we see the
*first* payload of a keyframe. This will cause us to
properly ignore the final fragment of a keyframe in the
first ASF packet following a seek.
Files Modified
---------------------------------------
datatype/wm/fileformat/asf_packetizer.cpp
Branches
---------------------------------------
HEAD only
Testing
---------------------------------------
Observed loss-packet generation from logs before this
fix on a particular .wmv clip. After this fix, no
loss-packet
generation occurred after a seek to the same place on the
same clip.
Index: asf_depacketizer.cpp
============================================================
=======
RCS file:
/cvsroot/datatype/wm/fileformat/asf_depacketizer.cpp,v
retrieving revision 1.4
diff -u -w -r1.4 asf_depacketizer.cpp
--- asf_depacketizer.cpp 15 Sep 2006 02:47:37 -0000
1.4
+++ asf_depacketizer.cpp 30 Oct 2006 19:23:58 -0000
 -186,7
+186,7 
//
// Do we have a requirement to wait
until we see a
keyframe for this stream?
if
(!m_pStreamInfo[ulHXStreamNum].m_pWMStreamInfo[ulHXSubStream
Num].m_bNeedsKeyFrame
||
- pPayload->m_bKeyFrame)
+ (pPayload->m_bKeyFrame
&&
pPayload->m_ulOffsetIntoMediaObject == 0))
{
// Clear the keyframe-required flag
m_pStreamInfo[ulHXStreamNum].m_pWMStreamInfo[ulHXSubStreamNu
m].m_bNeedsKeyFrame
= FALSE;
=======================================
Eric Hyche (ehyche real.com)
Technical Lead
RealNetworks, Inc.
_______________________________________________
Datatype-dev mailing list
Datatype-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
|