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:
Quick question on this helper app, do you know if the bit rate control works with it?
As far as I can tell, I am setting it to 256kbps and it is still sending at 4Mbps. So, before I go digging deeper, I was hoping for a bit of a sanity check.
Thank you very much!
Robert Jongbloed
OPAL/OpenH323/PTLib Architect and Co-founder.
From: Simon Horne [mailto:s.horne@packetizer.com] Sent: Monday, 7 February 2011 10:01 PM To: 'Robert Jongbloed'; 'ZAHRA dehghanianfard' Cc: 'opal'; 'opal'; h323plus@lists.packetizer.com Subject: RE: error H.263
I think both the opal and h323plus community can benefit.
http://www.h323plus.org/source/download/ffmpeg_x264.zip
Place all files in your application directory.
The FFMPEG (with w32threads) and X264 is built with mingw/msys. x264plugin_helper.exe is built with vs2008 and requires vs2008 runtime.
Simon
From: Robert Jongbloed [mailto:robertj@voxlucida.com.au] Sent: 07 February 2011 15:48 To: ZAHRA dehghanianfard Cc: opal; opal Subject: Re: [Opalvoip-devel] error H.263
The answer to your questions are:
Yes, but you need to compile it.
The result of compiling it is a DLL
You will have to figure out why it doesn't compile under windows.
I have to admit to not being able to get the H.263 (or x264) codecs to compile and work under Windows, though I have only tried somewhat briefly. Unfortunately the authors of all the libraries mainly use Linux, though it is my understanding that it can be compiled using MinGW/Cygwin.
I am sure the OPAL community would be incredibly grateful to anyone that can provide a pre-built binary for the H.263 (and x264!) codec.
Robert Jongbloed
Vox Lucida Pty. Ltd.
On 03/02/2011, at 5:33 PM, ZAHRA dehghanianfard wrote:
Hi robert.
Many thanks for your last support; I need to use OpenPhone3.8.2 by H.263 codec run.
Is OpenPhone 3.8.2 with Opal 3.8.2 & Ptlib2.8.2 support H.263
codec
inside?
If the above response is YES, Are you suggesting any H.263 DLL
file?
I find a source that name is "H.263-1998" then I download that and
compiles it but I find below Error inside:
1>------ Build started: Project: H.263-1998 (FFMPEG) Video Codec, Configuration: Debug Win32 ------ 1>Compiling... 1>h263pframe.cxx 1>c:\opal\plugins\video\h.263-1998../common/ffmpeg.h(155) : fatal 1>error C1083: Cannot open include file: 'libavcodec\avcodec.h': No such file or directory 1>h263-1998.cxx 1>c:\opal\plugins\video\h.263-1998../common/ffmpeg.h(155) : fatal 1>error C1083: Cannot open include file: 'libavcodec\avcodec.h': No such file or directory 1>Generating Code... 1>Build log was saved at "file://c:\opal\plugins\Debug\H263-1998\BuildLog.htm file:///c:\opal\plugins\Debug\H263-1998\BuildLog.htm " 1>H.263-1998 (FFMPEG) Video Codec - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I try to solve this problem by download a "libavcodec" that use some header & DLL file that I copy in "C:\opal\plugin\video\common" but I take below error:
1>------ Build started: Project: H.263-1998 (FFMPEG) Video Codec, Configuration: Debug Win32 ------ 1>Compiling... 1>h263pframe.cxx 1>c:\opal\plugins\video\h.263-1998../common/ffmpeg.h(185) : fatal 1>error C1189: #error : Libavcodec LIBAVCODEC_VERSION_INT too old. 1>h263-1998.cxx 1>c:\opal\plugins\video\h.263-1998../common/ffmpeg.h(185) : fatal 1>error C1189: #error : Libavcodec LIBAVCODEC_VERSION_INT too old. 1>Generating Code... 1>Build log was saved at "file://c:\opal\plugins\Debug\H263-1998\BuildLog.htm file:///c:\opal\plugins\Debug\H263-1998\BuildLog.htm " 1>H.263-1998 (FFMPEG) Video Codec - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Please guide me to i can have H.263 codec with DLL & source over OpenPhone 3.8.2 here.
I am in wait for your response.
Best Regards.
Zahra.
-- 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