]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_shout] use 0xFFFFFFFF flag to query frame_size
authorSeven Du <dujinfang@x-y-t.cn>
Mon, 4 Dec 2017 14:14:52 +0000 (22:14 +0800)
committerMuteesa Fred <muteesafred@hotmail.com>
Tue, 24 Jul 2018 07:21:48 +0000 (07:21 +0000)
src/mod/formats/mod_shout/mod_shout.c

index 942f1ff6d2f986356d139ecf779ba3fca832d3b6..99ea75770025c4eb8192b286bc894fd9b2672a67 100644 (file)
@@ -1683,6 +1683,17 @@ static switch_status_t switch_mp3_encode(switch_codec_t *codec,
                return SWITCH_STATUS_FALSE;
        }
 
+       if (flag && *flag == 0xFFFFFFFF) { // query frame_size
+               *(uint32_t *)encoded_data = lame_get_framesize(context->gfp);
+               *encoded_data_len = sizeof(uint32_t);
+               return SWITCH_STATUS_SUCCESS;
+       }
+
+       if (decoded_data_len == 0) { // flush encoder buffer
+               *encoded_data_len = lame_encode_flush(context->gfp, encoded_data, *encoded_data_len);
+               return SWITCH_STATUS_SUCCESS;
+       }
+
        if (codec->implementation->number_of_channels == 2) {
                len = lame_encode_buffer_interleaved(context->gfp, decoded_data, decoded_data_len / 4, encoded_data, *encoded_data_len);
        } else {