List Info

Thread: CR-Client: fix in ASF packetization




CR-Client: fix in ASF packetization
user name
2006-10-30 21:24:48

> -----Original Message-----
> From: Greg Wright [mailto:gwrightreal.com] 
> Sent: Monday, October 30, 2006 3:30 PM
> To: ehychereal.com
> Cc: datatype-devlists.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 (ehychereal.com)
> > Technical Lead
> > RealNetworks, Inc.
> > 
> > _______________________________________________
> > Datatype-dev mailing list
> > Datatype-devhelixcommunity.org
> > http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
> > 
> 


_______________________________________________
Datatype-dev mailing list
Datatype-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/da
tatype-dev
[1]

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