libgstvideorate_la_SOURCES = gstvideorate.c
libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS) \
+ $(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la
libgstvideorate_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
Android.mk: Makefile.am $(BUILT_SOURCES)
#endif
#include "gstvideorate.h"
+#include <gst/video/video.h>
GST_DEBUG_CATEGORY_STATIC (video_rate_debug);
#define GST_CAT_DEFAULT video_rate_debug
gst_query_set_latency (query, live, min, max);
}
gst_object_unref (peer);
- break;
}
- /* Simple fallthrough if we don't have a latency or not a peer that we
- * can't ask about its latency yet.. */
+ break;
+ }
+ case GST_QUERY_ALLOCATION:
+ {
+ guint i, n_allocation;
+
+ n_allocation = gst_query_get_n_allocation_pools (query);
+
+ for (i = 0; i < n_allocation; i++) {
+ GstBufferPool *pool;
+ guint size, min, max;
+
+ gst_query_parse_nth_allocation_pool (query, i, &pool, &size, &min,
+ &max);
+
+ min += 1;
+
+ if (max != 0)
+ max = MAX (min, max);
+
+ gst_query_set_nth_allocation_pool (query, i, pool, size, min, max);
+ }
+
+ if (n_allocation == 0) {
+ GstCaps *caps;
+ GstVideoInfo info;
+
+ gst_query_parse_allocation (query, &caps, NULL);
+ gst_video_info_from_caps (&info, caps);
+
+ gst_query_add_allocation_pool (query, NULL, info.size, 1, 0);
+ }
+ break;
}
default:
- res =
- GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction,
- query);
break;
}
+ res =
+ GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction, query);
+
return res;
}