Timecode constructor broken?

Developers
2013-05-28
2013-09-03
  • Hello everyone,

    im just building a new ingex from cvs and I get a segmentation fault when launching the dvs_sdi binary or even the dvs_dummy.

    The backtrace indicates that the default constructor for Timecode is broken.

    Program received signal SIGSEGV, Segmentation fault.
    0x00007ffff5adde2b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    (gdb) bt
    #0  0x00007ffff5adde2b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
    #1  0x000000000044554a in Format (this=0x661a40) at Timecode.h:38
    #2  Ingex::Timecode::Timecode (this=0x661a40) at Timecode.cpp:99
    #3  0x000000000040f47d in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at dvs_sdi.cpp:188
    #4  0x000000000040f6b6 in _GLOBAL__sub_I_AUDIO_INTERLEAVED () at dvs_sdi.cpp:3934
    #5  0x000000000044956d in __libc_csu_init ()
    #6  0x00007ffff5219e40 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
    #7  0x0000000000405cf9 in _start ()
    

    This call is made from the global instanciation from here dvs_sdi line 188:

    188 Ingex::Timecode master_tc;       // master timecode
    

    I'm a bit puzzeled what may have caused this or is just my binary doing wrong?

    gcc -v shows:
    gcc version 4.7.2 (Debian 4.7.2-5

    with default settings (default debian compiler collection)

    Best regards,

    Martin

     
  • John Fletcher
    John Fletcher
    2013-05-28

    Oh dear, I will look into that.

     
  • That's nice i'll have a look into it too but I don't know the source that well of course ;)

     
  • John Fletcher
    John Fletcher
    2013-05-29

    OK, I think the problem is that I made the Timecode class variable length, which doesn't really work in ring buffer. Will work on fix.

     
  • I guess feeding the default constructor with valid initial values should do the trick, but im not sure what the system expects as valid initial values for a timecode class.
    Also I haven't had the time to check the history of the timecode class and track down was was changed.

     
    Last edit: Martin S. Schaub 2013-05-29
  • John Fletcher
    John Fletcher
    2013-06-03

    Should be fixed now.

     
  • Okay thank you very much.
    I'll have a look into it asap :-)

     
  • Hi John,

    this update broke 'bmd_sdi' compilation.
    (due to class changes from 'Timecode::Format' to 'TimecodeFormat::EnumType'

     
    Last edit: Michael Anisimoff 2013-06-27
  • The dvs contructor is fixed and dvs_sdi is working as intended as far as I can tell, many thanks.

     
  • John Fletcher
    John Fletcher
    2013-09-03

    Michael, bmd_sdi compilation works ok for me now.