Hey folks, We've run into a seemingly strange problem when trying to encode live video on our custom DM6446 hardware board using a 2.6.28-rc6-based kernel. We have applied all the patches we're aware of to get VPFE, CMEM, and DSPLink to compile correctly against this kernel. We have verified that the vpfe_capture driver works well by saving raw YUV snapshots to disk; they look fine. We've got a 3rd party H264 codec and a demo program to exercise it. The demo app will encode a raw YUV file without a hitch (e.g. foreman_vga_422.yuv). The problem arises when we try to run the encoding demo using live capture. VIDENC_process() bombs while encoding the header: App-> header encoding...
ceapp_encodeHeader() extended VIDENC_OutArgs used (188/156). ceapp_encodeHeader() extended VIDENC_InArgs used (16/4). CMEM Error: getPhys: Failed to get physical address of 0x4015c000 CMEM Error: getPhys: Failed to get physical address of 0x40226fff CEapp-> VIDENC_process() failed, status=0xfffffffe, ext=0x00000000 ext=0x00000000 App-> ERROR : ceapp_encodeHeader() (-2) Those addresses correspond to the virtual addresses of the first capture buffer, and the second capture buffer -1, respectively. Those were allocated via kzalloc(), which should yield physically contiguous memory, so we don't know what the problem would be. It was suggested by our codec vendor that the issue might be the CMEM pool configuration. We find this confusing since the capture buffers come from Linux memory, not the CMEM pools. CMEM merely does the virt->phys address translation to hand to the DSP in that case, right? Additionally, when recording from file and CMEM actually is in charge of allocating the input buffers, things work fine. It would seem, then, that CMEM is having trouble translating an address for memory that it didn't allocate. Has anybody else run into this? Regards, Ryan Talbot
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
