Hi Chris,
I am sorry. But i can't still do.
I've performed following steps.
1- I've created extended struct at the DSP side (in videnccopy_ti.h).
typedef struct IMYVIDENC_InArgs {
IVIDENC_InArgs base;
XDAS_Int32 weight;
XDAS_Int32 threshold;
} IMYVIDENC_InArgs;
2- At the application side i've written this struct again. Must i
change anything in ividenc.h? Must i add this struct in ividenc.h?
I 've written following in the ceapp.c
typedef struct IMYVIDENC_InArgs {
IVIDENC_InArgs base;
XDAS_Int32 weight;
XDAS_Int32 threshold;
} IMYVIDENC_InArgs;
IMYVIDENC_InArgs myInArgs;
myInArgs.base.size = sizeof(IMYIDENC_InArgs);
myInArgs.threshold=100;
myInArgs.weight=10;
/* encode the frame, pass addrs of the structures we populated above */
status = VIDENC_process(encHandle, &inBufDesc, &encodedBufDesc,
&encoderInArgs, &encoderOutArgs);
But i don't know what i write in process function. I have to wrtie
&encoderInArgs or &myInArgs?
3- I want to acces the value of threshol at the DSP .
in the videnc_copy.c
mythreshold = ((IMYVIDENC_InArgs *)inargs)->threshold;
GT_1trace(curTrace, GT_ENTER, "\nmythreshold -- %ld\n\n", mythreshold);
When i run , I see following item.
[DSP] mythreshold -- 1093473516
I don't understand where i am wrong. What do you suggest me?
Thank you for your helping.
best regards.
2007/4/12, Ring, Chris <[EMAIL PROTECTED]>:
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