[MPlayer-cvslog] r37309 - trunk/stream/stream.h

Ivan Kalvachev ikalvachev at gmail.com
Tue Dec 2 22:22:47 CET 2014


On 10/25/14, reimar <subversion at mplayerhq.hu> wrote:
> Author: reimar
> Date: Sat Oct 25 17:27:08 2014
> New Revision: 37309
>
> Log:
> stream: Avoid unnecessary seek when our buffer is empty.
>
> Modified:
>    trunk/stream/stream.h
>
> Modified: trunk/stream/stream.h
> ==============================================================================
> --- trunk/stream/stream.h	Sat Oct 25 15:40:40 2014	(r37308)
> +++ trunk/stream/stream.h	Sat Oct 25 17:27:08 2014	(r37309)
> @@ -324,6 +324,8 @@ static inline int stream_seek(stream_t *
>             "Invalid seek to negative position %"PRIx64"!\n", pos);
>      pos = 0;
>    }
> +  if (s->buf_len == 0 && s->pos == pos)
> +    return 1;
>    if(pos<s->pos){
>      int64_t x=pos-(s->pos-s->buf_len);
>      if(x>=0){

This breaks sub/subreader.c::guess_cp() code.
The code reads the file once and feeds it to enca, in order to guess
the encoding/code_page. Then it calls:
    stream_reset();
    stream_seek();.

With the above change, data structures are changed, but actual file
seek is not performed. So when subtitle parsing really starts there is
nothing to parse.

The interesting part is that stream_reset() have a commented out call
to stream_seek(), in order to ensure actual seek, but I guess it have
been removed as it is unnecessary in the most common case (opening
file).

Please revert.

Best Regards
   Ivan Kalvachev
  iive


More information about the MPlayer-cvslog mailing list