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.

DM368 1080P 30 fps problem

Other Parts Discussed in Thread: TVP7002

I am using custom board with DM368 running Ridgerun .i already interfaced FCB-EH6300 sony block camera to the board using LVDS IC and  by modifying TVP7002 driver(bypass I2c calls).It is working fine woth 30 fps using gstreamer pipeline.

Now i want to interface another sony HD camera to my board.I am getting the video but with half the frame rate.Instead of 30 fps, I am getting 15.

I checked the HD ,VD signals from the camera.it is giving 30 fps.

The video seems to be fine  except the frame rate.

Can anybody suggest some solution ..please

Thanks

  • Hi,

    You mentioned the one of the sensors works fine you get 30fps, but moving it to different one causes frame loss strange.
    I suspect it would something to do with the sensor driver. To root cause it I would suggest to take the dump of vpfe regs in both the cases & compare.

    Cheers,
    --Prabhakar Lad
  • Hi Prabhakar,
    Thank you for your fast reply.I am not that familiar with vpfe capture.Is there any way to see the register dump with out using printk's in the driver code.
    Akhil
  • Hi,


    I have attached the exe (rename it to readl) just paste into your fs and get the dump with the following commands:

    ./readl 0x01c71000 0x0 0x1ff //isif
    ./readl 0x01c70000 0x0 0xff //isp
    ./readl 0x01c70800 0x0 0x1FF //ipipe
    ./readl 0x01c71200 0x0 0xFF //ipipeif
    ./readl 0x01c70400 0x0 0x1FF //rsz

    BTW what is your pipeline, are taking the data from CCDC Or from the resizer ?

    Cheers,

    --Prabhakar Lad

    readl.txt
    ELF(\�4h4 ('$p,	,�,�44�4�44�4���8	8	�8	8	8	04�D	D	D	��HH�H�  hh�h�tt/lib/ld-linux.so.3GNUTMontaVista Software
    	A��S��5��<�<e �tG,� N8� .P�< _Jv_RegisterClasses__gmon_start__libc.so.6printfperrormmapabortsscanfexit__libc_start_mainopenGLIBC_2.4$ii
    j\
    
    8
    <
    @
    D
    H
    L
    P
    T
    X
    	�-��M�/�Ѝ�����-�������@�Ə�ʌ�@���Ə�ʌ�8���Ə�ʌ�0���Ə�ʌ�(���Ə�ʌ� ���Ə�ʌ����Ə�ʌ����Ə�ʌ����Ə�ʌ����$��������
     �� -�-���0���-���������4��ԇD-����0��
    ���0��S���3�/���脅0 ��0��S�0�0��/�h
    ��0��S��/0��S��/����@	
    ����-��L�H�M���0��@0�\��������0�S��D����������0�S�
    0�(������� ���������� ��0�0��  K�������� ��0�0��$ K��������� ��0�0��( K���������  �$0� �� 0�R�:  �$0� ��(0�1����  �$0�0��Q�:�|��y��������  �$0�0���>��0��,0�  �$0�0��:��#:��40�(0�!��40�0���>��0���>��0��00�0�0��,0�0����0� ��0��\����0��<0�< �(0�R�.*<0�S�
    ���_���<0�!��$0�0������X���( �<0� c�@0�R�0�1H0�0��D0�D �H0�R�� �40���< �D0�0��1�����8�X��8�>���D0�0��D0�����<0�@ �0��<0����� ��3�����+��뜈����Ԉ������$�
    ����-��L��M��0�0�����K����pD-�H���
    ���@���M�����8 ��80��0b�CT� ��*`��P������@��ET����:Ѝ�p���H�������@ ��@0��0b�0D-�CA��4���@D�
    ���t�0��
    P������@T����*0D���������ԁ�-��M�Ѝ����/dev/memopenUsage:  %s <base> <offset> <cnt>
            All arguments are in hex.
    %xInvalid offset or count.
    
    %05X  %08X 0��܄��$ȃ
    ��8	<	܁̂�
    t,
    H��x����oX����o���o@�D	܃܃܃܃܃܃܃܃܃GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)GCC: (GNU) 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)\�8,���ȃ��,aԇ�$k��ԃ!c�y_IO_stdin_used6a
    E__libc_csu_init~__libc_csu_fini_\���../sysdeps/arm/elf/start.S/var/tmp/BUILD/glibc-2.3.3/csuGNU AS 2.15.94��R����o�O7\J9int
    EO@����OiVv/var/tmp/BUILD/glibc-2.3.3/objdir/csu/crti.S/var/tmp/BUILD/glibc-2.3.3/csuGNU AS 2.15.94�f���ԇo�int��7Oy�=ԇ4�]�QyiR,T	,�[4���]i],T
    ��
    �$+�
    ���,�
    ���-�
    ��.�i
    �/var/tmp/BUILD/glibc-2.3.3/objdir/csu/crtn.S/var/tmp/BUILD/glibc-2.3.3/csuGNU AS 2.15.94�%%$>$>4:;I?
    &I%%$>:;I$>.?:;'@
    U4:;I4:;I
    	&I
    I!'
    I4:;I?<%N.�
    ../sysdeps/arm/elfstart.S\��..,...,.0. �
    init.c~@�
    /var/tmp/BUILD/glibc-2.3.3/objdir/csucrti.S��:-ȃ'--��
    -,-,,,,,���
    /opt/montavista/foundation/devkit/arm/v5t_le/lib/gcc/armv5tl-montavista-linuxeabi/3.4.3/includeelf-init.cstddef.hԇ<cj++1�F
    �a-)/'/)-�
    d@�
    /var/tmp/BUILD/glibc-2.3.3/objdir/csucrtn.S��,ԃ,����|
    ԇ`D�����P4�TP����short intlong long int/var/tmp/BUILD/glibc-2.3.3/csuunsigned charlong long unsigned intshort unsigned intGNU C 3.4.3 (MontaVista 3.4.3-25.0.70.0501961 2005-12-17)_IO_stdin_usedelf-init.csize_t__fini_array_start__libc_csu_initsize__init_array_end__libc_csu_fini__fini_array_end__init_array_startarch: armv5tL.symtab.strtab.shstrtab.interp.note.ABI-tag.note.numapolicy.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.ARM.extab.ARM.exidx.eh_frame.init_array.fini_array.jcr.dynamic.got.data.bss.comment.debug_aranges.debug_pubnames.debug_info.debug_abbrev.debug_line.debug_frame.debug_str.note.gnu.arm.ident.debug_ranges4�4#H�H 1h�htB܁�@H��P̂�tX���o@�@e���oX�X t	x�x}	���H�ȃ��܃���\�\,����������,�,	�p�,�,	
    �4�4	�8	8	�<	<	�@	@	�D	D	��,
    ,
    4�`
    `
    �h
    h
    �h
    ��(��_
    �*�8D0LQ0|7\�p��~��&X	@$V4�H�h�܁�̂@�X�x�	��
    ȃ܃\�
    ����,�,�4�8	<	@	D	,
    `
    h
     !"#$%&����9��
    I��
    L��
    IȃI��O��LH�Z��Lh�I\�
    L`
    L��
    f��L����m��IԃI������@	Ld
    �h
    ���
    I��
    L؄
    �<	L<	�܄
    I܄
    L��
    8	L8	&��I�
    L��
    I��
    .��Iԇ
    L(�
    I4�
    L|�
    ���94�L4�G@	L@	S܃`4���lD	ul
    ������@	���h
    ���d
    �4�T
    ����,����ȃ���(
    ���<-l
    ��9\�
    @<	��Sԇ`
    ch
    ��o��
    t �t�<	���,� �l
    ���`
     ����8��h
    ���,
    �l
    ���8	����`
    ! 5P�<G initfini.c/var/tmp/BUILD/glibc-2.3.3/objdir/csu/crti.Scall_gmon_start$a$dabi-note.Snuma-note.Sinit.c/var/tmp/BUILD/glibc-2.3.3/objdir/csu/crtn.Scrtstuff.c__JCR_LIST__completed.0__do_global_dtors_aux__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryreadl.celf-init.c__FRAME_END____JCR_END____plt_header__exidx_end_DYNAMIC_bss_end__abort@@GLIBC_2.4__fini_array_end__bss_start____dso_handle__libc_csu_fini__libc_start_main@@GLIBC_2.4__exidx_start_initread_elementperror@@GLIBC_2.4mmap@@GLIBC_2.4__bss_end___start__fini_array_start__libc_csu_init__bss_startmainopen@@GLIBC_2.4__init_array_endsscanf@@GLIBC_2.4__end__data_start_finiexit@@GLIBC_2.4_edata_GLOBAL_OFFSET_TABLE__end__init_array_start_IO_stdin_used__data_start_Jv_RegisterClassesprintf@@GLIBC_2.4__gmon_start__

  • Hi Prabhakar,
    This is my pipeline

    gst-launch -v v4l2src queue-size=6 always-copy=FALSE input-src=component ! "video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=1088,framerate=60/1" ! dmaiaccel ! dmaienc_h264 encodingpreset=2 ratecontrol=4 ! dmaiperf print-arm-load=true ! rtph264pay ! udpsink host=192.168.1.15 port=3000 sync=false

    framerate=60/1 is used because ,in tvp7002 driver code i am using "V4L2_STD_1080P_60" as standard.
    The above pipeline is running fine with block camera at ~30 fps.but if i am running the same with the second one ,it is not starting.Then i want to change the framerate to "framerate=30/1", pipeline is running with 15 fps.
    I did the register dump of vpfe as you told. I found difference in the resizer registers

    for the working sensor:
    reg addr= 0B0 , RSZ_SDR_Y_BAD_H =00008340
    0B8 ,RZA_SDR_Y_SAD_H =00008340
    0CC ,RZA_SDR_C_BAD_H =0000834E
    0D4 ,RZA_SDR_C_SAD_H = 0000834E

    0140 ,RZB_SDR_Y_BAD_H=00008355
    0148 ,RZB_SDR_Y_BAD_L=00008355

    for the other one :
    reg addr= 0B0 , RSZ_SDR_Y_BAD_H =00008320
    0B8 ,RZA_SDR_Y_SAD_H =00008320
    0CC ,RZA_SDR_C_BAD_H =0000834E
    0D4 ,RZA_SDR_C_SAD_H = 0000832E

    0140 ,RZB_SDR_Y_BAD_H=00008335
    0148 ,RZB_SDR_Y_BAD_L=00008335

    there is a difference of value 0x20 in each reg settings.
    There is also some register difference in the resizer registers(reg addr= 2B0,2B8 etc),but i am not able to find those register address in the vpfe datasheet. There also 0x20 difference is there.

    One more thing ,when i check the output in oscilloscope ,i found that the width of VD sync signals are not the same for both the sensors.
    clock of the working sensor is 74Mhz and for other, it is 81Mhz.
    Can you suggest where I want to look at for the problem?

    Thanks
    Akhil
  • Hi,

    1: For the second sensor which doesn’t work when you run the gstreamer pipeline do you get any error messages (try dmesg) ?
    2: from where is the clock source supplied to the sensors ?
    3: what version of linux are you using is it psp/dvsdk release ?

    Cheers,
    --Prabhakar Lad
  • Hi,
    1.I am not getting any error messages while executing dmesg.
    2.both the cameras are having their own clocks.For the working one it is 74 Mhz and for other it is 81 Mhz.
    3.I am using ridge run eval SDK with TI DVSDK 4_02_00_06.

    Akhil

  • Hi,
    1.I am not getting any error messages while executing dmesg.
    2.Both the cameras are having their own clocks.For the working one it is 74 Mhz and the other one 81 Mhz.
    3.I am using ridge run eval SDK with TI DVSDK 4_02_00_06.

    Thanks,
    Akhil
  • Hi,

    Is it  Linux version 2.6.32 ? Does the release have sample v4l2 apps in it ? Also does the sensor driver in first place support 108p60 ?

    gst-launch -v v4l2src queue-size=6 always-copy=FALSE input-src=component ! "video/x-raw-yuv,format=(fourcc)NV12,width=1920,height=1088,framerate=60/1" ! dmaiaccel ! dmaienc_h264 encodingpreset=2 ratecontrol=4 ! dmaiperf print-arm-load=true ! rtph264pay ! udpsink host=192.168.1.15 port=3000 sync=false

    framerate=60/1 is used because ,in tvp7002 driver code i am using "V4L2_STD_1080P_60" as standard.
    The above pipeline is running fine with block camera at ~30 fps.

    Not sure what exactly you meant here! you set 1080p60 on sensor and get 30fps ?

    Cheers,

    --Prabhakar Lad

  • Hi,
    1. The Linux version is 2.6.32.
    2. As mentioned earlier we have modified tvp7002 driver(removed all i2c calls).We are interfacing Sony Block camera FCB-EH6300.The block camera provides the pixel clock and the vpfe capture module master clock is not used.In the tvp7002 driver code there is no standard for 30 fps.So we used V4L2_STD_1080P_60 setting.
    3. For the above setting if we mention framerate=60/1 we get the video @ 30FPS and if we set the framerate=30/1 we get video @ 15FPS.
    4. For the non-working camera framerate=30/1 setting gives 15 FPS output and framerate=60/1 hangs the pipeline.
    5. Working camera has pixel clock of 74 MHz and the non-working camera has 81 MHz.

    Thanks
    Akhil