You cannot modify the xDM headers - they are a formal specification.  So you 
have to create a new extended struct, not modify the existing IVIDENC_InArgs 
struct.

Your new extended struct (e.g. IMYVIDENC_InArgs) must have the 'base xDM 
struct' (e.g. IVIDENC_InArgs) as its first element.  It would look something 
like this:

------------------------------
typedef struct IMYVIDENC_InArgs {
    IVIDENC_InArgs base;
    XDAS_Int32 weight;
    XDAS_Int32 threshold;
} IMYVIDENC_InArgs;
------------------------------

Then, in your application, be sure to initialize the base.size field correctly:

------------------------------
IMYVIDENC_InArgs myInArgs;

myInArgs.base.size = sizeof(IMYIDENC_InArgs);
------------------------------

Again, this is described in more detail in the latest xDM Users Guide here:
http://www-s.ti.com/sc/techlit/spruec8

Chris

> -----Original Message-----
> From: Aysun Tasyapi [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, April 12, 2007 5:56 AM
> To: Ring, Chris
> Cc: [EMAIL PROTECTED]
> Subject: İlgi: Add a new parameter
> 
> Hi Chris,
> 
> I am working with videnc_copy.  I've added a new parameter to 
> VIDENC_InArgs.
> When i call  new paramaeter at the DSP side, i could see only first
> parameter's value.
> 
> typedef struct IVIDENC_InArgs {
>    XDAS_Int32 threshold;
>    XDAS_Int32 weight;
>    XDAS_Int32 size;
>      } IVIDENC_InArgs;
> 
> I couldn't see  the values of weight or etc.
> 
> What can i do now?
> 
> Best Regards.
> 
> Aysun
> 
> 
> 
> 2007/4/11, Ring, Chris <[EMAIL PROTECTED]>:
> > If by adding a parameter, you mean adding an argument to the process
> > function signature, no, you can't do that.  The function 
> signature is a
> > part of the IVIDENC_Fxns spec and can't be changed.
> >
> > However, the structs passed into process (e.g. 
> IVIDENC_InArgs) can be
> > 'extended' by updating the .size field to indicate the new, 
> larger size
> > of the struct.  There is some documentation about this in 
> section 2.3 of
> > the latest xDM users guide:
> >
> > http://www-s.ti.com/sc/techlit/spruec8
> >
> > If you're using the Codec Engine, you should pay attention 
> to section
> > 2.3.2 as well, as there are a few additional constraints 
> imposed by the
> > Codec Engine Framework (no pointers in extensions, and some size
> > limitations on how large the extended structs can be).
> >
> > And finally, remember that *_InArgs is for application -> algorithm
> > communication, *_OutArgs is for algorithm -> application 
> communication.
> > You can't use InArgs to return something from the algorithm 
> call, nor
> > use OutArgs to provide something to the algorithm prior to the call.
> >
> > Chris
> >
> >
> > ________________________________
> >
> >     From:
> > [EMAIL PROTECTED]
> > 
> [mailto:[EMAIL PROTECTED]
> avincidsp.
> > com] On Behalf Of Aysun Tasyapi
> >     Sent: Wednesday, April 11, 2007 5:04 AM
> >     To: [EMAIL PROTECTED]
> >     Subject: Add a new parameter
> >     
> >     
> >     hi all,
> >     
> >     
> >     I've some problem with calling a parameter from the DSP side.
> > I've performed   with videnc_copy application. I want to 
> add a new input
> > parameter in the *process function.
> >     So that after adding this new input parameter at the ARM side ,
> > i want to see it  at the DSP side
> >     
> >     But I couldn't see the value of this parameter DSP side . I  see
> > trash value.
> >     
> >     Is it possible to add a new parameter in the *process function?
> >     
> >     Best Regards.
> >     
> >     Aysun
> >     
> >     
> >
> >
> 
_______________________________________________
Davinci-linux-open-source mailing list
[EMAIL PROTECTED]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to