diff options
| author | strellydev <113683950+strellydev@users.noreply.github.com> | 2023-08-09 17:40:08 +0100 |
|---|---|---|
| committer | strellydev <113683950+strellydev@users.noreply.github.com> | 2023-10-13 19:54:24 +0100 |
| commit | 9c9f1154f83c5ee3363ede8385170e699d36a22d (patch) | |
| tree | 858f77a254013564c125e0d613b258aae9e14851 /modules/ogg/ogg_packet_sequence.cpp | |
| parent | 51f81e1c88499f04d2ebdcc0be0b34e73f5e90eb (diff) | |
| download | redot-engine-9c9f1154f83c5ee3363ede8385170e699d36a22d.tar.gz | |
Fix OGG audio loop offset pop.
Co-authored-by: MJacred <loesch.benny92@gmx.de>
Co-authored-by: Ellen Poe <ellen.h.poe@gmail.com>
Co-authored-by: Michael Wörner <mwoerner@semw-software.com>
Diffstat (limited to 'modules/ogg/ogg_packet_sequence.cpp')
| -rw-r--r-- | modules/ogg/ogg_packet_sequence.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
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(); } |
