《avi文件在stagefright下的解析设计说明》由会员分享,可在线阅读,更多相关《avi文件在stagefright下的解析设计说明(5页珍藏版)》请在金锄头文库上搜索。
1、AVI 文件在 stagefright 框架下的解析参考相关文档及 opencore 中 pv_avifile_parse 等实现,分析 AVI 容器在 stagefright 框架下的实现。 1 数据结构+ C r e a t e ( )+ c o u n t T r a c k s ( )+ g e t T r a c k ( )+ g e t T r a c k M e t a D a t a ( )+ g e t M e t a D a t a ( )+ f l a g s ( )- & o p e r a t o r = ( )M e d i a E x t r a c t o r+
2、 i I s A V I F i l e C o p y r i g h t e d : b o o l+ i A V I F i l e H a s I n d x T b l : b o o l+ i I S A V I F i l e I n t e r l e a v e d : b o o l+ i A V I F i l e M u s t U s e I n d e x : b o o l+ i A V I F i l e W a s C a p t u r e F i l e : b o o l+ i M a x B y t e s P e r S e c : i n t+ i
3、 P a d d i n g : i n t+ i F l a g s : i n t+ i T o t a l F r a m e s : i n t+ i I n i t i a l F r a m e s : i n t+ i R e s e r v e d : i n tA V I H ( A V I F i l e M a i n H e a d e r )+ c o u n t T r a c k s ( )+ g e t T r a c k ( ) : A V I S o u r c e+ g e t T r a c k M e t a D a t a ( ) : + g e t
4、 M e t a D a t a ( )- r e a d M e t a D a t a ( )- p a r s e C h u n k ( )- p a r s e M e t a D a t a ( )- T r a c k : T r a c k- m D a t a S o u r c e : = f i l e S o u r c e- m H a v e M e t a d a t a : b o o l- m H a s V i d e o : b o o l- * m F i r s t T r a c k : T r a c k- * m L a s t T r a c
5、k : T r a c k- m F i l e M e t a D a t a- m P a t h- m T r a c k N u m b e r- m S t a r t T i m e- m D u r a t i o n- m F i l e S i z e- m B i t R a t e- m P r i v a t e D a t a : P r i v a t e D a t aA V I E x t r a c t o r+ * n e x t : T r a c k+ m e t a+ s a m p l e T a b l e : S a m p l e T a b
6、l e+ t i m e s c a l e : i n tT r a c k1*11I N F O L I S T11- r i f f _ e n d- m o v i _ e n d- f s i z e- m o v i _ l i s t- l a s t _ p k t _ p o s- i n d e x _ l o a d e d- n o n _ i n t e r l e a v e d- s t r e a m _ i n d e xP r i v a t e D a t a11+ s t a r t ( )+ s t o p ( )+ g e t F o r m a t
7、 ( ) : + r e a d ( )- p a r s e N A L S i z e ( )- o p e r a t o r = ( )- m L o c k- m M e t a : = t r a c k - m e t a- m D a t a S o u r c e : = f i l e S o u r c e- m G r o u p- m B u f f e r- m I s A V C- m N A L L e n g t h S i z e- m S t a r t e d- m W a n t s N A L F r a g m e n t s : b o o l-
8、 m S r c B u f f e r- m S a m p l e T a b l e : S a m p l e T a b l e = t r a c k - s a m p l e T a b l e- m C u r r e n t S a m p l e I n d e x- m T i m e s c a l eA V I S o u r c e+ s t a r t ( )+ s t o p ( )+ g e t F r o m a t ( )+ r e a d ( i n b u f f e r , i n o p t i o n s )M e d i a S o u r
9、c e+ i S t r e a m T y p e F C C : i n t+ i F l a g s : i n t+ i I s V i d P a l C h a n g e A v a i l a b l e : b o o l+ i A V I S F _ D i s a b l e d : b o o l+ i S t r e a m H a n d l e r C H U N K _ S I Z E : c h a r+ i P r i o r i t y : s h o r t+ i L a n g u a g e : s h o r t+ i I n i t F r a
10、m e s : i n t+ i S c a l e : i n t+ i R a t e : i n t+ i S t a r t : i n t+ i L e n g t h : i n t+ i S u g B u f S i z e : i n t+ i Q u a l i t y : i n t+ i S a m p l e S i z e : i n t+ i r c F r a m e+ i S a m p l i n g R a t e : f l o a tA V I F i l e S t r e a m H e a d e r+ i T y p e+ i V i d B
11、i t M a p I n f o+ i A u d W a v e F o r m a t E xA V I F i l e S t r e a m F o r m a t+ B m i H e a d e r+ B m i C o l o r s C o u n t+ B m i C o l o r s M A X _ C O L O R _ T A B L E _ S I Z E B i t M a p I n f o S t r u c t+ F o r m a t T a g+ C h a n n e l s+ S a m p l e s P e r S e c+ A v g B y
12、 t e s P e r S e c+ B l o c k A l i g n+ B i t s P e r S a m p l e+ S i z eW a v e F o r m a t E x S t r u c t1111- i S t r e a m H d r : A V I F i l e S t r e a m H e a d e r- i S t r e a m F m t : A V I F i l e S t r e a m F o r m a t- i p C o d e c S p e c i f i c H d r D a t a : c h a r- i C o d
13、 e c S p e c i f i c H d r D a t a S i z e : i n t- i S t r e a m N a m e : c h a rS T R H + S T R F C H U N K ( A V I F i l e S t r e a m )1111+ * n e x t : T r a c k+ m e t a+ s a m p l e T a b l e : C h u n k T a b l e+ t i m e s c a l e : i n tT r a c k+ c h u n k I d : i n t+ f l a g s : i n t+
14、 o f f s e t : i n t+ s i z e : i n t+ a r T i m e S t a m p+ i s K e y F r a m e : b o o l+ i f R e c L i s t : b o o l+ i f N o T i m e : b o o l- m i n _ d i s t a n c e- m N u m S a m p l e C o u n tI d x C h u n k T b l1*+ c o u n t S a m p l e s ( )+ g e t M e t a D a t a F o r S a m p l e ( )
15、+ f i n d C l o s e s t S a m p l e ( )- m D a t a S o u r c e- m L o c k- m S t r e a m N o- m S t r e a m I D- m B i t s P e r S a m p l e- m S a m p l i n g R a t e- m f r a m e D u r a t i o n I n m s- m N u m S a m p l e s- m M o v i e C h u n k S t a r t O f f s e t- m I d x C h u n k P r e s
16、e n t- m O f f s e t F r m M o v i L s t : b o o l- m I d x C h u n k S t a r t O f f s e t- m C h u n k N u m T o I d x- m I d x T a b l e E n t r y : I d x C h u n k T b l- m S a m p l e I t e r a t o r : S a m p l e I t e r a t o r- m S t a r t T i m e- m D u r a t i o n- m Q u a l i t yC h u n k T a b l e1111+ i M i c r o S e c P e r F r