From 94cd09363a400d19c30ecae75af5a06eb73e3362 Mon Sep 17 00:00:00 2001 From: Zaheer Merali Date: Sat, 2 May 2009 12:23:03 +0100 Subject: dvbsrc: fix pes filter pid resetting --- sys/dvb/gstdvbsrc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'sys/dvb/gstdvbsrc.c') diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c index a3b6ded7..37b46f42 100644 --- a/sys/dvb/gstdvbsrc.c +++ b/sys/dvb/gstdvbsrc.c @@ -514,7 +514,11 @@ gst_dvbsrc_set_property (GObject * _object, guint prop_id, pid_string = g_value_dup_string (value); if (!strcmp (pid_string, "8192")) { /* get the whole ts */ + int pid_count = 1; object->pids[0] = 8192; + while (pid_count < MAX_FILTERS) { + object->pids[pid_count++] = G_MAXUINT16; + } } else { int pid = 0; int pid_count; @@ -539,6 +543,9 @@ gst_dvbsrc_set_property (GObject * _object, guint prop_id, } pids++; } + while (pid_count < MAX_FILTERS) { + object->pids[pid_count++] = G_MAXUINT16; + } g_strfreev (tmp); } @@ -1347,7 +1354,6 @@ gst_dvbsrc_unset_pes_filters (GstDvbSrc * object) GST_INFO_OBJECT (object, "clearing PES filter"); for (i = 0; i < MAX_FILTERS; i++) { - object->pids[i] = G_MAXUINT16; if (object->fd_filters[i] == -1) continue; close (object->fd_filters[i]); -- cgit v1.2.1