MpegTSPacketizerPacketReturn pret;
MpegTSPacketizer2 *packetizer;
MpegTSPacketizerPacket packet;
+ MpegTSBaseClass *klass;
base = GST_MPEGTS_BASE (parent);
+ klass = GST_MPEGTS_BASE_GET_CLASS (base);
+
packetizer = base->packetizer;
if (G_UNLIKELY (base->queried_latency == FALSE)) {
query_upstream_latency (base);
}
+ if (klass->input_done)
+ gst_buffer_ref (buf);
+
mpegts_packetizer_push (base->packetizer, buf);
while (res == GST_FLOW_OK) {
mpegts_packetizer_clear_packet (base->packetizer, &packet);
}
+ if (klass->input_done) {
+ if (res == GST_FLOW_OK)
+ res = klass->input_done (base, buf);
+ else
+ gst_buffer_unref (buf);
+ }
+
return res;
}
/* flush all streams */
void (*flush) (MpegTSBase * base);
+ /* Notifies subclasses input buffer has been handled */
+ GstFlowReturn (*input_done) (MpegTSBase *base, GstBuffer *buffer);
+
/* signals */
void (*pat_info) (GstStructure *pat);
void (*pmt_info) (GstStructure *pmt);