diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-10-26 23:07:03 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-10-27 00:48:41 +0100 |
| commit | 249ac581101203101d15cf581c9b54d857cee449 (patch) | |
| tree | bb143bda43c1bc72c784edb47bc31f437946593c | |
| parent | a5dd7e1b70911288e7a3ba6ad43e72982aba2b9f (diff) | |
Use new signal handling for VideoDecoder.
| -rw-r--r-- | src/lib/guess_crop.cc | 2 | ||||
| -rw-r--r-- | src/lib/player.cc | 4 | ||||
| -rw-r--r-- | src/lib/video_decoder.h | 5 | ||||
| -rw-r--r-- | test/ffmpeg_decoder_seek_test.cc | 2 | ||||
| -rw-r--r-- | test/video_level_test.cc | 2 |
5 files changed, 8 insertions, 7 deletions
diff --git a/src/lib/guess_crop.cc b/src/lib/guess_crop.cc index 7213eb668..8ce08d24f 100644 --- a/src/lib/guess_crop.cc +++ b/src/lib/guess_crop.cc @@ -147,7 +147,7 @@ guess_crop_by_brightness(shared_ptr<const Film> film, shared_ptr<const Content> done = true; }; - decoder->video->Data.connect (handle_video); + decoder->video->Data.connect_same_thread(handle_video); decoder->seek (position, false); int tries_left = 50; diff --git a/src/lib/player.cc b/src/lib/player.cc index 985bd3a9c..878a802f6 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -319,9 +319,9 @@ Player::setup_pieces() if (decoder->video) { if (have_threed) { /* We need a Shuffler to cope with 3D L/R video data arriving out of sequence */ - decoder->video->Data.connect(bind(&Shuffler::video, _shuffler.get(), weak_ptr<Piece>(piece), _1)); + decoder->video->Data.connect_same_thread(bind(&Shuffler::video, _shuffler.get(), weak_ptr<Piece>(piece), _1)); } else { - decoder->video->Data.connect(bind(&Player::video, this, weak_ptr<Piece>(piece), _1)); + decoder->video->Data.connect_same_thread(bind(&Player::video, this, weak_ptr<Piece>(piece), _1)); } } diff --git a/src/lib/video_decoder.h b/src/lib/video_decoder.h index b609404c4..7cf133f47 100644 --- a/src/lib/video_decoder.h +++ b/src/lib/video_decoder.h @@ -31,8 +31,9 @@ #include "content_video.h" #include "decoder.h" #include "decoder_part.h" +#include "signal.h" #include "video_content.h" -#include <boost/signals2.hpp> +#include <boost/scoped_ptr.hpp> class VideoContent; @@ -62,7 +63,7 @@ public: void seek () override; void emit(std::shared_ptr<const Film> film, std::shared_ptr<const ImageProxy>, dcpomatic::ContentTime time); - boost::signals2::signal<void (ContentVideo)> Data; + Signal<void (ContentVideo)> Data; private: std::shared_ptr<const Content> _content; diff --git a/test/ffmpeg_decoder_seek_test.cc b/test/ffmpeg_decoder_seek_test.cc index 796db043f..40bb55e8a 100644 --- a/test/ffmpeg_decoder_seek_test.cc +++ b/test/ffmpeg_decoder_seek_test.cc @@ -83,7 +83,7 @@ test (boost::filesystem::path file, vector<ContentTime> times) auto content = make_shared<FFmpegContent>(path); auto film = new_test_film("ffmpeg_decoder_seek_test_" + file.string(), { content }); auto decoder = make_shared<FFmpegDecoder>(film, content, false); - decoder->video->Data.connect (bind (&store, _1)); + decoder->video->Data.connect_same_thread(bind(&store, _1)); for (auto i: times) { check (decoder, i); diff --git a/test/video_level_test.cc b/test/video_level_test.cc index 7e212a050..496271a7d 100644 --- a/test/video_level_test.cc +++ b/test/video_level_test.cc @@ -257,7 +257,7 @@ pixel_range (shared_ptr<const Film> film, shared_ptr<const Content> content) { auto decoder = decoder_factory(film, content, false, false, shared_ptr<Decoder>()); optional<ContentVideo> content_video; - decoder->video->Data.connect ([&content_video](ContentVideo cv) { + decoder->video->Data.connect_same_thread([&content_video](ContentVideo cv) { content_video = cv; }); while (!content_video) { |
