mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
assrender: process ATTACHMENT tag as sample
This commit is contained in:
parent
f890f60ee2
commit
dd3ae904f9
1 changed files with 12 additions and 16 deletions
|
@ -1302,7 +1302,6 @@ beach:
|
||||||
static void
|
static void
|
||||||
gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
static const gchar *mimetypes[] = {
|
static const gchar *mimetypes[] = {
|
||||||
"application/x-font-ttf",
|
"application/x-font-ttf",
|
||||||
"application/x-font-otf",
|
"application/x-font-otf",
|
||||||
|
@ -1312,7 +1311,6 @@ gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
||||||
".otf",
|
".otf",
|
||||||
".ttf"
|
".ttf"
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
guint tag_size;
|
guint tag_size;
|
||||||
|
|
||||||
if (!taglist)
|
if (!taglist)
|
||||||
|
@ -1320,28 +1318,25 @@ gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
||||||
|
|
||||||
tag_size = gst_tag_list_get_tag_size (taglist, GST_TAG_ATTACHMENT);
|
tag_size = gst_tag_list_get_tag_size (taglist, GST_TAG_ATTACHMENT);
|
||||||
if (tag_size > 0 && render->embeddedfonts) {
|
if (tag_size > 0 && render->embeddedfonts) {
|
||||||
#if 0
|
GstSample *sample;
|
||||||
const GValue *value;
|
|
||||||
GstBuffer *buf;
|
GstBuffer *buf;
|
||||||
GstCaps *caps;
|
const GstStructure *structure;
|
||||||
GstStructure *structure;
|
|
||||||
gboolean valid_mimetype, valid_extension;
|
gboolean valid_mimetype, valid_extension;
|
||||||
guint j;
|
guint j;
|
||||||
const gchar *filename;
|
const gchar *filename;
|
||||||
#endif
|
|
||||||
guint index;
|
guint index;
|
||||||
|
GstMapInfo map;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (render, "TAG event has attachments");
|
GST_DEBUG_OBJECT (render, "TAG event has attachments");
|
||||||
|
|
||||||
for (index = 0; index < tag_size; index++) {
|
for (index = 0; index < tag_size; index++) {
|
||||||
#if 0
|
if (!gst_tag_list_get_sample_index (taglist, GST_TAG_ATTACHMENT, index,
|
||||||
value = gst_tag_list_get_value_index (taglist, GST_TAG_ATTACHMENT, index);
|
&sample))
|
||||||
buf = gst_value_get_buffer (value);
|
continue;
|
||||||
if (!buf || !GST_BUFFER_CAPS (buf))
|
buf = gst_sample_get_buffer (sample);
|
||||||
|
structure = gst_sample_get_info (sample);
|
||||||
|
if (!buf || !structure)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
caps = GST_BUFFER_CAPS (buf);
|
|
||||||
structure = gst_caps_get_structure (caps, 0);
|
|
||||||
|
|
||||||
valid_mimetype = FALSE;
|
valid_mimetype = FALSE;
|
||||||
valid_extension = FALSE;
|
valid_extension = FALSE;
|
||||||
|
@ -1369,12 +1364,13 @@ gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist)
|
||||||
|
|
||||||
if (valid_mimetype || valid_extension) {
|
if (valid_mimetype || valid_extension) {
|
||||||
g_mutex_lock (&render->ass_mutex);
|
g_mutex_lock (&render->ass_mutex);
|
||||||
|
gst_buffer_map (buf, &map, GST_MAP_READ);
|
||||||
ass_add_font (render->ass_library, (gchar *) filename,
|
ass_add_font (render->ass_library, (gchar *) filename,
|
||||||
(gchar *) GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
|
(gchar *) map.data, map.size);
|
||||||
|
gst_buffer_unmap (buf, &map);
|
||||||
GST_DEBUG_OBJECT (render, "registered new font %s", filename);
|
GST_DEBUG_OBJECT (render, "registered new font %s", filename);
|
||||||
g_mutex_unlock (&render->ass_mutex);
|
g_mutex_unlock (&render->ass_mutex);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue