]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
satip server: fix the PLAY/SETUP state machine, filter stream in DESCRIBE, fixes...
authorJaroslav Kysela <perex@perex.cz>
Fri, 7 Jul 2017 14:26:00 +0000 (16:26 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 18 Sep 2017 12:59:49 +0000 (14:59 +0200)
src/satip/rtsp.c

index ee3fdca3d64f10cfb82b502caefe7a11d3ed0da8..ac5672293a020bd08c1ecdf525bfd5272eb277b3 100644 (file)
@@ -620,7 +620,9 @@ pids:
                     rs->udp_rtp ? rs->udp_rtp->fd : hc->hc_fd,
                     rs->udp_rtcp ? rs->udp_rtcp->fd : -1,
                     rs->frontend, rs->findex, &rs->dmc_tuned,
-                    &rs->pids, ocmd == RTSP_CMD_PLAY, rs->perm_lock);
+                    &rs->pids,
+                    ocmd == RTSP_CMD_PLAY || oldstate == STATE_PLAY,
+                    rs->perm_lock);
     rs->tcp_data = rs->udp_rtp ? NULL : hc;
     if (!rs->pids.all && rs->pids.count == 0)
       mpegts_pid_add(&rs->pids, 0, MPS_WEIGHT_RAW);
@@ -1310,9 +1312,9 @@ rtsp_process_describe(http_connection_t *hc)
       if (strcmp(hc->hc_session, rs->session))
         continue;
       rtsp_rearm_session_timer(rs);
-      if (stream > 0 && rs->stream != stream)
-        continue;
     }
+    if (stream > 0 && rs->stream != stream)
+      continue;
     if (satip_server_conf.satip_anonymize &&
         strcmp(hc->hc_peer_ipstr, rs->peer_ipstr))
       continue;