1. check_classic_mac_basic.yml — update to latest macOS-latest 2. docker-on-push-tag-or-pr — dependant updates 3. FFTConvolver — fix a compilation warning when the DEBUG flag is turned off 4. Reorganise some source files — e.g. move most of the metadata stuff into a subdirectory 5. Remove unused special-purpose AirPlay 2 RC event handler. 6. Reorganise source files and source code relating to the standard event handler. 7. Check configuration settings a little more carefully to offer more meaningful diagnostics. 8. Add password to AirPlay 2 and reorganise initialisation to set AirPlay 2 flags accordingly. Also, remove redundant airplay_pin. 9. Remove redundant debug facility definitions from common.h 10. Make it possible to omit all the dacp stuff from a build. 11. Make it possible to omit metadata multicast from a build. 12. Add AP2-native metadata by setting bit 50 of features to true. 13. Improve stability when pre-empting an existing play session. 14. Fix a few compiler warnings in the pair_ap library. 15. Ensure that the audio format is known before starting synchronisation. 16. Improve handle_configure to set/clear a new config setting. Doesn’t seem to do anything… 17. Experimentally turn off bit 46 of AirPlay 2 features — seems to stop failing pair-verify attempts.
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include "common.h"
|
|
#include "config.h"
|
|
#include "../rtsp.h"
|
|
#include "pc_queue.h"
|
|
#include <pthread.h>
|
|
|
|
typedef struct {
|
|
uint32_t type;
|
|
uint32_t code;
|
|
char *data;
|
|
uint32_t length;
|
|
rtsp_message *carrier;
|
|
} metadata_package;
|
|
|
|
void metadata_pack_cleanup_function(void *arg);
|
|
|
|
// initialise and completely delete the metadata stuff
|
|
|
|
void metadata_init(void);
|
|
void metadata_stop(void);
|
|
|
|
|
|
int send_metadata_to_queue(pc_queue *queue, const uint32_t type, const uint32_t code,
|
|
const char *data, const uint32_t length, rtsp_message *carrier,
|
|
int block);
|
|
|
|
// sends metadata out to the metadata system.
|
|
|
|
int send_metadata(const uint32_t type, const uint32_t code, const char *data, const uint32_t length,
|
|
rtsp_message *carrier, int block);
|
|
|
|
// It is sent with the type 'ssnc' the given code, data and length
|
|
// The handler at the other end must know what to do with the data
|
|
// e.g. if it's malloced, to free it, etc.
|
|
// nothing is done automatically
|
|
int send_ssnc_metadata(const uint32_t code, const char *data, const uint32_t length,
|
|
const int block); |