|
@@ -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" },
|