Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
8730fad5
Commit
8730fad5
authored
Mar 12, 2010
by
David Conrad
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oggdec: Parse ogm chapters
Originally committed as revision 22477 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
2e508585
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
1 deletion
+36
-1
oggparsevorbis.c
libavformat/oggparsevorbis.c
+36
-1
No files found.
libavformat/oggparsevorbis.c
View file @
8730fad5
...
...
@@ -41,6 +41,40 @@ const AVMetadataConv ff_vorbiscomment_metadata_conv[] = {
{
0
}
};
static
int
ogm_chapter
(
AVFormatContext
*
as
,
uint8_t
*
key
,
uint8_t
*
val
)
{
int
i
,
cnum
,
h
,
m
,
s
,
ms
,
keylen
=
strlen
(
key
);
AVChapter
*
chapter
=
NULL
;
if
(
keylen
<
9
||
sscanf
(
key
,
"CHAPTER%02d"
,
&
cnum
)
!=
1
)
return
0
;
if
(
keylen
==
9
)
{
if
(
sscanf
(
val
,
"%02d:%02d:%02d.%03d"
,
&
h
,
&
m
,
&
s
,
&
ms
)
<
4
)
return
0
;
ff_new_chapter
(
as
,
cnum
,
(
AVRational
){
1
,
1000
},
ms
+
1000
*
(
s
+
60
*
(
m
+
60
*
h
)),
AV_NOPTS_VALUE
,
NULL
);
av_free
(
val
);
}
else
if
(
!
strcmp
(
key
+
9
,
"NAME"
))
{
for
(
i
=
0
;
i
<
as
->
nb_chapters
;
i
++
)
if
(
as
->
chapters
[
i
]
->
id
==
cnum
)
{
chapter
=
as
->
chapters
[
i
];
break
;
}
if
(
!
chapter
)
return
0
;
av_metadata_set2
(
&
chapter
->
metadata
,
"title"
,
val
,
AV_METADATA_DONT_STRDUP_VAL
);
}
else
return
0
;
av_free
(
key
);
return
1
;
}
int
ff_vorbis_comment
(
AVFormatContext
*
as
,
AVMetadata
**
m
,
const
uint8_t
*
buf
,
int
size
)
{
...
...
@@ -101,7 +135,8 @@ ff_vorbis_comment(AVFormatContext * as, AVMetadata **m, const uint8_t *buf, int
memcpy
(
ct
,
v
,
vl
);
ct
[
vl
]
=
0
;
av_metadata_set2
(
m
,
tt
,
ct
,
if
(
!
ogm_chapter
(
as
,
tt
,
ct
))
av_metadata_set2
(
m
,
tt
,
ct
,
AV_METADATA_DONT_STRDUP_KEY
|
AV_METADATA_DONT_STRDUP_VAL
);
}
...
...
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