> -----Original Message-----
> From: Greg Wright [mailto:gwright real.com]
> Sent: Monday, October 30, 2006 3:30 PM
> To: ehyche real.com
> Cc: datatype-dev lists.helixcommunity.org
> Subject: Re: [datatype-dev] CR-Client: fix in ASF
packetization
>
> Eric Hyche wrote:
> > 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.
>
> What happens if there really is loss at the beginning
of
> a keyframe?
>
If there really is loss, then the packetizer will wait until
it sees the next beginning of a keyframe, and then start
depacketizing again.
Eric
> --greg.
>
>
> >
> > 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
Nu
> m].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
> >
>
_______________________________________________
Datatype-dev mailing list
Datatype-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
|