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@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@lists.packetizer.com [mailto:h323plus-bounces@lists.packetizer.com] On Behalf Of J C Mercier Sent: 25 November 2011 05:08 To: h323plus@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.