|
|
@@ -1665,10 +1665,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
|
|
|
} |
|
|
|
out->format = outlink->format; // is this needed? |
|
|
|
|
|
|
|
in_data = (int16_t*)in->data[0]; |
|
|
|
out_data = (int32_t*)out->data[0]; |
|
|
|
for (c = n = 0; n < in->nb_samples * in->channels; n++) |
|
|
|
out_data[n] = in_data[n]; |
|
|
|
if (inlink->format == AV_SAMPLE_FMT_S16P) { |
|
|
|
for (n = 0; n < in->nb_samples; n++) |
|
|
|
for (c = 0; c < in->channels; c++) { |
|
|
|
in_data = (int16_t*)in->extended_data[c]; |
|
|
|
out_data[(n * in->channels) + c] = in_data[n]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
in_data = (int16_t*)in->data[0]; |
|
|
|
for (n = 0; n < in->nb_samples * in->channels; n++) |
|
|
|
out_data[n] = in_data[n]; |
|
|
|
} |
|
|
|
|
|
|
|
if (s->process_stereo) { |
|
|
|
hdcd_detect_start(&s->detect); |
|
|
@@ -1707,6 +1715,7 @@ static int query_formats(AVFilterContext *ctx) |
|
|
|
|
|
|
|
static const enum AVSampleFormat sample_fmts_in[] = { |
|
|
|
AV_SAMPLE_FMT_S16, |
|
|
|
AV_SAMPLE_FMT_S16P, |
|
|
|
AV_SAMPLE_FMT_NONE |
|
|
|
}; |
|
|
|
static const enum AVSampleFormat sample_fmts_out[] = { |
|
|
|