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@packetizer.com
To: unazona@hotmail.com; h323plus@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@lists.packetizer.com [mailto:h323plus-bounces@lists.packetizer.com] On Behalf Of Carlos Haj
Sent: Friday, 15 January 2010 12:59 AM
To: h323plus@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




Discute avec tes amis partout, grâce à Messenger sur ton mobile. Cliquez ici !