diff --git a/pve.py b/pve.py index 8d233b0..4719812 100644 --- a/pve.py +++ b/pve.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU General Public License along with People's Video Editor. # If not, see . +import cProfile + from pyav.demuxer import Demuxer from pyav.decoder import Decoder @@ -26,14 +28,21 @@ print(f"audio codec = {demuxer.audio_stream.codec.name}") video_decoder = Decoder(demuxer.video_stream) audio_decoder = Decoder(demuxer.audio_stream) -while True: - packet = demuxer.read_packet() - eof = (packet is None) - if eof or demuxer.video_stream.contains(packet): - video_frames = video_decoder.decode(packet) - print(f"decoded {len(video_frames)} video frames") - if eof or demuxer.audio_stream.contains(packet): - audio_frames = audio_decoder.decode(packet) - print(f"decoded {len(audio_frames)} audio frames") - if eof: - break +num_frames = 0 + +with cProfile.Profile() as pr: + while True: + packet = demuxer.read_packet() + eof = (packet is None) + if eof or demuxer.video_stream.contains(packet): + video_frames = video_decoder.decode(packet) + num_frames += len(video_frames) + # print(f"decoded {len(video_frames)} video frames") + if eof or demuxer.audio_stream.contains(packet): + audio_frames = audio_decoder.decode(packet) + # print(f"decoded {len(audio_frames)} audio frames") + if eof: + break + +print(f"num frames: {num_frames}") +pr.print_stats()