[h323plus] Changing video codec transmit bit rate

J.C Mercier jcmerc5 at gmail.com
Thu Nov 24 16:03:57 EST 2011


Thanks Simon for your prompt response.

Having tested the code as suggested, it seems that the bit rate still
remains at 327kbps for the h.263 codec after i attempted to set it to
128kbps.

Is it possible that because this version of ptlib (2.8.5) does not support
flow control, changing the bit rate will not take affect?

I traced the SetMaxBitRate function, and it was called by the descendant
class in plugin, which is correct, which in turn looks as follows;

PBoolean H323PluginVideoCodec::SetMaxBitRate(unsigned bitRate)
{
    if (SetFlowControl(codec,context,mediaFormat,bitRate/100)) {
         frameWidth =
mediaFormat.GetOptionInteger(OpalVideoFormat::FrameWidthOption);
         frameHeight =
mediaFormat.GetOptionInteger(OpalVideoFormat::FrameHeightOption);
         targetFrameTimeMs =
mediaFormat.GetOptionInteger(OpalVideoFormat::FrameTimeOption);
         mediaFormat.SetBandwidth(bitRate);
         return true;
    }
    return false;
}

the SetFlowControl always returns false with the following message;

 - > "No Flow Control supported in codec"

Any ideas or other suggestions you may provide will be greatly appreciated.

Thanks

Josh


On Thu, Nov 24, 2011 at 2:29 PM, Simon Horne <s.horne at packetizer.com> wrote:

> Josh
>
> Unfortunately the OpenVideoChannel is called after the H.245 TCS stage so
> you cannot use it to negotiate a bandwidth limit for a call.
>
> To set the Initial Bandwidth limit in the TCS there is a callback which is
> called when building.
> H323EndPoint::OnSetInitialBandwidth(H323VideoCodec * codec);
>
> So you could do something like this in your code
>
> void MyH323EndPoint::OnSetInitialBandwidth(H323VideoCodec * codec)
> {
>        unsigned bitrate = <your rate in kbps> * 1000;
>        if ((bitrate != 0) && (codec->GetMediaFormat().GetBandwidth() >
> bitrate)) {
>                PTRACE(4,"My\tAdjusting maximum video bitrate to " <<
> bitrate);
>                codec->SetMaxBitRate(bitrate);
>        }
> }
>
> During a call the bitrate may change via FlowControl requests but will not
> exceed the value you set in this callback.
>
> Simon
>
>
> -----Original Message-----
> From: h323plus-bounces at lists.packetizer.com
> [mailto:h323plus-bounces at lists.packetizer.com] On Behalf Of J C Mercier
> Sent: 25 November 2011 05:08
> To: h323plus at lists.packetizer.com
> Subject: [h323plus] Changing video codec transmit bit rate
>
> Hi all,
>
> How would one go about adjusting the video codec max transmission bit rate?
>
> I understand thus can be done in OpenVideoChannel by calling
> codec.SetMaxBitRate but I I get  no flow control supported when I attempted
> to do so.
>
> I am using v 1.23 for H323plus downloaded from h323plus.org and pitlib v
> 2.8.5. I noticed that flow control is not supported in ptlib less than 2.9
> but would there be another way of changing the bit rate?
>
> Thanks!
>
> Josh C.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.packetizer.com/pipermail/h323plus/attachments/20111124/3de480cd/attachment-0002.html>


More information about the h323plus mailing list