[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