[vlc-devel] Re: Kasenna pause and trickplay patch
Jean-Paul Saman
jean-paul.saman at planet.nl
Sat Nov 20 00:19:34 CET 2004
Dermot,
Can you send the new patch to this list? I would like to use the
forward/rewind part!
Dermot McGahon wrote:
> On Tue, 16 Nov 2004 14:17:37 +0100, Jean-Paul Saman
> <jean-paul.saman at planet.nl> wrote:
>
>> This is great functionality when commited. I only have some naming
>> comments they are inlined in the patch. Again good work!
>
>
> [-]
>
>>> Patch to implement pause/resume, fast forward and rewind for Kasenna
>>> Servers. There is a corresponding patch for this functionality against
>>> LIVE.COM which I will submit to the relevant list.
>>>
>>> This was implemented based on suggestions (mostly from fenrir) on irc
>>> and is work in progress. It works, but at this point I'm just hoping
>>> for a review, not a commit.
>>
>
>>> Index: src/input/input.c
>>> ===================================================================
>>> --- src/input/input.c (revision 9353)
>>> +++ src/input/input.c (working copy)
>>
>
> The patch was created using svn diff. It looks like there have been
> fairly big changes since I started working on this. svn update doesn't
> appear to have merged these into my working copy. Hopefully fen, you
> will still be able to review the input.c changes.
>
>
>>> + i_ret = demux2_Control( p_input->input.p_demux,
>>> DEMUX_SET_RATE, i_rate, VLC_FALSE );
>>>
>>> - /* Reset clock */
>>> - es_out_Control( p_input->p_es_out, ES_OUT_RESET_PCR );
>>> + if (i_ret)
>>> + {
>>> + var_Change( p_input, "rate", VLC_VAR_SETVALUE, &val,
>>> NULL );
>>>
>>> - b_force_update = VLC_TRUE;
>>> + /* We haven't send data to decoder when rate != default */
>>> + if( i_rate == INPUT_RATE_DEFAULT )
>>> + input_EsOutDiscontinuity( p_input->p_es_out, VLC_TRUE );
>>> +
>>> + /* Reset clock */
>>> + es_out_Control( p_input->p_es_out, ES_OUT_RESET_PCR );
>>> +
>>> + b_force_update = VLC_TRUE;
>>> + }
>>
>
>
>> Make this more human readible and call it "fforward" or "fastforward"
>>
>>> + var_Create( p_intf, "rw", VLC_VAR_VOID | VLC_VAR_ISCOMMAND );
>>> + var_AddCallback( p_intf, "rw", Input, NULL );
>>
>
> Done, changed to "fastforward" and "rewind".
>
>
>>> + fprintf( stderr, "options=%s\n", psz_options);
>>>
>>>
>> use vlc functions here and do not use fprintf(), for instance:
>
>
> Just in for debugging. Removed now, and other other instance.
>
>
>>> + if (p_sys->i_rate == INPUT_RATE_MAX)
>>> + p_sys->i_running_duration += duration * 12;
>>> + else if (p_sys->i_rate == INPUT_RATE_MIN)
>>> + p_sys->i_running_duration -= duration * 12;
>>> + else
>>> + p_sys->i_running_duration += duration;
>>
>
> To explain for clarity. The Kasenna server does not store the current
> play time (NPT, normal play time). So, on resume from PAUSE, the client
> must supply the point to restart at. Same goes for changing from one
> speed to another.
>
> The Kasenna server only supports x12 (fast forward) and x-12 (rewind)
> speeds. In ff or rw mode, adjust the normal play time accordingly i.e
> 1 second of video played at fast forward, needs to be accounted for as
> 12 seconds of normal speed video, for when you want to return to normal
> speed.
>
>
>>> + msg_Dbg(p_demux, "duration = %u", (unsigned
>>> int)p_sys->i_running_duration / 1000000);
>>
>
> This is more debugging output and is now removed.
>
>
>
> Dermot.
> --
>
--
Many greetings,
Jean-Paul Saman
==========================================================================
VLC iPAQ maintainer (http://www.videolan.org)
RedHat Certified Engineer (RHCE: 807202745005548)
==========================================================================
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20041120/202565e0/attachment.sig>
More information about the vlc-devel
mailing list