Skip to content

Commit 03818a3

Browse files
committed
Only draw video position audio marker if video is loaded
1 parent 44d97db commit 03818a3

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

src/audio_marker.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ class VideoPositionMarker final : public AudioMarker {
9696
};
9797

9898
VideoPositionMarkerProvider::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)
106106
VideoPositionMarkerProvider::~VideoPositionMarkerProvider() { }
107107

108108
void VideoPositionMarkerProvider::SetPosition(int frame_number) {
109-
marker->SetPosition(vc->TimeAtFrame(frame_number));
109+
marker->SetPosition(c->videoController->TimeAtFrame(frame_number));
110110
}
111111

112112
void 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

129129
void 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
}

src/audio_marker.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
class AudioMarkerKeyframe;
2828
class Pen;
2929
class Project;
30-
class VideoController;
3130
class VideoPositionMarker;
3231
class wxPen;
3332

@@ -140,7 +139,7 @@ class AudioMarkerProviderKeyframes final : public AudioMarkerProvider {
140139

141140
/// Marker provider for the current video playback position
142141
class VideoPositionMarkerProvider final : public AudioMarkerProvider {
143-
VideoController *vc;
142+
agi::Context *c;
144143

145144
std::unique_ptr<VideoPositionMarker> marker;
146145

0 commit comments

Comments
 (0)