New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release video buffer #7
Comments
I think you just need to call video_buffer->destroy(video_buffer) in hash_table_clear_item_callback. |
Made the changes in 5ee3bf3 It clears the video but I the error
Also while debugging I see that four eglimages are registered. |
I double check and 5 looks correct because: min is 1 here https://github.com/gpalsingh/gst-omx/blob/tizonia-dev/omx/gstomxvideodec.c#L608 But this would lead to 5 registered eglimage so this needs more digging if you see only 4. Could you debug around "min = MAX (min + port->port_def.nBufferCountMin, 4);" in gstomxvideodec.c and check what is the value for each var ? |
Ah that looks right because I see 5 too. |
Same question here, does it happen with and without tee element ? |
The crash doesn't happen while using tee. |
Ah right, my mistake since this code is only for eglimage |
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes gpalsingh/mesa#7
Fixed by CapOM/mesa@377c62d , please cherry-pick this commit into your branch. We were just passing the texture without incrementing the reference counter. Which results in a double free when terminating the pipeline. |
Works too. Thx! |
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
Found by address sanitizer: ==22621==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000cbd8 at pc 0x7f561610a4ff bp 0x7ffca85f9d50 sp 0x7ffca85f94f8 READ of size 344 at 0x61400000cbd8 thread T0 #0 0x7f561610a4fe (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x5f4fe) #1 0x7f560bb305a5 in memcpy /usr/include/x86_64-linux-gnu/bits/string3.h:53 #2 0x7f560bb305a5 in blob_write_bytes ../../../mesa-src/src/compiler/glsl/blob.c:136 #3 0x7f560be7d7ff in encode_type_to_blob ../../../mesa-src/src/compiler/glsl/shader_cache.cpp:153 #4 0x7f560be81222 in write_program_resource_data ../../../mesa-src/src/compiler/glsl/shader_cache.cpp:950 #5 0x7f560be81222 in write_program_resource_list ../../../mesa-src/src/compiler/glsl/shader_cache.cpp:1118 #6 0x7f560be81222 in shader_cache_write_program_metadata(gl_context*, gl_shader_program*) ../../../mesa-src/src/compiler/glsl/shader_cache.cpp:1407 #7 0x7f560b825fdb in link_program ../../../mesa-src/src/mesa/main/shaderapi.c:1163 Fixes: 073a84f ("glsl: stop adding pointers from glsl_struct_field to the cache") Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
Because vl_video_buffer_create_ex2 takes ownership. And some minor cleanups. In this commit only pipe_resource_reference(&resources[0], p_res); fixes the crash. Fixes #7
The code for releasing allocated buffers is commented out as of now https://github.com/gpalsingh/mesa/blob/gsoc-dev/src/gallium/state_trackers/omx_tizonia/h264dprc.c#L78
Not sure if it is possible or is even needed since the dec works.
The text was updated successfully, but these errors were encountered: