Same here, your patch does not work
I added my old debug message to the code (end of function ParsePESHeader) looking a little bit what's going on: pts and dts values are going crasy if issue occours, here one example
Code:
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f48a2, m_curPTS 23c886f48a2, m_curDTS 23c886f48a2, m_Wrap 0, m_NoOfWraps 286
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f56b2, m_curPTS 23c886f56b2, m_curDTS 23c886f56b2, m_Wrap 0, m_NoOfWraps 286
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f64c2, m_curPTS 23c886f64c2, m_curDTS 23c886f64c2, m_Wrap 0, m_NoOfWraps 286
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb2e571, m_curPTS 23defb2e571, m_curDTS 23defb2e571, m_Wrap 0, m_NoOfWraps 286
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID c0, pts 1efb2789f, m_curPTS 23defb2789f, m_curDTS 23defb2789f, m_Wrap 1, m_NoOfWraps 286
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f72d2, m_curPTS 23e886f72d2, m_curDTS 23e886f72d2, m_Wrap 0, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb2f381, m_curPTS 23fefb2f381, m_curDTS 23fefb2f381, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb32bc1, m_curPTS 23fefb32bc1, m_curDTS 23fefb30191, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f80e2, m_curPTS 23e886f80e2, m_curDTS 23e886f80e2, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb30fa1, m_curPTS 23fefb30fa1, m_curDTS 23fefb30fa1, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb31db1, m_curPTS 23fefb31db1, m_curDTS 23fefb31db1, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f8ef2, m_curPTS 23e886f8ef2, m_curDTS 23e886f8ef2, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb355f1, m_curPTS 23fefb355f1, m_curDTS 23fefb32bc1, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886f9d02, m_curPTS 23e886f9d02, m_curDTS 23e886f9d02, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID c0, pts 1efb2ab3f, m_curPTS 23fefb2ab3f, m_curDTS 23fefb2ab3f, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb339d1, m_curPTS 23fefb339d1, m_curDTS 23fefb339d1, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID bd, pts 0886fab12, m_curPTS 23e886fab12, m_curDTS 23e886fab12, m_Wrap 1, m_NoOfWraps 287
Mar 28 01:10:18 [10349] VNSI: ParsePESHeader: ID e0, pts 1efb347e1, m_curPTS 23fefb347e1, m_curDTS 23fefb347e1, m_Wrap 1, m_NoOfWraps 287
Mar
m_NoOfWraps grows extremely fast.
If I watch the instant recording, it looks like this
Code:
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID c0, pts 1efc541ff, m_curPTS 1efc541ff, m_curDTS 1efc541ff, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc5aed1, m_curPTS 1efc5aed1, m_curDTS 1efc5aed1, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc5bce1, m_curPTS 1efc5bce1, m_curDTS 1efc5bce1, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID c0, pts 1efc5749f, m_curPTS 1efc5749f, m_curDTS 1efc5749f, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc5f521, m_curPTS 1efc5f521, m_curDTS 1efc5caf1, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc5d901, m_curPTS 1efc5d901, m_curDTS 1efc5d901, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc5e711, m_curPTS 1efc5e711, m_curDTS 1efc5e711, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc61f51, m_curPTS 1efc61f51, m_curDTS 1efc5f521, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc60331, m_curPTS 1efc60331, m_curDTS 1efc60331, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID c0, pts 1efc5a73f, m_curPTS 1efc5a73f, m_curDTS 1efc5a73f, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc61141, m_curPTS 1efc61141, m_curDTS 1efc61141, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc64981, m_curPTS 1efc64981, m_curDTS 1efc61f51, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc62d61, m_curPTS 1efc62d61, m_curDTS 1efc62d61, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc63b71, m_curPTS 1efc63b71, m_curDTS 1efc63b71, m_Wrap 1, m_NoOfWraps 0
Mar 28 01:10:32 [10466] VNSI: ParsePESHeader: ID e0, pts 1efc673b1, m_curPTS 1efc673b1, m_curDTS 1efc64981, m_Wrap 1, m_NoOfWraps 0
Everything is ok, same channel almost the same time
Please notice that in the first log, stream id is bd, c0 and e0, in the second log only c0 and e0, bd does not exist. This is the only one difference between real LiveTV and recorded LiveTV I can see....
and the huge gap between pts of stream c0,e0 to bd. Seems that stream id confuses your bit 31,32 logic.
I made a quick hack, bypassing the bit 31,32 logic if stream bd is there (just doing a return hdr_len), and voila, stuttering has gone