Create new h323 video codec plugin

Discussion related to implementation and use of the H.323 Plus H.323 stack at https://www.h323plus.org.
Post Reply
DuyDo
Posts: 2
Joined: Fri Jun 17, 2011 4:48 pm

Create new h323 video codec plugin

Post by DuyDo »

hi,

I'm studying H323plus and trying to create a new non-standard H323 codec video plugin.
I've read the tutorial "How to use plugin audio codecs in OpenH323 and OPAL" at
http://www.voxgratia.org/documents.html and looked around the code from H261vic codec plugin project,
but I still don't understand clearly about the programming model. Besides, that tutorial is quite old, so I wonder there are any new changes from 2006.

Would you mind giving me some advices about how to implement a video codec plugin? Especially:
- about the data format in RTP Packet Payload for both encoded and unencoded video data,
- the meaning and the necessary of the userData and codecControls fields in PluginCodec_Definition struct
- etc.

I will greatly appreciate your help.

Thank you
shorne
Posts: 45
Joined: Thu Aug 27, 2009 4:17 am

Re: Create new h323 video codec plugin

Post by shorne »

When Introducing a new codec into H.323 (not just h323plus) you have decide whether its a non-standard or generic capability. H.261 and H.263 are standard capabilities H.264 (although standard) is a generic capability. h323plus has better support for generic rather than non-standard. A generic capability is identified by an OID. You will need to assign an OID to the capability. You will need to register to get your company an OID banch. For instance here is packetizer's branch. http://www.packetizer.com/oid/

For a guide how to create a h323plus generic capability plugin you might want to look at H.264 plugin.
In Brief summary you create at least 2 PluginCodec_Definition (one encode, one decode) and you should specify your generic capability information in the last two fields of the definition. These codec definitions are read into h323plus at application startup.

For any quieries you can email support@h323plus.org
DuyDo
Posts: 2
Joined: Fri Jun 17, 2011 4:48 pm

Re: Create new h323 video codec plugin

Post by DuyDo »

Thanks for your reply.

I have sent some questions to support@h323plus.org, but It seems that this email address doesn't exist because my email didn't get through ??

So I put my questions here. Hopefully, you would give me some hints.

I’ve read that video codecs always convert to and from RTP frames, and an unencoded video RTP frame has video data in payload is YUV 4:2:0 planar format. But there are two types of pixel format for YUV 4:2:0 planar format, which are I420 and YV12. So what type is used here? If both of them are used, how can I determine which pixel format is used?

By the way, It's great if you show me how to use the Trace class in a codec plugin project (like H261vic project). I've initialized the environment variables variables PTLIB_TRACE_CODECS and PTLIB_TRACE_CODECS_USER_PLANE (I saw the code get information from them), but I can't find any log file output.

Once again, thanks for your help and I look forward to your next reply.
Post Reply