Bleach. CE 1.00 did _not_ support extended args in the VIDENC class. Support
was introduced in CE 1.02. You'll have to upgrade.
Chris
________________________________
From: Aysun Tasyapi [mailto:[EMAIL PROTECTED]
Sent: Monday, April 16, 2007 3:00 AM
To: Ring, Chris
Cc: [email protected]
Subject: Re: İlgi: İlgi: Add a new parameter
Hi Chris,
I can't still perform it ,
I use XDAIS 5.0 and Codec Engine 1.0.0 and Codec Server 1.0.0.
I wonder whether XDAIS 5.0 supports extension of *Inargs or not?
I must download XDAIS 5.10 ?
Best regards.
Aysun
2007/4/14, Ring, Chris <[EMAIL PROTECTED]>:
See below...
Chris
> -----Original Message-----
> From: Aysun Tasyapi [ mailto:[EMAIL PROTECTED] <mailto:[EMAIL
PROTECTED]> ]
> Sent: Friday, April 13, 2007 4:17 AM
> To: Ring, Chris
> Cc: [email protected]
> Subject: İlgi: İlgi: Add a new parameter
>
> 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;
Looks right.
> 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?
You must not change ividenc.h. This new IMYVIDENC_InArgs
struct is your proprietary struct - so you can manage it by duplicating in your
app/codec as you're doing, or creating a header that both app and codec share.
It's up to you.
> 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?
You must pass in &myInArgs. That's the struct you intend to
provide to your codec.
> 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
<http://www-s.ti.com/sc/techlit/spruec8>
> >
> > Chris
> >
> > > -----Original Message-----
> > > From: Aysun Tasyapi [ mailto:[EMAIL PROTECTED]
<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] <mailto:[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
<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:
> > > >
> davinci-linux-open-source-bounces+cring= [EMAIL PROTECTED]
> > > >
> > > [ mailto:[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