[PATCH] dvb-apps scan: fix zero transport stream id

2010-01-24 Thread Anssi Hannula
scan sometimes returns services with transport stream id = 0. This
happens when the service is allocated before the transport stream
id is known. This patch simply makes copy_transponder propagate
transport stream id changes to all services of the transponder.

Symptoms of zero transport stream id include VDR not showing EPG.

Signed-off-by: Anssi Hannula anssi.hann...@iki.fi

---

Index: dvb-apps-1181/util/scan/scan.c
===
--- dvb-apps-1181/util/scan/scan.c
+++ dvb-apps-1181/util/scan/scan.c  2010-01-24 22:22:25.092513605 +0200
@@ -236,6 +236,17 @@
 
 static void copy_transponder(struct transponder *d, struct transponder *s)
 {
+   struct list_head *pos;
+   struct service *service;
+
+   if (d-transport_stream_id != s-transport_stream_id) {
+   /* propagate change to any already allocated services */
+   list_for_each(pos, d-services) {
+   service = list_entry(pos, struct service, list);
+   service-transport_stream_id = s-transport_stream_id;
+   }
+   }
+
d-network_id = s-network_id;
d-original_network_id = s-original_network_id;
d-transport_stream_id = s-transport_stream_id;


-- 
Anssi Hannula
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] dvb-apps scan: fix zero transport stream id

2010-01-24 Thread Manu Abraham
On Mon, Jan 25, 2010 at 12:39 AM, Anssi Hannula anssi.hann...@iki.fi wrote:
 scan sometimes returns services with transport stream id = 0. This
 happens when the service is allocated before the transport stream
 id is known. This patch simply makes copy_transponder propagate
 transport stream id changes to all services of the transponder.

 Symptoms of zero transport stream id include VDR not showing EPG.

 Signed-off-by: Anssi Hannula anssi.hann...@iki.fi

 ---

 Index: dvb-apps-1181/util/scan/scan.c
 ===
 --- dvb-apps-1181/util/scan/scan.c
 +++ dvb-apps-1181/util/scan/scan.c      2010-01-24 22:22:25.092513605 +0200
 @@ -236,6 +236,17 @@

  static void copy_transponder(struct transponder *d, struct transponder *s)
  {
 +       struct list_head *pos;
 +       struct service *service;
 +
 +       if (d-transport_stream_id != s-transport_stream_id) {
 +               /* propagate change to any already allocated services */
 +               list_for_each(pos, d-services) {
 +                       service = list_entry(pos, struct service, list);
 +                       service-transport_stream_id = s-transport_stream_id;
 +               }
 +       }
 +
        d-network_id = s-network_id;
        d-original_network_id = s-original_network_id;
        d-transport_stream_id = s-transport_stream_id;


 --
 Anssi Hannula
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


Applied, Thanks.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html