diff options
author | Olivier CrĂȘte <olivier.crete@collabora.com> | 2014-05-09 17:13:05 -0400 |
---|---|---|
committer | Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> | 2014-09-18 13:37:59 -0400 |
commit | 11dba722578095699a686ec8765590b11a0717cd (patch) | |
tree | 198ac90d51e3cd1dfe61632ddb47792bbb48c436 /gst | |
parent | 75285f4aa31a17296d8399389aaec11c5b0179f7 (diff) | |
download | farstream-11dba722578095699a686ec8765590b11a0717cd.tar.gz |
rtpbitrateadapter: Pass media type from caller
Diffstat (limited to 'gst')
-rw-r--r-- | gst/fsrtpconference/fs-rtp-bitrate-adapter.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/gst/fsrtpconference/fs-rtp-bitrate-adapter.c b/gst/fsrtpconference/fs-rtp-bitrate-adapter.c index fc74fda3..ee60c703 100644 --- a/gst/fsrtpconference/fs-rtp-bitrate-adapter.c +++ b/gst/fsrtpconference/fs-rtp-bitrate-adapter.c @@ -229,13 +229,13 @@ static const struct Resolution twelve_on_eleven_resolutions[] = }; static void -video_caps_add (GstCaps *caps, const gchar *type, +video_caps_add (GstCaps *caps, const gchar *media_type, guint min_framerate, guint max_framerate, guint width, guint height, guint par_n, guint par_d) { GstStructure *s; - s = gst_structure_new (type, + s = gst_structure_new (media_type, "pixel-aspect-ratio", GST_TYPE_FRACTION, par_n, par_d, "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, @@ -249,16 +249,16 @@ video_caps_add (GstCaps *caps, const gchar *type, } static void -add_one_resolution_inner (GstCaps *caps, +add_one_resolution_inner (GstCaps *caps, const gchar *media_type, guint min_framerate, guint max_framerate, guint width, guint height, guint par_n, guint par_d) { - video_caps_add (caps, "video/x-raw", min_framerate, max_framerate, + video_caps_add (caps, media_type, min_framerate, max_framerate, width, height, par_n, par_d); } static void -add_one_resolution (GstCaps *caps, +add_one_resolution (const gchar *media_type, GstCaps *caps, GstCaps *lower_caps, GstCaps *extra_low_caps, guint max_pixels_per_second, @@ -274,27 +274,30 @@ add_one_resolution (GstCaps *caps, if (max_framerate >= 20) { - add_one_resolution_inner (caps, 20, 66, width, height, par_n, par_d); - add_one_resolution_inner (lower_caps, 10, 66, width, height, par_n, par_d); - add_one_resolution_inner (extra_low_caps, 1, 66, width, height, + add_one_resolution_inner (caps, media_type, 20, 66, width, height, + par_n, par_d); + add_one_resolution_inner (lower_caps, media_type, 10, 66, width, height, + par_n, par_d); + add_one_resolution_inner (extra_low_caps, media_type, 1, 66, width, height, par_n, par_d); } else if (max_framerate >= 10) { - add_one_resolution_inner (lower_caps, 10, 66, width, height, par_n, par_d); - add_one_resolution_inner (extra_low_caps, 1, 66, width, height, + add_one_resolution_inner (lower_caps, media_type, 10, 66, width, height, + par_n, par_d); + add_one_resolution_inner (extra_low_caps, media_type, 1, 66, width, height, par_n, par_d); } else if (max_framerate > 0) { - add_one_resolution_inner (extra_low_caps, 1, 66, width, height, + add_one_resolution_inner (extra_low_caps, media_type, 1, 66, width, height, par_n, par_d); } } GstCaps * -caps_from_bitrate (guint bitrate) +caps_from_bitrate (const gchar *media_type, guint bitrate) { GstCaps *caps = gst_caps_new_empty (); GstCaps *lower_caps = gst_caps_new_empty (); @@ -307,13 +310,13 @@ caps_from_bitrate (guint bitrate) max_pixels_per_second = MAX (max_pixels_per_second, 128 * 96); for (i = 0; one_on_one_resolutions[i].width > 1; i++) - add_one_resolution (caps, lower_caps, extra_low_caps, + add_one_resolution (media_type, caps, lower_caps, extra_low_caps, max_pixels_per_second, one_on_one_resolutions[i].width, one_on_one_resolutions[i].height, 1, 1); for (i = 0; twelve_on_eleven_resolutions[i].width > 1; i++) - add_one_resolution (caps, lower_caps, extra_low_caps, + add_one_resolution (media_type, caps, lower_caps, extra_low_caps, twelve_on_eleven_resolutions[i].width, twelve_on_eleven_resolutions[i].height, max_pixels_per_second, 12, 11); @@ -483,7 +486,7 @@ fs_rtp_bitrate_adapter_updated_unlock (FsRtpBitrateAdapter *self) GST_OBJECT_UNLOCK (self); return; } - self->caps = caps_from_bitrate (bitrate); + self->caps = caps_from_bitrate ("video/x-raw", bitrate); GST_OBJECT_UNLOCK (self); current_caps = gst_pad_get_current_caps (self->sinkpad); |