summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c')
-rw-r--r--linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index 4341591bc..081914c83 100644
--- a/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/linux/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -247,6 +247,8 @@ static void ttusb_dec_set_pids(struct ttusb_dec *dec)
ttusb_dec_av_pes2ts_cb, dec->demux.feed);
dvb_filter_pes2ts_init(&dec->v_pes2ts, dec->pid[DMX_PES_VIDEO],
ttusb_dec_av_pes2ts_cb, dec->demux.feed);
+ dec->v_pes_length = 0;
+ dec->v_pes_postbytes = 0;
}
static void ttusb_dec_process_av_pes(struct ttusb_dec *dec, u8 *av_pes,
@@ -296,7 +298,8 @@ static void ttusb_dec_process_av_pes(struct ttusb_dec *dec, u8 *av_pes,
&av_pes[12], prebytes);
dvb_filter_pes2ts(&dec->v_pes2ts, dec->v_pes,
- dec->v_pes_length + prebytes);
+ dec->v_pes_length + prebytes,
+ 1);
}
if (av_pes[5] & 0x10) {
@@ -341,13 +344,14 @@ static void ttusb_dec_process_av_pes(struct ttusb_dec *dec, u8 *av_pes,
if (postbytes == 0)
dvb_filter_pes2ts(&dec->v_pes2ts, dec->v_pes,
- dec->v_pes_length);
+ dec->v_pes_length, 1);
break;
}
case 0x02: /* MainAudioStream */
- dvb_filter_pes2ts(&dec->a_pes2ts, &av_pes[8], length - 12);
+ dvb_filter_pes2ts(&dec->a_pes2ts, &av_pes[8], length - 12,
+ av_pes[5] & 0x10);
break;
default: