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
5098d74c
Commit
5098d74c
authored
Dec 29, 2011
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
VCD: misc cosmetics and move to the # chapter syntax
No functionnal change otherwise
parent
cca013e7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
27 deletions
+25
-27
modules/access/vcd/vcd.c
modules/access/vcd/vcd.c
+25
-27
No files found.
modules/access/vcd/vcd.c
View file @
5098d74c
/*****************************************************************************
* vcd.c : VCD input module for vlc
*****************************************************************************
* Copyright
(C) 2000-2004
the VideoLAN team
* Copyright
© 2000-2011
the VideoLAN team
* $Id$
*
* Author: Johan Bilien <jobi@via.ecp.fr>
...
...
@@ -51,7 +51,7 @@ vlc_module_begin ()
set_category
(
CAT_INPUT
)
set_subcategory
(
SUBCAT_INPUT_ACCESS
)
add_usage_hint
(
N_
(
"[vcd:][device][
@
[title][,[chapter]]]"
)
)
add_usage_hint
(
N_
(
"[vcd:][device][
#
[title][,[chapter]]]"
)
)
add_shortcut
(
"vcd"
,
"svcd"
)
vlc_module_end
()
...
...
@@ -71,7 +71,6 @@ struct access_sys_t
int
i_titles
;
input_title_t
*
title
[
99
];
/* No more that 99 track in a vcd ? */
int
i_sector
;
/* Current Sector */
int
*
p_sectors
;
/* Track sectors */
};
...
...
@@ -95,11 +94,10 @@ static int Open( vlc_object_t *p_this )
char
*
psz
;
int
i_title
=
0
;
int
i_chapter
=
0
;
int
i
;
vcddev_t
*
vcddev
;
/* Command line: vcd://[dev_path][
@
title[,chapter]] */
if
(
(
psz
=
strchr
(
psz_dup
,
'
@
'
)
)
)
/* Command line: vcd://[dev_path][
#
title[,chapter]] */
if
(
(
psz
=
strchr
(
psz_dup
,
'
#
'
)
)
)
{
*
psz
++
=
'\0'
;
...
...
@@ -137,18 +135,8 @@ static int Open( vlc_object_t *p_this )
return
VLC_EGENERIC
;
/* Set up p_access */
p_access
->
pf_read
=
NULL
;
p_access
->
pf_block
=
Block
;
p_access
->
pf_control
=
Control
;
p_access
->
pf_seek
=
Seek
;
p_access
->
info
.
i_update
=
0
;
p_access
->
info
.
i_size
=
0
;
p_access
->
info
.
i_pos
=
0
;
p_access
->
info
.
b_eof
=
false
;
p_access
->
info
.
i_title
=
0
;
p_access
->
info
.
i_seekpoint
=
0
;
p_access
->
p_sys
=
p_sys
=
calloc
(
1
,
sizeof
(
access_sys_t
)
);
if
(
!
p_sys
)
if
(
unlikely
(
!
p_sys
)
)
goto
error
;
p_sys
->
vcddev
=
vcddev
;
...
...
@@ -165,11 +153,12 @@ static int Open( vlc_object_t *p_this )
msg_Err
(
p_access
,
"no movie tracks found"
);
goto
error
;
}
/* The first title isn't usable */
p_sys
->
i_titles
--
;
/* Build title table */
for
(
i
=
0
;
i
<
p_sys
->
i_titles
;
i
++
)
for
(
i
nt
i
=
0
;
i
<
p_sys
->
i_titles
;
i
++
)
{
input_title_t
*
t
=
p_sys
->
title
[
i
]
=
vlc_input_title_New
();
...
...
@@ -195,15 +184,24 @@ static int Open( vlc_object_t *p_this )
p_sys
->
i_sector
=
p_sys
->
p_sectors
[
1
+
i_title
];
if
(
i_chapter
>
0
)
{
p_sys
->
i_sector
+=
(
p_sys
->
title
[
i_title
]
->
seekpoint
[
i_chapter
]
->
i_byte_offset
/
VCD_DATA_SIZE
);
p_sys
->
i_sector
+=
(
p_sys
->
title
[
i_title
]
->
seekpoint
[
i_chapter
]
->
i_byte_offset
/
VCD_DATA_SIZE
);
}
p_access
->
info
.
i_title
=
i_title
;
/* p_access */
p_access
->
pf_read
=
NULL
;
p_access
->
pf_block
=
Block
;
p_access
->
pf_control
=
Control
;
p_access
->
pf_seek
=
Seek
;
p_access
->
info
.
i_update
=
0
;
p_access
->
info
.
b_eof
=
false
;
p_access
->
info
.
i_title
=
i_title
;
p_access
->
info
.
i_seekpoint
=
i_chapter
;
p_access
->
info
.
i_size
=
p_sys
->
title
[
i_title
]
->
i_size
;
p_access
->
info
.
i_pos
=
(
p_sys
->
i_sector
-
p_sys
->
p_sectors
[
1
+
i_title
]
)
*
VCD_DATA_SIZE
;
p_access
->
info
.
i_size
=
p_sys
->
title
[
i_title
]
->
i_size
;
p_access
->
info
.
i_pos
=
(
uint64_t
)
(
p_sys
->
i_sector
-
p_sys
->
p_sectors
[
1
+
i_title
]
)
*
VCD_DATA_SIZE
;
free
(
p_access
->
psz_demux
);
p_access
->
psz_demux
=
strdup
(
"ps"
);
...
...
@@ -440,7 +438,7 @@ static int EntryPoints( access_t *p_access )
uint8_t
sector
[
VCD_DATA_SIZE
];
entries_sect_t
entries
;
int
i_nb
,
i
;
int
i_nb
;
/* Read the entry point sector */
if
(
ioctl_ReadSectors
(
VLC_OBJECT
(
p_access
),
p_sys
->
vcddev
,
...
...
@@ -465,7 +463,7 @@ static int EntryPoints( access_t *p_access )
return
VLC_EGENERIC
;
}
for
(
i
=
0
;
i
<
i_nb
;
i
++
)
for
(
i
nt
i
=
0
;
i
<
i_nb
;
i
++
)
{
const
int
i_title
=
BCD_TO_BIN
(
entries
.
entry
[
i
].
i_track
)
-
2
;
const
int
i_sector
=
...
...
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