]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
SAT>IP Client: maintain session also in the idle mode
authorJaroslav Kysela <perex@perex.cz>
Tue, 17 Mar 2015 13:02:53 +0000 (14:02 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 17 Mar 2015 13:02:53 +0000 (14:02 +0100)
src/input/mpegts/satip/satip_frontend.c

index c5e7d1246fc612a28d8ff84214e484afb4e603bc..fdad41c76c72503167765404803062740a5c0187 100644 (file)
@@ -1207,10 +1207,16 @@ satip_frontend_input_thread ( void *aux )
   efd = tvhpoll_create(4);
   rtsp = NULL;
 
+  /* Setup buffers */
+  sbuf_init(&sb);
+  udp_multirecv_init(&um, 0, 0);
+
   /*
    * New tune
    */
 new_tune:
+  sbuf_free(&sb);
+  udp_multirecv_free(&um);
   udp_close(rtcp);
   udp_close(rtp);
   rtcp = rtp = NULL;
@@ -1246,11 +1252,22 @@ new_tune:
       }
     }
 
-    if (ev[0].data.ptr == rtsp) {
+    if (rtsp && ev[0].data.ptr == rtsp) {
       r = http_client_run(rtsp);
       if (r < 0) {
         http_client_close(rtsp);
         rtsp = NULL;
+      } else {
+        switch (rtsp->hc_cmd) {
+        case RTSP_CMD_OPTIONS:
+          rtsp_options_decode(rtsp);
+          break;
+        case RTSP_CMD_SETUP:
+          rtsp_setup_decode(rtsp, 1);
+          break;
+        default:
+          break;
+        }
       }
     }