Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
9efc85f7
Commit
9efc85f7
authored
Jul 23, 2015
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
stream_access: remove peek callbacks
parent
b78ea82b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
151 deletions
+0
-151
src/input/stream_access.c
src/input/stream_access.c
+0
-151
No files found.
src/input/stream_access.c
View file @
9efc85f7
...
...
@@ -30,7 +30,6 @@
#include <string.h>
#include <vlc_common.h>
#include <vlc_memory.h>
#include <libvlc.h>
#include "stream.h"
...
...
@@ -147,10 +146,6 @@ struct stream_sys_t
}
stream
;
/* Peek temporary buffer */
unsigned
int
i_peek
;
uint8_t
*
p_peek
;
/* Stat for both method */
struct
{
...
...
@@ -163,14 +158,12 @@ struct stream_sys_t
/* Method 1: */
static
int
AStreamReadBlock
(
stream_t
*
s
,
void
*
p_read
,
unsigned
int
i_read
);
static
int
AStreamPeekBlock
(
stream_t
*
s
,
const
uint8_t
**
p_peek
,
unsigned
int
i_read
);
static
int
AStreamSeekBlock
(
stream_t
*
s
,
uint64_t
i_pos
);
static
void
AStreamPrebufferBlock
(
stream_t
*
s
);
static
block_t
*
AReadBlock
(
stream_t
*
s
,
bool
*
pb_eof
);
/* Method 2 */
static
int
AStreamReadStream
(
stream_t
*
s
,
void
*
p_read
,
unsigned
int
i_read
);
static
int
AStreamPeekStream
(
stream_t
*
s
,
const
uint8_t
**
pp_peek
,
unsigned
int
i_read
);
static
int
AStreamSeekStream
(
stream_t
*
s
,
uint64_t
i_pos
);
static
void
AStreamPrebufferStream
(
stream_t
*
s
);
static
int
AReadStream
(
stream_t
*
s
,
void
*
p_read
,
unsigned
int
i_read
);
...
...
@@ -184,11 +177,6 @@ static int AStreamReadError( stream_t *s, void *p_read, unsigned int i_read )
(
void
)
s
;
(
void
)
p_read
;
(
void
)
i_read
;
return
VLC_EGENERIC
;
}
static
int
AStreamPeekError
(
stream_t
*
s
,
const
uint8_t
**
pp_peek
,
unsigned
int
i_read
)
{
(
void
)
s
;
(
void
)
pp_peek
;
(
void
)
i_read
;
return
VLC_EGENERIC
;
}
static
input_item_t
*
AStreamReadDirError
(
stream_t
*
s
)
{
(
void
)
s
;
...
...
@@ -216,7 +204,6 @@ stream_t *stream_AccessNew( access_t *p_access )
}
s
->
pf_read
=
AStreamReadError
;
/* Replaced later */
s
->
pf_peek
=
AStreamPeekError
;
/* Replaced later */
s
->
pf_readdir
=
AStreamReadDirError
;
/* Replaced later */
s
->
pf_control
=
AStreamControl
;
s
->
pf_destroy
=
AStreamDestroy
;
...
...
@@ -238,15 +225,10 @@ stream_t *stream_AccessNew( access_t *p_access )
p_sys
->
stat
.
i_read_time
=
0
;
p_sys
->
stat
.
i_read_count
=
0
;
/* Peek */
p_sys
->
i_peek
=
0
;
p_sys
->
p_peek
=
NULL
;
if
(
p_sys
->
method
==
STREAM_METHOD_BLOCK
)
{
msg_Dbg
(
s
,
"Using block method for AStream*"
);
s
->
pf_read
=
AStreamReadBlock
;
s
->
pf_peek
=
AStreamPeekBlock
;
/* Init all fields of p_sys->block */
p_sys
->
block
.
i_start
=
p_sys
->
i_pos
;
...
...
@@ -272,7 +254,6 @@ stream_t *stream_AccessNew( access_t *p_access )
msg_Dbg
(
s
,
"Using stream method for AStream*"
);
s
->
pf_read
=
AStreamReadStream
;
s
->
pf_peek
=
AStreamPeekStream
;
/* Allocate/Setup our tracks */
p_sys
->
stream
.
i_offset
=
0
;
...
...
@@ -341,8 +322,6 @@ static void AStreamDestroy( stream_t *s )
else
if
(
p_sys
->
method
==
STREAM_METHOD_STREAM
)
free
(
p_sys
->
stream
.
p_buffer
);
free
(
p_sys
->
p_peek
);
stream_CommonDelete
(
s
);
vlc_access_Delete
(
p_sys
->
p_access
);
free
(
p_sys
);
...
...
@@ -637,73 +616,6 @@ static int AStreamReadBlock( stream_t *s, void *p_read, unsigned int i_read )
return
i_data
;
}
static
int
AStreamPeekBlock
(
stream_t
*
s
,
const
uint8_t
**
pp_peek
,
unsigned
int
i_read
)
{
stream_sys_t
*
p_sys
=
s
->
p_sys
;
uint8_t
*
p_data
;
unsigned
int
i_data
=
0
;
block_t
*
b
;
unsigned
int
i_offset
;
if
(
p_sys
->
block
.
p_current
==
NULL
)
return
0
;
/* EOF */
/* We can directly give a pointer over our buffer */
if
(
i_read
<=
p_sys
->
block
.
p_current
->
i_buffer
-
p_sys
->
block
.
i_offset
)
{
*
pp_peek
=
&
p_sys
->
block
.
p_current
->
p_buffer
[
p_sys
->
block
.
i_offset
];
return
i_read
;
}
/* We need to create a local copy */
if
(
p_sys
->
i_peek
<
i_read
)
{
p_sys
->
p_peek
=
realloc_or_free
(
p_sys
->
p_peek
,
i_read
);
if
(
!
p_sys
->
p_peek
)
{
p_sys
->
i_peek
=
0
;
return
0
;
}
p_sys
->
i_peek
=
i_read
;
}
/* Fill enough data */
while
(
p_sys
->
block
.
i_size
-
(
p_sys
->
i_pos
-
p_sys
->
block
.
i_start
)
<
i_read
)
{
block_t
**
pp_last
=
p_sys
->
block
.
pp_last
;
if
(
AStreamRefillBlock
(
s
)
)
break
;
/* Our buffer are probably filled enough, don't try anymore */
if
(
pp_last
==
p_sys
->
block
.
pp_last
)
break
;
}
/* Copy what we have */
b
=
p_sys
->
block
.
p_current
;
i_offset
=
p_sys
->
block
.
i_offset
;
p_data
=
p_sys
->
p_peek
;
while
(
b
&&
i_data
<
i_read
)
{
unsigned
int
i_current
=
__MAX
(
b
->
i_buffer
-
i_offset
,
0
);
int
i_copy
=
__MIN
(
i_current
,
i_read
-
i_data
);
memcpy
(
p_data
,
&
b
->
p_buffer
[
i_offset
],
i_copy
);
i_data
+=
i_copy
;
p_data
+=
i_copy
;
i_offset
+=
i_copy
;
if
(
i_offset
>=
b
->
i_buffer
)
{
i_offset
=
0
;
b
=
b
->
p_next
;
}
}
*
pp_peek
=
p_sys
->
p_peek
;
return
i_data
;
}
static
int
AStreamSeekBlock
(
stream_t
*
s
,
uint64_t
i_pos
)
{
stream_sys_t
*
p_sys
=
s
->
p_sys
;
...
...
@@ -917,69 +829,6 @@ static int AStreamReadStream( stream_t *s, void *p_read, unsigned int i_read )
return
AStreamReadNoSeekStream
(
s
,
p_read
,
i_read
);
}
static
int
AStreamPeekStream
(
stream_t
*
s
,
const
uint8_t
**
pp_peek
,
unsigned
int
i_read
)
{
stream_sys_t
*
p_sys
=
s
->
p_sys
;
stream_track_t
*
tk
=
&
p_sys
->
stream
.
tk
[
p_sys
->
stream
.
i_tk
];
uint64_t
i_off
;
if
(
tk
->
i_start
>=
tk
->
i_end
)
return
0
;
/* EOF */
#ifdef STREAM_DEBUG
msg_Dbg
(
s
,
"AStreamPeekStream: %d pos=%"
PRId64
" tk=%d "
"start=%"
PRId64
" offset=%d end=%"
PRId64
,
i_read
,
p_sys
->
i_pos
,
p_sys
->
stream
.
i_tk
,
tk
->
i_start
,
p_sys
->
stream
.
i_offset
,
tk
->
i_end
);
#endif
/* Avoid problem, but that should *never* happen */
if
(
i_read
>
STREAM_CACHE_TRACK_SIZE
/
2
)
i_read
=
STREAM_CACHE_TRACK_SIZE
/
2
;
while
(
tk
->
i_end
<
tk
->
i_start
+
p_sys
->
stream
.
i_offset
+
i_read
)
{
if
(
p_sys
->
stream
.
i_used
<=
1
)
{
/* Be sure we will read something */
p_sys
->
stream
.
i_used
+=
tk
->
i_start
+
p_sys
->
stream
.
i_offset
+
i_read
-
tk
->
i_end
;
}
if
(
AStreamRefillStream
(
s
)
)
{
if
(
tk
->
i_end
<
tk
->
i_start
+
p_sys
->
stream
.
i_offset
)
return
0
;
/* EOF */
i_read
=
tk
->
i_end
-
tk
->
i_start
-
p_sys
->
stream
.
i_offset
;
break
;
}
}
/* Now, direct pointer or a copy ? */
i_off
=
(
tk
->
i_start
+
p_sys
->
stream
.
i_offset
)
%
STREAM_CACHE_TRACK_SIZE
;
if
(
i_off
+
i_read
<=
STREAM_CACHE_TRACK_SIZE
)
{
*
pp_peek
=
&
tk
->
p_buffer
[
i_off
];
return
i_read
;
}
if
(
p_sys
->
i_peek
<
i_read
)
{
p_sys
->
p_peek
=
realloc_or_free
(
p_sys
->
p_peek
,
i_read
);
if
(
!
p_sys
->
p_peek
)
{
p_sys
->
i_peek
=
0
;
return
0
;
}
p_sys
->
i_peek
=
i_read
;
}
memcpy
(
p_sys
->
p_peek
,
&
tk
->
p_buffer
[
i_off
],
STREAM_CACHE_TRACK_SIZE
-
i_off
);
memcpy
(
&
p_sys
->
p_peek
[
STREAM_CACHE_TRACK_SIZE
-
i_off
],
&
tk
->
p_buffer
[
0
],
i_read
-
(
STREAM_CACHE_TRACK_SIZE
-
i_off
)
);
*
pp_peek
=
p_sys
->
p_peek
;
return
i_read
;
}
static
int
AStreamSeekStream
(
stream_t
*
s
,
uint64_t
i_pos
)
{
stream_sys_t
*
p_sys
=
s
->
p_sys
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment