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
b181cd35
Commit
b181cd35
authored
Jun 27, 2018
by
Marton Balint
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ffmpeg: factorize input thread creation and destruction
Signed-off-by:
Marton Balint
<
cus@passwd.hu
>
parent
9f0077cc
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
26 deletions
+40
-26
ffmpeg.c
fftools/ffmpeg.c
+40
-26
No files found.
fftools/ffmpeg.c
View file @
b181cd35
...
...
@@ -4053,16 +4053,13 @@ static void *input_thread(void *arg)
return
NULL
;
}
static
void
free_input_thread
s
(
void
)
static
void
free_input_thread
(
int
i
)
{
int
i
;
for
(
i
=
0
;
i
<
nb_input_files
;
i
++
)
{
InputFile
*
f
=
input_files
[
i
];
AVPacket
pkt
;
if
(
!
f
||
!
f
->
in_thread_queue
)
continue
;
return
;
av_thread_message_queue_set_err_send
(
f
->
in_thread_queue
,
AVERROR_EOF
);
while
(
av_thread_message_queue_recv
(
f
->
in_thread_queue
,
&
pkt
,
0
)
>=
0
)
av_packet_unref
(
&
pkt
);
...
...
@@ -4070,19 +4067,24 @@ static void free_input_threads(void)
pthread_join
(
f
->
thread
,
NULL
);
f
->
joined
=
1
;
av_thread_message_queue_free
(
&
f
->
in_thread_queue
);
}
}
static
int
init
_input_threads
(
void
)
static
void
free
_input_threads
(
void
)
{
int
i
,
ret
;
int
i
;
if
(
nb_input_files
==
1
)
return
0
;
for
(
i
=
0
;
i
<
nb_input_files
;
i
++
)
free_input_thread
(
i
);
}
for
(
i
=
0
;
i
<
nb_input_files
;
i
++
)
{
static
int
init_input_thread
(
int
i
)
{
int
ret
;
InputFile
*
f
=
input_files
[
i
];
if
(
nb_input_files
==
1
)
return
0
;
if
(
f
->
ctx
->
pb
?
!
f
->
ctx
->
pb
->
seekable
:
strcmp
(
f
->
ctx
->
iformat
->
name
,
"lavfi"
))
f
->
non_blocking
=
1
;
...
...
@@ -4096,6 +4098,18 @@ static int init_input_threads(void)
av_thread_message_queue_free
(
&
f
->
in_thread_queue
);
return
AVERROR
(
ret
);
}
return
0
;
}
static
int
init_input_threads
(
void
)
{
int
i
,
ret
;
for
(
i
=
0
;
i
<
nb_input_files
;
i
++
)
{
ret
=
init_input_thread
(
i
);
if
(
ret
<
0
)
return
ret
;
}
return
0
;
}
...
...
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