comparison fmt-conversion.c @ 36172:7bf03a973142

Do not pass random unsupported data to encoder.
author reimar
date Mon, 13 May 2013 19:34:44 +0000
parents 4e3c56728d1e
children d649e84ea8d5
comparison
equal deleted inserted replaced
36171:94979f661d38 36172:7bf03a973142
178 } samplefmt_conversion_map[] = { 178 } samplefmt_conversion_map[] = {
179 {AF_FORMAT_U8, AV_SAMPLE_FMT_U8}, 179 {AF_FORMAT_U8, AV_SAMPLE_FMT_U8},
180 {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16}, 180 {AF_FORMAT_S16_NE, AV_SAMPLE_FMT_S16},
181 {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32}, 181 {AF_FORMAT_S32_NE, AV_SAMPLE_FMT_S32},
182 {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT}, 182 {AF_FORMAT_FLOAT_NE, AV_SAMPLE_FMT_FLT},
183 {0, AV_SAMPLE_FMT_NONE} 183 {AF_FORMAT_UNKNOWN, AV_SAMPLE_FMT_NONE}
184 }; 184 };
185 185
186 enum AVSampleFormat affmt2samplefmt(int fmt) 186 enum AVSampleFormat affmt2samplefmt(int fmt)
187 { 187 {
188 char str[50]; 188 char str[50];
204 int fmt; 204 int fmt;
205 for (i = 0; samplefmt_conversion_map[i].sample_fmt != AV_SAMPLE_FMT_NONE; i++) 205 for (i = 0; samplefmt_conversion_map[i].sample_fmt != AV_SAMPLE_FMT_NONE; i++)
206 if (samplefmt_conversion_map[i].sample_fmt == sample_fmt) 206 if (samplefmt_conversion_map[i].sample_fmt == sample_fmt)
207 break; 207 break;
208 fmt = samplefmt_conversion_map[i].fmt; 208 fmt = samplefmt_conversion_map[i].fmt;
209 if (!fmt) 209 if (fmt == AF_FORMAT_UNKNOWN)
210 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported AVSampleFormat %i\n", sample_fmt); 210 mp_msg(MSGT_GLOBAL, MSGL_ERR, "Unsupported AVSampleFormat %i\n", sample_fmt);
211 return fmt; 211 return fmt;
212 } 212 }