Re: [h323plus] [Opalvoip-devel] error H.263

Jan You are correct . To match to a bandwidth the encoder must know frame size and rate. The plugin support is very much h323plus specific. You can calculate the frame size/rate by using the internal table or can use a supplied list of supported frame sizes/rates. These can be manually coded from largest to smallest or retrieved from the video input device. DirectShow for instance supports retrieving the list of supported sizes and rates via calling PVideoInputDevice:: GetDeviceCapabilities(). These can be passed to the codec via calling PLUGINCODEC_CONTROL_SET_FORMAT_OPTIONS. In h323plus the function to do this is H323VideoCodec::SetSupportedFormats. The function returns the default frame size and rate for the given bitrate that is supported by the input device. Then you can set the input device with the returned frame size /rate in the MyH323Endpoint::OpenVideoChannel. See Applications/SimplePlus for example of how that is done. The bandwidth (and level\MBPS etc) values for the X264 Encoder is set by PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS which is called after the local and remote capabilities have been merged in h323plus. Then there is flowControl which does basically the same thing. You pass to the plugin a bitrate value via PLUGINCODEC_CONTROL_FLOW_OPTIONS it then returns a supported frame size/rate (internal or supplied earlier) then you pass these value to the input device via calling PVideoInputDevice:: FlowControl(). The architecture of Opal has deviated a lot from its h323plus roots and I think there is a lot more things to consider to getting this to work with it. Simon -----Original Message----- From: Jan Willamowius [mailto:jan@willamowius.de] Sent: 22 February 2011 18:46 To: opalvoip-devel@lists.sourceforge.net Subject: Re: [Opalvoip-devel] error H.263 When I debugged a similar bandwidth issue on H323Plus a few months ago, I found that the bit rate setting was passed to the encoder correctly, but to correctly meet this target the encoder needs to know the correct values of influencing parameters, like the frame rate. In my case the frame rate wasn't passed in correctly, so the encoder kept producing video at the wrong rate. I haven't fixed the issue back then, but worked around it. I'm not sure if anybody else has (or if the same applies to the OPAL version of the codec). Regards, Jan Robert Jongbloed wrote:
-- Jan Willamowius, jan@willamowius.de, http://www.gnugk.org/ ---------------------------------------------------------------------------- -- Index, Search & Analyze Logs and other IT data in Real-Time with Splunk Collect, index and harness all the fast moving IT data generated by your applications, servers and devices whether physical, virtual or in the cloud. Deliver compliance at lower cost and gain new business insights. Free Software Download: http://p.sf.net/sfu/splunk-dev2dev _______________________________________________ Opalvoip-devel mailing list Opalvoip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opalvoip-devel
participants (1)
-
Simon Horne