* and subsequently set. subclass is adult enough to set_caps itself ...
* so simply check/ensure/assert that src pad caps are set by now */
if (!base_video_encoder->set_output_caps) {
- GstCaps *caps;
+ if (!GST_PAD_CAPS (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))) {
+ GstCaps *caps;
- if (base_video_encoder_class->get_caps) {
- caps = base_video_encoder_class->get_caps (base_video_encoder);
- } else {
- caps = gst_caps_new_simple ("video/unknown", NULL);
+ if (base_video_encoder_class->get_caps) {
+ caps = base_video_encoder_class->get_caps (base_video_encoder);
+ } else {
+ caps = gst_caps_new_simple ("video/unknown", NULL);
+ }
+ GST_DEBUG_OBJECT (base_video_encoder, "src caps %" GST_PTR_FORMAT, caps);
+ gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder),
+ caps);
+ gst_caps_unref (caps);
}
- GST_DEBUG_OBJECT (base_video_encoder, "src caps %" GST_PTR_FORMAT, caps);
- gst_pad_set_caps (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), caps);
- gst_caps_unref (caps);
base_video_encoder->set_output_caps = TRUE;
}