lavf/mpegenc: Print a warning if ac3, pcm_s16be or dts are muxed into mpeg1.

Some media players don't play the resulting files.
The warning should help users to avoid the issues described in ticket #1720.
This commit is contained in:
Carl Eugen Hoyos 2013-11-24 10:37:52 +01:00
parent ccdfa3e271
commit e043298cb1

View File

@ -346,6 +346,15 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx)
switch(st->codec->codec_type) {
case AVMEDIA_TYPE_AUDIO:
if (!s->is_mpeg2 &&
(st->codec->codec_id == AV_CODEC_ID_AC3 ||
st->codec->codec_id == AV_CODEC_ID_DTS ||
st->codec->codec_id == AV_CODEC_ID_PCM_S16BE))
av_log(ctx, AV_LOG_WARNING,
"%s in MPEG-1 system streams is not widely supported, "
"consider using the vob or the dvd muxer "
"to force a MPEG-2 program stream.\n",
avcodec_get_name(st->codec->codec_id));
if (st->codec->codec_id == AV_CODEC_ID_AC3) {
stream->id = ac3_id++;
} else if (st->codec->codec_id == AV_CODEC_ID_DTS) {