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
efcde917
Commit
efcde917
authored
May 26, 2014
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vorbiscomment: simplify API by using av_dict_count()
parent
23f741f7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
10 additions
and
16 deletions
+10
-16
flacenc.c
libavformat/flacenc.c
+3
-3
oggenc.c
libavformat/oggenc.c
+2
-3
vorbiscomment.c
libavformat/vorbiscomment.c
+3
-5
vorbiscomment.h
libavformat/vorbiscomment.h
+2
-5
No files found.
libavformat/flacenc.c
View file @
efcde917
...
...
@@ -49,12 +49,12 @@ static int flac_write_block_comment(AVIOContext *pb, AVDictionary **m,
int
last_block
,
int
bitexact
)
{
const
char
*
vendor
=
bitexact
?
"Libav"
:
LIBAVFORMAT_IDENT
;
unsigned
int
len
,
count
;
unsigned
int
len
;
uint8_t
*
p
,
*
p0
;
ff_metadata_conv
(
m
,
ff_vorbiscomment_metadata_conv
,
NULL
);
len
=
ff_vorbiscomment_length
(
*
m
,
vendor
,
&
count
);
len
=
ff_vorbiscomment_length
(
*
m
,
vendor
);
p0
=
av_malloc
(
len
+
4
);
if
(
!
p0
)
return
AVERROR
(
ENOMEM
);
...
...
@@ -62,7 +62,7 @@ static int flac_write_block_comment(AVIOContext *pb, AVDictionary **m,
bytestream_put_byte
(
&
p
,
last_block
?
0x84
:
0x04
);
bytestream_put_be24
(
&
p
,
len
);
ff_vorbiscomment_write
(
&
p
,
m
,
vendor
,
count
);
ff_vorbiscomment_write
(
&
p
,
m
,
vendor
);
avio_write
(
pb
,
p0
,
len
+
4
);
av_freep
(
&
p0
);
...
...
libavformat/oggenc.c
View file @
efcde917
...
...
@@ -273,18 +273,17 @@ static uint8_t *ogg_write_vorbiscomment(int offset, int bitexact,
const
char
*
vendor
=
bitexact
?
"Libav"
:
LIBAVFORMAT_IDENT
;
int
size
;
uint8_t
*
p
,
*
p0
;
unsigned
int
count
;
ff_metadata_conv
(
m
,
ff_vorbiscomment_metadata_conv
,
NULL
);
size
=
offset
+
ff_vorbiscomment_length
(
*
m
,
vendor
,
&
count
)
+
framing_bit
;
size
=
offset
+
ff_vorbiscomment_length
(
*
m
,
vendor
)
+
framing_bit
;
p
=
av_mallocz
(
size
);
if
(
!
p
)
return
NULL
;
p0
=
p
;
p
+=
offset
;
ff_vorbiscomment_write
(
&
p
,
m
,
vendor
,
count
);
ff_vorbiscomment_write
(
&
p
,
m
,
vendor
);
if
(
framing_bit
)
bytestream_put_byte
(
&
p
,
1
);
...
...
libavformat/vorbiscomment.c
View file @
efcde917
...
...
@@ -37,28 +37,26 @@ const AVMetadataConv ff_vorbiscomment_metadata_conv[] = {
{
0
}
};
int
ff_vorbiscomment_length
(
AVDictionary
*
m
,
const
char
*
vendor_string
,
unsigned
*
count
)
int
ff_vorbiscomment_length
(
AVDictionary
*
m
,
const
char
*
vendor_string
)
{
int
len
=
8
;
len
+=
strlen
(
vendor_string
);
*
count
=
0
;
if
(
m
)
{
AVDictionaryEntry
*
tag
=
NULL
;
while
((
tag
=
av_dict_get
(
m
,
""
,
tag
,
AV_DICT_IGNORE_SUFFIX
)))
{
len
+=
4
+
strlen
(
tag
->
key
)
+
1
+
strlen
(
tag
->
value
);
(
*
count
)
++
;
}
}
return
len
;
}
int
ff_vorbiscomment_write
(
uint8_t
**
p
,
AVDictionary
**
m
,
const
char
*
vendor_string
,
const
unsigned
count
)
const
char
*
vendor_string
)
{
bytestream_put_le32
(
p
,
strlen
(
vendor_string
));
bytestream_put_buffer
(
p
,
vendor_string
,
strlen
(
vendor_string
));
if
(
*
m
)
{
int
count
=
av_dict_count
(
*
m
);
AVDictionaryEntry
*
tag
=
NULL
;
bytestream_put_le32
(
p
,
count
);
while
((
tag
=
av_dict_get
(
*
m
,
""
,
tag
,
AV_DICT_IGNORE_SUFFIX
)))
{
...
...
libavformat/vorbiscomment.h
View file @
efcde917
...
...
@@ -32,11 +32,9 @@
* @param m The metadata structure to be parsed. For no metadata, set to NULL.
* @param vendor_string The vendor string to be added into the VorbisComment.
* For no string, set to an empty string.
* @param count Pointer to store the number of tags in m because m->count is "not allowed"
* @return The length in bytes.
*/
int
ff_vorbiscomment_length
(
AVDictionary
*
m
,
const
char
*
vendor_string
,
unsigned
*
count
);
int
ff_vorbiscomment_length
(
AVDictionary
*
m
,
const
char
*
vendor_string
);
/**
* Write a VorbisComment into a buffer. The buffer, p, must have enough
...
...
@@ -47,10 +45,9 @@ int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string,
* @param p The buffer in which to write.
* @param m The metadata struct to write.
* @param vendor_string The vendor string to write.
* @param count The number of tags in m because m->count is "not allowed"
*/
int
ff_vorbiscomment_write
(
uint8_t
**
p
,
AVDictionary
**
m
,
const
char
*
vendor_string
,
const
unsigned
count
);
const
char
*
vendor_string
);
extern
const
AVMetadataConv
ff_vorbiscomment_metadata_conv
[];
...
...
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