CasparCG / server

CasparCG Server is a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs. It has been in 24/7 broadcast production since 2006. Ready-to-use downloads are available under the Releases tab https://casparcg.com.
GNU General Public License v3.0
901 stars 269 forks source link

2.1 Decklink crashes few seconds after startup #484

Closed toontoet closed 7 years ago

toontoet commented 7 years ago

In the forum this thread mentions a crashing Decklink, possible caused by the thumbnail producer: http://casparcg.com/forum/viewtopic.php?f=3&t=4304

i can confirm we have exactly the same problem. See errors bellow.

extra information that might help with isolating the issue:

*we are running on Ubuntu Linux 16.04 with the latest 2.1 build (61974506572c47b0650c4b5bfa65cd18621d5fec_linux.tar.gz). previous recent builds had the same problem.

*we updated the decklink driver to it's latest version 1.8.

*we tested with a brand new DeckLink Quad 2. same problem occurs, so a hardware defect seems unlikely

*we have tested the possible relation with thumbnail generation mentioned in the forum posts by turning it off in the config with false. this does not solve the issue.

*the error occurs within seconds from starting playout, but seems to take a little longer to occur when we turn off the screen and stream consumer (i.e. only the decklink consumer is running)

[error] Dynamic exception type: std::future_error [2016-09-30 12:33:55.970] [140439679772416] [error] std::exception::what: std::future_error [2016-09-30 12:33:55.970] [140439679772416] [error] Caught at (output 1): [2016-09-30 12:33:55.970] [140439679772416] [error] [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}::operator()() const + 0x594 [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::_Function_handler<void (), std::reference_wrapper<std::_Bind_simple<std::reference_wrapper<std::future<decltype ({parm#1}())> caspar::executor::internal_begin_invoke<caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}>(caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}&&, caspar::task_priority)::{lambda()#1}> ()> > >::_M_invoke(std::_Any_data const&) + 0x17 [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, void> >::_M_invoke(std::_Any_data const&) + 0x21 [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) + 0x1e [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : void std::call_once<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool> >(std::once_flag&, void (std::__future_base::_State_base::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const&&, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) + 0x80 [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::__future_base::_Task_state<std::future<decltype ({parm#1}())> caspar::executor::internal_begin_invoke<caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}>(caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}&&, caspar::task_priority)::{lambda()#1}, std::allocator<int>, void ()>::_M_run() + 0x89 [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::packaged_task<void ()>::operator()() + 0x2c [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : std::_Function_handler<void (), std::future<decltype ({parm#1}())> caspar::executor::internal_begin_invoke<caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}>(caspar::core::output::impl::operator()(caspar::core::const_frame, caspar::core::video_format_desc const&, caspar::core::audio_channel_layout const&)::{lambda()#2}&&, caspar::task_priority)::{lambda()#2}>::_M_invoke(std::_Any_data const&) + 0xf [2016-09-30 12:33:55.970] [140439679772416] [error] bin/casparcg : caspar::executor::run() + 0x11e [2016-09-30 12:33:55.970] [140439679772416] [error] [2016-09-30 12:33:55.971] [140439069001472] [debug] DeckLink HD Extreme 3D+ [1-1|1080p2500] Destroying on asynchronous destruction thread. [2016-09-30 12:33:55.971] [140439069001472] [debug] DeckLink HD Extreme 3D+ [1-1|1080p2500] Uninitializing. [2016-09-30 12:33:55.971] [140439679772416] [debug] [diagnostics] [Screen consumer [1|1080p2500]] dropped-frame [ch=1] [2016-09-30 12:33:56.035] [140439585367808] [info] DeckLink HD Extreme 3D+ [1-1|1080p2500] Scheduled playback has stopped. [2016-09-30 12:33:56.537] [140439069001472] [debug] Shutting down decklink_consumer[1] [2016-09-30 12:33:56.537] [140439069001472] [info] DeckLink HD Extreme 3D+ [1-1|1080p2500] Uninitialized.

toontoet commented 7 years ago

For reference. This is our config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <thumbnails>
   <generate-thumbnails>false</generate-thumbnails>
  </thumbnails>
  <log-level>trace</log-level>
  <paths>
    <media-path>media/</media-path>
    <log-path>log/</log-path>
    <data-path>data/</data-path>
    <template-path>templates/</template-path>
    <thumbnail-path>thumbnail/</thumbnail-path>
    <font-path>font/</font-path>
  </paths>
  <lock-clear-phrase>secret</lock-clear-phrase>
  <channels>
    <channel>
      <video-mode>1080p2500</video-mode>
      <channel-layout>stereo</channel-layout>
      <consumers>
        <decklink>
         <device>1</device>
         <embedded-audio>true</embedded-audio>
         <latency>normal</latency>
         <keyer>default</keyer>
         <channel-layout>stereo</channel-layout>
         <!-- key-only>false</key-only-->
         <buffer-depth>4</buffer-depth>
       </decklink>
        <screen>
          <device>1</device>
          <windowed>true</windowed>
          <stretch>uniform</stretch>
        </screen>
        <!--<system-audio></system-audio>-->
        <stream>
          <path>udp://0.0.0.0:5004</path>
          <args>-f mpegts -mpegts_pmt_start_pid 0x0256 -mpegts_start_pid 0x300 -vcodec mpeg2video -pix_fmt yuv420p -b:v 2500k -acodec ac3 -ar 48000 -a:b 192k -me_method epzs -g 15</args>
        </stream>
      </consumers>
    </channel>
  </channels>
  <controllers>
    <tcp>
      <port>5250</port>
      <protocol>AMCP</protocol>
    </tcp>
    <tcp>
      <port>3250</port>
      <protocol>LOG</protocol>
    </tcp>
  </controllers>
</configuration>
HellGore commented 7 years ago

I can't reproduce the issue but have committed a fix that might be the solution.

toontoet commented 7 years ago

Excelent. I can confirm that using the latest build (CasparCG Server f6ef89b1598a3c9e97857611f802703768740b36) it's working perfect on Ubunti 16.04 now.

Another unspecified OpenGL error is also gone :-)

Thanks a lot for the fast resolution 👍

craftbyte commented 7 years ago

I have a bit of a different issue. When I play the DeckLink, it starts to play on the output for about 3 frames then it starts looping those frames, making them more green colored each repeat.

toontoet commented 7 years ago

For me the issue is fixed after the fix.

@craftbyte you might want to file a new bug report cause it's a bit different indeed.