[streaming] Re: players...
Vince Phan
Vince.Phan at transact.com.au
Mon Jul 14 06:17:33 CEST 2003
Thanks for the info, Jean-Paul.
I dig out the latest source in CVS and found that it's already under
development.
Your hint has helped me a lot in understanding the source.
Option 2. advance file pointer when reading from input source
appeared to be the easiest way to implement and offer higher flexibility
because you can increase the speed while fast forward/rewind the stream.
Thanks again,
Regards,
-----Original Message-----
From: Jean-Paul Saman [mailto:saman at natlab.research.philips.com]
Sent: Friday, 11 July 2003 9:51 PM
To: streaming at videolan.org
Subject: [streaming] Re: players...
Vince Phan wrote:
> By the way, are there any work around VLS in fast forward/rewind of a
> stream?.
The framework is in place.
> I have seen it mentioned in the manual via telnet command option but
> when I tried and it was not there.
VLS trickplay has the default behaviour it always had. It does not do
anything in forward/rewind yet.
> I traced the source and also found it was not there either.
> I planned to add this feature but dont know where to start.
I do!
> Option include
0. Create a new module src/module/iframetrickplay (use
src/module/normaltrickplay as a starting point).
Update makefile, configure.in, etc. to build the new module.
Your trickplay module will inherit behaviour from C_TrickPlay. To use it
add to the input's main block TrickPlay = "iframe" in vls.cfg for
loading the iframetrickplay module.
> 1. speed up the stream
1. Sending only I-frames that should not be problematic. Do flag the PCR
discontinuity flag otherwise your stream will be displayed at the same
pace as the original stream.
> 2. advance file pointer when reading from input source
2. The Converter function GetNextTsPacket(C_TsPacket *pPacket, int skip)
get as input a Ts Packet and a skip value. Now the skip value is very
interesting, because it lets you tell how many packet you want to skip.
In the following way you can calculate how fast you want to go:
skip = (speed - 1) * nr_packets_in_gop;
The variable speed is the value given on the telnet commandline for
forward and rewind, e.g: forward localhost 5. The trickplay code in the
converters GetNextTsPacket(), GetPrevTsPacket() will react to that in
the following way:
speed = 0 means skip=-1 speed (skip = -1)
speed = 1 means skip=0 normal speed (skip = 0)
speed = 2 means skip=1 frame of type I|P|B
speed = n means skip=n-1 frame of type I|P|B
Rewind needs the function GetPrevTsPacket(C_TsPacket *pPacket, int skip)
with the same logic for skip.
.
> 3. speed up the stream and filter i frame only.
Use C_Pes::GetFrameType() for that
> 4. etc....
> Any idea, some one pls?
Yep, ;-)
--
Kind greetings,
Jean-Paul Saman
--
This is the streaming mailing-list, see
http://www.videolan.org/streaming/
To unsubscribe, please read http://www.videolan.org/support/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
--
This is the streaming mailing-list, see http://www.videolan.org/streaming/
To unsubscribe, please read http://www.videolan.org/support/lists.html
If you are in trouble, please contact <postmaster at videolan.org>
More information about the streaming
mailing list