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
7b1454c4
Commit
7b1454c4
authored
Dec 16, 2008
by
Stefano Sabatini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement av_set_string3().
Originally committed as revision 16175 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
6120a343
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
17 deletions
+39
-17
avcodec.h
libavcodec/avcodec.h
+2
-2
opt.c
libavcodec/opt.c
+24
-11
opt.h
libavcodec/opt.h
+13
-4
No files found.
libavcodec/avcodec.h
View file @
7b1454c4
...
...
@@ -30,8 +30,8 @@
#include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52
#define LIBAVCODEC_VERSION_MINOR
6
#define LIBAVCODEC_VERSION_MICRO
3
#define LIBAVCODEC_VERSION_MINOR
7
#define LIBAVCODEC_VERSION_MICRO
0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
...
...
libavcodec/opt.c
View file @
7b1454c4
...
...
@@ -107,10 +107,16 @@ static int hexchar2int(char c) {
return
-
1
;
}
const
AVOption
*
av_set_string2
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
){
int
av_set_string3
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
,
const
AVOption
**
o_out
){
int
ret
;
const
AVOption
*
o
=
av_find_opt
(
obj
,
name
,
NULL
,
0
,
0
);
if
(
!
o
||
!
val
||
o
->
offset
<=
0
)
return
NULL
;
if
(
o_out
)
*
o_out
=
o
;
if
(
!
o
)
return
AVERROR
(
ENOENT
);
if
(
!
val
||
o
->
offset
<=
0
)
return
AVERROR
(
EINVAL
);
if
(
o
->
type
==
FF_OPT_TYPE_BINARY
){
uint8_t
**
dst
=
(
uint8_t
**
)(((
uint8_t
*
)
obj
)
+
o
->
offset
);
int
*
lendst
=
(
int
*
)(
dst
+
1
);
...
...
@@ -118,7 +124,7 @@ const AVOption *av_set_string2(void *obj, const char *name, const char *val, int
int
len
=
strlen
(
val
);
av_freep
(
dst
);
*
lendst
=
0
;
if
(
len
&
1
)
return
NULL
;
if
(
len
&
1
)
return
AVERROR
(
EINVAL
)
;
len
/=
2
;
ptr
=
bin
=
av_malloc
(
len
);
while
(
*
val
)
{
...
...
@@ -126,13 +132,13 @@ const AVOption *av_set_string2(void *obj, const char *name, const char *val, int
int
b
=
hexchar2int
(
*
val
++
);
if
(
a
<
0
||
b
<
0
)
{
av_free
(
bin
);
return
NULL
;
return
AVERROR
(
EINVAL
)
;
}
*
ptr
++
=
(
a
<<
4
)
|
b
;
}
*
dst
=
bin
;
*
lendst
=
len
;
return
o
;
return
0
;
}
if
(
o
->
type
!=
FF_OPT_TYPE_STRING
){
int
notfirst
=
0
;
...
...
@@ -163,7 +169,7 @@ const AVOption *av_set_string2(void *obj, const char *name, const char *val, int
else
{
if
(
error
)
av_log
(
NULL
,
AV_LOG_ERROR
,
"Unable to parse option value
\"
%s
\"
: %s
\n
"
,
val
,
error
);
return
NULL
;
return
AVERROR
(
EINVAL
)
;
}
}
if
(
o
->
type
==
FF_OPT_TYPE_FLAGS
){
...
...
@@ -174,14 +180,14 @@ const AVOption *av_set_string2(void *obj, const char *name, const char *val, int
else
if
(
cmd
==
'-'
)
d
=
notfirst
*
av_get_double
(
obj
,
name
,
NULL
)
-
d
;
}
if
(
!
av_set_number
(
obj
,
name
,
d
,
1
,
1
)
)
return
NULL
;
if
(
(
ret
=
av_set_number2
(
obj
,
name
,
d
,
1
,
1
,
o_out
))
<
0
)
return
ret
;
val
+=
i
;
if
(
!*
val
)
return
o
;
return
0
;
notfirst
=
1
;
}
return
NULL
;
return
AVERROR
(
EINVAL
)
;
}
if
(
alloc
){
...
...
@@ -190,6 +196,13 @@ const AVOption *av_set_string2(void *obj, const char *name, const char *val, int
}
memcpy
(((
uint8_t
*
)
obj
)
+
o
->
offset
,
&
val
,
sizeof
(
val
));
return
0
;
}
const
AVOption
*
av_set_string2
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
){
const
AVOption
*
o
;
if
(
av_set_string3
(
obj
,
name
,
val
,
alloc
,
&
o
)
<
0
)
return
NULL
;
return
o
;
}
...
...
libavcodec/opt.h
View file @
7b1454c4
...
...
@@ -104,6 +104,14 @@ const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int m
*/
attribute_deprecated
const
AVOption
*
av_set_string
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
);
/**
* @return a pointer to the AVOption corresponding to the field set or
* NULL if no matching AVOption exists, or if the value \p val is not
* valid
* @see av_set_string3()
*/
attribute_deprecated
const
AVOption
*
av_set_string2
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
);
/**
* Sets the field of obj with the given name to value.
*
...
...
@@ -120,14 +128,15 @@ attribute_deprecated const AVOption *av_set_string(void *obj, const char *name,
* scalars or named flags separated by '+' or '-'. Prefixing a flag
* with '+' causes it to be set without affecting the other flags;
* similarly, '-' unsets a flag.
* @return a pointer to the AVOption corresponding to the field set or
* NULL if no matching AVOption exists, or if the value \p val is not
* valid
* @param[out] o_out if non-NULL put here a pointer to the AVOption
* found
* @param alloc when 1 then the old value will be av_freed() and the
* new av_strduped()
* when 0 then no av_free() nor av_strdup() will be used
* @return 0 if the value has been set, an AVERROR* error code if no
* matching option exists, or if the value \p val is not valid
*/
const
AVOption
*
av_set_string2
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
);
int
av_set_string3
(
void
*
obj
,
const
char
*
name
,
const
char
*
val
,
int
alloc
,
const
AVOption
**
o_out
);
const
AVOption
*
av_set_double
(
void
*
obj
,
const
char
*
name
,
double
n
);
const
AVOption
*
av_set_q
(
void
*
obj
,
const
char
*
name
,
AVRational
n
);
...
...
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