- payload->pt = GST_RTP_PAYLOAD_H263;
- gst_rtp_base_payload_set_options (payload, "video", TRUE, "H263", 90000);
- res = gst_rtp_base_payload_set_outcaps (payload, NULL);
+ if (gst_structure_has_field (s, "width") &&
+ gst_structure_has_field (s, "height")) {
+ if (!gst_structure_get_int (s, "width", &width) || width <= 0) {
+ goto invalid_dimension;
+ }
+
+ if (!gst_structure_get_int (s, "height", &height) || height <= 0) {
+ goto invalid_dimension;
+ }
+
+ framesize = g_strdup_printf ("%d-%d", width, height);
+ }
+
+ gst_rtp_base_payload_set_options (payload, "video",
+ payload->pt != GST_RTP_PAYLOAD_H263, "H263", 90000);
+
+ if (framesize != NULL) {
+ res = gst_rtp_base_payload_set_outcaps (payload,
+ "a-framesize", G_TYPE_STRING, framesize, NULL);
+ } else {
+ res = gst_rtp_base_payload_set_outcaps (payload, NULL);
+ }
+ g_free (framesize);