ref: 59170dd9a038f2a06b9380f5b5bb446cd49ac154
parent: b69ccee4dc1407f54bce614a7512999c352cc0e0
author: Jean-Marc Valin <[email protected]>
date: Thu May 18 21:27:47 EDT 2017
Call packet callback before committing the packet
--- a/src/opusenc.c
+++ b/src/opusenc.c
@@ -437,8 +437,8 @@
if (e_o_s) granulepos=end_granule48k-enc->streams->granule_offset;
p = oggp_get_packet_buffer(enc->oggp, MAX_PACKET_SIZE);
memcpy(p, packet, nbBytes);
- oggp_commit_packet(enc->oggp, nbBytes, granulepos, e_o_s);
if (enc->packet_callback) enc->packet_callback(enc->packet_callback_data, packet, nbBytes, 0);
+ oggp_commit_packet(enc->oggp, nbBytes, granulepos, e_o_s);
if (e_o_s) oe_flush_page(enc);
else if (!enc->pull_api) output_pages(enc);
if (e_o_s) {
@@ -461,8 +461,8 @@
opus_int64 granulepos2=enc->curr_granule - enc->streams->granule_offset - enc->frame_size;
p = oggp_get_packet_buffer(enc->oggp, MAX_PACKET_SIZE);
memcpy(p, enc->chaining_keyframe, enc->chaining_keyframe_length);
- oggp_commit_packet(enc->oggp, enc->chaining_keyframe_length, granulepos2, 0);
if (enc->packet_callback) enc->packet_callback(enc->packet_callback_data, enc->chaining_keyframe, enc->chaining_keyframe_length, 0);
+ oggp_commit_packet(enc->oggp, enc->chaining_keyframe_length, granulepos2, 0);
}
end_granule48k = (enc->streams->end_granule*48000 + enc->rate - 1)/enc->rate + enc->global_granule_offset;
cont = 1;