diff --git a/ffmpeg.c b/ffmpeg.c index 83fdb378db..c95549a8ca 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -162,6 +162,7 @@ static char *audio_language = NULL; static int subtitle_disable = 0; static char *subtitle_codec_name = NULL; static char *subtitle_language = NULL; +static int subtitle_codec_tag = 0; static float mux_preload= 0.5; static float mux_max_delay= 0.7; @@ -2681,6 +2682,15 @@ static void opt_subtitle_codec(const char *arg) opt_codec(&subtitle_stream_copy, &subtitle_codec_name, CODEC_TYPE_SUBTITLE, arg); } +static void opt_subtitle_tag(const char *arg) +{ + char *tail; + subtitle_codec_tag= strtol(arg, &tail, 0); + + if(!tail || *tail) + subtitle_codec_tag= arg[0] + (arg[1]<<8) + (arg[2]<<16) + (arg[3]<<24); +} + static void opt_map(const char *arg) { AVStreamMap *m; @@ -3222,6 +3232,10 @@ static void new_subtitle_stream(AVFormatContext *oc) subtitle_enc = st->codec; subtitle_enc->codec_type = CODEC_TYPE_SUBTITLE; + + if(subtitle_codec_tag) + subtitle_enc->codec_tag= subtitle_codec_tag; + if (subtitle_stream_copy) { st->stream_copy = 1; } else { @@ -3867,6 +3881,7 @@ static const OptionDef options[] = { { "scodec", HAS_ARG | OPT_SUBTITLE, {(void*)opt_subtitle_codec}, "force subtitle codec ('copy' to copy stream)", "codec" }, { "newsubtitle", OPT_SUBTITLE, {(void*)opt_new_subtitle_stream}, "add a new subtitle stream to the current output stream" }, { "slang", HAS_ARG | OPT_STRING | OPT_SUBTITLE, {(void *)&subtitle_language}, "set the ISO 639 language code (3 letters) of the current subtitle stream" , "code" }, + { "stag", HAS_ARG | OPT_EXPERT | OPT_SUBTITLE, {(void*)opt_subtitle_tag}, "force subtitle tag/fourcc", "fourcc/tag" }, /* grab options */ { "vc", HAS_ARG | OPT_EXPERT | OPT_VIDEO | OPT_GRAB, {(void*)opt_video_channel}, "set video grab channel (DV1394 only)", "channel" },