Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
ded081bc
Commit
ded081bc
authored
May 30, 2009
by
JP Dinger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vcdx: 100% cosmetics; indentation reformatting.
parent
f5078293
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
459 additions
and
475 deletions
+459
-475
modules/access/vcdx/access.c
modules/access/vcdx/access.c
+459
-475
No files found.
modules/access/vcdx/access.c
View file @
ded081bc
...
...
@@ -103,8 +103,7 @@ cdio_log_handler (cdio_log_level_t level, const char message[])
break
;
default:
msg_Warn
(
p_vcd_access
,
"%s
\n
%s %d"
,
message
,
"The above message had unknown log level"
,
level
);
"The above message had unknown log level"
,
level
);
}
return
;
}
...
...
@@ -129,8 +128,7 @@ vcd_log_handler (vcd_log_level_t level, const char message[])
break
;
default:
msg_Warn
(
p_vcd_access
,
"%s
\n
%s %d"
,
message
,
"The above message had unknown vcdimager log level"
,
level
);
"The above message had unknown vcdimager log level"
,
level
);
}
return
;
}
...
...
@@ -177,7 +175,7 @@ VCDReadBlock( access_t * p_access )
right this shouldn't have to happen.
*/
#if 0
if
( p_access->info.i_pos != p_access->info.i_size ) {
if
( p_access->info.i_pos != p_access->info.i_size ) {
msg_Warn( p_access,
"At end but pos (%llu) is not size (%llu). Adjusting.",
p_access->info.i_pos, p_access->info.i_size );
...
...
@@ -189,19 +187,17 @@ VCDReadBlock( access_t * p_access )
return
NULL
;
case
READ_ERROR
:
/* Some sort of error. Should we increment lsn? to skip block?
*/
/* Some sort of error. Should we increment lsn? to skip block? */
block_Release
(
p_block
);
return
NULL
;
case
READ_STILL_FRAME
:
{
/* FIXME The below should be done in an event thread.
Until then...
*/
#if 1
msleep
(
MILLISECONDS_PER_SEC
*
*
p_buf
);
VCDSetOrigin
(
p_access
,
p_vcdplayer
->
origin_lsn
,
p_vcdplayer
->
i_track
,
&
(
p_vcdplayer
->
play_item
));
VCDSetOrigin
(
p_access
,
p_vcdplayer
->
origin_lsn
,
p_vcdplayer
->
i_track
,
&
(
p_vcdplayer
->
play_item
));
// p_vcd->in_still = false;
dbg_print
(
INPUT_DBG_STILL
,
"still wait time done"
);
#else
...
...
@@ -210,12 +206,11 @@ VCDReadBlock( access_t * p_access )
block_Release
(
p_block
);
return
NULL
;
}
default:
case
READ_BLOCK
:
/* Read buffer */
;
break
;
}
p_buf
+=
M2F2_SECTOR_SIZE
;
...
...
@@ -249,7 +244,6 @@ int
VCDSeek
(
access_t
*
p_access
,
int64_t
i_pos
)
{
if
(
!
p_access
||
!
p_access
->
p_sys
)
return
VLC_EGENERIC
;
{
vcdplayer_t
*
p_vcdplayer
=
(
vcdplayer_t
*
)
p_vcd_access
->
p_sys
;
const
input_title_t
*
t
=
p_vcdplayer
->
p_title
[
p_access
->
info
.
i_title
];
...
...
@@ -261,12 +255,14 @@ VCDSeek( access_t * p_access, int64_t i_pos )
p_vcdplayer
->
i_lsn
=
(
i_pos
/
(
int64_t
)
M2F2_SECTOR_SIZE
)
+
p_vcdplayer
->
origin_lsn
;
switch
(
p_vcdplayer
->
play_item
.
type
)
{
switch
(
p_vcdplayer
->
play_item
.
type
)
{
case
VCDINFO_ITEM_TYPE_TRACK
:
case
VCDINFO_ITEM_TYPE_ENTRY
:
break
;
break
;
default:
p_vcdplayer
->
b_valid_ep
=
false
;
break
;
}
/* Find entry */
...
...
@@ -286,8 +282,8 @@ VCDSeek( access_t * p_access, int64_t i_pos )
vcdinfo_itemid_t
itemid
;
itemid
.
num
=
i_entry
;
itemid
.
type
=
VCDINFO_ITEM_TYPE_ENTRY
;
VCDSetOrigin
(
p_access
,
p_vcdplayer
->
i_lsn
,
p_vcdplayer
->
i_track
,
&
itemid
);
VCDSetOrigin
(
p_access
,
p_vcdplayer
->
i_lsn
,
p_vcdplayer
->
i_track
,
&
itemid
);
}
}
...
...
@@ -312,11 +308,9 @@ VCDSeek( access_t * p_access, int64_t i_pos )
p_access
->
info
.
i_update
|=
INPUT_UPDATE_SEEKPOINT
;
p_access
->
info
.
i_seekpoint
=
i_seekpoint
;
}
}
p_access
->
info
.
b_eof
=
false
;
return
VLC_SUCCESS
;
}
/*****************************************************************************
...
...
@@ -329,10 +323,8 @@ VCDEntryPoints( access_t * p_access )
{
if
(
!
p_access
||
!
p_access
->
p_sys
)
return
false
;
{
vcdplayer_t
*
p_vcdplayer
=
(
vcdplayer_t
*
)
p_access
->
p_sys
;
const
unsigned
int
i_entries
=
vcdinfo_get_num_entries
(
p_vcdplayer
->
vcd
);
const
unsigned
int
i_entries
=
vcdinfo_get_num_entries
(
p_vcdplayer
->
vcd
);
const
track_t
i_last_track
=
cdio_get_num_tracks
(
vcdinfo_get_cd_image
(
p_vcdplayer
->
vcd
))
+
cdio_get_first_track_num
(
vcdinfo_get_cd_image
(
p_vcdplayer
->
vcd
));
...
...
@@ -356,21 +348,22 @@ VCDEntryPoints( access_t * p_access )
for
(
i
=
0
;
i
<
i_entries
;
i
++
)
{
const
track_t
i_track
=
vcdinfo_get_track
(
p_vcdplayer
->
vcd
,
i
);
if
(
i_track
<=
i_last_track
)
{
if
(
i_track
<=
i_last_track
)
{
seekpoint_t
*
s
=
vlc_seekpoint_New
();
char
psz_entry
[
100
];
snprintf
(
psz_entry
,
sizeof
(
psz_entry
),
"%s %02d"
,
_
(
"Entry"
),
i
);
p_vcdplayer
->
p_entries
[
i
]
=
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i
);
p_vcdplayer
->
p_entries
[
i
]
=
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i
);
s
->
psz_name
=
strdup
(
psz_entry
);
s
->
i_byte_offset
=
(
p_vcdplayer
->
p_entries
[
i
]
-
vcdinfo_get_track_lsn
(
p_vcdplayer
->
vcd
,
i_track
))
s
->
i_byte_offset
=
(
p_vcdplayer
->
p_entries
[
i
]
-
vcdinfo_get_track_lsn
(
p_vcdplayer
->
vcd
,
i_track
))
*
M2F2_SECTOR_SIZE
;
dbg_print
(
INPUT_DBG_MRL
,
"%s, lsn %d, byte_offset %ld"
,
dbg_print
(
INPUT_DBG_MRL
,
"%s, lsn %d, byte_offset %ld"
,
s
->
psz_name
,
p_vcdplayer
->
p_entries
[
i
],
(
unsigned
long
int
)
s
->
i_byte_offset
);
TAB_APPEND
(
p_vcdplayer
->
p_title
[
i_track
-
1
]
->
i_seekpoint
,
...
...
@@ -381,7 +374,6 @@ VCDEntryPoints( access_t * p_access )
}
p_vcdplayer
->
b_valid_ep
=
true
;
return
true
;
}
}
/*****************************************************************************
...
...
@@ -410,8 +402,7 @@ VCDSegments( access_t * p_access )
/* We have one additional segment allocated so we can get the size
by subtracting seg[i+1] - seg[i].
*/
p_vcdplayer
->
p_segments
=
malloc
(
sizeof
(
lsn_t
)
*
(
p_vcdplayer
->
i_segments
+
1
)
);
p_vcdplayer
->
p_segments
=
malloc
(
sizeof
(
lsn_t
)
*
(
p_vcdplayer
->
i_segments
+
1
));
if
(
p_vcdplayer
->
p_segments
==
NULL
)
{
LOG_ERR
(
"not enough memory for segment treatment"
);
...
...
@@ -597,7 +588,6 @@ VCDParse( access_t * p_access, /*out*/ vcdinfo_itemid_t * p_itemid,
*
psz_parser
=
'\0'
;
++
psz_parser
;
if
(
*
psz_parser
)
{
switch
(
*
psz_parser
)
{
case
'E'
:
p_itemid
->
type
=
VCDINFO_ITEM_TYPE_ENTRY
;
...
...
@@ -619,8 +609,8 @@ VCDParse( access_t * p_access, /*out*/ vcdinfo_itemid_t * p_itemid,
++
psz_parser
;
*
play_single_item
=
true
;
break
;
default:
;
}
default:
break
;
}
num
=
strtol
(
psz_parser
,
&
psz_next
,
10
);
...
...
@@ -634,20 +624,22 @@ VCDParse( access_t * p_access, /*out*/ vcdinfo_itemid_t * p_itemid,
}
if
(
!*
psz_source
)
{
if
(
!*
psz_source
)
{
/* No source specified, so figure it out. */
if
(
!
p_access
->
psz_access
)
return
NULL
;
psz_source
=
config_GetPsz
(
p_access
,
"vcd"
);
if
(
!
psz_source
||
0
==
strlen
(
psz_source
)
)
{
if
(
!
psz_source
||
0
==
strlen
(
psz_source
)
)
{
free
(
psz_source
);
/* Scan for a CD-ROM drive with a VCD in it. */
char
**
cd_drives
=
cdio_get_devices_with_cap
(
NULL
,
(
CDIO_FS_ANAL_SVCD
|
CDIO_FS_ANAL_CVD
|
CDIO_FS_ANAL_VIDEOCD
|
CDIO_FS_UNKNOWN
),
true
);
char
**
cd_drives
=
cdio_get_devices_with_cap
(
NULL
,
(
CDIO_FS_ANAL_SVCD
|
CDIO_FS_ANAL_CVD
|
CDIO_FS_ANAL_VIDEOCD
|
CDIO_FS_UNKNOWN
),
true
);
if
(
NULL
==
cd_drives
)
return
NULL
;
if
(
cd_drives
[
0
]
==
NULL
)
{
...
...
@@ -676,12 +668,12 @@ VCDSetOrigin( access_t *p_access, lsn_t i_lsn, track_t i_track,
vcdplayer_t
*
p_vcdplayer
=
(
vcdplayer_t
*
)
p_access
->
p_sys
;
dbg_print
(
(
INPUT_DBG_CALL
|
INPUT_DBG_LSN
),
"i_lsn: %lu, track: %d"
,
(
long
unsigned
int
)
i_lsn
,
i_track
);
"i_lsn: %lu, track: %d"
,
(
long
unsigned
int
)
i_lsn
,
i_track
);
vcdplayer_set_origin
(
p_access
,
i_lsn
,
i_track
,
p_itemid
);
switch
(
p_vcdplayer
->
play_item
.
type
)
{
switch
(
p_vcdplayer
->
play_item
.
type
)
{
case
VCDINFO_ITEM_TYPE_ENTRY
:
VCDUpdateVar
(
p_access
,
p_itemid
->
num
,
VLC_VAR_SETVALUE
,
"chapter"
,
_
(
"Entry"
),
"Setting entry/segment"
);
...
...
@@ -690,10 +682,10 @@ VCDSetOrigin( access_t *p_access, lsn_t i_lsn, track_t i_track,
{
p_access
->
info
.
i_size
=
p_vcdplayer
->
p_title
[
i_track
-
1
]
->
i_size
;
p_access
->
info
.
i_pos
=
(
int64_t
)
M2F2_SECTOR_SIZE
*
(
vcdinfo_get_track_lsn
(
p_vcdplayer
->
vcd
,
i_track
)
-
i_lsn
);
(
vcdinfo_get_track_lsn
(
p_vcdplayer
->
vcd
,
i_track
)
-
i_lsn
);
}
else
{
p_access
->
info
.
i_size
=
M2F2_SECTOR_SIZE
*
(
int64_t
)
vcdinfo_get_entry_sect_count
(
p_vcdplayer
->
vcd
,
p_itemid
->
num
);
vcdinfo_get_entry_sect_count
(
p_vcdplayer
->
vcd
,
p_itemid
->
num
);
p_access
->
info
.
i_pos
=
0
;
}
dbg_print
(
(
INPUT_DBG_LSN
|
INPUT_DBG_PBC
),
"size: %llu, pos: %llu"
,
...
...
@@ -753,8 +745,9 @@ vcd_Open( vlc_object_t *p_this, const char *psz_dev )
if
(
!
psz_dev
)
return
NULL
;
actual_dev
=
ToLocaleDup
(
psz_dev
);
if
(
vcdinfo_open
(
&
p_vcdobj
,
&
actual_dev
,
DRIVER_UNKNOWN
,
NULL
)
!=
VCDINFO_OPEN_VCD
)
{
if
(
vcdinfo_open
(
&
p_vcdobj
,
&
actual_dev
,
DRIVER_UNKNOWN
,
NULL
)
!=
VCDINFO_OPEN_VCD
)
{
free
(
actual_dev
);
return
NULL
;
}
...
...
@@ -764,11 +757,13 @@ vcd_Open( vlc_object_t *p_this, const char *psz_dev )
Save summary info on tracks, segments and entries...
*/
if
(
0
<
(
p_vcdplayer
->
i_tracks
=
vcdinfo_get_num_tracks
(
p_vcdobj
))
)
{
if
(
0
<
(
p_vcdplayer
->
i_tracks
=
vcdinfo_get_num_tracks
(
p_vcdobj
))
)
{
p_vcdplayer
->
track
=
(
vcdplayer_play_item_info_t
*
)
calloc
(
p_vcdplayer
->
i_tracks
,
sizeof
(
vcdplayer_play_item_info_t
));
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_tracks
;
i
++
)
{
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_tracks
;
i
++
)
{
unsigned
int
track_num
=
i
+
1
;
p_vcdplayer
->
track
[
i
].
size
=
vcdinfo_get_track_sect_count
(
p_vcdobj
,
track_num
);
...
...
@@ -778,26 +773,32 @@ vcd_Open( vlc_object_t *p_this, const char *psz_dev )
}
else
p_vcdplayer
->
track
=
NULL
;
if
(
0
<
(
p_vcdplayer
->
i_entries
=
vcdinfo_get_num_entries
(
p_vcdobj
))
)
{
if
(
0
<
(
p_vcdplayer
->
i_entries
=
vcdinfo_get_num_entries
(
p_vcdobj
))
)
{
p_vcdplayer
->
entry
=
(
vcdplayer_play_item_info_t
*
)
calloc
(
p_vcdplayer
->
i_entries
,
sizeof
(
vcdplayer_play_item_info_t
));
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_entries
;
i
++
)
{
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_entries
;
i
++
)
{
p_vcdplayer
->
entry
[
i
].
size
=
vcdinfo_get_entry_sect_count
(
p_vcdobj
,
i
);
p_vcdplayer
->
entry
[
i
].
start_LSN
=
vcdinfo_get_entry_lsn
(
p_vcdobj
,
i
);
p_vcdplayer
->
entry
[
i
].
start_LSN
=
vcdinfo_get_entry_lsn
(
p_vcdobj
,
i
);
}
}
else
p_vcdplayer
->
entry
=
NULL
;
if
(
0
<
(
p_vcdplayer
->
i_segments
=
vcdinfo_get_num_segments
(
p_vcdobj
))
)
{
if
(
0
<
(
p_vcdplayer
->
i_segments
=
vcdinfo_get_num_segments
(
p_vcdobj
))
)
{
p_vcdplayer
->
segment
=
(
vcdplayer_play_item_info_t
*
)
calloc
(
p_vcdplayer
->
i_segments
,
sizeof
(
vcdplayer_play_item_info_t
));
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_segments
;
i
++
)
{
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_segments
;
i
++
)
{
p_vcdplayer
->
segment
[
i
].
size
=
vcdinfo_get_seg_sector_count
(
p_vcdobj
,
i
);
p_vcdplayer
->
segment
[
i
].
start_LSN
=
vcdinfo_get_seg_lsn
(
p_vcdobj
,
i
);
p_vcdplayer
->
segment
[
i
].
start_LSN
=
vcdinfo_get_seg_lsn
(
p_vcdobj
,
i
);
}
}
else
p_vcdplayer
->
segment
=
NULL
;
...
...
@@ -815,11 +816,13 @@ VCDUpdateVar( access_t *p_access, int i_num, int i_action,
{
vlc_value_t
val
;
val
.
i_int
=
i_num
;
if
(
p_access
)
{
if
(
p_access
)
{
const
vcdplayer_t
*
p_vcdplayer
=
(
vcdplayer_t
*
)
p_vcd_access
->
p_sys
;
dbg_print
(
INPUT_DBG_PBC
,
"%s %d"
,
p_debug_label
,
i_num
);
}
if
(
p_label
)
{
if
(
p_label
)
{
vlc_value_t
text
;
text
.
psz_string
=
p_label
;
var_Change
(
p_access
,
p_varname
,
VLC_VAR_SETTEXT
,
&
text
,
NULL
);
...
...
@@ -912,7 +915,8 @@ VCDOpen ( vlc_object_t *p_this )
/* Get track information. */
p_vcdplayer
->
i_tracks
=
vcdinfo_get_num_tracks
(
p_vcdplayer
->
vcd
);
if
(
p_vcdplayer
->
i_tracks
<
1
||
CDIO_INVALID_TRACK
==
p_vcdplayer
->
i_tracks
)
{
if
(
p_vcdplayer
->
i_tracks
<
1
||
CDIO_INVALID_TRACK
==
p_vcdplayer
->
i_tracks
)
{
vcdinfo_close
(
p_vcdplayer
->
vcd
);
LOG_ERR
(
"no movie tracks found"
);
goto
err_exit
;
...
...
@@ -950,9 +954,8 @@ VCDOpen ( vlc_object_t *p_this )
p_access
->
psz_demux
=
strdup
(
"ps"
);
#ifdef FIXED
if
(
play_single_item
)
VCDFixupPlayList
(
p_access
,
p_vcd
,
psz_source
,
&
itemid
,
play_single_item
);
if
(
play_single_item
)
VCDFixupPlayList
(
p_access
,
p_vcd
,
psz_source
,
&
itemid
,
play_single_item
);
#endif
#ifdef FIXED
...
...
@@ -1025,7 +1028,6 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
during the Open/Initialize call.
*/
case
ACCESS_GET_META
:
{
dbg_print
(
INPUT_DBG_EVENT
,
"get meta info"
);
#if 0
if( p_vcdplayer->p_meta )
...
...
@@ -1040,39 +1042,28 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
msg_Warn
(
p_access
,
"tried to copy NULL meta info"
);
return
VLC_SUCCESS
;
}
return
VLC_EGENERIC
;
case
ACCESS_CAN_SEEK
:
case
ACCESS_CAN_FASTSEEK
:
case
ACCESS_CAN_PAUSE
:
case
ACCESS_CAN_CONTROL_PACE
:
{
bool
*
pb_bool
=
(
bool
*
)
va_arg
(
args
,
bool
*
);
dbg_print
(
INPUT_DBG_EVENT
,
"seek/fastseek/pause/can_control_pace"
);
*
pb_bool
=
true
;
*
((
bool
*
)
va_arg
(
args
,
bool
*
))
=
true
;
return
VLC_SUCCESS
;
break
;
}
/* */
case
ACCESS_GET_PTS_DELAY
:
{
int64_t
*
pi_64
=
(
int64_t
*
)
va_arg
(
args
,
int64_t
*
);
*
pi_64
=
var_GetInteger
(
p_access
,
MODULE_STRING
"-caching"
)
*
MILLISECONDS_PER_SEC
;
*
(
int64_t
*
)
va_arg
(
args
,
int64_t
*
)
=
MILLISECONDS_PER_SEC
*
var_GetInteger
(
p_access
,
MODULE_STRING
"-caching"
);
dbg_print
(
INPUT_DBG_EVENT
,
"GET PTS DELAY"
);
return
VLC_SUCCESS
;
break
;
}
/* */
case
ACCESS_SET_PAUSE_STATE
:
dbg_print
(
INPUT_DBG_EVENT
,
"SET PAUSE STATE"
);
return
VLC_SUCCESS
;
break
;
case
ACCESS_GET_TITLE_INFO
:
{
...
...
@@ -1103,17 +1094,14 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
return
VLC_SUCCESS
;
}
*
pi_int
=
p_vcdplayer
->
i_titles
;
*
ppp_title
=
malloc
(
sizeof
(
input_title_t
**
)
*
p_vcdplayer
->
i_titles
);
*
ppp_title
=
malloc
(
sizeof
(
input_title_t
**
)
*
p_vcdplayer
->
i_titles
);
if
(
!*
ppp_title
)
return
VLC_ENOMEM
;
for
(
i
=
0
;
i
<
p_vcdplayer
->
i_titles
;
i
++
)
{
if
(
p_vcdplayer
->
p_title
[
i
]
)
if
(
p_vcdplayer
->
p_title
[
i
]
)
(
*
ppp_title
)[
i
]
=
vlc_input_title_Duplicate
(
p_vcdplayer
->
p_title
[
i
]
);
}
vlc_input_title_Duplicate
(
p_vcdplayer
->
p_title
[
i
]);
}
break
;
...
...
@@ -1126,7 +1114,7 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
vcdinfo_itemid_t
itemid
;
track_t
i_track
=
i
+
1
;
unsigned
int
i_entry
=
vcdinfo_track_get_entry
(
p_vcdplayer
->
vcd
,
i_track
);
vcdinfo_track_get_entry
(
p_vcdplayer
->
vcd
,
i_track
);
if
(
i
<
p_vcdplayer
->
i_tracks
)
{
...
...
@@ -1137,20 +1125,19 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
}
else
{
/* FIXME! i_tracks+2 are Segments, but we need to
be able to figure out which segment of that.
i_tracks+1 is either Segments (if no LIDs) or
LIDs otherwise. Again need a way to get the LID
number. */
msg_Warn
(
p_access
,
"Trying to set track (%u) beyond end of last track (%u)."
,
i
+
1
,
p_vcdplayer
->
i_tracks
);
/* FIXME! i_tracks+2 are Segments, but we need to be able
to figure out which segment of that. i_tracks+1 is
either Segments (if no LIDs) or LIDs otherwise. Again
need a way to get the LID number. */
msg_Warn
(
p_access
,
"Trying to set track (%u) beyond end "
"of last track (%u)."
,
i
+
1
,
p_vcdplayer
->
i_tracks
);
return
VLC_EGENERIC
;
}
VCDSetOrigin
(
p_access
,
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i_entry
),
i_track
,
&
itemid
);
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i_entry
),
i_track
,
&
itemid
);
}
break
;
...
...
@@ -1165,10 +1152,9 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
track_t
i_track
=
p_access
->
info
.
i_title
+
1
;
lsn_t
lsn
;
/* FIXME! For now we are assuming titles are only
tracks and that track == title+1 and we the play
item is entries (not tracks or lids).
We need to generalize all of this.
/* FIXME! For now we are assuming titles are only tracks and
that track == title+1 and we the play item is entries (not
tracks or lids). We need to generalize all of this.
*/
if
(
i
<
p_vcdplayer
->
i_entries
)
...
...
@@ -1178,8 +1164,7 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
lsn
=
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i
);
}
else
if
(
i
<
p_vcdplayer
->
i_entries
+
p_vcdplayer
->
i_lids
)
{
p_vcdplayer
->
play_item
.
num
=
i
=
i
-
p_vcdplayer
->
i_entries
;
p_vcdplayer
->
play_item
.
num
=
i
=
i
-
p_vcdplayer
->
i_entries
;
p_vcdplayer
->
play_item
.
type
=
VCDINFO_ITEM_TYPE_LID
;
lsn
=
0
;
}
else
...
...
@@ -1190,9 +1175,8 @@ static int VCDControl( access_t *p_access, int i_query, va_list args )
lsn
=
vcdinfo_get_seg_lsn
(
p_vcdplayer
->
vcd
,
i
);
}
VCDSetOrigin
(
p_access
,
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i
),
i_track
,
&
(
p_vcdplayer
->
play_item
)
);
VCDSetOrigin
(
p_access
,
vcdinfo_get_entry_lsn
(
p_vcdplayer
->
vcd
,
i
),
i_track
,
&
(
p_vcdplayer
->
play_item
));
}
return
VLC_SUCCESS
;
}
...
...
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