最近用vlc的0.9.9播放一段視頻,出現(xiàn)了下列警告:
decoder is leaking pictures, resetting the heap/*****************************************************************************
* RunThread: video output thread
*****************************************************************************
* Video output thread. This function does only returns when the thread is
* terminated. It handles the pictures arriving in the video heap and the
* display device events.
*****************************************************************************/
static void RunThread( vout_thread_t *p_vout)
在這個函數(shù)里面,看到下列code, 很難理解了,
!p_picture->b_force &&
p_picture != p_last_picture &&
display_date < current_date + p_vout->render_time &&
b_drop_late )
這個p_vout->render_time ,到底是怎么算出來的。
到底,pcr,pts,出現(xiàn)了什么錯誤,導(dǎo)致不能播放,還沒有搞清楚。
以下內(nèi)容為轉(zhuǎn)載:
http://www.wangchao.net.cn/bbsdetail_61529.htmlvout_DatePicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Gives the picture a presentation date. You can start working on a picture before knowing precisely at what time it will be displayed. For instance to date an I or P picture, you must wait until you have decoded all previous B pictures (which are indeed placed after - decoding order != presentation order).
vout_DisplayPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Tells the video output that a picture has been completely decoded and is ready to be rendered. It can be called before or after vout_DatePicture.
vout_DestroyPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Marks the picture as empty (useful in case of a stream parsing error).
不過上面這個內(nèi)容說的很簡潔了,不詳細(xì)。
文章來源:
http://www.cnitblog.com/dvb-dvb/archive/2009/09/23/61531.html