gst/matroska/: Recognise SSA/ASS and USF subtitle formats and set proper caps when they are found.
Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_subtitle_caps), (gst_matroska_demux_plugin_init): * gst/matroska/matroska-ids.h: Recognise SSA/ASS and USF subtitle formats and set proper caps when they are found.
This commit is contained in:
parent
495d5c58a7
commit
d9f6178249
@ -1,3 +1,12 @@
|
|||||||
|
2006-02-18 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
|
* gst/matroska/matroska-demux.c:
|
||||||
|
(gst_matroska_demux_subtitle_caps),
|
||||||
|
(gst_matroska_demux_plugin_init):
|
||||||
|
* gst/matroska/matroska-ids.h:
|
||||||
|
Recognise SSA/ASS and USF subtitle formats and
|
||||||
|
set proper caps when they are found.
|
||||||
|
|
||||||
2006-02-17 Tim-Philipp Müller <tim at centricular dot net>
|
2006-02-17 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_decode_direct),
|
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_decode_direct),
|
||||||
|
@ -3408,13 +3408,38 @@ gst_matroska_demux_subtitle_caps (GstMatroskaTrackSubtitleContext *
|
|||||||
(GstMatroskaTrackContext *) subtitlecontext; */
|
(GstMatroskaTrackContext *) subtitlecontext; */
|
||||||
GstCaps *caps = NULL;
|
GstCaps *caps = NULL;
|
||||||
|
|
||||||
|
/* for backwards compatibility */
|
||||||
|
if (!g_ascii_strcasecmp (codec_id, "S_TEXT/ASCII"))
|
||||||
|
codec_id = GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8;
|
||||||
|
else if (!g_ascii_strcasecmp (codec_id, "S_SSA"))
|
||||||
|
codec_id = GST_MATROSKA_CODEC_ID_SUBTITLE_SSA;
|
||||||
|
else if (!g_ascii_strcasecmp (codec_id, "S_ASS"))
|
||||||
|
codec_id = GST_MATROSKA_CODEC_ID_SUBTITLE_ASS;
|
||||||
|
else if (!g_ascii_strcasecmp (codec_id, "S_USF"))
|
||||||
|
codec_id = GST_MATROSKA_CODEC_ID_SUBTITLE_USF;
|
||||||
|
|
||||||
if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8)) {
|
if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8)) {
|
||||||
caps = gst_caps_new_simple ("text/plain", NULL);
|
caps = gst_caps_new_simple ("text/plain", NULL);
|
||||||
|
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_SSA)) {
|
||||||
|
caps = gst_caps_new_simple ("application/x-ssa", NULL);
|
||||||
|
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_ASS)) {
|
||||||
|
caps = gst_caps_new_simple ("application/x-ass", NULL);
|
||||||
|
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_SUBTITLE_USF)) {
|
||||||
|
caps = gst_caps_new_simple ("application/x-usf", NULL);
|
||||||
} else {
|
} else {
|
||||||
GST_DEBUG ("Unknown subtitle stream: codec_id='%s'", codec_id);
|
GST_DEBUG ("Unknown subtitle stream: codec_id='%s'", codec_id);
|
||||||
caps = gst_caps_new_simple ("application/x-subtitle-unknown", NULL);
|
caps = gst_caps_new_simple ("application/x-subtitle-unknown", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (data != NULL && size > 0) {
|
||||||
|
GstBuffer *buf;
|
||||||
|
|
||||||
|
buf = gst_buffer_new_and_alloc (size);
|
||||||
|
memcpy (GST_BUFFER_DATA (buf), data, size);
|
||||||
|
gst_caps_set_simple (caps, "codec_data", GST_TYPE_BUFFER, buf, NULL);
|
||||||
|
gst_buffer_unref (buf);
|
||||||
|
}
|
||||||
|
|
||||||
return caps;
|
return caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3501,6 +3526,9 @@ gst_matroska_demux_plugin_init (GstPlugin * plugin)
|
|||||||
};
|
};
|
||||||
const gchar *subtitle_id[] = {
|
const gchar *subtitle_id[] = {
|
||||||
GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8,
|
GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8,
|
||||||
|
GST_MATROSKA_CODEC_ID_SUBTITLE_SSA,
|
||||||
|
GST_MATROSKA_CODEC_ID_SUBTITLE_ASS,
|
||||||
|
GST_MATROSKA_CODEC_ID_SUBTITLE_USF,
|
||||||
/* FILLME */
|
/* FILLME */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -168,6 +168,9 @@
|
|||||||
/* TODO: AC3-9/10 (?), Musepack, Quicktime */
|
/* TODO: AC3-9/10 (?), Musepack, Quicktime */
|
||||||
|
|
||||||
#define GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8 "S_TEXT/UTF8"
|
#define GST_MATROSKA_CODEC_ID_SUBTITLE_UTF8 "S_TEXT/UTF8"
|
||||||
|
#define GST_MATROSKA_CODEC_ID_SUBTITLE_SSA "S_TEXT/SSA"
|
||||||
|
#define GST_MATROSKA_CODEC_ID_SUBTITLE_ASS "S_TEXT/ASS"
|
||||||
|
#define GST_MATROSKA_CODEC_ID_SUBTITLE_USF "S_TEXT/USF"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Matrodka tags. Strings.
|
* Matrodka tags. Strings.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user