summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-01-11 16:38:13 +0100
committerCarl Hetherington <cth@carlh.net>2022-01-11 22:16:08 +0100
commit84039db657c3cc72719706a136c90741170c765a (patch)
treeef0e1ff21801bfd0b7a66d6dbd797330f014285a
parentb703142e8750c509174b4d964009aecf93f3d834 (diff)
Cleanup: move some stuff into process_video_frame().
-rw-r--r--src/lib/ffmpeg_decoder.cc11
-rw-r--r--src/lib/ffmpeg_decoder.h2
2 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc
index e5685f661..f64ccbd3b 100644
--- a/src/lib/ffmpeg_decoder.cc
+++ b/src/lib/ffmpeg_decoder.cc
@@ -548,6 +548,15 @@ FFmpegDecoder::decode_and_process_video_packet (AVPacket* packet)
throw DecodeError (N_("avcodec_receive_frame"), N_("FFmpeg::decode_and_process_video_packet"), r);
}
+ process_video_frame ();
+
+ return true;
+}
+
+
+void
+FFmpegDecoder::process_video_frame ()
+{
/* We assume we'll only get one frame here, which I think is safe */
boost::mutex::scoped_lock lm (_filter_graphs_mutex);
@@ -587,8 +596,6 @@ FFmpegDecoder::decode_and_process_video_packet (AVPacket* packet)
LOG_WARNING_NC ("Dropping frame without PTS");
}
}
-
- return true;
}
diff --git a/src/lib/ffmpeg_decoder.h b/src/lib/ffmpeg_decoder.h
index fce3fcae9..29e0d22e6 100644
--- a/src/lib/ffmpeg_decoder.h
+++ b/src/lib/ffmpeg_decoder.h
@@ -62,6 +62,8 @@ private:
std::shared_ptr<FFmpegAudioStream> audio_stream_from_index (int index) const;
void process_audio_frame (std::shared_ptr<FFmpegAudioStream> stream);
+ void process_video_frame ();
+
bool decode_and_process_video_packet (AVPacket* packet);
void decode_and_process_audio_packet (AVPacket* packet);
void decode_and_process_subtitle_packet (AVPacket* packet);