if (stream->pending_event && stream->pad)
gst_pad_push_event (stream->pad, stream->pending_event);
stream->pending_event = NULL;
- /* no further processing needed */
- stream->need_process = FALSE;
}
if (G_UNLIKELY (stream->subtype != FOURCC_text
- && stream->subtype != FOURCC_sbtl)) {
+ && stream->subtype != FOURCC_sbtl &&
+ stream->subtype != FOURCC_subp)) {
return buf;
}
gst_buffer_unref (buf);
return NULL;
}
+ if (stream->subtype == FOURCC_subp) {
+ /* That's all the processing needed for subpictures */
+ gst_buffer_unmap (buf, &map);
+ return buf;
+ }
nsize = GST_READ_UINT16_BE (map.data);
nsize = MIN (nsize, map.size - 2);
/* store event and trigger custom processing */
stream->pending_event =
gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
- stream->need_process = TRUE;
} else {
/* Generic codec_data handler puts it on the caps */
data_ptr = ptr;
case GST_MAKE_FOURCC ('m', 'p', '4', 's'):
_codec ("DVD subtitle");
caps = gst_caps_new_empty_simple ("subpicture/x-dvd");
+ stream->need_process = TRUE;
break;
case GST_MAKE_FOURCC ('t', 'e', 'x', 't'):
_codec ("Quicktime timed text");