I have been trying to switch my combo server from using eval codecs to
production ones.
Some of them work without a problem.
I am recompiling from scratch since simply dropping the production codecs
into my current build setup does not work as many of the codecs included in
the production package are a newer version than the ones included in the
eval package.

For the most part I have no problem compiling the individual codecs with
xdc. I can then use xs to generate unit servers for each codec. After
assigning the algorithms code/datasections to DDR memory, I can compile the
unit servers with xdc.

I can also combine them into a combo server. Right now I am just using
mpeg4enc, mpeg4dec, and jpegenc. Once I get these working I will add some
more.

The problem right now is with the jpegenc. The mpeg4enc works fine. When I
run applicaiton that uses the jpegenc, it never returns from this function
call:
ret =
IMGENC_control(jpegencodeState.pJpegencHandle->encHandle,XDM_SETPARAMS,&dynamicEncParams,&encStatus);

The dynamic params are setup as follows:
  XDAS_Int32  ret;
  IIMGENC_Status encStatus;
  IIMGENC_DynamicParams dynamicEncParams;
  dynamicEncParams.size               = sizeof(IIMGENC_DynamicParams);
  dynamicEncParams.numAU          = XDM_DECODE_AU ;
  dynamicEncParams.inputChromaFormat  = XDM_YUV_422ILE;
  dynamicEncParams.inputWidth         = pJpegencHandle->captureWidth;
  dynamicEncParams.inputHeight        = pJpegencHandle->captureHeight;
  dynamicEncParams.captureWidth       = pJpegencHandle->captureWidth;
  dynamicEncParams.generateHeader     = XDM_ENCODE_AU;
  dynamicEncParams.qValue          = 73;
  encStatus.size              = sizeof(IIMGENC_Status);

Prior to this function call, the app calls IMGENC_create and it creates the
algorithm successfully. And then continues until it gets to the above
control call which it chokes on without giving me any usuable trace
information. The CE_DEBUG info just stops.
If I use the evaluation version of the codec, everything runs fine. The
trace from the working one looks quite similar to the non-working one, with
the only difference being the exact value of the params argument handed to
the control function.

Looking through the codec directories, the link.xdt file is very different
between the two version. It should be noted that the eval jpegenc codec is
v1.10 and the production version is v1.13. Also the JPEGENC.xdc file is a
little bit different. The eval codec might put the datasection in L1DSRAM.
If I try to do that in the production version it does not compile. Anything
other than DDR2 stops the production version from compiling.

The application code is based on the sample application from the eval
version of the codec. My best guess is that something has changed in the api
between versions and the XDC_SETPARAMS control function requires something
different in the new version.

Does anyone have any idea what the differences are between the versions? I
imagine switching from eval to prod should be something that other people
have done. Do you have any suggestions?

Thanks,
-mat
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to