[h323plus] Video Resolution

Carlos Haj unazona at hotmail.com
Fri Jan 15 05:38:57 EST 2010



Simon,

Thanks for your quick answer, just noticed that I had a bad thread name;)

Well, I have the codec.SetFrameSize(w, h); in my OpenVideoChannel

When adding capabilities I use

AddAllCapabilities(0, P_MAX_INDEX, "*");

SetVideoFrameSize(H323Capability::cifMPI);

Capabilities table shows as 

Set 0: 0: audio
          1: H.261-CIF{sw}


I receive an OpenVideoChannel for encoder, I open channel and attach
video reader + colourConverter, just after that I receive a close video
signal from a H245Negotation, here I join Call Stack


>   testApp.exe!mmDDSVideoOutputBridge::close2()  Ligne 359    C++

     testApp.exe!mmVideoInputDevice::~mmVideoInputDevice()  Ligne 43 + 0x1b    C++

     testApp.exe!mmVideoInputDevice::`scalar deleting destructor'()  + 0x2b    C++

     testApp.exe!PVideoChannel::CloseVideoReader()  Ligne 203 + 0x24    C++

     testApp.exe!PVideoChannel::Close()  Ligne 145    C++

     testApp.exe!H323Codec::CloseRawDataChannel()  Ligne 488 + 0x11    C++

     testApp.exe!H323VideoCodec::Close()  Ligne 747    C++

     testApp.exe!H323Channel::CleanUpOnTermination()  Ligne 716    C++

     testApp.exe!H323_RTPChannel::CleanUpOnTermination()  Ligne 1160    C++

     testApp.exe!H245NegLogicalChannel::Release()  Ligne 1219    C++

    
testApp.exe!H245NegLogicalChannel::HandleCloseAck(const
H245_CloseLogicalChannelAck & __formal={...})  Ligne 1086    C++

    
testApp.exe!H245NegLogicalChannels::HandleCloseAck(const
H245_CloseLogicalChannelAck & pdu={...})  Ligne 1372 + 0xf    C++

     testApp.exe!H323Connection::OnH245Response(const H323ControlPDU & pdu={...})  Ligne 3293 + 0x22    C++

     testApp.exe!H323Connection::HandleControlPDU(const H323ControlPDU & pdu={...})  Ligne 3189 + 0x12    C++

     testApp.exe!H323Connection::HandleControlData(PPER_Stream & strm={...})  Ligne 3170 + 0x18    C++

    
testApp.exe!H323Connection::HandleReceivedControlPDU(bool
readStatus=true, PPER_Stream & strm={...})  Ligne 3103 + 0x12    C++

     testApp.exe!H323Connection::HandleControlChannel()  Ligne 3085 + 0x13    C++

     testApp.exe!H245TransportThread::Main()  Ligne 700    C++


If I remove the 
"SetVideoFrameSize(H323Capability::cifMPI);", I get the following capabilities set

1: H.261-CIF{sw}

    H.261-QCIF{sw}

    H.261{sw}

with exactly same strange behaviour, QCIF is not sending while CIF is being received, by the way qcif endpoint says

Local Video Codec - H.261-CIF{sw}

Local Resolution - 176x144

Remote Video Codec - H.261-CIF{sw}
Remote Resolution - 352x288



I tried a "ReorderCapabilities(PStringArray("QCIF"));" after my
addcapabilities, I ended up with both endpoints using QCIF and ignoring
my SetFrameSize anyway!!

Is there a glitch using H323Plus video plugins? my code works perfectly on openh323 stack.

"SetVideoFrameSize(H323Capability::cifMPI);" is supposed to define a maximum video resolution?! as you said in API doc "... to set the maximum framesize allowed to
the specified value "

Is
that usual to have H.261-CIF with a QCIF resolution? On which order
codec plugins can be added to avoid such problems of negotiation?


Regards

From: s.horne at packetizer.com
To: unazona at hotmail.com; h323plus at lists.packetizer.com
Subject: RE: [h323plus] Valid sessionID in OpenLogicalChannel command
Date: Fri, 15 Jan 2010 08:12:54 +1000










Carlos
 

In your 
derived

H323EndPoint::OpenVideoChannel(()

 

(isEncoding)

     
codec.SetFrameSize(w,h);

 

Simon

 

 

 




From: h323plus-bounces at lists.packetizer.com 
[mailto:h323plus-bounces at lists.packetizer.com] On Behalf Of Carlos 
Haj
Sent: Friday, 15 January 2010 12:59 AM
To: 
h323plus at lists.packetizer.com
Subject: Re: [h323plus] Valid sessionID 
in OpenLogicalChannel command






Hello Guys,

I would like to have different frame sizes for two endpoints, 
first I tried to play around with H323Endpoint::SetVideoFrameSize, but it seems 
that part changes the maximum allowed size, which means that if I switch the 
videoFrameSize to qCIF, I wouldn't be able to receive CIF from the other 
endpoint. my test only received QCIF.

I tried also to modify the 
OpalMediaFormat by using a GetWritableMediaFormat for a capability, that ended 
with unusual CIF format while having a QCIF resolution.

On the other 
hand, I looked Opal examples where they use an OpalManager, but unfortuntly that 
seems incompatible with h323plus, while old openh323 tutorials and exampls don't 
have any video plugins support.

How I can manage to receive and send 
different resolutions (frame sizes) using H323plus?

I appreciate a lot 
your help
Carlos


 		 	   		  
_________________________________________________________________
Discutez en direct avec vos amis sur Messenger !
http://www.windowslive.fr/messenger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.packetizer.com/pipermail/h323plus/attachments/20100115/c5a5af00/attachment.htm>


More information about the h323plus mailing list