AG_GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ], yes)
dnl check for uninstalled plugin directories for unit tests
- AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.11.0])
- AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.11.0])
- AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.11.0])
-dnl skip these checks for normal installed setups to avoid confusion
+ AG_GST_CHECK_UNINSTALLED_SETUP([
- AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.10.25])
- AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.10.16])
- AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.10.11])
++ AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.11.0])
++ AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.11.0])
++ AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.11.0])
+ ])
dnl Check for documentation xrefs
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
("kate_encode_set_markup_type: %d", ret));
rflow = GST_FLOW_ERROR;
} else {
- char *text;
- gsize text_len;
- const char *text = (const char *) GST_BUFFER_DATA (buf);
- size_t text_len = GST_BUFFER_SIZE (buf);
++ const char *text;
++ size_t text_len;
++ gboolean need_unmap = TRUE;
+ kate_float t0 = start / (double) GST_SECOND;
+ kate_float t1 = stop / (double) GST_SECOND;
- if (text) {
- kate_float t0 = start / (double) GST_SECOND;
- kate_float t1 = stop / (double) GST_SECOND;
- GST_LOG_OBJECT (ke, "Encoding text: %*.*s (%u bytes) from %f to %f",
- (int) text_len, (int) text_len, text, text_len, t0, t1);
-
- ret = kate_encode_text (&ke->k, t0, t1, text, text_len, &kp);
+ text = gst_buffer_map (buf, &text_len, NULL, GST_MAP_READ);
+ if (text == NULL) {
+ text = "";
+ text_len = 0;
++ need_unmap = FALSE;
+ }
- if (G_UNLIKELY (ret < 0)) {
- GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL),
- ("Failed to encode text: %d", ret));
- rflow = GST_FLOW_ERROR;
- } else {
- rflow =
- gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1);
- }
- } else {
- /* FIXME: this should not be an error, we should ignore it and move on */
+ GST_LOG_OBJECT (ke, "Encoding text: %*.*s (%u bytes) from %f to %f",
+ (int) text_len, (int) text_len, GST_BUFFER_DATA (buf),
+ GST_BUFFER_SIZE (buf), t0, t1);
+ ret = kate_encode_text (&ke->k, t0, t1, text, text_len, &kp);
+ if (G_UNLIKELY (ret < 0)) {
GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL),
- ("no text in text packet"));
+ ("Failed to encode text: %d", ret));
rflow = GST_FLOW_ERROR;
+ } else {
+ rflow = gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1);
}
- gst_buffer_unmap (buf, text, text_len);
++ if (need_unmap)
++ gst_buffer_unmap (buf, text, text_len);
}
return rflow;
} else if (g_str_equal (gst_structure_get_name (s), "video/x-dvd-subpicture")) {
dest_pad =
gst_element_get_request_pad (dvdbin->pieces[DVD_ELEM_SPU_SELECT],
- "sink%d");
+ "sink_%u");
skip_mq = TRUE;
- } else if (can_sink_caps (dvdbin->pieces[DVD_ELEM_AUDDEC], caps)) {
+ } else if (can_sink_caps (dvdbin->pieces[DVD_ELEM_AUD_MUNGE], caps)) {
GST_LOG_OBJECT (dvdbin, "Found audio pad w/ caps %" GST_PTR_FORMAT, caps);
dest_pad =
gst_element_get_request_pad (dvdbin->pieces[DVD_ELEM_AUD_SELECT],