summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-10-26 23:07:03 +0100
committerCarl Hetherington <cth@carlh.net>2025-10-27 00:48:41 +0100
commit249ac581101203101d15cf581c9b54d857cee449 (patch)
treebb143bda43c1bc72c784edb47bc31f437946593c
parenta5dd7e1b70911288e7a3ba6ad43e72982aba2b9f (diff)
Use new signal handling for VideoDecoder.
-rw-r--r--src/lib/guess_crop.cc2
-rw-r--r--src/lib/player.cc4
-rw-r--r--src/lib/video_decoder.h5
-rw-r--r--test/ffmpeg_decoder_seek_test.cc2
-rw-r--r--test/video_level_test.cc2
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) {