Cannot set codec video mode
Hello,
I have video call application using h323plus v 1.20.1 and PTLIB v 2.0.1. I am using the Vic H.261 codec V 1.20.0. I am trying to set the codec video mode to either AdaptivePacketDelay or DynamicVideoQuality in the OpenVideoChannel callback when isEncoding is true. However, after I set it, codec.GetVideoMode always returns 0. Furthermore, as far as I can tell, I am unable to set any other codec options, such as max bitrate, TxQualityLevel, or TargetFrameTimeMS.
This is the same place I was calling SetVideoMode back when the application used OpenH323. Furthermore, it is the same place these functions are called in the myphone2 application.
I have tried using the ffmpeg h.263 codec to the same effect. I have also tried using the latest version from CVS, which didn't help.
Can someone give me a hint as to why this is not working?
-Zack
Hi
I faced same problem few months back. After looking into plugins I noted down few missing things. I am listing these It may help you. my operating system is Windows, and I have used VS2008. I may not be 100% correct :)
1) file H261vic.xx step1) When I debugged this file I find that waitFactor is uninitialsesd. Value can be get in function line 616: static int encoder_set_options(const PluginCodec_Definition *, This value is available in options[i] parameter if (STRCMPI(options[i], "Max Bit Rate") == 0) // Use this line context->waitFactor = atoi(options[i + 1]);
step2) You may have to add your logic in function line 552: unsigned H261EncoderContext::SetEncodedPacket(RTPFrame & dstRTP, bool isLast, unsigned char payloadCode, unsigned long
// these line were not working for me 565 if (isLast) { 566 if (packetDelay) adaptiveDelay(frameLength); 567 frameLength = 0;
2) In H323plus you need to overload function OnSetInitialBandwidth(H323VideoCodec * codec) for setting bandwidth and bitratemodes
Reply if you need more help
Regards alam
On Apr 21, 2009 9:21pm, Zack Tidwell ztidwell@caregivertech.com wrote:
Hello,
I have video call application using h323plus v 1.20.1 and PTLIB v 2.0.1. I am using the Vic H.261 codec V 1.20.0. I am trying to set the codec video mode to either AdaptivePacketDelay or DynamicVideoQuality in the OpenVideoChannel callback when isEncoding is true. However, after I set it, codec.GetVideoMode always returns 0. Furthermore, as far as I can tell, I am unable to set any other codec options, such as max bitrate, TxQualityLevel, or TargetFrameTimeMS.
This is the same place I was calling SetVideoMode back when the application used OpenH323. Furthermore, it is the same place these functions are called in the myphone2 application.
I have tried using the ffmpeg h.263 codec to the same effect. I have also tried using the latest version from CVS, which didn't help.
Can someone give me a hint as to why this is not working?
-Zack
participants (2)
-
cheersalam@gmail.com
-
Zack Tidwell