기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

Android Media Platform에 관심이 많은 초보 회원입니다.

Stagefright에서의 AV Sync 문제가 있어서 문의드립니다.

Stagefright에서 AwesomePlayer가 AudioPlayer에서 fillBuffer()시에 확인한 시간 정보를 가지고

onVideoEvent()에서 Frame drop과 Delay를 하면서 Sync를 맞추는 것 같습니다.
그러나 fillBuffer()에서 확인한 시간 정보가 정확하지 않아서

AV Sync 문제가 생기고 있습니다.

Audio의 시간 정보가 정확하지 않을 때에는

어느 부분을 살펴 보아야 하는지 문의 드립니다.

고수님들의 도움 기다리겠습니다.

감사합니다.

안녕하세요.

Linux Platform 개발 경험은 있으나

Android Platform 개발 경험은 없는

개발자입니다.

태그
엮인글 :
http://www.aesop.or.kr/index.php?mid=Board_Community_QandA&document_srl=34418&act=trackback&key=665

고도리

2011.10.12 08:04:43
*.200.239.234

혹시 제가 아는 서희씨는 아니겠지요??? ^^


Audio의 시간정보가 어떤 방식으로 정확하지 않은지 대략의 설명이라도 부탁드립니다.

짐작하는 부분은 있습니다만....


그리고, chip도 어느 회사것인지도 말씀해 주시면 약간의 도움이 될 듯 합니다.

착한희

2011.10.13 08:52:36
*.35.58.88

답변 감사드립니다. 고도리님!!

제가 인맥이 짧아서 고도리님이 아시는 분과 다른 사람인 것 같습니다. ^^

 

Android에 대한 이해가 부족해서 그런지 Media Platform 분석하는데

시간이 많이 걸리고 있습니다. 그래도 고도리님이 올려주신 자료 보고

어느 정도 감은 잡은 것 같습니다.

자료 감사합니다.

 

onVideEvent에서 확인하는 nowUs값이 fiiBuffer가 호출 되는 동안에는

변경이 되지 않아서 Video의 Frame이 많이 release되고 있습니다.

그래서 nowUs값에 흐르는 시간이 반영 되도록 getRealTimeUs 부분을 조금 수정하였습니다.

(fillBuffer의 호출이 끝날때마다 현재 시간을 저장해서 fillBuffer의 내부에서 for 문이 실행될때

현재 시간을 확인하도록 하였습니다.)

Video의 Frame Drop은 많이 해소가 되는데요.

Video와 Audio가 따로 플레이되는 현상은 여전합니다.

postVideoEvent_l()에 적당한 Delay를 주면

Sync가 맞기는 합니다.

그러나 재생되는 파일 형식 및 화면 크기에 따라 적용되는 Delay도 다르기에

이걸로는 AV Sync 문제가 해결되지 않을 것 같습니다.

그래서 다른 방안이 있는지 게시판에 문의 남겨보았습니다.

 

chip 회사는 확인해 보고 다시 comment 남기겠습니다.

 

감사합니다.

 

List of Articles
번호 제목 글쓴이 날짜 조회 수
5 Property Name Rule? [2] Simba444 2011-12-02 2198
» Stagefright에서의 AV Sync 문제 [2] 착한희 2011-10-12 2224
3 init: cannot open '/initlogo.rle' 후 멈춤 리상 2010-12-01 1646
2 T-Fash_AndroidRootfs_1.img 를 생성하는 방법을 알수 있을까요? [1] 조용수 2009-11-20 1014
1 Android binder 사용 방법 문의 [2] 이윤택 2009-06-11 3335

사용자 로그인