2012-06-07 31 views
0

環境:Ubuntu 11.04。 SDL 1.2.15。SDL_Open中的內存泄漏

在我的基於SDL的應用程序中,我一個接一個播放多個視頻剪輯。對於每個視頻,我在開始時調用SDL_OpenAudio,結束時調用SDL_CloseAudio。但是,每輪都會留下兩塊內存不確定。它們都來自內部SDL功能AudioAvailable。



==17035== 372 bytes in 3 blocks are definitely lost in loss record 139 of 169 
==17035== at 0x4C28F9F: malloc (vg_replace_malloc.c:236) 
==17035== by 0xB2B0564: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) 
==17035== by 0xB2B062A: ??? (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) 
==17035== by 0xB2B01CA: xcb_connect_to_display_with_auth_info (in /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0) 
==17035== by 0xCC650ED: pa_client_conf_from_x11 (in /usr/lib/x86_64-linux-gnu/libpulsecommon-1.0.so) 
==17035== by 0xC9ED83E: pa_context_new_with_proplist (in /usr/lib/x86_64-linux-gnu/libpulse.so.0.13.4) 
==17035== by 0xC7DD9F2: pa_simple_new (in /usr/lib/x86_64-linux-gnu/libpulse-simple.so.0.0.3) 
==17035== by 0x418AED: Audio_Available (SDL_pulseaudio.c:235) 
==17035== by 0x405893: SDL_AudioInit (SDL_audio.c:360) 
==17035== by 0x404A79: SDL_InitSubSystem (SDL.c:105) 
==17035== by 0x405E59: SDL_OpenAudio (SDL_audio.c:404) 

我想知道是否有什麼我可以在我的代碼中做錯了。我已經證實SDL_CloseAudio確實被調用。

+0

有人嗎?請幫忙。早些時候,我想我可以只調用一次SDL_OpenAudio。但是,我沒有看到任何其他API來更改所需的音頻規格。雷爾斯,彼得。 – Peter

回答

-1

我不是SDL或OpenGL方面的專家,但我認爲大多數軟件會在某個點或另一個點泄漏內存。看到這篇文章的更多信息:Why does valgrind say basic SDL program is leaking memory?

在光明的一面,SDL只泄漏374個字節,這是大多數系統提供的便士。從長遠來看,這不應該產生很大的影響。

+0

謝謝理查德。在我們的案例中,視頻剪輯全天候顯示。如果SDL每次都繼續泄漏,我們最終會耗盡內存。 – Peter