Cleanup: move some stuff into process_video_frame().
authorCarl Hetherington <cth@carlh.net>
Tue, 11 Jan 2022 15:38:13 +0000 (16:38 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 11 Jan 2022 21:16:08 +0000 (22:16 +0100)
src/lib/ffmpeg_decoder.cc
src/lib/ffmpeg_decoder.h

index e5685f6611d60665367b46b97e5f66a06634d113..f64ccbd3b6305249c4522ee69d175dee6bb26849 100644 (file)
@@ -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;
 }
 
 
index fce3fcae92230da92b955000e8ffdfe4b9498c89..29e0d22e6339d6bc957c8f9a9552805c468bdd16 100644 (file)
@@ -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);