DEFAULT_FRAGMENTATION_MODE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_rtp_h263p_pay_src_template));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_rtp_h263p_pay_sink_template));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_rtp_h263p_pay_src_template);
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_rtp_h263p_pay_sink_template);
gst_element_class_set_static_metadata (gstelement_class, "RTP H263 payloader",
"Codec/Payloader/Network/RTP",
GST_DEBUG_CATEGORY_INIT (rtph263ppay_debug, "rtph263ppay",
0, "rtph263ppay (RFC 4629)");
+
+#ifndef TIZEN_FEATURE_GST_UPSTREAM_AVOID_BUILD_BREAK
+ gst_type_mark_as_plugin_api (GST_TYPE_FRAGMENTATION_MODE, 0);
+#endif
}
static void
if (!peercaps || gst_caps_is_any (peercaps)) {
if (peercaps)
gst_caps_unref (peercaps);
- return
+ caps =
gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SINKPAD (payload));
+ goto done;
}
/* We basically need to differentiate two use-cases here: One where there's
* we want it to produce. The second case is simply payloader ! depayloader
* where we are dealing with the depayloader's template caps. In this case
* we should accept any input compatible with our sink template caps. */
- if (!gst_caps_is_fixed (peercaps))
- return
+ if (!gst_caps_is_fixed (peercaps)) {
+ gst_caps_unref (peercaps);
+ caps =
gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SINKPAD (payload));
+ goto done;
+ }
templ = gst_pad_get_pad_template_caps (GST_RTP_BASE_PAYLOAD_SRCPAD (payload));
intersect = gst_caps_intersect (peercaps, templ);
gst_caps_unref (intersect);
+done:
+
+ if (filter) {
+ GstCaps *tmp;
+
+ GST_DEBUG_OBJECT (payload, "Intersect %" GST_PTR_FORMAT " and filter %"
+ GST_PTR_FORMAT, caps, filter);
+ tmp = gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_unref (caps);
+ caps = tmp;
+ }
+
return caps;
}
* This algorithm separates large frames at synchronisation points (Segments)
* (See RFC 4629 section 6). It would be interesting to have a property such as network
* quality to select between both packetization methods */
- /* TODO Add VRC supprt (See RFC 4629 section 5.2) */
+ /* TODO Add VRC support (See RFC 4629 section 5.2) */
while (avail > 0) {
guint towrite;
gst_rtp_buffer_unmap (&rtp);
payload_buf = gst_adapter_take_buffer_fast (rtph263ppay->adapter, towrite);
- gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263ppay), outbuf, payload_buf,
- g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+ gst_rtp_copy_video_meta (rtph263ppay, outbuf, payload_buf);
outbuf = gst_buffer_append (outbuf, payload_buf);
avail -= towrite;