krzyc / CasparCG-Server

CasparCG Server fork with MAV/EVS extensions made by Jan Starzak
http://www.casparcg.com/download/
GNU General Public License v3.0
19 stars 1 forks source link

speed with decimal point ignored #5

Closed NL5L closed 7 years ago

NL5L commented 7 years ago

Hello Krzyc,

building is going perfect now. We have a test system with Ubuntu 14.04 LTS and one with Ubuntu 16.04 LTS. But now, with the latest checkout (this morning) and the MAV9 (a couple of days ago) the speed function does not work anymore with a decimal point.

These commands working perfect: call 2 speed 1 call 2 speed 0 call 2 speed -1 call 2 speed 4 call 2 speed 32 call 2 speed -16

But these do not work at all: call 2 speed 0.25 call 2 speed 0.5 call 2 speed 0.75 call 2 speed -0.5

Also we have with the play command an FFmpeg error messages. Here the complete terminal output:

play 2 testtoday [2016-12-09 22:22:58.129] [21949] [warning] [ffmpeg] [vobsub @ 0x3cfce7522000] Format vobsub detected only with low score of 1, misdetection possible! [2016-12-09 22:22:58.129] [21949] [error] [ffmpeg] [vobsub @ 0x3cfce7522000] Unable to open media/ja.sub as MPEG subtitles [2016-12-09 22:22:58.141] [21949] [error] modules/ffmpeg/producer/input/input.cpp(280): Throw in function operator() [2016-12-09 22:22:58.141] [21949] [error] Dynamic exception type: boost::exception_detail::clone_impl [2016-12-09 22:22:58.141] [21949] [error] [caspar::tag_msg_info] = No such file or directory [2016-12-09 22:22:58.141] [21949] [error] [caspar::tag_source_info] = media/ja.idx [2016-12-09 22:22:58.141] [21949] [error] [caspar::tag_context_info] = [2016-12-09 22:22:58.141] [21949] [error] [caspar::tag_call_stack_info] = [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::throw_on_ffmpeg_error(int, char const, char const, char const, char const, int) + 0xef [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::throw_on_ffmpeg_error(int, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, char const, char const, char const, int) + 0x50 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::input::implementation::open_input(std::basic_string<wchar_t, std::char_traits, std::allocator > const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) + 0x2a3 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::input::implementation::implementation(caspar::spl::shared_ptr, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, bool, unsigned int, unsigned int, bool, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) + 0x75 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::input::input(caspar::spl::shared_ptr const&, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, bool, unsigned int, unsigned int, bool, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) + 0x90 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::ffmpeg_producer::ffmpeg_producer(caspar::spl::shared_ptr const&, caspar::core::video_format_desc const&, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, bool, unsigned int, unsigned int, bool, std::basic_string<wchar_t, std::char_traits, std::allocator > const&, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&) + 0x194 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::ffmpeg::create_producer(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&, caspar::spl::shared_ptr const&) + 0x6b1 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::_Function_handler<caspar::spl::shared_ptr (caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&), boost::_bi::bind_t<caspar::spl::shared_ptr, caspar::spl::shared_ptr ()(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&, caspar::spl::shared_ptr const&), boost::_bi::list3<boost::arg<1>, boost::arg<2>, boost::_bi::value<caspar::spl::shared_ptr > > > >::_M_invoke(std::_Any_data const&, caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&) + 0x2d [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::core::do_create_producer(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&, std::vector<std::function<caspar::spl::shared_ptr (caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&)>, std::allocator<std::function<caspar::spl::shared_ptr (caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&)> > > const&, bool) + 0xdc [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::core::frame_producer_registry::create_producer(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&) const + 0x5c [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::protocol::amcp::loadbg_command(caspar::protocol::amcp::command_context&) + 0x698 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::protocol::amcp::play_command(caspar::protocol::amcp::command_context&) + 0x3d [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::_Function_handler<std::basic_string<wchar_t, std::char_traits, std::allocator > (caspar::protocol::amcp::command_context&), std::basic_string<wchar_t, std::char_traits, std::allocator > ()(caspar::protocol::amcp::command_context&)>::_M_invoke(std::_Any_data const&, caspar::protocol::amcp::command_context&) + 0x20 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::future_base::_Result_base::_Deleter> ()>, bool) + 0x29 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::future<decltype ({parm#1}())> caspar::executor::internal_begin_invoke<caspar::executor::wait()::{lambda()#1}>(caspar::executor::wait()::{lambda()#1}&&, caspar::task_priority)::{lambda()#2}::operator()() const + 0x18 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::executor::run() + 0x457 [2016-12-09 22:22:58.141] [21949] [error]
[2016-12-09 22:22:58.141] [21949] [error] 2, "No such file or directory"[boost::errinfo_apifunction
] = avformat_open_input(&weak_context, u8(resource_name).c_str(), input_format, &format_options) [2016-12-09 22:22:58.141] [21949] [error] Caught at (AMCPCommandQueue Channel 2 for Console): [2016-12-09 22:22:58.141] [21949] [error]
[2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::core::do_create_producer(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&, std::vector<std::function<caspar::spl::shared_ptr (caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&)>, std::allocator<std::function<caspar::spl::shared_ptr (caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&)> > > const&, bool) + 0xdc [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::core::frame_producer_registry::create_producer(caspar::core::frame_producer_dependencies const&, std::vector<std::basic_string<wchar_t, std::char_traits, std::allocator >, std::allocator<std::basic_string<wchar_t, std::char_traits, std::allocator > > > const&) const + 0x5c [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::protocol::amcp::loadbg_command(caspar::protocol::amcp::command_context&) + 0x698 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::protocol::amcp::play_command(caspar::protocol::amcp::command_context&) + 0x3d [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::_Function_handler<std::basic_string<wchar_t, std::char_traits, std::allocator > (caspar::protocol::amcp::command_context&), std::basic_string<wchar_t, std::char_traits, std::allocator > ()(caspar::protocol::amcp::command_context&)>::_M_invoke(std::_Any_data const&, caspar::protocol::amcp::command_context&) + 0x20 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::future_base::_Result_base::_Deleter> ()>, bool*) + 0x29 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : std::future<decltype ({parm#1}())> caspar::executor::internal_begin_invoke<caspar::executor::wait()::{lambda()#1}>(caspar::executor::wait()::{lambda()#1}&&, caspar::task_priority)::{lambda()#2}::operator()() const + 0x18 [2016-12-09 22:22:58.141] [21949] [error] bin/casparcg : caspar::executor::run() + 0x457 [2016-12-09 22:22:58.141] [21949] [error]

202 PLAY OK

call 2 speed 0.5

202 CALL OK

call 2 speed 10

202 CALL OK

call 2 speed -2

202 CALL OK

call 2 speed 0.75

202 CALL OK

call speed 0.33

400 ERROR

call speed 0.33

krzyc commented 7 years ago

Hmm, it works for me even on current compilation. Are you sure you are using correct commands, because in attached log I see: call 2 speed 0.75

202 CALL OK

**call speed 0.33

400 ERROR**

So there is no channel number in last two command. Please try again and attach full log if error will occur.

Error message is from ffmpeg module which probably tries to load replay clip - I will look into it, because I see same error message on my system.

NL5L commented 7 years ago

Here a complete DEBUG output, and the call with 0.33 is indeed a typo...

log.txt

krzyc commented 7 years ago

Strange - everything looks good in log (except for ffmpeg error of course, but it should not impact playing of replay file). For me command like "call 2-20 speed 0.5" changes playing speed - it works in last MAV release and in currently compiled binary too.

NL5L commented 7 years ago

Hmmm... With our own builds it does not work... It just keeps playing the last speed. With your MAV 8 build it does work ! But not on Ubuntu 16.04... So it could be a library problem ? Did you check my versions with yours ?

krzyc commented 7 years ago

Strange. Maybe this is decimal separator problem - try comma instead of dot. I have this problem often in Poland, but not in CasparCG yet.

If not, try issuing "INFO 2-20" after "CALL 2-20 SPEED 0.5" and tell me what is returned in speed field or attach log file. Then try same for "CALL 2-20 SPEED 0,5".

I have just commited a change which should prevent FFmpeg from throwing errors for replay files, so you can pull it before next compilation.

NL5L commented 7 years ago

Hello Krzyc, today I started fresh with a clean new "git clone" and build the MAV 9. Still the same problem and the comma throws a big error ! The point seems to work, even in the INFO but the system keeps playing on the last speed which did work. Also I did try different configurations on every level, but I can not get a speed working between -1 and 1 (oh, 0 does work). log2.txt log2-trace.txt

NL5L commented 7 years ago

On my home computer I also tried to get a slomotion with a clean build. And also here I have exact the same problem... ...I have no idea what is different with your build. You did not use the script ? How do you build this project ?

[2016-12-12 22:47:59.756] [14277] [info] Starting CasparCG Video and Graphics Playout Server 2.1.0.3398 e0ece5d MAV Beta 1 [2016-12-12 22:47:59.756] [14277] [info] on Ubuntu 14.04.5 LTS [2016-12-12 22:47:59.758] [14277] [info] Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz Physical threads: 16 [2016-12-12 22:47:59.758] [14277] [info] System Product Name [2016-12-12 22:47:59.758] [14277] [info] [replay] Using libjpeg-turbo version 62 [2016-12-12 22:47:59.758] [14277] [info] Initialized replay module. [2016-12-12 22:47:59.758] [14277] [info] Initialized reroute module. [2016-12-12 22:47:59.760] [14277] [info] Initialized ffmpeg module. [2016-12-12 22:47:59.760] [14277] [info] Initialized oal module. [2016-12-12 22:47:59.760] [14277] [info] Initialized decklink module. [2016-12-12 22:47:59.760] [14277] [info] Initialized screen module. [2016-12-12 22:47:59.809] [14277] [info] Initialized html module. [2016-12-12 22:47:59.809] [14277] [info] Initialized psd module. [2016-12-12 22:47:59.809] [14277] [info] Initialized image module. libDeckLinkAPI.so: cannot open shared object file: No such file or directory [2016-12-12 22:47:59.816] [14277] [info] ffmpeg.avcodec 56.41.100 [2016-12-12 22:47:59.816] [14277] [info] ffmpeg.avformat 56.36.100 [2016-12-12 22:47:59.816] [14277] [info] ffmpeg.avfilter 5.16.101 [2016-12-12 22:47:59.816] [14277] [info] ffmpeg.avutil 54.27.100 [2016-12-12 22:47:59.816] [14277] [info] ffmpeg.swscale 3.1.101 [2016-12-12 22:47:59.816] [14277] [info] decklink.version Not found [2016-12-12 22:47:59.816] [14277] [info] cef.version 3.1750.1805 [2016-12-12 22:47:59.816] [14277] [info] cef.chromeversion 33.0.1750.170 [2016-12-12 22:47:59.816] [14277] [info] freeimage 3.16.0

krzyc commented 7 years ago

I have built project like this:

cd build
cmake ..
make

Comma will not work because regex in modules/replay/producer/replay_producer.cpp:277 is missing comma, but from log I see that speed was changed to 0.5 so problem is in something else.

So speed like -1, 2 or 3 work, but 0.5 or 0.1 not? Hey, I see that in modules/replay/producer/replay_producer.cpp:391 there is abs() function used for float type - this could be potential point of failure - there should by fabs() instead.

krzyc commented 7 years ago

Please update your source and try compiling again.

NL5L commented 7 years ago

Hello Krzyc, it seems to be fixed, great ! Thx !!

krzyc commented 7 years ago

Thanks.