@@ -96,8 +96,8 @@ class VideoPositionMarker final : public AudioMarker {
9696};
9797
9898VideoPositionMarkerProvider::VideoPositionMarkerProvider (agi::Context *c)
99- : vc(c->videoController.get() )
100- , video_seek_slot(vc ->AddSeekListener (&VideoPositionMarkerProvider::Update, this ))
99+ : c(c )
100+ , video_seek_slot(c->videoController ->AddSeekListener (&VideoPositionMarkerProvider::Update, this ))
101101, enable_opt_changed_slot(OPT_SUB (" Audio/Display/Draw/Video Position" , &VideoPositionMarkerProvider::OptChanged, this ))
102102{
103103 OptChanged (*OPT_GET (" Audio/Display/Draw/Video Position" ));
@@ -106,7 +106,7 @@ VideoPositionMarkerProvider::VideoPositionMarkerProvider(agi::Context *c)
106106VideoPositionMarkerProvider::~VideoPositionMarkerProvider () { }
107107
108108void VideoPositionMarkerProvider::SetPosition (int frame_number) {
109- marker->SetPosition (vc ->TimeAtFrame (frame_number));
109+ marker->SetPosition (c-> videoController ->TimeAtFrame (frame_number));
110110}
111111
112112void VideoPositionMarkerProvider::Update (int frame_number) {
@@ -118,7 +118,7 @@ void VideoPositionMarkerProvider::OptChanged(agi::OptionValue const& opt) {
118118 if (opt.GetBool ()) {
119119 video_seek_slot.Unblock ();
120120 marker = std::make_unique<VideoPositionMarker>();
121- SetPosition (vc ->GetFrameN ());
121+ SetPosition (c-> videoController ->GetFrameN ());
122122 }
123123 else {
124124 video_seek_slot.Block ();
@@ -127,6 +127,9 @@ void VideoPositionMarkerProvider::OptChanged(agi::OptionValue const& opt) {
127127}
128128
129129void VideoPositionMarkerProvider::GetMarkers (const TimeRange &range, AudioMarkerVector &out) const {
130+ if (!c->project ->VideoProvider ())
131+ return ;
132+
130133 if (marker && range.contains (*marker))
131134 out.push_back (marker.get ());
132135}
0 commit comments