videotestsrc: ensure having caps when setting the buffer pool config

It happens if downstream does not propose a buffer pool.
GST_DEBUG=2 gst-launch-1.0 videotestsrc ! fakesink

https://bugzilla.gnome.org/show_bug.cgi?id=723271
This commit is contained in:
Julien Isorce 2014-01-31 13:40:36 +00:00
parent 01bfc79766
commit c9b493b853

View file

@ -624,6 +624,7 @@ gst_video_test_src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
gboolean update; gboolean update;
guint size, min, max; guint size, min, max;
GstStructure *config; GstStructure *config;
GstCaps *caps = NULL;
videotestsrc = GST_VIDEO_TEST_SRC (bsrc); videotestsrc = GST_VIDEO_TEST_SRC (bsrc);
@ -649,6 +650,11 @@ gst_video_test_src_decide_allocation (GstBaseSrc * bsrc, GstQuery * query)
} }
config = gst_buffer_pool_get_config (pool); config = gst_buffer_pool_get_config (pool);
gst_query_parse_allocation (query, &caps, NULL);
if (caps)
gst_buffer_pool_config_set_params (config, caps, size, min, max);
if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) { if (gst_query_find_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL)) {
gst_buffer_pool_config_add_option (config, gst_buffer_pool_config_add_option (config,
GST_BUFFER_POOL_OPTION_VIDEO_META); GST_BUFFER_POOL_OPTION_VIDEO_META);