Mahendra Kumar, very thanks. I will try it ASAP.
And look, it happened again. Some people said that it´s impossible. Others
said that yes, it can be done.

The doubt is spread over all forums and sites about it.

2009/2/23 Mahendra Kumar Angamuthu Ganesan <[email protected]>

> Hi  Marcelo Guedes,
>
> Change the source code of  "capture.c" as shown below to make encoder of
> DM6467 demo working for 1080I as shown below and compile it.
>
>     /* Calculate the dimensions of a video standard given a color space */
> #if RES_720
>     if (BufferGfx_calcDimensions(VideoStd_720P_60,ColorSpace_YUV422PSEMI,
> &gfxAttrs.dim) < 0) {
> #else
>     if (BufferGfx_calcDimensions(VideoStd_1080I_30, ColorSpace_YUV422PSEMI,
> &gfxAttrs.dim) < 0) {
> #endif
>         ERR("Failed to calculate Buffer dimensions\n");
>         cleanup(THREAD_FAILURE);
>     }
>
>     /* Calculate buffer size needed of a video standard given a color space
> */
> #if RES_720
>     bufSize = BufferGfx_calcSize(VideoStd_720P_60, ColorSpace_YUV422PSEMI);
> #else
>     bufSize = BufferGfx_calcSize(VideoStd_1080I_30,
> ColorSpace_YUV422PSEMI);
> #endif
>
>     if (bufSize < 0) {
>         ERR("Failed to calculate size for capture driver buffers\n");
>         cleanup(THREAD_FAILURE);
>     }
>
>     /* Create a table of buffers to use with the device drivers */
>     gfxAttrs.colorSpace = ColorSpace_YUV422PSEMI;
>     hBufTab = BufTab_create(NUM_DRIVER_BUFS, bufSize,
>                             BufferGfx_getBufferAttrs(&gfxAttrs));
>
>     if (hBufTab == NULL) {
>         ERR("Failed to allocate contiguous buffers\n");
>         cleanup(THREAD_FAILURE);
>     }
>
>     /* Create capture device driver instance */
>     cAttrs.numBufs = NUM_CAPTURE_BUFS;
>     hCapture = Capture_create(hBufTab, &cAttrs);
>
>     if (hCapture == NULL) {
>         ERR("Failed to create capture device, "
>             "720P component input connected?\n");
>         cleanup(THREAD_FAILURE);
>     }
>
>     videoStd = Capture_getVideoStd(hCapture);
>
>     /* We only support 720P capture */
> #if RES_720
>     if (videoStd != VideoStd_720P_50 && videoStd != VideoStd_720P_60) {
> #else
>     if (videoStd != VideoStd_1080I_30 && videoStd != VideoStd_1080P_30) {
> #endif
>         ERR("Need 720P composite input to this demo\n");
>         cleanup(THREAD_FAILURE);
>     }
>
>
>
> Then you should change the memory configuration of the encoder to work for
> 1080I. So please change the loadmodules.sh script as shown below before
> running the encode demo.
>
> # insert cmemk, tell it to occupy physical 120MB-200MB and create enough
> # contiguous buffers for the worst case requirements of the demos.
> rmmod cmemk.ko
> # one times 4MB, 10 times 3.5 MB,10 times 1.5MB etc
> #insmod cmemk.ko phys_start=0x87800000 phys_end=0x8ba00000
> pools=1x4147200,10x3458400,10x1434240,11x663552,4x60000
>
> # 10 times 4MB, 1 times 3.5 MB,10 times 1.5MB etc
> insmod cmemk.ko phys_start=0x87800000 phys_end=0x8ba00000
> pools=10x4147200,1x3458400,10x1434240,11x663552,4x60000
>
> # insert dsplinkk, tell it that DSP's DDR is at physical 250MB-254MB
> rmmod dsplinkk.ko
> insmod dsplinkk.ko
>
> # alter dma queue mapping for better visual performance
> if [ -f mapdmaq-hd ]
> then
>     ./mapdmaq-hd
> fi
>
> # make /dev/dsplink
> rm -f /dev/dsplink
> mknod /dev/dsplink c `awk "\\$2==\"dsplink\" {print \\$1}" /proc/devices` 0
>
>
> This should make it working for 1080.
>
>
> Currently the encoder will not encode at 30 frames persecond. I do not
> remember exactly how many frames per second it can encode.
>
>
>
>
> Regards,
> Mahendra kumar
>
>
>
>
>
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
>
>
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to