From 42504a39808fbb03ffb21cca96c4ea02ea973223 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Tue, 12 Aug 2014 15:55:19 +0200 Subject: [PATCH] Use C++ compiler for files using audio_frame2 --- Makefile.in | 2 +- src/audio/{audio.c => audio.cpp} | 18 +++++++++--------- src/audio/audio_playback.h | 7 +++++++ src/audio/capture/sdi.h | 7 +++++++ src/audio/{codec.c => codec.cpp} | 5 +---- src/audio/codec.h | 3 +-- .../codec/{libavcodec.c => libavcodec.cpp} | 13 ++++++++----- src/audio/echo.h | 7 +++++++ src/audio/export.h | 9 +++++++++ src/audio/playback/sdi.h | 7 +++++++ src/audio/{resampler.c => resampler.cpp} | 6 +++--- src/audio/resampler.h | 8 ++++++++ src/audio/{utils.c => utils.cpp} | 4 ++-- .../{audio_decoders.c => audio_decoders.cpp} | 0 src/{transmit.c => transmit.cpp} | 0 15 files changed, 70 insertions(+), 26 deletions(-) rename src/audio/{audio.c => audio.cpp} (97%) rename src/audio/{codec.c => codec.cpp} (98%) rename src/audio/codec/{libavcodec.c => libavcodec.cpp} (98%) rename src/audio/{resampler.c => resampler.cpp} (94%) rename src/audio/{utils.c => utils.cpp} (99%) rename src/rtp/{audio_decoders.c => audio_decoders.cpp} (100%) rename src/{transmit.c => transmit.cpp} (100%) diff --git a/Makefile.in b/Makefile.in index e13bd5812..b04a194d5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -45,7 +45,7 @@ uv_datadir = @datadir@/ultragrid/ # autogenerated headers GENERATED_HEADERS = @GENERATED_HEADERS@ -ALL_INCLUDES = $(wildcard src/*.h) $(wildcard src/*/*.h) +ALL_INCLUDES = $(wildcard src/*.h src/*/*.h src/*/*/*.h) OBJS = @OBJS@ \ src/blackmagic_common.o \ diff --git a/src/audio/audio.c b/src/audio/audio.cpp similarity index 97% rename from src/audio/audio.c rename to src/audio/audio.cpp index 3cb595b47..d68334757 100644 --- a/src/audio/audio.c +++ b/src/audio/audio.cpp @@ -243,7 +243,7 @@ struct state_audio * audio_cfg_init(struct module *parent, const char *addrs, in return NULL; } - s = calloc(1, sizeof(struct state_audio)); + s = (struct state_audio *) calloc(1, sizeof(struct state_audio)); module_init_default(&s->mod); s->mod.priv_data = s; @@ -495,7 +495,7 @@ static struct rtp *initialize_audio_network(struct audio_network_parameters *par r = rtp_init_if(params->addr, params->mcast_if, params->recv_port, params->send_port, 255, rtcp_bw, FALSE, rtp_recv_callback, - (void *) params->participants, + (uint8_t *) params->participants, params->use_ipv6, false); if (r != NULL) { pdb_add(params->participants, rtp_my_ssrc(r)); @@ -509,7 +509,7 @@ static struct rtp *initialize_audio_network(struct audio_network_parameters *par static void *audio_receiver_thread(void *arg) { - struct state_audio *s = arg; + struct state_audio *s = (struct state_audio *) arg; // rtp variables struct timeval timeout, curr_time; uint32_t ts; @@ -520,7 +520,7 @@ static void *audio_receiver_thread(void *arg) memset(&pbuf_data.buffer, 0, sizeof(struct audio_frame)); memset(&device_desc, 0, sizeof(struct audio_desc)); - pbuf_data.decoder = audio_decoder_init(s->audio_channel_map, s->audio_scale, s->requested_encryption); + pbuf_data.decoder = (struct state_audio_decoder *) audio_decoder_init(s->audio_channel_map, s->audio_scale, s->requested_encryption); assert(pbuf_data.decoder != NULL); printf("Audio receiving started.\n"); @@ -686,7 +686,7 @@ static void resample(struct state_resample *s, struct audio_frame *buffer) if(buffer->sample_rate == s->resample_to && s->codec_supported_bytes_per_sample == NULL) { memcpy(&s->resampled, buffer, sizeof(s->resampled)); - s->resampled.data = malloc(buffer->data_len); + s->resampled.data = (char *) malloc(buffer->data_len); memcpy(s->resampled.data, buffer->data, buffer->data_len); } else { /** @@ -695,7 +695,7 @@ static void resample(struct state_resample *s, struct audio_frame *buffer) assert(set_contains(s->codec_supported_bytes_per_sample, 2)); // expect that we may got as much as 12-times more data (eg 8 kHz to 96 kHz uint32_t write_frames = 12 * (buffer->data_len / buffer->ch_count / buffer->bps); - s->resampled.data = malloc(write_frames * 2 * buffer->ch_count); + s->resampled.data = (char *) malloc(write_frames * 2 * buffer->ch_count); if(s->resample_from != buffer->sample_rate || s->resample_ch_count != buffer->ch_count) { s->resample_from = buffer->sample_rate; s->resample_ch_count = buffer->ch_count; @@ -806,7 +806,7 @@ static void *audio_sender_thread(void *arg) memset(&resample_state, 0, sizeof(resample_state)); resample_state.resample_to = s->resample_to; - resample_state.resample_buffer = malloc(1024 * 1024); + resample_state.resample_buffer = (char *) malloc(1024 * 1024); resample_state.codec_supported_bytes_per_sample = audio_codec_get_supported_bps(s->audio_coder); @@ -894,7 +894,7 @@ void audio_register_put_callback(struct state_audio *s, void (*callback)(void *, if(!audio_playback_get_display_flags(s->audio_playback_device)) return; - sdi_playback = audio_playback_get_state_pointer(s->audio_playback_device); + sdi_playback = (struct state_sdi_playback *) audio_playback_get_state_pointer(s->audio_playback_device); sdi_register_put_callback(sdi_playback, callback, udata); } @@ -906,7 +906,7 @@ void audio_register_reconfigure_callback(struct state_audio *s, int (*callback)( if(!audio_playback_get_display_flags(s->audio_playback_device)) return; - sdi_playback = audio_playback_get_state_pointer(s->audio_playback_device); + sdi_playback = (struct state_sdi_playback *) audio_playback_get_state_pointer(s->audio_playback_device); sdi_register_reconfigure_callback(sdi_playback, callback, udata); } diff --git a/src/audio/audio_playback.h b/src/audio/audio_playback.h index 2e9bbcc00..ece29b2cf 100644 --- a/src/audio/audio_playback.h +++ b/src/audio/audio_playback.h @@ -46,6 +46,9 @@ * */ +#ifdef __cplusplus +extern "C" { +#endif struct state_audio_playback; @@ -78,5 +81,9 @@ void audio_register_reconfigure_callback(struct state_audio *s, int (*callback)( */ void *audio_playback_get_state_pointer(struct state_audio_playback *s); +#ifdef __cplusplus +} +#endif + /* vim: set expandtab: sw=8 */ diff --git a/src/audio/capture/sdi.h b/src/audio/capture/sdi.h index aa6c8f4e3..29e8126e4 100644 --- a/src/audio/capture/sdi.h +++ b/src/audio/capture/sdi.h @@ -46,6 +46,10 @@ * */ +#ifdef __cplusplus +extern "C" { +#endif + //void audio_sdi_send(struct state_audio *s, struct audio_frame *frame); //int audio_does_send_sdi(struct state_audio *s); struct audio_frame; @@ -60,6 +64,9 @@ struct audio_frame * sdi_read(void *state); /* SDI specific API */ void sdi_capture_new_incoming_frame(void *state, struct audio_frame *frame); +#ifdef __cplusplus +} +#endif /* vim: set expandtab: sw=8 */ diff --git a/src/audio/codec.c b/src/audio/codec.cpp similarity index 98% rename from src/audio/codec.c rename to src/audio/codec.cpp index 11358ffc1..45d1f5d02 100644 --- a/src/audio/codec.c +++ b/src/audio/codec.cpp @@ -89,11 +89,8 @@ static struct audio_codec *audio_codecs[MAX_AUDIO_CODECS] = { }; static struct audio_codec_state *audio_codec_init_real(const char *audio_codec_cfg, audio_codec_direction_t direction, bool try_init); -static void register_audio_codec_real(struct audio_codec *); -void (*register_audio_codec)(struct audio_codec *) = register_audio_codec_real; - -static void register_audio_codec_real(struct audio_codec *codec) +void register_audio_codec(struct audio_codec *codec) { for(int i = 0; i < MAX_AUDIO_CODECS; ++i) { if(audio_codecs[i] == 0) { diff --git a/src/audio/codec.h b/src/audio/codec.h index a54705aea..426142e47 100644 --- a/src/audio/codec.h +++ b/src/audio/codec.h @@ -69,8 +69,7 @@ struct audio_codec { void (*done)(void *); }; -extern void (*register_audio_codec)(struct audio_codec *); - +void register_audio_codec(struct audio_codec *); typedef struct { const char *name; /** @var tag diff --git a/src/audio/codec/libavcodec.c b/src/audio/codec/libavcodec.cpp similarity index 98% rename from src/audio/codec/libavcodec.c rename to src/audio/codec/libavcodec.cpp index de86831c6..b4162dcc9 100644 --- a/src/audio/codec/libavcodec.c +++ b/src/audio/codec/libavcodec.cpp @@ -54,11 +54,13 @@ #include "audio/codec/libavcodec.h" +extern "C" { #include #if LIBAVCODEC_VERSION_MAJOR >= 54 #include #endif #include +} #include "audio/audio.h" #include "audio/codec.h" @@ -92,7 +94,7 @@ static void register_module(void) } typedef struct { - int codec_id; + enum AVCodecID codec_id; } audio_codec_t_to_codec_id_mapping_t; static const audio_codec_t_to_codec_id_mapping_t mapping[] = @@ -140,7 +142,7 @@ struct libavcodec_codec_state { static void *libavcodec_init(audio_codec_t audio_codec, audio_codec_direction_t direction, bool try_init, int bitrate) { - int codec_id = 0; + enum AVCodecID codec_id = AV_CODEC_ID_NONE; if(audio_codec <= sizeof(mapping) / sizeof(audio_codec_t_to_codec_id_mapping_t)) { codec_id = mapping[audio_codec].codec_id; @@ -155,7 +157,8 @@ static void *libavcodec_init(audio_codec_t audio_codec, audio_codec_direction_t avcodec_register_all(); - struct libavcodec_codec_state *s = calloc(1, sizeof(struct libavcodec_codec_state)); + struct libavcodec_codec_state *s = (struct libavcodec_codec_state *) + calloc(1, sizeof(struct libavcodec_codec_state)); if(direction == AUDIO_CODER) { s->codec = avcodec_find_encoder(codec_id); } else { @@ -191,8 +194,8 @@ static void *libavcodec_init(audio_codec_t audio_codec, audio_codec_direction_t memset(&s->tmp, 0, sizeof(audio_channel)); memset(&s->output_channel, 0, sizeof(audio_channel)); - s->tmp.data = malloc(1024*1024); - s->output_channel.data = malloc(1024*1024); + s->tmp.data = (char *) malloc(1024*1024); + s->output_channel.data = (char *) malloc(1024*1024); if(direction == AUDIO_CODER) { s->output_channel.codec = audio_codec; diff --git a/src/audio/echo.h b/src/audio/echo.h index 09e19b8ad..3b1b44f25 100644 --- a/src/audio/echo.h +++ b/src/audio/echo.h @@ -51,6 +51,10 @@ #include "audio/audio.h" +#ifdef __cplusplus +extern "C" { +#endif + struct echo_cancellation; typedef struct echo_cancellation echo_cancellation_t; @@ -61,5 +65,8 @@ void echo_play(struct echo_cancellation *state, struct audio_frame *frame); struct audio_frame * echo_cancel(struct echo_cancellation *state, struct audio_frame *frame); +#ifdef __cplusplus +} +#endif #endif /* _ECHO_H_ */ diff --git a/src/audio/export.h b/src/audio/export.h index 6d3b705c1..034bd13d4 100644 --- a/src/audio/export.h +++ b/src/audio/export.h @@ -49,6 +49,10 @@ #ifndef _EXPORT_H_ #define _EXPORT_H_ +#ifdef __cplusplus +extern "C" { +#endif + struct audio_export; struct audio_frame; @@ -56,4 +60,9 @@ struct audio_export * audio_export_init(char *filename); void audio_export_destroy(struct audio_export *state); void audio_export(struct audio_export *state, struct audio_frame *frame); +#ifdef __cplusplus +} +#endif + + #endif /* _EXPORT_H_ */ diff --git a/src/audio/playback/sdi.h b/src/audio/playback/sdi.h index f5a5af6e4..70dbb96fc 100644 --- a/src/audio/playback/sdi.h +++ b/src/audio/playback/sdi.h @@ -48,6 +48,10 @@ struct audio_frame; +#ifdef __cplusplus +extern "C" { +#endif + void sdi_playback_help(const char *driver_name); void *sdi_playback_init(char *cfg); void sdi_put_frame(void *state, struct audio_frame *frame); @@ -61,6 +65,9 @@ void sdi_register_reconfigure_callback(void *s, int (*callback)(void *, int, int int), void *udata); +#ifdef __cplusplus +} +#endif /* vim: set expandtab: sw=8 */ diff --git a/src/audio/resampler.c b/src/audio/resampler.cpp similarity index 94% rename from src/audio/resampler.c rename to src/audio/resampler.cpp index c9f6392ab..e227450dd 100644 --- a/src/audio/resampler.c +++ b/src/audio/resampler.cpp @@ -16,10 +16,10 @@ struct resampler struct resampler *resampler_init(int dst_sample_rate) { - struct resampler *s = calloc(1, sizeof(struct resampler)); + struct resampler *s = (struct resampler *) calloc(1, sizeof(struct resampler)); - s->resample_buffer = malloc(1024 * 1024); - s->muxed = malloc(1024 * 1024); + s->resample_buffer = (char *) malloc(1024 * 1024); + s->muxed = (char *) malloc(1024 * 1024); s->resampled = audio_frame2_init(); s->resample_to = dst_sample_rate; diff --git a/src/audio/resampler.h b/src/audio/resampler.h index 524a42582..e5a0084f8 100644 --- a/src/audio/resampler.h +++ b/src/audio/resampler.h @@ -6,9 +6,17 @@ #include "audio/audio.h" +#ifdef __cplusplus +extern "C" { +#endif + struct resampler; struct resampler *resampler_init(int dst_sample_rate); void resampler_done(struct resampler *); audio_frame2 *resampler_resample(struct resampler *, audio_frame2 *); +#ifdef __cplusplus +} +#endif + diff --git a/src/audio/utils.c b/src/audio/utils.cpp similarity index 99% rename from src/audio/utils.c rename to src/audio/utils.cpp index 3e4b45d76..cc3c93481 100644 --- a/src/audio/utils.c +++ b/src/audio/utils.cpp @@ -82,7 +82,7 @@ void audio_frame2_allocate(audio_frame2 *frame, int nr_channels, int max_size) frame->ch_count = nr_channels; for(int i = 0; i < nr_channels; ++i) { - frame->data[i] = malloc(max_size); + frame->data[i] = (char *) malloc(max_size); } } @@ -101,7 +101,7 @@ void audio_frame2_append(audio_frame2 *dest, audio_frame2 *src) dest->max_size = new_max_size; dest->ch_count = src->ch_count; for (int i = 0; i < src->ch_count; ++i) { - dest->data[i] = realloc(dest->data[i], new_max_size); + dest->data[i] = (char *) realloc(dest->data[i], new_max_size); } } diff --git a/src/rtp/audio_decoders.c b/src/rtp/audio_decoders.cpp similarity index 100% rename from src/rtp/audio_decoders.c rename to src/rtp/audio_decoders.cpp diff --git a/src/transmit.c b/src/transmit.cpp similarity index 100% rename from src/transmit.c rename to src/transmit.cpp