From 9c9f1154f83c5ee3363ede8385170e699d36a22d Mon Sep 17 00:00:00 2001 From: strellydev <113683950+strellydev@users.noreply.github.com> Date: Wed, 9 Aug 2023 17:40:08 +0100 Subject: Fix OGG audio loop offset pop. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MJacred Co-authored-by: Ellen Poe Co-authored-by: Michael Wörner --- modules/ogg/ogg_packet_sequence.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'modules/ogg/ogg_packet_sequence.cpp') diff --git a/modules/ogg/ogg_packet_sequence.cpp b/modules/ogg/ogg_packet_sequence.cpp index fb29493ca9..1100367f03 100644 --- a/modules/ogg/ogg_packet_sequence.cpp +++ b/modules/ogg/ogg_packet_sequence.cpp @@ -159,7 +159,9 @@ bool OggPacketSequencePlayback::next_ogg_packet(ogg_packet **p_packet) const { *p_packet = packet; - packet_cursor++; + if (!packet->e_o_s) { // Added this so it doesn't try to go to the next packet if it's the last packet of the file. + packet_cursor++; + } return true; } @@ -216,6 +218,20 @@ bool OggPacketSequencePlayback::seek_page(int64_t p_granule_pos) { return true; } +int64_t OggPacketSequencePlayback::get_page_number() const { + return page_cursor; +} + +bool OggPacketSequencePlayback::set_page_number(int64_t p_page_number) { + if (p_page_number >= 0 && p_page_number < ogg_packet_sequence->page_data.size()) { + page_cursor = p_page_number; + packet_cursor = 0; + packetno = 0; + return true; + } + return false; +} + OggPacketSequencePlayback::OggPacketSequencePlayback() { packet = new ogg_packet(); } -- cgit v1.2.3