Commit 93b333cf authored by Sjoerd Simons's avatar Sjoerd Simons

ffmpegcodecmap: Always restrict audio codec in the unfixed cases

If the context isn't fixed yet or if it doesn't exist then always
restrict the caps.

Also restrict the maximum channels for G726 and G722 to 1 channel
parent 99e61c5f
......@@ -373,9 +373,13 @@ gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
const gint *rates = NULL;
gint n_rates = 0;
if (context) {
/* so we must be after restricted caps in this particular case */
/* so we must be after restricted caps in this case */
switch (codec_id) {
case CODEC_ID_AAC:
case CODEC_ID_AAC_LATM:
case CODEC_ID_DTS:
maxchannels = 6;
break;
case CODEC_ID_MP2:
{
const static gint l_rates[] =
......@@ -388,10 +392,15 @@ gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
case CODEC_ID_AC3:
{
const static gint l_rates[] = { 48000, 44100, 32000 };
maxchannels = 6;
n_rates = G_N_ELEMENTS (l_rates);
rates = l_rates;
break;
}
case CODEC_ID_ADPCM_G722:
case CODEC_ID_ADPCM_G726:
maxchannels = 1;
break;
case CODEC_ID_ADPCM_SWF:
{
const static gint l_rates[] = { 11025, 22050, 44100 };
......@@ -406,9 +415,6 @@ gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
rates = l_rates;
break;
}
case CODEC_ID_ADPCM_G726:
maxchannels = 1;
break;
case CODEC_ID_AMR_NB:
{
const static gint l_rates[] = { 8000 };
......@@ -433,19 +439,10 @@ gst_ff_aud_caps_new (AVCodecContext * context, enum CodecID codec_id,
* the list of channel layouts supported by the encoder.
* Unfortunately no encoder uses this yet....
*/
}
/* regardless of encode/decode, open up channels if applicable */
/* Until decoders/encoders expose the maximum number of channels
* they support, we whitelist them here. */
switch (codec_id) {
case CODEC_ID_AC3:
case CODEC_ID_EAC3:
case CODEC_ID_AAC:
case CODEC_ID_AAC_LATM:
case CODEC_ID_DTS:
maxchannels = 6;
break;
case CODEC_ID_WMAPRO:
case CODEC_ID_TRUEHD:
maxchannels = 8;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment