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
