Note: added Cc to Daniel. Maybe forward to xine-devel?
Rob Shortt wrote:
Dirk Meyer wrote:
2. xine
+ also a wide range of output
- bad channel switching during runtime
- no live pause
- no seek back while watching
Actually the input_pvr plugin in xine-lib does live pause and
timeshifting. More on that later...
[...]
Ok, about xine. One of my beefs about xine is how input_pvr is
implimented. Using a ivtv or wintv pvr-2/350 card you can timeshift
live tv in xine with a pretty OSD and it works. The problem here is
they put this timeshifting layer right in the pvr plugin insted of
having it as a seperate plugin available for ALL incomming streams.
It would be wonderful to timeshift any stream comming from stdin, a
fifo, a url, etc.
Do the xine people know about this design problem? You are right,
instead of adding timeshift to input_dvb.c, it should be added as
extra layer.
[...]
- Do not use one file for live pause, use a set of files. E.g. start
writing to dump0001 and when this file is 50 MB, move on the
dump0002. When dump0003 is the one tzap2pes sends to mplayer, we
could remove dump0001.
This is where I disagree slightly. I think the player side should
handle all aspects of timeshifting. Perhaps we use a ringbuffer and
the stream collecting portion (tzap, mplayer -dumpstream, mp1e, cat
/dev/video |, whtever) just sits there dumping its input to a pipe or
fifo. The player (or 3rd layer for buffer) collects the data and puts
it into the buffer, expiring old data as the buffer fills, It knows
the start/end/reading positions of the buffer. The player layer reads
from the buffer and knows about the different positions so it doesn't
go past either end and knows its own pause position, etc.
Having these layers means timeshifting support in Freevo is not tied
to only one type of television and can be used with multiple streams
from DVB, pvr-250, URLs, mp1e or ffmpeg for analoge tv. I think this
is where xine went wrong. I mentioned that Thomas made a patch for
mplayer to to this wort of thing but we could also fix xines
behaviour here. Xine also has some cool features like saving what you
just watched (as long as its still in your buffer).
So what do we need from a player, e.g. xine?
o Read from fifo to bypass dvb://, pvr:// or whatever. We could
also use dvb://, but I like to 'see' the stream before xine gets it
to read EPG and other fun stuff.
o The player needs read the fifo and save it into a tmp file (or set
of tmp files) when playing is behind the stream (live pause). Auto
remove the tmp files when not needed anymore.
o Save some MB of the just played stream to seek backward at least 1
min. Make it possible to seek forward until we are in realtime
again.
Dischi
--
To know recursion, you must first know recursion
---
This SF.Net email sponsored by Black Hat Briefings Training.
Attend Black Hat Briefings Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
___
Freevo-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-users