PCR正常跳變的處理


在一個TS流之中,不同節目的PCR常常是不同的,也就是不連續的。

比如,在電視劇播放的當中,插播一段廣告。由於電視劇和廣告的PCR常常是不連續的,並且可能存在巨大跳躍。

於是這個時候,如果當前系統仍然使用PCR進行同步本地STC, 此時,STC會有一次明顯的跳躍.

可能產生的後果:
由於電視劇節目一部分原始數據還在TS BUFFER裏面,等待和STC時間相等後再進行解碼;
還有一部分解碼後數據在video顯存裏面,等待和時間STC時間相等後再進行顯示.
根據PCR同步的原理: 將使用PCR直接同步本地STC. 這個時候,一旦用廣告的PCR同步本地STC,那麼上面提到的兩部分數據,所等待的解碼和顯示的時間將不會來臨。
結果就是: 電視劇後面的一點尾巴沒有播放出來。至於尾巴具體長度,取決於兩個BUFFER中數據量的多少。
當沒有其他STB來做對比的情況下,客戶沒感覺到任何差別;一旦有另外的處理完善的STB作爲對比,此問題將浮出水面。

如何解決?
使用兩個STC來處理這種case。
當PCR產生突變後,電視劇仍然使用之前的STC,直到所有數據被解碼和顯示,但廣告將使用新的STC來解碼和顯示。


關於STC的一些說明:
可以只有一個硬件STC,再次基礎上,可虛擬出若干邏輯軟件STC.
軟件STC計數器數值 = 硬件STC計數器數值 + OFFSET
所謂同步本地STC,其實就是修改軟件STC的OFFSET的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章