1 #include <murphy/common/mm.h>
2 #include <murphy/common/refcnt.h>
4 #include "srs/daemon/audiobuf.h"
7 * audio buffer handling
10 srs_audiobuf_t *srs_create_audiobuf(srs_audioformat_t format, uint32_t rate,
11 uint8_t channels, size_t samples,
27 case SRS_AUDIO_FLOAT32LE:
28 case SRS_AUDIO_FLOAT32BE:
29 width = sizeof(float);
33 case SRS_AUDIO_S24_32LE:
34 case SRS_AUDIO_S24_32BE:
45 size = channels * samples * width;
47 if ((buf = mrp_allocz(sizeof(*buf))) != NULL) {
48 if ((buf->data = mrp_datadup(data, size)) != NULL) {
49 mrp_refcnt_init(&buf->refcnt);
52 buf->channels = channels;
53 buf->samples = samples;
65 srs_audiobuf_t *srs_ref_audiobuf(srs_audiobuf_t *buf)
67 return mrp_ref_obj(buf, refcnt);
71 void srs_unref_audiobuf(srs_audiobuf_t *buf)
73 if (mrp_unref_obj(buf, refcnt)) {