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
f7d22867
Commit
f7d22867
authored
Nov 29, 2013
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mpeg4videodec: move intra_dc_threshold from MpegEncContext to Mpeg4DecContext
parent
a097f004
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
8 additions
and
7 deletions
+8
-7
mpeg4video.h
libavcodec/mpeg4video.h
+2
-0
mpeg4videodec.c
libavcodec/mpeg4videodec.c
+4
-4
mpegvideo.h
libavcodec/mpegvideo.h
+0
-1
vaapi_mpeg4.c
libavcodec/vaapi_mpeg4.c
+2
-2
No files found.
libavcodec/mpeg4video.h
View file @
f7d22867
...
...
@@ -84,6 +84,8 @@ typedef struct Mpeg4DecContext {
int
enhancement_type
;
int
scalability
;
int
use_intra_dc_vlc
;
///< QP above whch the ac VLC should be used for intra dc
int
intra_dc_threshold
;
/* bug workarounds */
int
divx_version
;
...
...
libavcodec/mpeg4videodec.c
View file @
f7d22867
...
...
@@ -1179,7 +1179,7 @@ static int mpeg4_decode_partitioned_mb(MpegEncContext *s, int16_t block[6][64])
mb_type
=
s
->
current_picture
.
mb_type
[
xy
];
cbp
=
s
->
cbp_table
[
xy
];
ctx
->
use_intra_dc_vlc
=
s
->
qscale
<
s
->
intra_dc_threshold
;
ctx
->
use_intra_dc_vlc
=
s
->
qscale
<
ctx
->
intra_dc_threshold
;
if
(
s
->
current_picture
.
qscale_table
[
xy
]
!=
s
->
qscale
)
ff_set_qscale
(
s
,
s
->
current_picture
.
qscale_table
[
xy
]);
...
...
@@ -1577,7 +1577,7 @@ intra:
}
cbp
=
(
cbpc
&
3
)
|
(
cbpy
<<
2
);
ctx
->
use_intra_dc_vlc
=
s
->
qscale
<
s
->
intra_dc_threshold
;
ctx
->
use_intra_dc_vlc
=
s
->
qscale
<
ctx
->
intra_dc_threshold
;
if
(
dquant
)
ff_set_qscale
(
s
,
s
->
qscale
+
quant_tab
[
get_bits
(
&
s
->
gb
,
2
)]);
...
...
@@ -2180,7 +2180,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb)
if
(
s
->
pict_type
==
AV_PICTURE_TYPE_B
)
skip_bits_long
(
gb
,
ctx
->
cplx_estimation_trash_b
);
s
->
intra_dc_threshold
=
ff_mpeg4_dc_threshold
[
get_bits
(
gb
,
3
)];
ctx
->
intra_dc_threshold
=
ff_mpeg4_dc_threshold
[
get_bits
(
gb
,
3
)];
if
(
!
s
->
progressive_sequence
)
{
s
->
top_field_first
=
get_bits1
(
gb
);
s
->
alternate_scan
=
get_bits1
(
gb
);
...
...
@@ -2245,7 +2245,7 @@ static int decode_vop_header(Mpeg4DecContext *ctx, GetBitContext *gb)
s
->
data_partitioning
,
ctx
->
resync_marker
,
ctx
->
num_sprite_warping_points
,
s
->
sprite_warping_accuracy
,
1
-
s
->
no_rounding
,
s
->
vo_type
,
s
->
vol_control_parameters
?
" VOLC"
:
" "
,
s
->
intra_dc_threshold
,
s
->
vol_control_parameters
?
" VOLC"
:
" "
,
ctx
->
intra_dc_threshold
,
ctx
->
cplx_estimation_trash_i
,
ctx
->
cplx_estimation_trash_p
,
ctx
->
cplx_estimation_trash_b
);
}
...
...
libavcodec/mpegvideo.h
View file @
f7d22867
...
...
@@ -592,7 +592,6 @@ typedef struct MpegEncContext {
int
low_delay
;
///< no reordering needed / has no b-frames
int
vo_type
;
int
vol_control_parameters
;
///< does the stream contain the low_delay flag, used to workaround buggy encoders
int
intra_dc_threshold
;
///< QP above whch the ac VLC should be used for intra dc
PutBitContext
tex_pb
;
///< used for data partitioned VOPs
PutBitContext
pb2
;
///< used for data partitioned VOPs
int
mpeg_quant
;
...
...
libavcodec/vaapi_mpeg4.c
View file @
f7d22867
...
...
@@ -25,7 +25,7 @@
#include "mpeg4video.h"
/** Reconstruct bitstream intra_dc_vlc_thr */
static
int
mpeg4_get_intra_dc_vlc_thr
(
Mpeg
En
cContext
*
s
)
static
int
mpeg4_get_intra_dc_vlc_thr
(
Mpeg
4De
cContext
*
s
)
{
switch
(
s
->
intra_dc_threshold
)
{
case
99
:
return
0
;
...
...
@@ -83,7 +83,7 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_
pic_param
->
vop_fields
.
bits
.
vop_coding_type
=
s
->
pict_type
-
AV_PICTURE_TYPE_I
;
pic_param
->
vop_fields
.
bits
.
backward_reference_vop_coding_type
=
s
->
pict_type
==
AV_PICTURE_TYPE_B
?
s
->
next_picture
.
f
.
pict_type
-
AV_PICTURE_TYPE_I
:
0
;
pic_param
->
vop_fields
.
bits
.
vop_rounding_type
=
s
->
no_rounding
;
pic_param
->
vop_fields
.
bits
.
intra_dc_vlc_thr
=
mpeg4_get_intra_dc_vlc_thr
(
s
);
pic_param
->
vop_fields
.
bits
.
intra_dc_vlc_thr
=
mpeg4_get_intra_dc_vlc_thr
(
ctx
);
pic_param
->
vop_fields
.
bits
.
top_field_first
=
s
->
top_field_first
;
pic_param
->
vop_fields
.
bits
.
alternate_vertical_scan_flag
=
s
->
alternate_scan
;
pic_param
->
vop_fcode_forward
=
s
->
f_code
;
...
...
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