Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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