Browse Source

MT#62571 remove output_config from decoder_new

Change-Id: I7a15c7657bc3a3492a3e7659b9c3473bb07f5e9a
pull/1967/head
Richard Fuchs 6 months ago
parent
commit
293b393177
3 changed files with 9 additions and 12 deletions
  1. +4
    -7
      recording-daemon/decoder.c
  2. +1
    -1
      recording-daemon/decoder.h
  3. +4
    -4
      recording-daemon/packet.c

+ 4
- 7
recording-daemon/decoder.c View File

@ -26,7 +26,7 @@ int resample_audio;
decode_t *decoder_new(const char *payload_str, const char *format, int ptime, output_t *outp) {
decode_t *decoder_new(const char *payload_str, const char *format, int ptime, const format_t *dec_format) {
char *slash = strchr(payload_str, '/');
if (!slash) {
ilog(LOG_WARN, "Invalid payload format: %s", payload_str);
@ -74,12 +74,9 @@ decode_t *decoder_new(const char *payload_str, const char *format, int ptime, ou
if (resample_audio)
out_format.clockrate = resample_audio;
// mono/stereo mixing goes here: out_format.channels = ...
if (outp) {
// if this output has been configured already, re-use the same format
if (outp->requested_format.format != -1)
out_format = outp->requested_format;
output_config(outp, &out_format, &out_format);
}
// if the output has been configured already, re-use the same format
if (dec_format->format != -1)
out_format = *dec_format;
else
out_format.format = AV_SAMPLE_FMT_S16; // needed for TLS-only scenarios


+ 1
- 1
recording-daemon/decoder.h View File

@ -8,7 +8,7 @@
extern int resample_audio;
decode_t *decoder_new(const char *payload_str, const char *format, int ptime, output_t *);
decode_t *decoder_new(const char *payload_str, const char *format, int ptime, const format_t *);
int decoder_input(decode_t *, const str *, unsigned long ts, ssrc_t *);
void decoder_free(decode_t *);


+ 4
- 4
recording-daemon/packet.c View File

@ -114,12 +114,12 @@ static void packet_decode(ssrc_t *ssrc, packet_t *packet) {
dbg("payload type for %u is %s", payload_type, payload_str);
pthread_mutex_lock(&mf->mix_lock);
output_t *outp = NULL;
format_t dec_format = { .format = -1 };
if (mf->mix_out)
outp = mf->mix_out;
dec_format = mf->mix_out->requested_format;
else if (ssrc->output)
outp = ssrc->output;
ssrc->decoders[payload_type] = decoder_new(payload_str, format, ptime, outp);
dec_format = ssrc->output->requested_format;
ssrc->decoders[payload_type] = decoder_new(payload_str, format, ptime, &dec_format);
pthread_mutex_unlock(&mf->mix_lock);
if (!ssrc->decoders[payload_type]) {
ilog(LOG_WARN, "Cannot decode RTP payload type %u (%s)",


Loading…
Cancel
Save