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.

regarding VPFE

Other Parts Discussed in Thread: TVP7002

Hello,

Can anybodytell me  the  difference  between VPFE driver  and V4l2? Is it necessary that VPFE should always be used ?

How PSP drivers are related  to the  above?

Thanks

NG

  • V4L2 is a Linux video driver standard, the VPFE drivers that are included with the PSP driver package for our various Davinci devices are V4L2 compliant drivers. For further details on using the PSP drivers to capture video you will want to reference the PSP documentation included with your install, for example if you are using DM6446 or DM355 you would want to look at SPRUEP7.

  • Hi Bernie,

    I want to know which documentation to look at for dm365 v4l2 drivers in order to bypass the Previewer and Resizer but still working in continuous mode as I need to use both fields and not want the second field doubled up into first field.  I have looked at SPRUGP6 but is a bit confused of what it explains about data path 2 and how the demos I am looking at operate - being fbdev_loopback where both fields are preserved and encodedecode demo where the frame is deinterlaced.  Both apps boot up in a similar way but I don't know where to look anymore to figure out how to disable resizer/previewer from automatically deinterlacing my frames in encodedecode demo.

    Thanks

    Jinh T

  • Jinh said:
    I want to know which documentation to look at for dm365 v4l2 drivers in order to bypass the Previewer and Resizer but still working in continuous mode as I need to use both fields and not want the second field doubled up into first field.

    I don't believe this mode is possible with the current version of the DM365 video capture driver. Based on the constraints section of SPRUGP6 it mentions specifically that continuous mode forces the resizer deinterlacing.

    SPRUGP6 Section 1.3 said:
    In continuous mode, with interlaced scan input, only the second field of the input data is used for capture at Resizer and is scaled up by 2x to preserve the height. So in this mode, the video is de-interlaced at the driver and hence both fields are not available.

    This being said, you would not be able to operate in continuous mode without the resizing, you would have to use the 'data path 1' mode and do any processing as a separate operation instead of on the fly.

  • Thanks Bernie,

    I agree with what is said under constraints in SPRUGP6 but am confused between how the encodedecode demo and the fbdev_loopback demo under PSP_02_10_00_14 operates under what I can see the same video drivers as in encodedecode demo.  The only difference I can see from the boot-up listen of the kernel is the settings of the video and osd devices which I list here: (sorry for long listing but it shows extract relevant to resizer/previewer and display devices)

    Bootargs for encodedecode demo:

    <<%%%%%%%%  listing quote start   %%%%%%%%%%%>>

    Memory: 76MB = 76MB total

    Memory: 72576KB available (3525K code, 712K data, 200K 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

    MUX: initialized SPI0_SCLK

    MUX: initialized SPI0_SDO)

    MUX: initialized SPI0_SDI

    MUX: initialized SPI0_SDENA0

    DaVinci: 104 gpio irqs

    MUX: initialized GPIO20

    MUX: initialized I2C_SCL

    DM365 IPIPE initialized in Continuous mode

    Generic PHY: Registered new driver

    ch0 default output "COMPOSITE", mode "PAL"

    VPBE Encoder Initialized

    LogicPD encoder initialized

    Avnetlcd encoder initialized

    dm365_afew_hw_init

    SCSI subsystem initialized

    usbcore: registered new driver usbfs

    usbcore: registered new driver hub

    NET: Registered protocol family 2

    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

    TCP established hash table entries: 4096 (order: 2, 16384 bytes)

    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

    TCP: Hash tables configured (established 4096 bind 2048)

    TCP reno registered

    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 Mar 8 2010 14:10:56 Installing.

    SGI XFS with no debug enabled

    Initializing Cryptographic API

    io scheduler noop registered

    io scheduler anticipatory registered (default)

    davincifb davincifb.0: dm_osd0_fb: 720x576x16@0,0 with framebuffer size 2025KB

    davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 2500KB

    davincifb davincifb.0: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 810KB

    davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 2500KB

    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec

    facedetect major#: 253, minor# 0

    facedetect driver registered

    imp serializer initialized

    davinci_previewer initialized

    davinci_resizer initialized

    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

    Davinci EMAC MII Bus: probed

    MAC address is 00:0e:99:02:ca:73

    TI DaVinci EMAC Linux version updated 4.0

    netconsole: not configured, aborting

    Linux video capture interface: v2.00

    vpfe_init

    starting ccdc_reset...<7>

    End of ccdc_reset...<5>vpfe_probe

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = MT9T001

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = MT9P031

    TVP514X : nummber of channels = 1

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = TVP514X

    Trying to register davinci display video device.

    layer=c0656600,layer->video_dev=c0656760

    Trying to register davinci display video device.

    layer=c0656400,layer->video_dev=c0656560

    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = TVP7002

    af major#: 250, minor# 0

    <<%%%%%%%%  listing quote end    %%%%%%%%%%%>>

    Bootargs for fbdev_loopback demo:

    <<%%%%%%%%  listing quote start   %%%%%%%%%%%>>

    Memory: 76MB = 76MB total

    Memory: 72576KB available (3525K code, 712K data, 200K 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

    MUX: initialized SPI0_SCLK

    MUX: initialized SPI0_SDO)

    MUX: initialized SPI0_SDI

    MUX: initialized SPI0_SDENA0

    DaVinci: 104 gpio irqs

    MUX: initialized GPIO20

    MUX: initialized I2C_SCL

    DM365 IPIPE initialized in Continuous mode

    Generic PHY: Registered new driver

    ch0 default output "COMPOSITE", mode "PAL"

    VPBE Encoder Initialized

    LogicPD encoder initialized

    Avnetlcd encoder initialized

    dm365_afew_hw_init

    SCSI subsystem initialized

    usbcore: registered new driver usbfs

    usbcore: registered new driver hub

    NET: Registered protocol family 2

    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

    TCP established hash table entries: 4096 (order: 2, 16384 bytes)

    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

    TCP: Hash tables configured (established 4096 bind 2048)

    TCP reno registered

    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 Mar 8 2010 14:10:56 Installing.

    SGI XFS with no debug enabled

    Initializing Cryptographic API

    io scheduler noop registered

    io scheduler anticipatory registered (default)

    davincifb davincifb.0: dm_osd0_fb: 656x64x16@64,0 with framebuffer size 2025KB

    davincifb davincifb.0: dm_vid0_fb: 720x576x16@0,0 with framebuffer size 2500KB

    davincifb davincifb.0: dm_osd1_fb: Initial window configuration is invalid.

    davincifb davincifb.0: dm_osd1_fb: 656x64x16@512,0 with framebuffer size 2025KB

    davincifb davincifb.0: dm_vid1_fb: 720x576x16@0,0 with framebuffer size 2500KB

    DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec

    facedetect major#: 253, minor# 0

    facedetect driver registered

    imp serializer initialized

    davinci_previewer initialized

    davinci_resizer initialized

    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

    Davinci EMAC MII Bus: probed

    MAC address is 00:0e:99:02:ca:73

    TI DaVinci EMAC Linux version updated 4.0

    netconsole: not configured, aborting

    Linux video capture interface: v2.00

    vpfe_init

    starting ccdc_reset...<7>

    End of ccdc_reset...<5>vpfe_probe

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = MT9T001

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = MT9P031

    TVP514X : nummber of channels = 1

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = TVP514X

    Trying to register davinci display video device.

    layer=c061b600,layer->video_dev=c061b760

    Trying to register davinci display video device.

    layer=c061b400,layer->video_dev=c061b560

    davinci_init:DaVinci V4L2 Display Driver V1.0 loaded

    vpfe ccdc capture vpfe ccdc capture.1: vpif_register_decoder: decoder = TVP7002

    af major#: 250, minor# 0

    <<%%%%%%%%  listing quote end    %%%%%%%%%%%>>

    When I record video played through fbdev_loopback the fields are not deinterlaced and that is the functionality I wish to have in my encodedecode demo.  Only changes I made to encodedecode demo until now it to change data on OSD to only print a realtime framecounter without any other data and inserting barcode counter per field on the left edge.  I hop eyou can help me solve this as I believe I would be able to change something to make fields data behave the same in encodedecode as in fbdev_loopback.

    Thanks, Jinh T