[Common-dev] annex g implementation

[Common-dev] annex g implementation

Gang.Shen at nokia.com Gang.Shen at nokia.com
Mon Apr 11 16:09:38 PDT 2005


Hi, Aaron,

Thanks for your reply. It looks ok to have the sum of "predecperiod" and "postdecperiod" for "Preroll" on client side. Could you explain a bit more on "x-predecbufsize"? I may misread some code but I could not find any place that actually use this value. So how does Helix client set up the actual buffer size in case of Annex G?

Thanks,

Gang Shen

-----Original Message-----
From: common-dev-bounces at helixcommunity.org
[mailto:common-dev-bounces at helixcommunity.org]On Behalf Of ext Aaron
Colwell
Sent: Monday, April 11, 2005 11:26 AM
To: Shen Gang (Nokia-TP-MSW/Dallas)
Cc: common-dev at helixcommunity.org
Subject: Re: [Common-dev] annex g implementation


On Mon, Apr 11, 2005 at 11:04:54AM -0500, Gang.Shen at nokia.com wrote:
> Hi, 
> 
> One more question regarding Annex G:
> 
> In "sdpmdparse.cpp"  --SDPMediaDescParser::HandleSpecialFields(), a property "x-predecbufsize" (Line#1265) is set according to SDP. However, I couldn't find this property is used by any other code. So I am wondering if the Annex G is fully implemented? 

The Helix client doesn't operate the way that Annex G assumes that clients are
implemented. It operates on the concept of Preroll which is basically the sum
of the pre-decode and post-decode buffer durations. As long as we delay the
start of playback by the sum of those 2 values we are Annex G compliant as far
as the server is concerned. If the client has enough CPU and memory to have
more decoded frames in the post decode buffer then the client should be allowed
to do that. Annex G makes pretty naive assumptions about how a client 
implements playback. Helix does not maintain a pre-decode and post-decode 
buffer the way that Annex G states, but from the server's point of view it 
looks the same.

Aaron

> 
> Thanks,
> 
> Gang Shen
> 
> 
> -----Original Message-----
> From: common-dev-bounces at helixcommunity.org
> [mailto:common-dev-bounces at helixcommunity.org]On Behalf Of ext 
> Sent: Friday, April 08, 2005 6:14 PM
> To: common-dev at helixcommunity.org
> Subject: [Common-dev] annex g implementation
> 
> 
> Hi, 
> 
> I have a question regarding annex g implementation. In "sdpmdparse.cpp" #229, why it sums up ulPreDec and ulPostDec as "Preroll" period? It seems "vidrenderer" use this value to calculate preroll buffer size. Could we just use ulPreDec for "Preroll"? 
> 
> Thanks,
> 
> Gang Shen
> 
> ......
> sdpmdparse.cpp line#218 to line#235. 
> ......
>         if (HXR_OK != pHeader->GetPropertyULONG32("Preroll", ulTmp))
>         {
>             // We don't have a preroll so we should use the Annex G
>             // headers to create one
>             ULONG32 ulPreDec = 0;
>             ULONG32 ulPostDec = 0;
>             pHeader->GetPropertyULONG32("x-initpredecbufperiod", ulPreDec);
>             pHeader->GetPropertyULONG32("x-initpostdecbufperiod", ulPostDec);
>             
>             // Add x-initpredecbufperiod to x-initpostdecbufperiod and
>             // convert the value to milliseconds.
>             ULONG32 ulPreroll = (ulPreDec  + ulPostDec) / 90;
> 
>             if (ulPreroll)
>             {
>                 pHeader->SetPropertyULONG32("Preroll", ulPreroll);
>             }
>         }
> ....
> 
> 
> _______________________________________________
> Common-dev mailing list
> Common-dev at helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/common-dev
> 
> _______________________________________________
> Common-dev mailing list
> Common-dev at helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/common-dev
> 

_______________________________________________
Common-dev mailing list
Common-dev at helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/common-dev



More information about the Common-dev mailing list
 

Site Map   |   Terms of Use   |   Privacy Policy   |   Contact Us

Copyright © 1995-2007 RealNetworks, Inc. All rights reserved. RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.