Commits on Source (17)
-
Víctor Manuel Jáquez Leal authored
There was a bug reusing the counter variable i in nested loops. Also the patch makes the code cleaner. Part-of: <!1643>
-
These function were repeated in the different implemented elements. This patch centralize them. The side effect is dmabuf memory type is no longer checked with the current VAContext, but assuming that dmabuf is a consequence of caps negotiation from dynamic generated caps templates, where the context's memory types are validated, there's no need to validate them twice. Part-of: <!1644>
-
... and remove unnecessary forward declaration. Part-of: <!1627>
-
Staging texture is used for memory transfer between system and gpu memory. Apart from d3d11{upload,download} elements, however, it should happen very rarely. Before this commit, d3d11bufferpool was allocating at least one staging texture in order to calculate cpu accessible memory size, and it wasn't freed for later use of the texture unconditionally. But it will increase system memory usage. Although GstD3D11memory object is implemented so that support CPU access, most memory transfer will happen in d3d11{upload,download} elements. By this commit, the initial staging texture will be freed immediately once cpu accessible memory size is calculated. Part-of: <!1627>
-
... instead of direct cpu map for d3d11memory object. In this way, we don't need per GstD3D11Memory staging texture. Part-of: <!1627>
-
Since it is the default by base class. Part-of: <!1626>
-
Since the memory has to be shareable. That will be address in the next commits. Part-of: <!1626>
-
Renamed the first variable member of GstVaMemory from parent to mem in order to avoid confusion with GstMemory's parent. When freeing the structure, memory's parent is check in order to decide if surfaces has to be destroyed or not, since only the parent class have to destroy it. Removed GST_MEMORY_FLAG_NO_SHARE in memory initialization, since it is deprecated. Implemented allocator's share virtual method which creates a new shallow GstVaMemory structure based on the passed one which will be it's parent. Part-of: <!1626>
-
Instead of using gst_buffer_get_size() just add the memory sizes reported by exported fd. Part-of: <!1626>
-
Since it's related with GstVaDmabufAllocator. Part-of: <!1626>
-
Part-of: <!1626>
-
Part-of: <!1626>
-
Event if this function is only used by gst_va_dmabuf_memories_setup(), it might get reused later by GstVaDmabufAllocator's functions. This change makes the function less fragile. Part-of: <!1626>
-
1. Allocators don't implement memory free() methods since all the memories will implement dispose() returning FALSE 2. Memory/miniobject dispose() will act as memory release, enqueueing the release memory 3. A new allocator's method prepare_buffer() which queries the released memory queue and will add the requiered memories to the buffer. 4. Allocators added a GCond to synchronize dispose() and prepare_buffer() 5. A new allocator's method flush() which will free for real the memories. While the bufferpool will 1. Remove all the memories at reset_buffer() 2. Implement acquire_buffer() calling allocator's prepare_buffer() 3. Implement flush_start() calling allocator's flush() 4. start() is disabled since it pre-allocs buffers but also calls our reset_buffer() which will drop the memories and later the buffers are ditched, something we don't want. This approach avoids buffer pre-allocation. Part-of: <!1626>
-
Move code up and add namespace to methods, and renaming _creating_buffer_surface() to the canonical gst_va_buffer_surface_new() Part-of: <!1626>
-
Move code down to group it. Part-of: <!1626>
-
Since the logic is the same, it can be generalized in a single common function. Also the methods run the common function with a lock and signal the buffers' conditional. Part-of: <!1626>
Showing
- sys/d3d11/gstd3d11_fwd.h 0 additions, 16 deletionssys/d3d11/gstd3d11_fwd.h
- sys/d3d11/gstd3d11basefilter.h 5 additions, 0 deletionssys/d3d11/gstd3d11basefilter.h
- sys/d3d11/gstd3d11bufferpool.c 37 additions, 33 deletionssys/d3d11/gstd3d11bufferpool.c
- sys/d3d11/gstd3d11colorconvert.c 23 additions, 0 deletionssys/d3d11/gstd3d11colorconvert.c
- sys/d3d11/gstd3d11colorconvert.h 3 additions, 36 deletionssys/d3d11/gstd3d11colorconvert.h
- sys/d3d11/gstd3d11decoder.h 4 additions, 19 deletionssys/d3d11/gstd3d11decoder.h
- sys/d3d11/gstd3d11download.c 123 additions, 3 deletionssys/d3d11/gstd3d11download.c
- sys/d3d11/gstd3d11download.h 3 additions, 18 deletionssys/d3d11/gstd3d11download.h
- sys/d3d11/gstd3d11memory.c 104 additions, 46 deletionssys/d3d11/gstd3d11memory.c
- sys/d3d11/gstd3d11memory.h 10 additions, 11 deletionssys/d3d11/gstd3d11memory.h
- sys/d3d11/gstd3d11upload.c 121 additions, 4 deletionssys/d3d11/gstd3d11upload.c
- sys/d3d11/gstd3d11upload.h 3 additions, 18 deletionssys/d3d11/gstd3d11upload.h
- sys/d3d11/gstd3d11utils.c 238 additions, 0 deletionssys/d3d11/gstd3d11utils.c
- sys/d3d11/gstd3d11utils.h 13 additions, 0 deletionssys/d3d11/gstd3d11utils.h
- sys/d3d11/gstd3d11videosink.c 28 additions, 0 deletionssys/d3d11/gstd3d11videosink.c
- sys/d3d11/gstd3d11videosink.h 3 additions, 45 deletionssys/d3d11/gstd3d11videosink.h
- sys/d3d11/gstd3d11videosinkbin.c 15 additions, 0 deletionssys/d3d11/gstd3d11videosinkbin.c
- sys/d3d11/gstd3d11videosinkbin.h 3 additions, 33 deletionssys/d3d11/gstd3d11videosinkbin.h
- sys/va/gstvaallocator.c 283 additions, 127 deletionssys/va/gstvaallocator.c
- sys/va/gstvaallocator.h 9 additions, 3 deletionssys/va/gstvaallocator.h