This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Appro 2A won't work at 2012/01/01 or after,

Dear All

 

I am using the TI DM36X platform, the 2A engine is using appro 2A, which is in cvharge by  Appro_aew_control.a and Appro_2a.lib.a

 

If I change the date time to 2012/01/01 or after, the 2A won't work any more, just simply change the date to next year.

 

Does any one happen to the same issue as me? 

  • Hi,

     

    As mentioned in the documents, Appro 2A is evaluation license and will expire by Dec 31 2012. If you need to use it in product, please license it from Appro.

     

    Also, if you are using latest v2.6 IPNC RDK, then TI2A is given with free license. You can use this if it meets you needs. in TI 2A, AE source code is provided along with AWB binary under free license.

     

    Regards,

     

    Raghu

     

  • Yes!

    TI 2A is work for 2012

  • Hi Raghu,

    I am also facing some issues with running IPNC software that came with Appro ref design when we bought it in Aug 2011.

     

    1.I am trying to see the live camera capture and display but av_server application hangs in between.

     From the log it seems that Appro 2A is the issue whose license has expired.

    2.Above post suggests that you provide v2.6 IPNC RDK.How can i get this piece of software and integrate it with IPNC application.

      Will the results be same as previously happening with Appro 2.60.01.

    3.Also i tried running the av_server by enabling TI 2A but doesn't seem to be of any help.

    4.We are solely relying on Appro software for our prototype version and any inherent issues related to licensing/performance/quality(like the one above)

      will land us in serious trouble.If apprp software is feasible for final product then only we will go ahead with it.

    5.Also we faced latency issues in which whole latency of real time capture by camera and display at web browser was exceeding 1 s.

    6.Also earlier in we could see the live video display of the ipnc camera getting broken at the bottom.

    Please help us in solving the above issues.

    Regards,

    Mayank

  • Can you please use Version 3.0.0 of the IPNC RDK release, but this is for Aptina MT9P031 sensor

    This will have Appro 2A which is still evaluation mode with extended expiry date

    For latency related issue, can you please use the attached file to fix the pooling time in RTSP timestamp

    Regards,

    Raghu

    APPROInput.cpp
  • Hi,

    DM368IPNC board that i am currently using has IMX036 sensor so i think i cannot use IPNC RDK 3.0.0.

    Also i am getting the following boot log when i am booting the board with original Appro kernel and fs image.

    Loading from NAND 128MiB 3,3V 8-bit, offset 0x500000
       Image Name:   Linux-2.6.18_pro500-davinci_IPNC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1818408 Bytes =  1.7 MB
       Load Address: 80008000
       Entry Point:  80008000
    ## Booting kernel from Legacy Image at 80700000 ...
       Image Name:   Linux-2.6.18_pro500-davinci_IPNC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    1818408 Bytes =  1.7 MB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Linux version 2.6.18_pro500-davinci_IPNC_DM368_2.6.0 (root@localhost.localdomain) (gcc version 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)) #1 PREEMPT Thu Jun 1
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    Machine: DaVinci DM368 IPNC
    Memory policy: ECC disabled, Data cache writeback
    DaVinci DM0365 variant 0x8
    PLL0: fixedrate: 24000000, commonrate: 170000000, vpssrate: 340000000
    PLL0: vencrate_sd: 75555555, ddrrate: 340000000 mmcsdrate: 48571428
    PLL1: armrate: 432000000, voicerate: 20571428, vencrate_hd: 27000000
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
    CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
    Built 1 zonelists.  Total pages: 12288
    Kernel command line: mem=48M console=ttyS1,115200n8 root=/dev/mtdblock3 rootfstype=cramfs ip=192.168.1.1:192.168.1.50:192.168.1.1:255.255.255.0:::off
    PID hash table entries: 256 (order: 8, 1024 bytes)
    Clock event device timer0_0 configured with caps set: 07
    Console: colour dummy device 80x30
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 48MB = 48MB total
    Memory: 44672KB available (3117K code, 647K data, 176K init)
    Security Framework v1.0.0 initialized
    Capability LSM initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    NET: Registered protocol family 16
    DaVinci: 104 gpio irqs
    MUX: initialized GPIO20
    MUX: initialized I2C_SCL
    Generic PHY: Registered new driver
    ch0 default output "COMPOSITE", mode "NTSC"
    VPBE Encoder Initialized
    SCSI subsystem initialized
    NET: Registered protocol family 2
    IP route cache hash table entries: 512 (order: -1, 2048 bytes)
    TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    TCP: Hash tables configured (established 2048 bind 1024)
    TCP reno registered

     ***davinci_spi_board_init()!<6>
     ***davinci_spi_board_init_End(0)!<5>VFS: Disk quotas dquot_6.5.1
    Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    squashfs: version 3.1 (2006/08/19) Phillip Lougher
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
    yaffs Jun 30 2011 15:45:25 Installing.
    SGI XFS with no debug enabled
    Initializing Cryptographic API
    io scheduler noop registered
    io scheduler anticipatory registered (default)
    LTT : ltt-facilities init
    LTT : ltt-facility-core init in kernel
    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
    Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfbc20000 (irq = 40) is a 16550A
    serial8250.0: ttyS1 at MMIO map 0x1d06000 mem 0xfbd06000 (irq = 41) is a 16550A
    RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
    Linux video capture interface: v2.00
    Trying to register davinci display video device.
    layer=c0545a00,layer->video_dev=c0545b60
    Trying to register davinci display video device.
    layer=c0545800,layer->video_dev=c0545960
    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
    i2c /dev entries driver
    nand_davinci nand_davinci.0: Using 4-bit hardware ECC
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
    Creating 7 MTD partitions on "nand_davinci.0":
    0x00000000-0x00300000 : "bootloader"
    0x00300000-0x00500000 : "params"
    0x00500000-0x00700000 : "kernel"
    0x00700000-0x02700000 : "filesystem"
    0x02700000-0x02900000 : "data1"
    0x02900000-0x02d00000 : "Calibration"
    0x02d00000-0x08000000 : "data2"
    nand_davinci nand_davinci.0: hardware revision: 2.3
    MUX: initialized SPI0_SCLK
    MUX: initialized SPI0_SDO)
    dm_spi.0: davinci SPI Controller driver at 0xc3866000 (irq = 42) use_dma=0
    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: proc
    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc intf: dev (254:0)
    rtc_davinci_dm365 rtc_davinci_dm365.0: rtc core: registered rtc_davinci_dm365 as rtc0
    Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
    ASoC version 0.13.1
    CQ0093 Voice Codec 0.1
    asoc: cq93vc <-> davinci-vcif mapping ok
    ALSA device list:
      #0: On-chip voice codec (cq93vc)
    IPv4 over IPv4 tunneling driver
    TCP bic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    Time: timer0_1 clocksource has been installed.
    Clock event device timer0_0 configured with caps set: 08
    Switched to high resolution mode on CPU 0
    rtc_davinci_dm365 rtc_davinci_dm365.0: setting the system clock to 2000-01-01 00:17:41 (946685861)
    IP-Config: No network devices available.
    VFS: Mounted root (cramfs filesystem) readonly.
    Freeing init memory: 176K
    INIT: version 2.86 booting
    0
    mkdir: Cannot create directory `/dev/.test': Read-only file system
    Starting the hotplug events dispatcher: udevd.
    Synthesizing the initial hotplug events...done.
    Waiting for /dev to be fully populated...done.
    0
    CSL: Module install successful, device major num = 253
    CSL: Module version 0.10.00, built on Jun 30 2011 15:48:54
    I2C: Module install successful, device major num = 252
    DMA: Module install successful, device major num = 251
    DRV: Module install successful
    DRV: Module built on Jun 30 2011 15:48:55
    DRV: EDMACC.QUEPRI  = 00000777
    DRV: SYSTEM.MSTPRI0 = 00440022
    DRV: SYSTEM.MSTPRI1 = 00000244
    DRV: ISP.BCR        = 00000002
    DRV: SYSTEM.MISC    = 00000391
    CMEMK module: built on Jun 30 2011 at 15:48:36
      Reference Linux version 2.6.18
      File /home/user/workdir/dvsdk_2_10_01_18_v2.6/linuxutils_2_24_03/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    allocated heap buffer 0xc4000000 of size 0x5000000
    CMEM Range Overlaps Kernel Physical - allowing overlap
    CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
    cmemk initialized
    EDMAK module: built on Jun 30 2011 at 15:48:37
      Reference Linux version 2.6.18
      File /home/user/workdir/dvsdk_2_10_01_18_v2.6/linuxutils_2_24_03/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
    IRQK module: built on Jun 30 2011 at 15:48:38
      Reference Linux version 2.6.18
      File /home/user/workdir/dvsdk_2_10_01_18_v2.6/linuxutils_2_24_03/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
    irqk initialized
    Empty flash at 0x0000b808 ends at 0x0000c000
    Empty flash at 0x00016ab8 ends at 0x00017000
    Empty flash at 0x0001e064 ends at 0x0001e800
    Empty flash at 0x00180828 ends at 0x00181000
    Empty flash at 0x0018482c ends at 0x00185000
    Empty flash at 0x0019b050 ends at 0x0019b800
    Empty flash at 0x001e3830 ends at 0x001e4000
    Empty flash at 0x001f4880 ends at 0x001f5000
    JFFS2 notice: (526) read_dnode: node CRC failed on dnode at 0x01dff0: read 0xffffffff, calculated 0xef205b51
    JFFS2 notice: (526) read_dnode: node CRC failed on dnode at 0x0167c8: read 0xffffffff, calculated 0x47c05166
    JFFS2 notice: (526) check_node_data: wrong data CRC in data node at 0x001e3800: read 0xfba74207, calculated 0x1490a44b.
    Creat queue id:0
    queue id:0
    FileMngThread created
    Creat queue id:32769
    queue id:32769
    queue id:32769
    AlramThread created
    Share memory init success
    IPNC_DM368_2.6.0 (root@localhost.localdomain) (gcc version 4.2.
    Creat queue id:65538
    queue id:65538
    Starting mounting local filesystems: mount queue id:65538
    Creat queue id:98307
    queue id:98307

    CPU is DM368
    ./av_server.out DM368 NTSC APPRO2A AEWB 1080P H264 5000000 VBR AUTO MENUOFF &
    Check_device_version : DEVICE VER = 1 !!
    none on /dev/shm type tmpfs (rw,size=5M)
    none on /var/run type tmpfs (rw)
    none on /tmp type tmpfs (rw,sync)
    CPU CurrentStatus is = 1
    Setting up networking ...rm: unable to remove `/etc/network/run': Read-only file system
    Starting hotplug subsystem:
    ApproDrvInit: 7
    Creat queue id:131076
    queue id:131076
       pci     
       pci      [success]
       usb     

    AVSERVER UI: Initializing.
     
     CLK Hz,
     ARM   Hz =  432000000
     DDR   Hz =  340000000
     VPSS  Hz =  340000000
     IMCOP Hz =  340000000
     
     DRV LDC: GetConfig 0003 0x0
     [OSA_FILE ] Reading file [/mnt/nand/IMG_Paramset.bin] ... Done. [1683076 bytes]

    CONFIGURING AVSERVER FOR DM368 .....
    queue id:65538
    ############OPEN###########
    ==========>>>> Start X,Y = 52,18
     Sensor Mode Info,
     Width      = 2024
     Height     = 1124
     fps        =   24
     Bin Enable =    0
     
     Sensor Frame Timing Info,
     fps                  = 24
     t_frame (ns)         = 41666668.000000
     t_row   (ns)         = 30458.333984
     t_pclk  (ns)         = 10.416667
     W                    = 2024
     H                    = 1124
     SW                   = 1406
     SD                   = 0
     HB                   = 450
     VB                   = 243
     HBmin                = 450
     VBmin                = 9
     f_pclk               = 96000000
     shutterOverhead (ns) = 4437.500000
     col_size             = 2024
     row_size             = 1124
     col_bin              = 0
     row_bin              = 0
     col_start            = 88
     row_start            = 348
     pll_M                = 16
     pll_N                = 1
     pll_DIV              = 1
     
    ############reset###########
    ############SPI OPEN###########
    spi mode: 16
    bits per word: 8
    max speed: 12000000 Hz (12000 KHz)
    ############SET REG###########
    ############OPEN END###########
    ================> 512, 0, 1735
    APPRO Setting Applied
    queue id:131076
    DavinciDisplay DavinciDisplay.1: Before finishing with S_FMT:
    layer.pix_fmt.bytesperline = 640,
     layer.pix_fmt.width = 640,
     layer.pix_fmt.height = 480,
     layer.pix_fmt.sizeimage =460800

     FR : 0 usersDavinciDisplay DavinciDisplay.1: pixfmt->width = 640,
     layer->layer_info.config.line_length= 640
     registered from exsiting face album
    IPNC_DM368_2.6.0 (root@localhost.localdomain) (gcc version 4.2.
    IPNC AUTO_IRIS = 1 (0:Manual,1:Auto)#####################
    APPRO 2A Created
    XXXXX IAE_CMD_SET_CONFIG XXXXX

     222 Aew_Cal_LoadParam: dfc check sum success
     (nand offset: 0x00500010, size: 0x0000181c, checksum: 0x000247d9)
    ################DFC ret=0##################
       usb      [success]

    After that it hangs and there is not o/p and no application run in daemon

    so that i can see the live video captured by the camera on web browser.

    I am using the original Appro ref design anf also the original Appro binaries

    so there is no question of altering the settings in the code or elsewhere.

    Any help how can i solve the above issue

    Mayank

    Thanks and Regards,

  • Hi,

    This is the peculiar problem with DM368IPNC-IMX036 we purchased from
    Appro.In the attached images for H.264 and MPEG4 D1 resolution please
    find that the image is breaking in the bottom and this break is very
    much visible as you clearly observe the edges of chair moving in front
    of the camera.
    This issue is only happening in H.264 D1 and MPEG4 D1 resolutions.


    Is it possible to set some settings so that this issue doesn't recur
    later in future.

    Thanks and Regards,
    Mayank

  • Mayank,

    Some issue with your resizer clock div, please slow down the clock from M=10 and N =80 or even lower the speed

    Regards,

    Raghu

  • Hi Raghu,

    Thanks for your mail.I tried changing the resizer clock in DRV_reszRun function by modifying the following lines:


        if(prm.clkDivM==0 || prm.clkDivN==0) {

        gDRV_reszObj.ipipeifClk.clkDivM       = 5;//Mayank //10
        gDRV_reszObj.ipipeifClk.clkDivN       = 40;//80

      } else {

          gDRV_reszObj.ipipeifClk.clkDivM       = 5;// prm.clkDivM;
          gDRV_reszObj.ipipeifClk.clkDivN       = 40;//prm.clkDivN;
      }

    but even after doing that i am getting the same issue and now i am getting the image tearing in H.264 1280*720 resolution

    Do i have to make some other changes elsewhere.I could not understand this resizer clock issue.Could you please explain a bit

    how the resizer helps in maintaining the synchronized data between vpfe and vpbe.

    also another issue that i am facing if i flash my own uimage and mount fs using nand.In the web browser if i click any option i.e camera settings

    it  displays the message "Internet explorer stops working" and ipnc web browser has to be restarted again.This issue doesn't come if we work on original appro image.

    Is it an ActiveX issue.

    In the log i see something like this:

    +++ BOA: Call GetEngCfgMsg.                                                     
    queue id:32769                                                                  
    MTD_open                                                                        
    MTD_read                                                                        
    MTD_close                                                                       
                                                                                    
    +++ BOA: Call GetEngCfgMsg.

    Thanks and Regards,

    Mayank

  • Hi,

    Can you keep M=10 and keep varying N=50,60,70,80 ... and check the result you get.

    Basically, you need to slow down the resizer to avoid the overwrite of buffers.

    Also, please dump the registers of IPIPEIF and check if clkdivM:N is getting programmed correctly.

    For BOA, can you check in wireshark, what could be the issue and debug the network messages

    Regards,

    Raghu

  • Hi Raghu,

    Thanks for your mail.The default mode of running is ISIF_IN.In this mode the Resizer clock M and N values are configured in

    UI_setconfig function as follows:

      if(platform==PLATFORM_DM368)
          config->resizerClkdivN = gAVSERVER_UI_config.vsEnable ? 60:70;
      else
      config->resizerClkdivN     = 50;

    Also in DRV_ipipeRszSetParams function clk M and N values are configured as default in following way.

      gDRV_ipipeObj.ipipeifClk.clkDivM       = 0;
      gDRV_ipipeObj.ipipeifClk.clkDivN       = 0;

    At  both these places i tried setting the M value as 10 and then varying the N value b/w 30,40..100

    But i could not see any change in image tearing condition.I think it is not taking any effect.

    Also i was able to take the dump of 21 registers of IPIPEIF which is as follows:

     0x01c71200: 00000000   IPIPE I/F Enable register
     0x01c71204: 00000000   IPIPE I/F Configu register
     0x01c71208: 00000780   IPIPE I/F Configu register
     0x01c7120c: 00000440
     0x01c712:   00000000
     0x01c71214: 00000000
     0x01c71218: 00000000
     0x01c7121c: 00000000
     0x01c71220: 00000000
     0x01c71224: 00000010
     0x01c71228: 00000200
     0x01c7122c: 00000000
     0x01230:    00000000
     0x01c71234: 00000000
     0x01238:    00000fff
     0x01c7123c: 00000000
     0x01c71240: 00000963  IPIPE I/F Clock div register
     0x01c71244: 00000000
     0x071248:   00000000
     0x01c7124c: 00000000
     0x01c7120:  00000fff

    clock div register(in bold) the value is coming to be 2403 which is equal to M/N*VPSS clock rate.

    For DDR_IN mode i am configuring the clkM and clkN values in DRV_reszRun function.

    I think this mode is automatically enabled if we enable any algorithm like VS,etc.

    in which case i could not see any image tearing condition.

    Could you suggest anything to overcome this issue which is appearing in all codecs (D1 mode)

    very prominently.

    Thanks and Regards,

    Mayank

  • Hi all,

    Still trying to debug this issue.I think the issue is the buffer overlap between capture->resizer->display.

    In ISIF mode data goes like ISIF->IPIPE+RSZ->DDR.So in VIDEO_captureTskRunIsifIn function it calls first.

    DRV_ipipeGetRszBuf to get the resizer buffer and then it calls DRV_ipipeGetRszBufInfo to get resizer buffer info.

    After this function i am trying to capture the image like this:

       count++;
            if(count>1) {
          static char filename[80];
          if(count%100==0) {
            sprintf(filename, "AFTER_CAPTURE_IMAGE_%04d_%dx%d.YUV", count,   pBufInfo->width,pBufInfo->height);
            OSA_fileWriteFile(filename, pBufInfo->virtAddr,   pBufInfo->width*pBufInfo->height*2);
          }
        }

    I think this is the image which we capture,please verify

    For D1 resolution the width and height is coming to be 736*512,this is 16 more in horz and 32 more in vertical direction.

    Also in the dumped image i am getting the frames overlap horizontally.

    Also i am trying to get the displayed image by calling the below code above DRV_framecopy.I hope this image is which we get in display.

    Please verify if my understanding is correct.

      if(count>1) {
          static char filename[80];

          if(count%100==0) {
            sprintf(filename, "DUMPIMG_%04d_%dx%d.YUV", count, pBufHeader->width,pBufHeader->height);
            OSA_fileWriteFile(filename, pBufInfo->virtAddr,720*pBufHeader->height*2);
          }
        }

    I am trying to find out cause for the occuring of Image tearing issue.

    Also if could suggest some alternative approach to solve image tearing issue.

    Thanks and Regards,

    Mayank