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

Reply via email to