2009년 05월 28일
MPlayer] libmad memory leak
mplayer를 이용하여 mp3를 재생하는데 구간반복을 구현하고자 하였다.

mplayer에서는 seek 함수를 이용하여 시간절대값이나 상대적인 위치로 frame을 이동시킬수 있었다.
하지만 mp3재생시에 mad 라이브러리를 사용하는데 구간반복시 계속 메모리 누수가 일어나는것이었다.
혹시 다른 문제인가 했지만 ffmpeg 코덱을 사용할때는 아무런 문제가 나타나지 않았다.
그럼 libmad의 문제인데.. 자체 라이브러리 문제는 아닌거 같아 mplayer쪽을 들여다보고
google에 관련된 정보를 찾아보았지만 특별한것은 발견하지 못했다.
seek시에 들어가는 함수를 들여다보니 resync 함수를 호출하면서 ad_libmad.c 의 control함수로 들어가지는듯이 보였다.
여기서 ADCTRL_RESYNC_STREAM 명령이 들어가는데 mad_sync와 frame, stream을 init하는 부분이 맘에 걸렸다.
그래서 위에 finish함수를 넣어 메모리 해제를 시켜주니 메모리 누수가 사라졌다... ( 아직 더 두고봐야하지만.. )
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 라디오를 하나 사야겠다고 맘 먹었습니다.. by 니벨룽겐
- Mplayer eyes by Sigel
- 뭘지르지? by nabiko
- 아이리버 MP3 플레이어 Mplayer eyes 2G 판매합니다 by 우람이
- 개별 프레임을 동영상으로 전환하기 (in OS X) by Newbie
# by | 2009/05/28 10:22 | Linux | 트랙백 | 덧글(0)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]