mirror of https://git.videolan.org/git/ffmpeg.git
Force one stream for raw muxers.
Based on eeb975f5
Fixes ticket #3217.
Reviewed-by: Nicolas George
This commit is contained in:
parent
7f39352a1b
commit
945a440d11
|
@ -29,6 +29,16 @@ int ff_raw_write_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int force_one_stream(AVFormatContext *s)
|
||||||
|
{
|
||||||
|
if (s->nb_streams != 1) {
|
||||||
|
av_log(s, AV_LOG_ERROR, "%s files have exactly one stream\n",
|
||||||
|
s->oformat->name);
|
||||||
|
return AVERROR(EINVAL);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Note: Do not forget to add new entries to the Makefile as well. */
|
/* Note: Do not forget to add new entries to the Makefile as well. */
|
||||||
|
|
||||||
#if CONFIG_AC3_MUXER
|
#if CONFIG_AC3_MUXER
|
||||||
|
@ -39,6 +49,7 @@ AVOutputFormat ff_ac3_muxer = {
|
||||||
.extensions = "ac3",
|
.extensions = "ac3",
|
||||||
.audio_codec = AV_CODEC_ID_AC3,
|
.audio_codec = AV_CODEC_ID_AC3,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -51,6 +62,7 @@ AVOutputFormat ff_adx_muxer = {
|
||||||
.extensions = "adx",
|
.extensions = "adx",
|
||||||
.audio_codec = AV_CODEC_ID_ADPCM_ADX,
|
.audio_codec = AV_CODEC_ID_ADPCM_ADX,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -63,6 +75,7 @@ AVOutputFormat ff_cavsvideo_muxer = {
|
||||||
.extensions = "cavs",
|
.extensions = "cavs",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_CAVS,
|
.video_codec = AV_CODEC_ID_CAVS,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -72,6 +85,7 @@ AVOutputFormat ff_cavsvideo_muxer = {
|
||||||
AVOutputFormat ff_data_muxer = {
|
AVOutputFormat ff_data_muxer = {
|
||||||
.name = "data",
|
.name = "data",
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("raw data"),
|
.long_name = NULL_IF_CONFIG_SMALL("raw data"),
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -84,6 +98,7 @@ AVOutputFormat ff_dirac_muxer = {
|
||||||
.extensions = "drc",
|
.extensions = "drc",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_DIRAC,
|
.video_codec = AV_CODEC_ID_DIRAC,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -96,6 +111,7 @@ AVOutputFormat ff_dnxhd_muxer = {
|
||||||
.extensions = "dnxhd",
|
.extensions = "dnxhd",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_DNXHD,
|
.video_codec = AV_CODEC_ID_DNXHD,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -109,6 +125,7 @@ AVOutputFormat ff_dts_muxer = {
|
||||||
.extensions = "dts",
|
.extensions = "dts",
|
||||||
.audio_codec = AV_CODEC_ID_DTS,
|
.audio_codec = AV_CODEC_ID_DTS,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -122,6 +139,7 @@ AVOutputFormat ff_eac3_muxer = {
|
||||||
.extensions = "eac3",
|
.extensions = "eac3",
|
||||||
.audio_codec = AV_CODEC_ID_EAC3,
|
.audio_codec = AV_CODEC_ID_EAC3,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -135,6 +153,7 @@ AVOutputFormat ff_g722_muxer = {
|
||||||
.extensions = "g722",
|
.extensions = "g722",
|
||||||
.audio_codec = AV_CODEC_ID_ADPCM_G722,
|
.audio_codec = AV_CODEC_ID_ADPCM_G722,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -148,6 +167,7 @@ AVOutputFormat ff_g723_1_muxer = {
|
||||||
.extensions = "tco,rco",
|
.extensions = "tco,rco",
|
||||||
.audio_codec = AV_CODEC_ID_G723_1,
|
.audio_codec = AV_CODEC_ID_G723_1,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -161,6 +181,7 @@ AVOutputFormat ff_h261_muxer = {
|
||||||
.extensions = "h261",
|
.extensions = "h261",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_H261,
|
.video_codec = AV_CODEC_ID_H261,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -174,6 +195,7 @@ AVOutputFormat ff_h263_muxer = {
|
||||||
.extensions = "h263",
|
.extensions = "h263",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_H263,
|
.video_codec = AV_CODEC_ID_H263,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -186,6 +208,7 @@ AVOutputFormat ff_h264_muxer = {
|
||||||
.extensions = "h264",
|
.extensions = "h264",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_H264,
|
.video_codec = AV_CODEC_ID_H264,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -211,6 +234,7 @@ AVOutputFormat ff_mjpeg_muxer = {
|
||||||
.extensions = "mjpg,mjpeg",
|
.extensions = "mjpg,mjpeg",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_MJPEG,
|
.video_codec = AV_CODEC_ID_MJPEG,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -223,6 +247,7 @@ AVOutputFormat ff_mlp_muxer = {
|
||||||
.extensions = "mlp",
|
.extensions = "mlp",
|
||||||
.audio_codec = AV_CODEC_ID_MLP,
|
.audio_codec = AV_CODEC_ID_MLP,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -236,6 +261,7 @@ AVOutputFormat ff_mpeg1video_muxer = {
|
||||||
.extensions = "mpg,mpeg,m1v",
|
.extensions = "mpg,mpeg,m1v",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_MPEG1VIDEO,
|
.video_codec = AV_CODEC_ID_MPEG1VIDEO,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -248,6 +274,7 @@ AVOutputFormat ff_mpeg2video_muxer = {
|
||||||
.extensions = "m2v",
|
.extensions = "m2v",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_MPEG2VIDEO,
|
.video_codec = AV_CODEC_ID_MPEG2VIDEO,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -272,6 +299,7 @@ AVOutputFormat ff_truehd_muxer = {
|
||||||
.extensions = "thd",
|
.extensions = "thd",
|
||||||
.audio_codec = AV_CODEC_ID_TRUEHD,
|
.audio_codec = AV_CODEC_ID_TRUEHD,
|
||||||
.video_codec = AV_CODEC_ID_NONE,
|
.video_codec = AV_CODEC_ID_NONE,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
@ -284,6 +312,7 @@ AVOutputFormat ff_vc1_muxer = {
|
||||||
.extensions = "vc1",
|
.extensions = "vc1",
|
||||||
.audio_codec = AV_CODEC_ID_NONE,
|
.audio_codec = AV_CODEC_ID_NONE,
|
||||||
.video_codec = AV_CODEC_ID_VC1,
|
.video_codec = AV_CODEC_ID_VC1,
|
||||||
|
.write_header = force_one_stream,
|
||||||
.write_packet = ff_raw_write_packet,
|
.write_packet = ff_raw_write_packet,
|
||||||
.flags = AVFMT_NOTIMESTAMPS,
|
.flags = AVFMT_NOTIMESTAMPS,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue