[Bug 712809] d3dvideosink shows corrupted output with some videos

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sun Jun 29 17:00:39 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=712809
  GStreamer | gst-plugins-bad | git

--- Comment #22 from voskater15 at gmail.com 2014-06-30 00:00:34 UTC ---
Well it isn't StretchRect it was my mistake, I build many patches for many
functions and API, and I was excited I fixed it. Now with more calm I have
debugged it well, also deactivated some hooks and I've found it.

Here's the bug:

function: gst_d3dsurface_buffer_pool_alloc_buffer
module: d3dhelpers.c

In the instruction IDirect3DSurface9_LockRect(surface, &lr, NULL,
D3DLOCK_READONLY); instead of D3DLOCK_READONLY pass D3DLOCK_DISCARD and it will
fix it. This is crazy because I don't have the source of libgstd3dvideosink.dll
so I debugged it with OllyDbg and got the function pointer (0x6D103CB0) of
gst_d3dsurface_buffer_pool_alloc_buffer so I reimplement that function in
runtime via inline hooking, so finally I got it working :) That does not mean
that will work for all of you, idk.

Now I've compiled the source of d3dvideosink but when gst tries to load the
plugin, it throws me an error saying that the plugin could not be loaded. Hope
your help me, I have some ideas for gaining performance on this.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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