avb: implement streams

Add in input/output stream, setup the talker/listeners.
Implement IEC61883 audio packets, send and receive data.
Implement talker encoding.

With this, audio can be sent and received from MOTU M64.
This commit is contained in:
Wim Taymans 2022-04-05 18:10:27 +02:00
parent 460cedbc86
commit e0d6b2bb4f
15 changed files with 1083 additions and 94 deletions

View file

@ -100,41 +100,4 @@ struct avb_packet_aaf {
uint8_t payload[0];
} __attribute__ ((__packed__));
#define AVB_PACKET_AAF_SET_SUBTYPE(p,v) ((p)->subtype = (v))
#define AVB_PACKET_AAF_SET_SV(p,v) ((p)->sv = (v))
#define AVB_PACKET_AAF_SET_VERSION(p,v) ((p)->version = (v))
#define AVB_PACKET_AAF_SET_MR(p,v) ((p)->mr = (v))
#define AVB_PACKET_AAF_SET_GV(p,v) ((p)->gv = (v))
#define AVB_PACKET_AAF_SET_TV(p,v) ((p)->tv = (v))
#define AVB_PACKET_AAF_SET_SEQ_NUM(p,v) ((p)->seq_num = (v))
#define AVB_PACKET_AAF_SET_TU(p,v) ((p)->tu = (v))
#define AVB_PACKET_AAF_SET_STREAM_ID(p,v) ((p)->stream_id = htobe64(v))
#define AVB_PACKET_AAF_SET_TIMESTAMP(p,v) ((p)->timestamp = htonl(v))
#define AVB_PACKET_AAF_SET_DATA_LEN(p,v) ((p)->data_len = htons(v))
#define AVB_PACKET_AAF_SET_FORMAT(p,v) ((p)->format = (v))
#define AVB_PACKET_AAF_SET_NSR(p,v) ((p)->nsr = (v))
#define AVB_PACKET_AAF_SET_CHAN_PER_FRAME(p,v) ((p)->chan_per_frame = (v))
#define AVB_PACKET_AAF_SET_BIT_DEPTH(p,v) ((p)->bit_depth = (v))
#define AVB_PACKET_AAF_SET_SP(p,v) ((p)->sp = (v))
#define AVB_PACKET_AAF_SET_EVENT(p,v) ((p)->event = (v))
#define AVB_PACKET_AAF_GET_SUBTYPE(p) ((p)->subtype)
#define AVB_PACKET_AAF_GET_SV(p) ((p)->sv)
#define AVB_PACKET_AAF_GET_VERSION(p) ((p)->version)
#define AVB_PACKET_AAF_GET_MR(p) ((p)->mr)
#define AVB_PACKET_AAF_GET_GV(p) ((p)->gv)
#define AVB_PACKET_AAF_GET_TV(p) ((p)->tv)
#define AVB_PACKET_AAF_GET_SEQ_NUM(p) ((p)->seq_num)
#define AVB_PACKET_AAF_GET_TU(p) ((p)->tu)
#define AVB_PACKET_AAF_GET_STREAM_ID(p) be64toh((p)->stream_id)
#define AVB_PACKET_AAF_GET_TIMESTAMP(p) ntohl((p)->timestamp)
#define AVB_PACKET_AAF_GET_DATA_LEN(p) ntohs((p)->data_len)
#define AVB_PACKET_AAF_GET_FORMAT(p) ((p)->format)
#define AVB_PACKET_AAF_GET_NSR(p) ((p)->nsr)
#define AVB_PACKET_AAF_GET_CHAN_PER_FRAME(p) ((p)->chan_per_frame)
#define AVB_PACKET_AAF_GET_BIT_DEPTH(p) ((p)->bit_depth)
#define AVB_PACKET_AAF_GET_SP(p) ((p)->sp)
#define AVB_PACKET_AAF_GET_EVENT(p) ((p)->event)
#endif /* AVB_AAF_H */