blob: 0c0d274cfba677607a6a3b327065deb364eb9067 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
from Converter import Converter
from Components.Element import cached
# the protocol works as the following:
# lines starting with '-' are fatal errors (no recovery possible),
# lines starting with '=' are progress notices,
# lines starting with '+' are PIDs to record:
# "+d:[p:t[,p:t...]]" with d=demux nr, p: pid, t: type
class Streaming(Converter):
@cached
def getText(self):
service = self.source.service
if service is None:
return "-NO SERVICE\n"
streaming = service.stream()
s = streaming and streaming.getStreamingData()
if s is None:
err = service.getError()
if err:
return "-SERVICE ERROR:%d\n" % err
else:
return "=NO STREAM\n"
demux = s["demux"]
pids = ','.join(["%x:%s" % (x[0], x[1]) for x in s["pids"]])
return "+%d:%s\n" % (demux, pids)
text = property(getText)
|