×

INDI Library v2.0.6 is Released (02 Feb 2024)

Bi-monthly release with minor bug fixes and improvements

The Imaging Source and INDI

  • Posts: 35
  • Thank you received: 1
Hey,
I know, TIS cameras can be controlled via the V4L2 driver, but I'm kinda dissatisfied with its streaming performance and there seem to be a few more bugs concerning the communication of INDI with the camera.
Is this known? Are there any workaround? At the moment the maximum FPS I get is around 1.5 which is unsatisfactory knowing that qv4l2 makes 15 to 30 FPS with the same setup.
And if there is no workaround or way to improve this, is there a chance to build up a driver based on the TIS linux library ? Although I don't really know, if this adresses the actual problem behind the low frame rate since v4l2 does not seem to be the problem.
Greetings and big thanks in advance!
Cheers
Erik
4 years 7 months ago #42237

Please Log in or Create an account to join the conversation.

or you can ask the imaging source to develop an INDI driver for their cameras? It might be a long shot but with enough users asking...
4 years 7 months ago #42251

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1

Replied by erik on topic The Imaging Source and INDI

I asked and it doesn't seem like they are willing to do the development work for an TIS INDI driver based upon their linux SDK. :D I know, it was just me asking yet, but I kinda got the feeling, that they thought someone from the INDI community will be willing to do the job.

Sooo, I'll probably give it a try, because the half a frame per seconds streaming doesn't even come close to my expectations and I kind of want that driver in near future.

Does anybody already have some experience with the TIS SDK? Comments and hints appreciated!

Cheers
Erik
Last edit: 4 years 7 months ago by erik.
4 years 7 months ago #42517

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1

Replied by erik on topic The Imaging Source and INDI

So, for some reason the FPS with the new Ubuntu 18.04 version works now fine with the v4l2 driver and my The Imaging Source camera.
What I'd like to implement nonetheless, is the additional properties such as i. e. the Trigger Mode, ( see under section "Interface (electrical)" ). Since it would allow to generate very accurate timestamps in connection with an GPS device.

What would be the most convenient way to inherit from the V4L2_Driver class? Forking the INDI main repository and adding it or maybe going into the 3rd party and making an The Imaging Source driver, since these trigger features will only work for some of their cameras?

Thanks in advance

Cheers
Erik
4 years 5 months ago #44453

Please Log in or Create an account to join the conversation.

Probably 3rd party is the way to go here, though I'm not sure how well the V42L is exposed to 3rd party drivers at the time being.
4 years 5 months ago #44457

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1

Replied by erik on topic The Imaging Source and INDI

Okay. Forked the 3rd party drivers already. A quick glance revealed that the header files for the V4L drivers aren't yet added to the include folders.
4 years 5 months ago #44485

Please Log in or Create an account to join the conversation.

Right, let us know what needs to be done to get this in order. Like what we did with the LX200 library.
4 years 5 months ago #44488

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1

Replied by erik on topic The Imaging Source and INDI

Hey, thanks for the hint with the lx200 library.

I had a look at that and tried to do it similar, I changed the CMakeLists.txt accordingly and adapted the FindINDI.cmake in indi-3rdparty as well, but I seem to have been missing something, 'cause the newly written driver inheriting from V4L2_Driver does not link to the created library. Undefineed references to all member function..
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:157: undefined reference to `V4L2_Driver::V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::~V4LTISCCD()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:162: undefined reference to `V4L2_Driver::~V4L2_Driver()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::initProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:174: undefined reference to `V4L2_Driver::initProperties()'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISGetProperties(char const*)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:182: undefined reference to `V4L2_Driver::ISGetProperties(char const*)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewSwitch(char const*, char const*, ISState*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:187: undefined reference to `V4L2_Driver::ISNewSwitch(char const*, char const*, ISState*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewText(char const*, char const*, char**, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:192: undefined reference to `V4L2_Driver::ISNewText(char const*, char const*, char**, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::ISNewNumber(char const*, char const*, double*, char**, int)':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:197: undefined reference to `V4L2_Driver::ISNewNumber(char const*, char const*, double*, char**, int)'
CMakeFiles/indi_v4ltis_ccd.dir/v4ltis_ccd.o: In function `V4LTISCCD::updateProperties()':
/home/erik/indi-3rdparty/indi-v4ltis/v4ltis_ccd.cpp:202: undefined reference to `V4L2_Driver::updateProperties()'

Anyway, here are the changes I made to build the v4l library:
########### INDI::CCD V4L Driver ###############
IF (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
    SET(v4l2driverccd_SRC
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/lx/Lx.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/v4l2driver.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/indi_v4l2driver.cpp)
 
    IF (UNITY_BUILD)
        ENABLE_UNITY_BUILD(v4l2driverccd v4l2driverccd_SRC 10 cpp)
    ENDIF ()
 
    add_library(indiv4l SHARED ${v4l2driverccd_SRC} ${libwebcam_C_SRC} ${libwebcam_CXX_SRC})
    set_target_properties(indiv4l PROPERTIES VERSION ${CMAKE_INDI_VERSION_STRING} SOVERSION ${INDI_SOVERSION} OUTPUT_NAME indiv4l)
    add_executable(indi_v4l2_ccd ${v4l2driverccd_SRC} ${libwebcam_C_SRC} ${libwebcam_CXX_SRC})
    target_link_libraries(indi_v4l2_ccd ${JPEG_LIBRARY} indidriver)
    install(TARGETS indi_v4l2_ccd RUNTIME DESTINATION bin )
 
    install(TARGETS indiv4l LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/v4l2driver.h
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/lx/Lx.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi COMPONENT Devel)
 
    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/webcam/v4l2_base.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi/webcam COMPONENT Devel)
 
    install(FILES
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/webcam/v4l2_decode/v4l2_decode.h
        DESTINATION ${INCLUDE_INSTALL_DIR}/libindi/v4l2_decode COMPONENT Devel)
 
    # For DBK21 camera
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/drivers/video/80-dbk21-camera.rules DESTINATION ${UDEVRULES_INSTALL_DIR})
 
 
ENDIF ()

I did include that into the paragraph of the v4l driver.
As for the FindINDI.cmake I just added this line
INDI_declare_component(v4l  indiv4l)

To my understanding, shoudn't be the v4l library now be included into the INDI_LIBRARIES variable in cmake? I seem to be missing something obvious.

Cheers
Erik

PS.: Once it works, shall I do a pull request?
4 years 5 months ago #44591

Please Log in or Create an account to join the conversation.

Are these changes in a fork somewhere? If yes, I can check out the fork and diagnose the issue right there.
Last edit: 4 years 5 months ago by Jasem Mutlaq.
4 years 5 months ago #44592

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1
4 years 5 months ago #44602

Please Log in or Create an account to join the conversation.

I fixed a couple of issues (you can't use DEBUG outside the class, use IDLog). but it compiled fine. It's not linked against indi_v4l2.. did you push this part yet?
4 years 5 months ago #44632

Please Log in or Create an account to join the conversation.

  • Posts: 35
  • Thank you received: 1

Replied by erik on topic The Imaging Source and INDI

I just pushed it all. Sorry.

It's not yet much what I did. I only took the generic ccd and used it as template to inherit from v4l2_driver.
4 years 5 months ago #44633

Please Log in or Create an account to join the conversation.

Time to create page: 1.710 seconds