[Bug 781537] NVDEC - Nvidia Decoder plugin

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue May 30 18:44:46 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=781537

--- Comment #43 from Per-Erik Brodin <per-erik.brodin at ericsson.com> ---
(In reply to Sebastian Dröge (slomo) from comment #41)

Thank you for the quick review!

> Review of attachment 352853 [details] [review]:
> 
> Just some initial comments below
> 
> ::: configure.ac
> @@ +1920,3 @@
> +  save_CPPFLAGS="$CPPFLAGS"
> +  CPPFLAGS="$NVCUVID_CFLAGS $save_CPPFLAGS"
> +  AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
> 
> Why don't you use pkg-config?

At least on Debian/Ubuntu there is no .pc file provided by nvidia-cuda-dev.
nvcuvid.h is located directly under /usr/include so typically you don’t have to
set the NVCUVID_CFLAGS.

> 
> ::: sys/nvdec/gstnvdec.c
> @@ +120,3 @@
> +  CUgraphicsResource *resources;
> +  guint num_resources;
> +} GstNvDecCudaGraphicsResourcesMeta;
> 
> Why is this a GstMeta instead of a custom GstMemory (e.g. based on
> GstGLBaseMemory)?

I considered that but then we would also need a custom allocator and maybe a
custom buffer pool and then the downstream element won’t be able to do the
allocation. I think using a GstMeta is the best temporary solution until we
have a GstCUDA library.

> 
> @@ +617,3 @@
> +  else if (!g_strcmp0 (caps_name, "video/x-h265"))
> +    parser_params.CodecType = cudaVideoCodec_HEVC;
> +  else {
> 
> Add some {} above here

Done

> 
> @@ +735,3 @@
> +    pending_frame = pending_frames->data;
> +    if (!pending_frame->system_frame_number)
> +      break;
> 
> Why?

Added a comment to clarify that we are looking for the oldest unfinished frame
that has not yet been passed to the decoder.

> 
> @@ +790,3 @@
> +        decode_params = (CUVIDPICPARAMS *) item->data;
> +        pending_frame = pending_frames->data;
> +        pending_frame->system_frame_number = decode_params->CurrPicIdx + 1;
> 
> You should never override the system_frame_number, it's read-only from a
> subclass point of view

Ok, fixed. I thought the purpose of the separate decode_frame_number was so
that system_frame_number could be changed. At least currently there is nothing
in the base class that breaks when changing it.

-- 
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