summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>2016-05-26 10:28:14 -0700
committerReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>2016-05-26 16:18:56 -0700
commite35bc2c2b4d114496ccaa197a1613ee2987f9ec0 (patch)
tree1b6f430d1ed463219ff6fdb5a62d4b7a321fbe03 /sys
parentfaadd0f12a0c8531df119c4acda765d3e44f9da5 (diff)
downloadgstreamer-plugins-bad-e35bc2c2b4d114496ccaa197a1613ee2987f9ec0.tar.gz
dvbsrc: use single marker at end of filtering PID list
Avoids at least ~100 unneeded assignment operations at runtime
Diffstat (limited to 'sys')
-rw-r--r--sys/dvb/gstdvbsrc.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/dvb/gstdvbsrc.c b/sys/dvb/gstdvbsrc.c
index 18fb06420..43df01202 100644
--- a/sys/dvb/gstdvbsrc.c
+++ b/sys/dvb/gstdvbsrc.c
@@ -1028,11 +1028,12 @@ gst_dvbsrc_init (GstDvbSrc * object)
object->supported_delsys = NULL;
for (i = 0; i < MAX_FILTERS; i++) {
- object->pids[i] = G_MAXUINT16;
object->fd_filters[i] = -1;
}
+
/* PID 8192 on DVB gets the whole transport stream */
object->pids[0] = 8192;
+ object->pids[1] = G_MAXUINT16;
object->dvb_buffer_size = DEFAULT_DVB_BUFFER_SIZE;
object->adapter_number = DEFAULT_ADAPTER;
object->frontend_number = DEFAULT_FRONTEND;
@@ -1092,12 +1093,9 @@ static void
gst_dvbsrc_set_pids (GstDvbSrc * dvbsrc, const gchar * pid_string)
{
if (!strcmp (pid_string, "8192")) {
- /* get the whole ts */
- int pid_count = 1;
+ /* get the whole TS */
dvbsrc->pids[0] = 8192;
- while (pid_count < MAX_FILTERS) {
- dvbsrc->pids[pid_count++] = G_MAXUINT16;
- }
+ dvbsrc->pids[1] = G_MAXUINT16;
} else {
int pid = 0;
int pid_count;
@@ -1120,10 +1118,8 @@ gst_dvbsrc_set_pids (GstDvbSrc * dvbsrc, const gchar * pid_string)
}
pids++;
}
- while (pid_count < MAX_FILTERS) {
- dvbsrc->pids[pid_count++] = G_MAXUINT16;
- }
+ dvbsrc->pids[pid_count] = G_MAXUINT16;
g_strfreev (tmp);
}
/* if we are in playing or paused, then set filters now */