aboutsummaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorGravatar Mauro Carvalho Chehab <mchehab@osg.samsung.com> 2018-01-23 13:30:42 -0500
committerGravatar Mauro Carvalho Chehab <mchehab@s-opensource.com> 2018-01-29 07:48:50 -0500
commitfed488b3956b6dc637bec6b5a0bc10d6435da9f5 (patch)
tree249e1f6c9da73b6c97a4fff93b875e0f255ffed4 /drivers/media
parentmedia: cxusb, dib0700: ignore XC2028_I2C_FLUSH (diff)
downloadlinux-fed488b3956b6dc637bec6b5a0bc10d6435da9f5.tar.gz
linux-fed488b3956b6dc637bec6b5a0bc10d6435da9f5.tar.bz2
linux-fed488b3956b6dc637bec6b5a0bc10d6435da9f5.zip
media: dvb_demux: Better handle discontinuity errors
When a packet discontinuity happens, it is not just the payload that was lost. The headers are lost too. So, the max size is not 184 but, instead 188. Also, while printing warnings, make a distinction between MPEG-TS indicated discontinuity and detected one. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb-core/dvb_demux.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/dvb-core/dvb_demux.c b/drivers/media/dvb-core/dvb_demux.c
index 5047a1f87050..1a6e2e61952a 100644
--- a/drivers/media/dvb-core/dvb_demux.c
+++ b/drivers/media/dvb-core/dvb_demux.c
@@ -310,8 +310,9 @@ static int dvb_dmx_swfilter_section_packet(struct dvb_demux_feed *feed,
if (!ccok || dc_i) {
#ifdef CONFIG_DVB_DEMUX_SECTION_LOSS_LOG
- dprintk("dvb_demux.c discontinuity detected %d bytes lost\n",
- count);
+ dprintk("discontinuity %s: %d bytes lost\n",
+ !ccok ? "detected" : "indicated",
+ count + 4);
/*
* those bytes under sume circumstances will again be reported
* in the following dvb_dmx_swfilter_section_new
@@ -320,6 +321,9 @@ static int dvb_dmx_swfilter_section_packet(struct dvb_demux_feed *feed,
/*
* Discontinuity detected. Reset pusi_seen to
* stop feeding of suspicious data until next PUSI=1 arrives
+ *
+ * FIXME: does it make sense if the MPEG-TS is the one
+ * reporting discontinuity?
*/
feed->pusi_seen = false;
dvb_dmx_swfilter_section_new(feed);