On Tue Oct 3 16:45:29 2023 +0000, Thong Thai wrote:
Thanks for the quick feedback! It seems with gstreamer, the hardware decoder bits aren't under the list of decoder factories. Here's what it looks like on my end before and after the change (with the gstreamer-vaapi, and gst-plugin-va packages):
Before: -------------------------------------------------- gst-va: WINE unixlib.c:110:find_element: -- avdec_h264 gstreamer-vaapi: WINE unixlib.c:110:find_element: -- vaapidecodebin WINE unixlib.c:110:find_element: -- avdec_h264 After: -------------------------------------------------- gstreamer-vaapi: WINE unixlib.c:110:find_element: -- vaapidecodebin WINE unixlib.c:110:find_element: -- vaapih264dec gst-va: WINE unixlib.c:110:find_element: -- vah264dec
I'll try to see if I can help in any way to improve the performance/elminate the copying to and from CPU memory.
I think the difference comes from rank and ordering differences, vaapih264dec has an equal rank (256) as avdec_h264 (256), and we use `gst_plugin_feature_rank_compare_func` which sorts by rank, then by name, so unless you prioritize hardware decoders specifically, avdec_h264 will always be selected first.