Hi, it didn´t work.
I ran the new loadmodules.sh and received this message:

[email protected]:/opt/dvsdk# ./loadmodules.sh
> ioremap_nocache(0x87800000, 69206016)=0xc8080000
> allocated heap buffer 0xc8080000 of size 0x239000
> cmem initialized 5 pools between 0x87800000 and 0x8ba00000
> DSPLINK Module (1.50) created on Date: Jan  3 2008 Time: 13:16:55
>

Seems to be right, but when I tried to run the encode program (with the
modified capture.c), I received this error:

[email protected]:/opt/dvsdk# ./encode -a audio.aac -v video.264
> Encode demo started.
> Error: Failed to create h264 video encoder


I have an extra information. I don´t know if this help but I modified
capture.c to receive 480P and it worked properly. I made the same list of
modifications that you put here, but to 480P, and worked fine.

I think you should pay attention in this lines:

# 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
>

 Instead of the comment symbol and the info text, both are equal. Is it
right?

Thanks for the help.


On Mon, Mar 2, 2009 at 8:11 AM, Marcelo Guedes Silva <
[email protected]> wrote:

> 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