17#define DEFAULT_PCM_FRAGMENT_SIZE 640
61 virtual const char *
format(
char *buffer,
int len) = 0;
64 virtual int convert(
void *data,
int sampleCount) {
return sampleCount; }
106 int samples_per_fragment =
108 return samples_per_fragment;
196 const char *
format(
char *buffer,
int len)
override {
198 snprintf(buffer, len,
200 "c=IN IP4 0.0.0.0\r\n"
202 "m=audio 0 RTP/AVP %d\r\n"
203 "a=rtpmap:%d L16/%d/%d\r\n",
205 LOGI(
"ftsp format: %s", buffer);
206 return (
const char *)buffer;
217 int16_t *pt_16 = (int16_t *)data;
218 for (
int j = 0; j < samples / 2; j++) {
219 pt_16[j] =
htons(pt_16[j]);
282 const char *
format(
char *buffer,
int len)
override {
284 snprintf(buffer, len,
286 "c=IN IP4 0.0.0.0\r\n"
288 "m=audio 0 RTP/AVP 101\r\n"
289 "a=rtpmap:101 opus/%d/2\r\n"
290 "a=fmtp:101 stereo=1; sprop-stereo=%d\r\n",
292 return (
const char *)buffer;
328 const char *
format(
char *buffer,
int len)
override {
330 snprintf(buffer, len,
332 "c=IN IP4 0.0.0.0\r\n"
334 "m=audio 0 RTP/AVP 98\r\n"
335 "a=rtpmap:98 aptx/%d/%d\r\n"
336 "a=fmtp:98 variant=standard; bitresolution=%d\r\n",
338 return (
const char *)buffer;
370 const char *
format(
char *buffer,
int len)
override {
375 snprintf(buffer, len,
377 "c=IN IP4 0.0.0.0\r\n"
379 "m=audio 0 RTP/AVP 3\r\n"
382 return (
const char *)buffer;
406 const char *
format(
char *buffer,
int len)
override {
414 "c=IN IP4 0.0.0.0\r\n"
416 "m=audio 0 RTP/AVP %d\r\n"
419 return (
const char *)buffer;
447 const char *
format(
char *buffer,
int len)
override {
449 snprintf(buffer, len,
451 "c=IN IP4 0.0.0.0\r\n"
453 "m=audio 0 RTP/AVP 96\r\n"
454 "a=rtpmap:96 l8/%d/%d\r\n",
456 return (
const char *)buffer;
467 int bytesPerSample = 1;
495template <
class AudioEncoder>
516 const char *
format(
char *buffer,
int len)
override {
520 int payload_type = 5;
535 LOGE(
"Unsupported sample rate for IMA ADPCM: %d", sr);
540 snprintf(buffer, len,
542 "c=IN IP4 0.0.0.0\r\n"
544 "m=audio 0 RTP/AVP %d\r\n"
545 "a=rtpmap:%d DVI4/%d\r\n",
546 name(), payload_type, payload_type, sr);
547 return (
const char *)buffer;
562 int samplesPerFragment =
616 if (actual > 0)
return actual;
638 const char *
format(
char *buffer,
int len)
override {
646 if (ptime_ms < 10) ptime_ms = 10;
648 snprintf(buffer, len,
649 "m=audio 0 RTP/AVP %d\r\n"
650 "a=rtpmap:%d MPA/90000\r\n"
651 "a=fmtp:%d layer=3\r\n"
653 payload_type, payload_type, payload_type, ptime_ms);
655 snprintf(buffer, len,
656 "m=audio 0 RTP/AVP %d\r\n"
657 "a=rtpmap:%d MPA/90000/%d\r\n"
658 "a=fmtp:%d layer=3\r\n"
660 payload_type, payload_type, ch, payload_type, ptime_ms);
662 return (
const char *)buffer;
675 int samplesPerFrame = 1152;
688 memset(buffer, 0, 4);
723 const char *
format(
char *buffer,
int len)
override {
725 int payload_type = 96;
728 snprintf(buffer, len,
730 "c=IN IP4 0.0.0.0\r\n"
732 "m=audio 0 RTP/AVP %d\r\n"
733 "a=rtpmap:%d MPEG4-GENERIC/%d/%d\r\n"
734 "a=fmtp:%d streamtype=5; profile-level-id=1; mode=AAC-hbr;\r\n",
735 name(), payload_type, payload_type, sr, ch, payload_type);
736 return (
const char *)buffer;
746 int samplesPerFrame = 1024;
785 const char *
format(
char *buffer,
int len)
override {
787 int payload_type = 26;
788 snprintf(buffer, len,
790 "c=IN IP4 0.0.0.0\r\n"
792 "m=video 0 RTP/AVP %d\r\n"
793 "a=rtpmap:%d JPEG/90000\r\n"
794 "a=framerate:%.1f\r\n"
795 "a=framesize:%d %d-%d\r\n",
798 return (
const char *)buffer;
892 const char *
format(
char *buffer,
int len)
override {
894 int payload_type = 96;
896 snprintf(buffer, len,
898 "c=IN IP4 0.0.0.0\r\n"
900 "m=video 0 RTP/AVP %d\r\n"
901 "a=rtpmap:%d H264/90000\r\n"
902 "a=framerate:%.1f\r\n"
903 "a=fmtp:%d packetization-mode=1;profile-level-id=%s;"
904 "sprop-parameter-sets=%s\r\n",
912 snprintf(buffer, len,
914 "c=IN IP4 0.0.0.0\r\n"
916 "m=video 0 RTP/AVP %d\r\n"
917 "a=rtpmap:%d H264/90000\r\n"
918 "a=framerate:%.1f\r\n"
919 "a=fmtp:%d packetization-mode=1\r\n",
923 return (
const char *)buffer;
1023 const char *
format(
char *buffer,
int len)
override {
1025 snprintf(buffer, len,
1027 "c=IN IP4 0.0.0.0\r\n"
1029 "m=video 0 RTP/AVP %d\r\n",
1031 return (
const char *)buffer;
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define htons(x)
Definition Net.h:15
#define assert(T)
Definition avr.h:10