Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
315e3c25
Commit
315e3c25
authored
Feb 05, 2011
by
Gaute Strokkenes
Committed by
John Koleszar
Feb 09, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Put more code under #if CONFIG_MULTITHREAD.
Change-Id: Icf4b692099d7d249fe3553852b1022b027b28e4b
parent
350ffe8d
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
56 additions
and
143 deletions
+56
-143
vp8/common/threading.h
vp8/common/threading.h
+2
-4
vp8/decoder/decodframe.c
vp8/decoder/decodframe.c
+6
-0
vp8/decoder/onyxd_if.c
vp8/decoder/onyxd_if.c
+5
-1
vp8/decoder/onyxd_int.h
vp8/decoder/onyxd_int.h
+3
-2
vp8/decoder/reconintra_mt.c
vp8/decoder/reconintra_mt.c
+0
-45
vp8/decoder/threading.c
vp8/decoder/threading.c
+0
-47
vp8/encoder/bitstream.c
vp8/encoder/bitstream.c
+5
-3
vp8/encoder/encodeframe.c
vp8/encoder/encodeframe.c
+20
-21
vp8/encoder/ethreading.c
vp8/encoder/ethreading.c
+3
-15
vp8/encoder/onyx_if.c
vp8/encoder/onyx_if.c
+9
-0
vp8/encoder/onyx_int.h
vp8/encoder/onyx_int.h
+1
-3
vp8/vp8cx.mk
vp8/vp8cx.mk
+1
-1
vp8/vp8dx.mk
vp8/vp8dx.mk
+1
-1
No files found.
vp8/common/threading.h
View file @
315e3c25
...
...
@@ -14,7 +14,7 @@
#define VPXINFINITE 10000
/* 10second. */
#if CONFIG_OS_SUPPORT
#if CONFIG_OS_SUPPORT
&& CONFIG_MULTITHREAD
/* Thread management macros */
#ifdef _WIN32
...
...
@@ -90,8 +90,6 @@
#define x86_pause_hint()
#endif
#else
/* CONFIG_OS_SUPPORT = 0 */
#define THREAD_FUNCTION void *
#endif
/* CONFIG_OS_SUPPORT */
#endif
/* CONFIG_OS_SUPPORT && CONFIG_MULTITHREAD */
#endif
vp8/decoder/decodframe.c
View file @
315e3c25
...
...
@@ -485,9 +485,11 @@ static void setup_token_decoder(VP8D_COMP *pbi,
bool_decoder
++
;
}
#if CONFIG_MULTITHREAD
/* Clamp number of decoder threads */
if
(
pbi
->
decoding_thread_count
>
num_part
-
1
)
pbi
->
decoding_thread_count
=
num_part
-
1
;
#endif
}
...
...
@@ -846,7 +848,9 @@ int vp8_decode_frame(VP8D_COMP *pbi)
vpx_memcpy
(
&
xd
->
dst
,
&
pc
->
yv12_fb
[
pc
->
new_fb_idx
],
sizeof
(
YV12_BUFFER_CONFIG
));
/* set up frame new frame for intra coded blocks */
#if CONFIG_MULTITHREAD
if
(
!
(
pbi
->
b_multithreaded_rd
)
||
pc
->
multi_token_partition
==
ONE_PARTITION
||
!
(
pc
->
filter_level
))
#endif
vp8_setup_intra_recon
(
&
pc
->
yv12_fb
[
pc
->
new_fb_idx
]);
vp8_setup_block_dptrs
(
xd
);
...
...
@@ -866,6 +870,7 @@ int vp8_decode_frame(VP8D_COMP *pbi)
vpx_memcpy
(
&
xd
->
block
[
0
].
bmi
,
&
xd
->
mode_info_context
->
bmi
[
0
],
sizeof
(
B_MODE_INFO
));
#if CONFIG_MULTITHREAD
if
(
pbi
->
b_multithreaded_rd
&&
pc
->
multi_token_partition
!=
ONE_PARTITION
)
{
vp8mt_decode_mb_rows
(
pbi
,
xd
);
...
...
@@ -880,6 +885,7 @@ int vp8_decode_frame(VP8D_COMP *pbi)
vp8_yv12_extend_frame_borders_ptr
(
&
pc
->
yv12_fb
[
pc
->
new_fb_idx
]);
/*cm->frame_to_show);*/
}
else
#endif
{
int
ibc
=
0
;
int
num_part
=
1
<<
pc
->
multi_token_partition
;
...
...
vp8/decoder/onyxd_if.c
View file @
315e3c25
...
...
@@ -114,8 +114,10 @@ VP8D_PTR vp8dx_create_decompressor(VP8D_CONFIG *oxcf)
pbi
->
ready_for_new_data
=
1
;
pbi
->
CPUFreq
=
0
;
/*vp8_get_processor_freq();*/
#if CONFIG_MULTITHREAD
pbi
->
max_threads
=
oxcf
->
max_threads
;
vp8_decoder_create_threads
(
pbi
);
#endif
/* vp8cx_init_de_quantizer() is first called here. Add check in frame_init_dequantizer() to avoid
* unnecessary calling of vp8cx_init_de_quantizer() for every frame.
...
...
@@ -149,8 +151,8 @@ void vp8dx_remove_decompressor(VP8D_PTR ptr)
#if CONFIG_MULTITHREAD
if
(
pbi
->
b_multithreaded_rd
)
vp8mt_de_alloc_temp_buffers
(
pbi
,
pbi
->
common
.
mb_rows
);
#endif
vp8_decoder_remove_threads
(
pbi
);
#endif
vp8_remove_common
(
&
pbi
->
common
);
vpx_free
(
pbi
);
}
...
...
@@ -407,6 +409,7 @@ int vp8dx_receive_compressed_data(VP8D_PTR ptr, unsigned long size, const unsign
return
retcode
;
}
#if CONFIG_MULTITHREAD
if
(
pbi
->
b_multithreaded_rd
&&
cm
->
multi_token_partition
!=
ONE_PARTITION
)
{
if
(
swap_frame_buffers
(
cm
))
...
...
@@ -424,6 +427,7 @@ int vp8dx_receive_compressed_data(VP8D_PTR ptr, unsigned long size, const unsign
return
-
1
;
}
}
else
#endif
{
if
(
swap_frame_buffers
(
cm
))
{
...
...
vp8/decoder/onyxd_int.h
View file @
315e3c25
...
...
@@ -87,14 +87,15 @@ typedef struct VP8Decompressor
unsigned
int
time_decoding
;
unsigned
int
time_loop_filtering
;
#if CONFIG_MULTITHREAD
/* variable for threading */
volatile
int
b_multithreaded_rd
;
int
max_threads
;
int
current_mb_col_main
;
int
decoding_thread_count
;
int
allocated_decoding_thread_count
;
/* variable for threading */
#if CONFIG_MULTITHREAD
int
mt_baseline_filter_level
[
MAX_MB_SEGMENTS
];
int
sync_range
;
int
*
mt_current_mb_col
;
/* Each row remembers its already decoded column. */
...
...
vp8/decoder/reconintra_mt.c
View file @
315e3c25
...
...
@@ -21,7 +21,6 @@
void
vp8mt_build_intra_predictors_mby
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
x
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
unsigned
char
*
yabove_row
;
/* = x->dst.y_buffer - x->dst.y_stride; */
unsigned
char
*
yleft_col
;
unsigned
char
yleft_buf
[
16
];
...
...
@@ -146,17 +145,10 @@ void vp8mt_build_intra_predictors_mby(VP8D_COMP *pbi, MACROBLOCKD *x, int mb_row
case
MB_MODE_COUNT
:
break
;
}
#else
(
void
)
pbi
;
(
void
)
x
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
void
vp8mt_build_intra_predictors_mby_s
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
x
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
unsigned
char
*
yabove_row
;
/* = x->dst.y_buffer - x->dst.y_stride; */
unsigned
char
*
yleft_col
;
unsigned
char
yleft_buf
[
16
];
...
...
@@ -289,17 +281,10 @@ void vp8mt_build_intra_predictors_mby_s(VP8D_COMP *pbi, MACROBLOCKD *x, int mb_r
case
MB_MODE_COUNT
:
break
;
}
#else
(
void
)
pbi
;
(
void
)
x
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
void
vp8mt_build_intra_predictors_mbuv
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
x
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
unsigned
char
*
uabove_row
;
/* = x->dst.u_buffer - x->dst.uv_stride; */
unsigned
char
*
uleft_col
;
/*[16];*/
unsigned
char
uleft_buf
[
8
];
...
...
@@ -452,17 +437,10 @@ void vp8mt_build_intra_predictors_mbuv(VP8D_COMP *pbi, MACROBLOCKD *x, int mb_ro
case
MB_MODE_COUNT
:
break
;
}
#else
(
void
)
pbi
;
(
void
)
x
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
void
vp8mt_build_intra_predictors_mbuv_s
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
x
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
unsigned
char
*
uabove_row
;
/* = x->dst.u_buffer - x->dst.uv_stride; */
unsigned
char
*
uleft_col
;
/*[16];*/
unsigned
char
uleft_buf
[
8
];
...
...
@@ -621,12 +599,6 @@ void vp8mt_build_intra_predictors_mbuv_s(VP8D_COMP *pbi, MACROBLOCKD *x, int mb_
case
MB_MODE_COUNT
:
break
;
}
#else
(
void
)
pbi
;
(
void
)
x
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
...
...
@@ -638,7 +610,6 @@ void vp8mt_predict_intra4x4(VP8D_COMP *pbi,
int
mb_col
,
int
num
)
{
#if CONFIG_MULTITHREAD
int
i
,
r
,
c
;
unsigned
char
*
Above
;
/* = *(x->base_dst) + x->dst - x->dst_stride; */
...
...
@@ -935,15 +906,6 @@ void vp8mt_predict_intra4x4(VP8D_COMP *pbi,
}
#else
(
void
)
pbi
;
(
void
)
xd
;
(
void
)
b_mode
;
(
void
)
predictor
;
(
void
)
mb_row
;
(
void
)
mb_col
;
(
void
)
num
;
#endif
}
/* copy 4 bytes from the above right down so that the 4x4 prediction modes using pixels above and
...
...
@@ -951,7 +913,6 @@ void vp8mt_predict_intra4x4(VP8D_COMP *pbi,
*/
void
vp8mt_intra_prediction_down_copy
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
x
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
unsigned
char
*
above_right
;
/* = *(x->block[0].base_dst) + x->block[0].dst - x->block[0].dst_stride + 16; */
unsigned
int
*
src_ptr
;
unsigned
int
*
dst_ptr0
;
...
...
@@ -973,10 +934,4 @@ void vp8mt_intra_prediction_down_copy(VP8D_COMP *pbi, MACROBLOCKD *x, int mb_row
*
dst_ptr0
=
*
src_ptr
;
*
dst_ptr1
=
*
src_ptr
;
*
dst_ptr2
=
*
src_ptr
;
#else
(
void
)
pbi
;
(
void
)
x
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
vp8/decoder/threading.c
View file @
315e3c25
...
...
@@ -38,7 +38,6 @@ extern void vp8_build_uvmvs(MACROBLOCKD *x, int fullpixel);
void
vp8_setup_decoding_thread_data
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
xd
,
MB_ROW_DEC
*
mbrd
,
int
count
)
{
#if CONFIG_MULTITHREAD
VP8_COMMON
*
const
pc
=
&
pbi
->
common
;
int
i
,
j
;
...
...
@@ -88,18 +87,11 @@ void vp8_setup_decoding_thread_data(VP8D_COMP *pbi, MACROBLOCKD *xd, MB_ROW_DEC
for
(
i
=
0
;
i
<
pc
->
mb_rows
;
i
++
)
pbi
->
mt_current_mb_col
[
i
]
=-
1
;
#else
(
void
)
pbi
;
(
void
)
xd
;
(
void
)
mbrd
;
(
void
)
count
;
#endif
}
void
vp8mt_decode_macroblock
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
xd
,
int
mb_row
,
int
mb_col
)
{
#if CONFIG_MULTITHREAD
int
eobtotal
=
0
;
int
i
,
do_clamp
=
xd
->
mode_info_context
->
mbmi
.
need_to_clamp_mvs
;
VP8_COMMON
*
pc
=
&
pbi
->
common
;
...
...
@@ -222,18 +214,11 @@ void vp8mt_decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int mb
(
xd
->
qcoeff
+
16
*
16
,
xd
->
block
[
16
].
dequant
,
xd
->
predictor
+
16
*
16
,
xd
->
dst
.
u_buffer
,
xd
->
dst
.
v_buffer
,
xd
->
dst
.
uv_stride
,
xd
->
eobs
+
16
);
#else
(
void
)
pbi
;
(
void
)
xd
;
(
void
)
mb_row
;
(
void
)
mb_col
;
#endif
}
THREAD_FUNCTION
vp8_thread_decoding_proc
(
void
*
p_data
)
{
#if CONFIG_MULTITHREAD
int
ithread
=
((
DECODETHREAD_DATA
*
)
p_data
)
->
ithread
;
VP8D_COMP
*
pbi
=
(
VP8D_COMP
*
)(((
DECODETHREAD_DATA
*
)
p_data
)
->
ptr1
);
MB_ROW_DEC
*
mbrd
=
(
MB_ROW_DEC
*
)(((
DECODETHREAD_DATA
*
)
p_data
)
->
ptr2
);
...
...
@@ -438,9 +423,6 @@ THREAD_FUNCTION vp8_thread_decoding_proc(void *p_data)
sem_post
(
&
pbi
->
h_event_end_decoding
);
}
}
#else
(
void
)
p_data
;
#endif
return
0
;
}
...
...
@@ -448,7 +430,6 @@ THREAD_FUNCTION vp8_thread_decoding_proc(void *p_data)
void
vp8_decoder_create_threads
(
VP8D_COMP
*
pbi
)
{
#if CONFIG_MULTITHREAD
int
core_count
=
0
;
int
ithread
;
...
...
@@ -482,16 +463,11 @@ void vp8_decoder_create_threads(VP8D_COMP *pbi)
pbi
->
allocated_decoding_thread_count
=
pbi
->
decoding_thread_count
;
}
#else
(
void
)
pbi
;
#endif
}
void
vp8mt_de_alloc_temp_buffers
(
VP8D_COMP
*
pbi
,
int
mb_rows
)
{
#if CONFIG_MULTITHREAD
VP8_COMMON
*
const
pc
=
&
pbi
->
common
;
int
i
;
...
...
@@ -589,15 +565,11 @@ void vp8mt_de_alloc_temp_buffers(VP8D_COMP *pbi, int mb_rows)
pbi
->
mt_vleft_col
=
NULL
;
}
}
#else
(
void
)
pbi
;
#endif
}
void
vp8mt_alloc_temp_buffers
(
VP8D_COMP
*
pbi
,
int
width
,
int
prev_mb_rows
)
{
#if CONFIG_MULTITHREAD
VP8_COMMON
*
const
pc
=
&
pbi
->
common
;
int
i
;
int
uv_width
;
...
...
@@ -646,17 +618,11 @@ void vp8mt_alloc_temp_buffers(VP8D_COMP *pbi, int width, int prev_mb_rows)
for
(
i
=
0
;
i
<
pc
->
mb_rows
;
i
++
)
CHECK_MEM_ERROR
(
pbi
->
mt_vleft_col
[
i
],
vpx_calloc
(
sizeof
(
unsigned
char
)
*
8
,
1
));
}
#else
(
void
)
pbi
;
(
void
)
width
;
#endif
}
void
vp8_decoder_remove_threads
(
VP8D_COMP
*
pbi
)
{
#if CONFIG_MULTITHREAD
/* shutdown MB Decoding thread; */
if
(
pbi
->
b_multithreaded_rd
)
{
...
...
@@ -702,15 +668,11 @@ void vp8_decoder_remove_threads(VP8D_COMP *pbi)
pbi
->
de_thread_data
=
NULL
;
}
}
#else
(
void
)
pbi
;
#endif
}
void
vp8mt_lpf_init
(
VP8D_COMP
*
pbi
,
int
default_filt_lvl
)
{
#if CONFIG_MULTITHREAD
VP8_COMMON
*
cm
=
&
pbi
->
common
;
MACROBLOCKD
*
mbd
=
&
pbi
->
mb
;
/*YV12_BUFFER_CONFIG *post = &cm->new_frame;*/
/*frame_to_show;*/
...
...
@@ -752,16 +714,11 @@ void vp8mt_lpf_init( VP8D_COMP *pbi, int default_filt_lvl)
vp8_init_loop_filter
(
cm
);
else
if
(
frame_type
!=
cm
->
last_frame_type
)
vp8_frame_init_loop_filter
(
lfi
,
frame_type
);
#else
(
void
)
pbi
;
(
void
)
default_filt_lvl
;
#endif
}
void
vp8mt_decode_mb_rows
(
VP8D_COMP
*
pbi
,
MACROBLOCKD
*
xd
)
{
#if CONFIG_MULTITHREAD
int
mb_row
;
VP8_COMMON
*
pc
=
&
pbi
->
common
;
...
...
@@ -981,8 +938,4 @@ void vp8mt_decode_mb_rows( VP8D_COMP *pbi, MACROBLOCKD *xd)
}
sem_wait
(
&
pbi
->
h_event_end_decoding
);
/* add back for each frame */
#else
(
void
)
pbi
;
(
void
)
xd
;
#endif
}
vp8/encoder/bitstream.c
View file @
315e3c25
...
...
@@ -1654,10 +1654,12 @@ void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size)
{
vp8_start_encode
(
&
cpi
->
bc2
,
cx_data
+
bc
->
pos
);
if
(
!
cpi
->
b_multi_threaded
)
pack_tokens
(
&
cpi
->
bc2
,
cpi
->
tok
,
cpi
->
tok_count
);
else
#if CONFIG_MULTITHREAD
if
(
cpi
->
b_multi_threaded
)
pack_mb_row_tokens
(
cpi
,
&
cpi
->
bc2
);
else
#endif
pack_tokens
(
&
cpi
->
bc2
,
cpi
->
tok
,
cpi
->
tok_count
);
vp8_stop_encode
(
&
cpi
->
bc2
);
oh
.
first_partition_length_in_bytes
=
cpi
->
bc
.
pos
;
...
...
vp8/encoder/encodeframe.c
View file @
315e3c25
...
...
@@ -800,28 +800,9 @@ void vp8_encode_frame(VP8_COMP *cpi)
struct
vpx_usec_timer
emr_timer
;
vpx_usec_timer_start
(
&
emr_timer
);
if
(
!
cpi
->
b_multi_threaded
)
{
// for each macroblock row in image
for
(
mb_row
=
0
;
mb_row
<
cm
->
mb_rows
;
mb_row
++
)
{
vp8_zero
(
cm
->
left_context
)
encode_mb_row
(
cpi
,
cm
,
mb_row
,
x
,
xd
,
&
tp
,
segment_counts
,
&
totalrate
);
// adjust to the next row of mbs
x
->
src
.
y_buffer
+=
16
*
x
->
src
.
y_stride
-
16
*
cm
->
mb_cols
;
x
->
src
.
u_buffer
+=
8
*
x
->
src
.
uv_stride
-
8
*
cm
->
mb_cols
;
x
->
src
.
v_buffer
+=
8
*
x
->
src
.
uv_stride
-
8
*
cm
->
mb_cols
;
}
cpi
->
tok_count
=
tp
-
cpi
->
tok
;
}
else
{
#if CONFIG_MULTITHREAD
if
(
cpi
->
b_multi_threaded
)
{
int
i
;
vp8cx_init_mbrthread_data
(
cpi
,
x
,
cpi
->
mb_row_ei
,
1
,
cpi
->
encoding_thread_count
);
...
...
@@ -886,7 +867,25 @@ void vp8_encode_frame(VP8_COMP *cpi)
x
->
activity_sum
+=
cpi
->
mb_row_ei
[
i
].
mb
.
activity_sum
;
}
}
else
#endif
{
// for each macroblock row in image
for
(
mb_row
=
0
;
mb_row
<
cm
->
mb_rows
;
mb_row
++
)
{
vp8_zero
(
cm
->
left_context
)
encode_mb_row
(
cpi
,
cm
,
mb_row
,
x
,
xd
,
&
tp
,
segment_counts
,
&
totalrate
);
// adjust to the next row of mbs
x
->
src
.
y_buffer
+=
16
*
x
->
src
.
y_stride
-
16
*
cm
->
mb_cols
;
x
->
src
.
u_buffer
+=
8
*
x
->
src
.
uv_stride
-
8
*
cm
->
mb_cols
;
x
->
src
.
v_buffer
+=
8
*
x
->
src
.
uv_stride
-
8
*
cm
->
mb_cols
;
}
cpi
->
tok_count
=
tp
-
cpi
->
tok
;
}
...
...
vp8/encoder/ethreading.c
View file @
315e3c25
...
...
@@ -13,6 +13,8 @@
#include "common.h"
#include "extend.h"
#if CONFIG_MULTITHREAD
extern
int
vp8cx_encode_inter_macroblock
(
VP8_COMP
*
cpi
,
MACROBLOCK
*
x
,
TOKENEXTRA
**
t
,
int
recon_yoffset
,
int
recon_uvoffset
);
...
...
@@ -25,7 +27,6 @@ extern void vp8_setup_block_ptrs(MACROBLOCK *x);
static
THREAD_FUNCTION
thread_encoding_proc
(
void
*
p_data
)
{
#if CONFIG_MULTITHREAD
int
ithread
=
((
ENCODETHREAD_DATA
*
)
p_data
)
->
ithread
;
VP8_COMP
*
cpi
=
(
VP8_COMP
*
)(((
ENCODETHREAD_DATA
*
)
p_data
)
->
ptr1
);
MB_ROW_COMP
*
mbri
=
(
MB_ROW_COMP
*
)(((
ENCODETHREAD_DATA
*
)
p_data
)
->
ptr2
);
...
...
@@ -247,10 +248,6 @@ THREAD_FUNCTION thread_encoding_proc(void *p_data)
}
}
#else
(
void
)
p_data
;
#endif
//printf("exit thread %d\n", ithread);
return
0
;
}
...
...
@@ -436,10 +433,6 @@ void vp8cx_create_encoder_threads(VP8_COMP *cpi)
cpi
->
processor_core_count
=
32
;
//vp8_get_proc_core_count();
CHECK_MEM_ERROR
(
cpi
->
tplist
,
vpx_malloc
(
sizeof
(
TOKENLIST
)
*
cpi
->
common
.
mb_rows
));
#if CONFIG_MULTITHREAD
if
(
cpi
->
processor_core_count
>
1
&&
cpi
->
oxcf
.
multi_threaded
>
1
)
{
int
ithread
;
...
...
@@ -488,13 +481,10 @@ void vp8cx_create_encoder_threads(VP8_COMP *cpi)
}
#endif
}
void
vp8cx_remove_encoder_threads
(
VP8_COMP
*
cpi
)
{
#if CONFIG_MULTITHREAD
if
(
cpi
->
b_multi_threaded
)
{
//shutdown other threads
...
...
@@ -521,7 +511,5 @@ void vp8cx_remove_encoder_threads(VP8_COMP *cpi)
vpx_free
(
cpi
->
en_thread_data
);
vpx_free
(
cpi
->
mt_current_mb_col
);
}
#endif
vpx_free
(
cpi
->
tplist
);
}
#endif
vp8/encoder/onyx_if.c
View file @
315e3c25
...
...
@@ -262,6 +262,9 @@ static void setup_features(VP8_COMP *cpi)
void
vp8_dealloc_compressor_data
(
VP8_COMP
*
cpi
)
{
vpx_free
(
cpi
->
tplist
);
cpi
->
tplist
=
NULL
;
// Delete last frame MV storage buffers
if
(
cpi
->
lfmv
!=
0
)
vpx_free
(
cpi
->
lfmv
);
...
...
@@ -1476,6 +1479,8 @@ void vp8_alloc_compressor_data(VP8_COMP *cpi)
else
cpi
->
mt_sync_range
=
16
;
#endif
CHECK_MEM_ERROR
(
cpi
->
tplist
,
vpx_malloc
(
sizeof
(
TOKENLIST
)
*
cpi
->
common
.
mb_rows
));
}
...
...
@@ -2427,7 +2432,9 @@ VP8_PTR vp8_create_compressor(VP8_CONFIG *oxcf)
init_mv_ref_counts
();
#endif
#if CONFIG_MULTITHREAD
vp8cx_create_encoder_threads
(
cpi
);
#endif
cpi
->
fn_ptr
[
BLOCK_16X16
].
sdf
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
sad16x16
);
cpi
->
fn_ptr
[
BLOCK_16X16
].
vf
=
VARIANCE_INVOKE
(
&
cpi
->
rtcd
.
variance
,
var16x16
);
...
...
@@ -2702,7 +2709,9 @@ void vp8_remove_compressor(VP8_PTR *ptr)
}
#if CONFIG_MULTITHREAD
vp8cx_remove_encoder_threads
(
cpi
);
#endif
vp8_dealloc_compressor_data
(
cpi
);
vpx_free
(
cpi
->
mb
.
ss
);
...
...
vp8/encoder/onyx_int.h
View file @
315e3c25
...
...
@@ -589,6 +589,7 @@ typedef struct
int
cyclic_refresh_q
;
signed
char
*
cyclic_refresh_map
;
#if CONFIG_MULTITHREAD
// multithread data
int
*
mt_current_mb_col
;
int
mt_sync_range
;
...
...
@@ -596,13 +597,10 @@ typedef struct
int
b_multi_threaded
;
int
encoding_thread_count
;
#if CONFIG_MULTITHREAD
pthread_t
*
h_encoding_thread
;
#endif
MB_ROW_COMP
*
mb_row_ei
;
ENCODETHREAD_DATA
*
en_thread_data
;
#if CONFIG_MULTITHREAD
//events
sem_t
*
h_event_start_encoding
;
sem_t
h_event_end_encoding
;
...
...
vp8/vp8cx.mk
View file @
315e3c25
...
...
@@ -42,7 +42,7 @@ VP8_CX_SRCS-yes += encoder/encodeframe.c
VP8_CX_SRCS-yes
+=
encoder/encodeintra.c
VP8_CX_SRCS-yes
+=
encoder/encodemb.c
VP8_CX_SRCS-yes
+=
encoder/encodemv.c
VP8_CX_SRCS-
yes
+=
encoder/ethreading.c
VP8_CX_SRCS-
$(CONFIG_MULTITHREAD)
+=
encoder/ethreading.c
VP8_CX_SRCS-yes
+=
encoder/firstpass.c
VP8_CX_SRCS-yes
+=
encoder/generic/csystemdependent.c
VP8_CX_SRCS-yes
+=
encoder/block.h
...
...
vp8/vp8dx.mk
View file @
315e3c25
...
...
@@ -65,7 +65,7 @@ VP8_DX_SRCS-yes += decoder/detokenize.h
VP8_DX_SRCS-yes
+=
decoder/onyxd_int.h
VP8_DX_SRCS-yes
+=
decoder/treereader.h
VP8_DX_SRCS-yes
+=
decoder/onyxd_if.c
VP8_DX_SRCS-
yes
+=
decoder/threading.c
VP8_DX_SRCS-
$(CONFIG_MULTITHREAD)
+=
decoder/threading.c
VP8_DX_SRCS-yes
+=
decoder/idct_blk.c
VP8_DX_SRCS-$(CONFIG_MULTITHREAD)
+=
decoder/reconintra_mt.h
VP8_DX_SRCS-$(CONFIG_MULTITHREAD)
+=
decoder/reconintra_mt.c
...
...
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