|
@@ -212,11 +212,13 @@ Ref<AudioStreamOggVorbis> ResourceImporterOggVorbis::load_from_buffer(const Vect
|
|
|
granule_pos = packet.granulepos;
|
|
|
}
|
|
|
|
|
|
- PackedByteArray data;
|
|
|
- data.resize(packet.bytes);
|
|
|
- memcpy(data.ptrw(), packet.packet, packet.bytes);
|
|
|
- sorted_packets[granule_pos].push_back(data);
|
|
|
- packet_count++;
|
|
|
+ if (packet.bytes > 0) {
|
|
|
+ PackedByteArray data;
|
|
|
+ data.resize(packet.bytes);
|
|
|
+ memcpy(data.ptrw(), packet.packet, packet.bytes);
|
|
|
+ sorted_packets[granule_pos].push_back(data);
|
|
|
+ packet_count++;
|
|
|
+ }
|
|
|
}
|
|
|
Vector<Vector<uint8_t>> packet_data;
|
|
|
for (const KeyValue<uint64_t, Vector<Vector<uint8_t>>> &pair : sorted_packets) {
|
|
@@ -224,7 +226,7 @@ Ref<AudioStreamOggVorbis> ResourceImporterOggVorbis::load_from_buffer(const Vect
|
|
|
packet_data.push_back(packets);
|
|
|
}
|
|
|
}
|
|
|
- if (initialized_stream) {
|
|
|
+ if (initialized_stream && packet_data.size() > 0) {
|
|
|
ogg_packet_sequence->push_page(ogg_page_granulepos(&page), packet_data);
|
|
|
}
|
|
|
}
|