[streaming] Re: players...
Jean-Paul Saman
saman at natlab.research.philips.com
Mon Jul 14 09:07:24 CEST 2003
Vince Phan wrote:
> 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.
>
Glad to help.
> 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.
>
My answer to your option 2 is scattered over all your options. To do
option 2 you better start on an I-frame (even when the file pointer is
advanced), otherwise there will be alot of distortions in the video.
Block audio because it is of no use during I-frame forward.
Grtz,
Jean-Paul Saman.
> 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>
More information about the streaming
mailing list