summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorZaheer Merali <zaheerabbas@merali.org>2009-05-02 12:23:03 +0100
committerZaheer Merali <zaheerabbas@merali.org>2009-05-02 12:23:03 +0100
commit94cd09363a400d19c30ecae75af5a06eb73e3362 (patch)
treeeb9b9d536c723baf8cbfc04a73da74b6f2df89da /sys
parentac7cda4b3b4e7fc423dcf8c7eb71d024f4e178a9 (diff)
downloadgst-plugins-bad-94cd09363a400d19c30ecae75af5a06eb73e3362.tar.gz
gst-plugins-bad-94cd09363a400d19c30ecae75af5a06eb73e3362.tar.bz2
gst-plugins-bad-94cd09363a400d19c30ecae75af5a06eb73e3362.zip
dvbsrc: fix pes filter pid resetting
Diffstat (limited to 'sys')
-rw-r--r--sys/dvb/gstdvbsrc.c8
1 files changed, 7 insertions, 1 deletions
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]);