Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
ffmpeg
Commits
a64c58a2
Commit
a64c58a2
authored
May 10, 2011
by
Alexander Strange
Committed by
Ronald S. Bultje
May 18, 2011
Browse files
mdec: enable frame-level multithreading.
Signed-off-by:
Ronald S. Bultje
<
rsbultje@gmail.com
>
parent
32ac63ee
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
3 deletions
+17
-3
libavcodec/mdec.c
libavcodec/mdec.c
+17
-3
No files found.
libavcodec/mdec.c
View file @
a64c58a2
...
...
@@ -31,6 +31,7 @@
#include "dsputil.h"
#include "mpegvideo.h"
#include "mpeg12.h"
#include "thread.h"
typedef
struct
MDECContext
{
AVCodecContext
*
avctx
;
...
...
@@ -163,10 +164,10 @@ static int decode_frame(AVCodecContext *avctx,
int
i
;
if
(
p
->
data
[
0
])
avctx
->
release_buffer
(
avctx
,
p
);
ff_thread_
release_buffer
(
avctx
,
p
);
p
->
reference
=
0
;
if
(
avctx
->
get_buffer
(
avctx
,
p
)
<
0
){
if
(
ff_thread_
get_buffer
(
avctx
,
p
)
<
0
){
av_log
(
avctx
,
AV_LOG_ERROR
,
"get_buffer() failed
\n
"
);
return
-
1
;
}
...
...
@@ -239,6 +240,18 @@ static av_cold int decode_init(AVCodecContext *avctx){
return
0
;
}
static
av_cold
int
decode_init_thread_copy
(
AVCodecContext
*
avctx
){
MDECContext
*
const
a
=
avctx
->
priv_data
;
AVFrame
*
p
=
(
AVFrame
*
)
&
a
->
picture
;
avctx
->
coded_frame
=
p
;
a
->
avctx
=
avctx
;
p
->
qscale_table
=
av_mallocz
(
a
->
mb_width
);
return
0
;
}
static
av_cold
int
decode_end
(
AVCodecContext
*
avctx
){
MDECContext
*
const
a
=
avctx
->
priv_data
;
...
...
@@ -260,7 +273,8 @@ AVCodec ff_mdec_decoder = {
NULL
,
decode_end
,
decode_frame
,
CODEC_CAP_DR1
,
CODEC_CAP_DR1
|
CODEC_CAP_FRAME_THREADS
,
.
long_name
=
NULL_IF_CONFIG_SMALL
(
"Sony PlayStation MDEC (Motion DECoder)"
),
.
init_thread_copy
=
ONLY_IF_THREADS_ENABLED
(
decode_init_thread_copy
)
};
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