[Bug 793705] msdk: Implement Video Post Processing element
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Fri Mar 30 11:55:19 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=793705
Víctor Manuel Jáquez Leal <vjaquez at igalia.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #370068|none |needs-work
status| |
--- Comment #15 from Víctor Manuel Jáquez Leal <vjaquez at igalia.com> ---
Review of attachment 370068:
--> (https://bugzilla.gnome.org/review?bug=793705&attachment=370068)
::: sys/msdk/Makefile.am
@@ +23,3 @@
gstmsdk.c \
+ msdk-enums.c \
+ gstmsdkvpputil.c
nitpick: spaces vs tabs :)
@@ +51,3 @@
+ gstmsdkenc.h \
+ gstmsdkvpp.h \
+ gstmsdkvpputil.h
ditto
::: sys/msdk/gstmsdkvpp.c
@@ +58,3 @@
+ "width = (int) [ 1, MAX ], height = (int) [ 1, MAX ],"
+ "interlace-mode = (string) progressive")
+ );
Isn't better use
GST_VIDEO_CAPS_MAKE ("{ NV12, I420, YUY2, UYVY, BGRA }") ", interlace-mode =
(string) progressive" ??
@@ +69,3 @@
+ "width = (int) [ 1, MAX ], height = (int) [ 1, MAX ],"
+ "interlace-mode = (string) progressive")
+ );
Ditto
@@ +83,3 @@
+
+#define gst_msdkvpp_parent_class parent_class
+G_DEFINE_TYPE (GstMsdkVPP, gst_msdkvpp, GST_TYPE_BASE_TRANSFORM);
If msdkvpp is not going to double the frame-rate (two output frames per one
input) when deinterlacing, perhaps it would make sense to inherit from
GstVideoFilter
@@ +239,3 @@
+ goto error_pool_config;
+
+ *aligned_info = info;
I would rename "aligned_info" with "pool_info"
and add a comment before updating, something like:
/* updating pool info with allocator's info */
@@ +315,3 @@
+ pool =
+ gst_msdkvpp_create_buffer_pool (thiz, GST_PAD_SRC, caps, min_buffers);
+ thiz->srcpad_buffer_pool = pool;
AFAIU, this assignation should be moved out of this block. What would happen if
we reuse downstream pool?
@@ +339,3 @@
+ if (caps)
+ gst_caps_unref (caps);
+
Yup: caps in gst_query_parse_allocation() are not transfered:
https://developer.gnome.org/gstreamer/stable/gstreamer-GstQuery.html#gst-query-parse-allocation
@@ +381,3 @@
+ }
+
+ pool = thiz->sinkpad_buffer_pool;
AFAIU, this is not OK. Every time upstream ask for a pool, we should provide a
new instantiated pool. Consider tees or similars.
@@ +437,3 @@
+
+static MsdkSurface *
+get_msdk_surface_from_input_buffer (GstMsdkVPP * thiz, GstBuffer * inbuf)
This function really needs to be refactored and moved in to a common utility
source file.
@@ +515,3 @@
+ if (status != MFX_WRN_DEVICE_BUSY)
+ break;
+ /* If device is busy, wait 1ms and retry, as per MSDK's recomendation */
Captain grammar here: "recommendation" :D
@@ +533,3 @@
+ status = MFX_ERR_NONE;
+
+ gst_buffer_copy_into (outbuf, inbuf, GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
Keep in mind if it is required to copy, not only timestamps, but flags (sync)
and non-memory metadata (such as ROI metadata)
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list