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
2d3beede
Commit
2d3beede
authored
Sep 23, 2009
by
Jason Garrett-Glaser
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for new x264 API.
Originally committed as revision 19977 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
98f7bcb1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
25 deletions
+15
-25
configure
configure
+2
-2
libx264.c
libavcodec/libx264.c
+13
-23
No files found.
configure
View file @
2d3beede
...
...
@@ -2292,8 +2292,8 @@ enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
enabled libtheora
&&
require libtheora theora/theora.h theora_info_init
-ltheora
-logg
enabled libvorbis
&&
require libvorbis vorbis/vorbisenc.h vorbis_info_init
-lvorbisenc
-lvorbis
-logg
enabled libx264
&&
require libx264 x264.h x264_encoder_encode
-lx264
-lm
&&
{
check_cpp_condition x264.h
"X264_BUILD >=
65
"
||
die
"ERROR: libx264 version must be >= 0.
65
."
;
}
{
check_cpp_condition x264.h
"X264_BUILD >=
76
"
||
die
"ERROR: libx264 version must be >= 0.
76
."
;
}
enabled libxvid
&&
require libxvid xvid.h xvid_global
-lxvidcore
enabled mlib
&&
require mediaLib mlib_types.h mlib_VectorSub_S16_U8_Mod
-lmlib
...
...
libavcodec/libx264.c
View file @
2d3beede
...
...
@@ -52,16 +52,14 @@ X264_log(void *p, int level, const char *fmt, va_list args)
}
static
int
encode_nals
(
AVCodecContext
*
ctx
,
uint8_t
*
buf
,
int
size
,
x264_nal_t
*
nals
,
int
nnal
,
int
skip_sei
)
static
int
encode_nals
(
AVCodecContext
*
ctx
,
uint8_t
*
buf
,
int
size
,
x264_nal_t
*
nals
,
int
nnal
,
int
skip_sei
)
{
X264Context
*
x4
=
ctx
->
priv_data
;
uint8_t
*
p
=
buf
;
int
i
,
s
;
int
i
;
/* Write the SEI as part of the first frame. */
if
(
x4
->
sei_size
>
0
&&
nnal
>
0
)
{
if
(
x4
->
sei_size
>
0
&&
nnal
>
0
){
memcpy
(
p
,
x4
->
sei
,
x4
->
sei_size
);
p
+=
x4
->
sei_size
;
x4
->
sei_size
=
0
;
...
...
@@ -69,17 +67,14 @@ encode_nals(AVCodecContext *ctx, uint8_t *buf, int size, x264_nal_t *nals, int n
for
(
i
=
0
;
i
<
nnal
;
i
++
){
/* Don't put the SEI in extradata. */
if
(
skip_sei
&&
nals
[
i
].
i_type
==
NAL_SEI
)
{
x4
->
sei
=
av_malloc
(
5
+
nals
[
i
].
i_payload
*
4
/
3
);
if
(
x264_nal_encode
(
x4
->
sei
,
&
x4
->
sei_size
,
1
,
nals
+
i
)
<
0
)
return
-
1
;
if
(
skip_sei
&&
nals
[
i
].
i_type
==
NAL_SEI
){
x4
->
sei_size
=
nals
[
i
].
i_payload
;
x4
->
sei
=
av_malloc
(
x4
->
sei_size
);
memcpy
(
x4
->
sei
,
nals
[
i
].
p_payload
,
nals
[
i
].
i_payload
);
continue
;
}
s
=
x264_nal_encode
(
p
,
&
size
,
1
,
nals
+
i
);
if
(
s
<
0
)
return
-
1
;
p
+=
s
;
memcpy
(
p
,
nals
[
i
].
p_payload
,
nals
[
i
].
i_payload
);
p
+=
nals
[
i
].
i_payload
;
}
return
p
-
buf
;
...
...
@@ -97,7 +92,7 @@ X264_frame(AVCodecContext *ctx, uint8_t *buf, int bufsize, void *data)
x4
->
pic
.
img
.
i_csp
=
X264_CSP_I420
;
x4
->
pic
.
img
.
i_plane
=
3
;
if
(
frame
)
{
if
(
frame
)
{
for
(
i
=
0
;
i
<
3
;
i
++
){
x4
->
pic
.
img
.
plane
[
i
]
=
frame
->
data
[
i
];
x4
->
pic
.
img
.
i_stride
[
i
]
=
frame
->
linesize
[
i
];
...
...
@@ -107,8 +102,7 @@ X264_frame(AVCodecContext *ctx, uint8_t *buf, int bufsize, void *data)
x4
->
pic
.
i_type
=
X264_TYPE_AUTO
;
}
if
(
x264_encoder_encode
(
x4
->
enc
,
&
nal
,
&
nnal
,
frame
?
&
x4
->
pic
:
NULL
,
&
pic_out
))
if
(
x264_encoder_encode
(
x4
->
enc
,
&
nal
,
&
nnal
,
frame
?
&
x4
->
pic
:
NULL
,
&
pic_out
)
<
0
)
return
-
1
;
bufsize
=
encode_nals
(
ctx
,
buf
,
bufsize
,
nal
,
nnal
,
0
);
...
...
@@ -296,13 +290,9 @@ X264_init(AVCodecContext *avctx)
if
(
avctx
->
flags
&
CODEC_FLAG_GLOBAL_HEADER
){
x264_nal_t
*
nal
;
int
nnal
,
i
,
s
=
0
;
x264_encoder_headers
(
x4
->
enc
,
&
nal
,
&
nnal
);
int
nnal
,
s
;
/* 5 bytes NAL header + worst case escaping */
for
(
i
=
0
;
i
<
nnal
;
i
++
)
s
+=
5
+
nal
[
i
].
i_payload
*
4
/
3
;
s
=
x264_encoder_headers
(
x4
->
enc
,
&
nal
,
&
nnal
);
avctx
->
extradata
=
av_malloc
(
s
);
avctx
->
extradata_size
=
encode_nals
(
avctx
,
avctx
->
extradata
,
s
,
nal
,
nnal
,
1
);
...
...
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