From: Jaroslav Kysela Date: Sun, 22 Nov 2015 19:13:11 +0000 (+0100) Subject: DVR: fix the dts_offset initialization from backlog X-Git-Tag: v4.2.1~1490 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7e0e78c52e2c2ec7a8a05742b9cd1323e7da364c;p=thirdparty%2Ftvheadend.git DVR: fix the dts_offset initialization from backlog --- diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 230c50b8c..2ffd92952 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -1279,21 +1279,19 @@ dvr_thread(void *aux) muxing = 1; while ((sm2 = TAILQ_FIRST(&backlog)) != NULL) { TAILQ_REMOVE(&backlog, sm2, sm_link); - if (pkt->pkt_dts != PTS_UNSET) { - if (dts_offset == PTS_UNSET) { - pkt2 = sm2->sm_data; + pkt2 = sm2->sm_data; + if (pkt2->pkt_dts != PTS_UNSET) { + if (dts_offset == PTS_UNSET) dts_offset = pkt2->pkt_dts; - } - pkt3 = (th_pkt_t *)sm2->sm_data; - if (dts_pts_valid(pkt3, dts_offset)) { - pkt3 = pkt_copy_shallow(pkt3); + if (dts_pts_valid(pkt2, dts_offset)) { + pkt3 = pkt_copy_shallow(pkt2); pkt3->pkt_dts -= dts_offset; if (pkt3->pkt_pts != PTS_UNSET) pkt3->pkt_pts -= dts_offset; dvr_thread_pkt_stats(de, pkt3, 1); muxer_write_pkt(prch->prch_muxer, sm2->sm_type, pkt3); } else { - dvr_thread_pkt_stats(de, pkt3, 0); + dvr_thread_pkt_stats(de, pkt2, 0); } } streaming_msg_free(sm2);