SDialog實(shí)現(xiàn)了設(shè)置ToolRewritePTS
參數(shù)的對(duì)話框。此對(duì)話框還附有瀏覽選定文件中,指定范圍內(nèi)的PTS、DTS、PCR和OPCR
的功能。
件交換變量。存儲(chǔ)了是否需要計(jì)算DTS/PTS/OPCR/PCR
是一個(gè)重寫(xiě)PTS、DTS、PCR和OPCR的工具。
給定一個(gè)初始PTS和修改的范圍,MAToolRewritePTS會(huì)尋找出
范圍內(nèi),最小的PTS(主要原因是音頻包可能置后于視頻包,
如果直接使用視頻的PTS,當(dāng)初始PTS過(guò)小時(shí),可能會(huì)導(dǎo)致音
頻的PTS出現(xiàn)負(fù)值),然后根據(jù)最小的PTS和初始PTS計(jì)算出
其差值,將所有范圍內(nèi)的PTS、DTS、PCR和OPCR減去此偏移量,
如果DTS、PCR和OPCR與此偏移量差值小于0,就將他們的初
始值改為0,并重新計(jì)算各自得偏移量。
m_lstPTS.InsertColumn(0, "Package", LVCFMT_LEFT, 60);
m_lstPTS.InsertColumn(1, "PID", LVCFMT_LEFT, 30);
m_lstPTS.InsertColumn(2, "PTS", LVCFMT_LEFT, 75);
m_lstPTS.InsertColumn(3, "DTS", LVCFMT_LEFT, 75);
m_lstPTS.InsertColumn(4, "PCR", LVCFMT_LEFT, 75);
m_lstPTS.InsertColumn(5, "OPCR", LVCFMT_LEFT, 75);
// 因?yàn)樽鐾降年P(guān)系,可能會(huì)遺留下一些不在188邊界的數(shù)據(jù),這些數(shù)據(jù)當(dāng)時(shí)不能處理,
// 只有在下一次開(kāi)始讀取數(shù)據(jù)之前,將所有未處理過(guò)的數(shù)據(jù)移至緩存的開(kāi)始。并且讀取
// 從此部分以后的位置填寫(xiě)數(shù)據(jù)。
/Files/dvb-dvb/MPEGAnalyser.rar
文章來(lái)源:
http://www.cnitblog.com/dvb-dvb/archive/2009/07/09/mpeg2sourcecode.html