Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
B1ack1e
FFmpeg
提交
4024b566
F
FFmpeg
项目概览
B1ack1e
/
FFmpeg
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
FFmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4024b566
编写于
5月 24, 2016
作者:
D
Diego Biurrun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
golomb: Give svq3_get_se_golomb()/svq3_get_ue_golomb() better names
上级
7ca4fdc0
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
49 addition
and
49 deletion
+49
-49
libavcodec/dirac.c
libavcodec/dirac.c
+29
-29
libavcodec/golomb.h
libavcodec/golomb.h
+3
-3
libavcodec/rv30.c
libavcodec/rv30.c
+2
-2
libavcodec/rv34.c
libavcodec/rv34.c
+2
-2
libavcodec/rv40.c
libavcodec/rv40.c
+1
-1
libavcodec/svq3.c
libavcodec/svq3.c
+12
-12
未找到文件。
libavcodec/dirac.c
浏览文件 @
4024b566
...
...
@@ -148,8 +148,8 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
/* [DIRAC_STD] 10.3.2 Frame size. frame_size(video_params) */
/* [DIRAC_STD] custom_dimensions_flag */
if
(
get_bits1
(
gb
))
{
dsh
->
width
=
svq3_get
_ue_golomb
(
gb
);
/* [DIRAC_STD] FRAME_WIDTH */
dsh
->
height
=
svq3_get
_ue_golomb
(
gb
);
/* [DIRAC_STD] FRAME_HEIGHT */
dsh
->
width
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] FRAME_WIDTH */
dsh
->
height
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] FRAME_HEIGHT */
}
/* [DIRAC_STD] 10.3.3 Chroma Sampling Format.
...
...
@@ -157,7 +157,7 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
/* [DIRAC_STD] custom_chroma_format_flag */
if
(
get_bits1
(
gb
))
/* [DIRAC_STD] CHROMA_FORMAT_INDEX */
dsh
->
chroma_format
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
chroma_format
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
chroma_format
>
2
)
{
if
(
log_ctx
)
av_log
(
log_ctx
,
AV_LOG_ERROR
,
"Unknown chroma format %d
\n
"
,
...
...
@@ -169,22 +169,22 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
/* [DIRAC_STD] custom_scan_format_flag */
if
(
get_bits1
(
gb
))
/* [DIRAC_STD] SOURCE_SAMPLING */
dsh
->
interlaced
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
interlaced
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
interlaced
>
1
)
return
AVERROR_INVALIDDATA
;
/* [DIRAC_STD] 10.3.5 Frame Rate. frame_rate(video_params) */
if
(
get_bits1
(
gb
))
{
/* [DIRAC_STD] custom_frame_rate_flag */
dsh
->
frame_rate_index
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
frame_rate_index
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
frame_rate_index
>
10
)
return
AVERROR_INVALIDDATA
;
if
(
!
dsh
->
frame_rate_index
)
{
/* [DIRAC_STD] FRAME_RATE_NUMER */
frame_rate
.
num
=
svq3_get
_ue_golomb
(
gb
);
frame_rate
.
num
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] FRAME_RATE_DENOM */
frame_rate
.
den
=
svq3_get
_ue_golomb
(
gb
);
frame_rate
.
den
=
get_interleaved
_ue_golomb
(
gb
);
}
}
/* [DIRAC_STD] preset_frame_rate(video_params, index) */
...
...
@@ -201,14 +201,14 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
* pixel_aspect_ratio(video_params) */
if
(
get_bits1
(
gb
))
{
/* [DIRAC_STD] custom_pixel_aspect_ratio_flag */
/* [DIRAC_STD] index */
dsh
->
aspect_ratio_index
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
aspect_ratio_index
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
aspect_ratio_index
>
6
)
return
AVERROR_INVALIDDATA
;
if
(
!
dsh
->
aspect_ratio_index
)
{
dsh
->
sample_aspect_ratio
.
num
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
sample_aspect_ratio
.
den
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
sample_aspect_ratio
.
num
=
get_interleaved
_ue_golomb
(
gb
);
dsh
->
sample_aspect_ratio
.
den
=
get_interleaved
_ue_golomb
(
gb
);
}
}
/* [DIRAC_STD] Take value from Table 10.4 Available preset pixel
...
...
@@ -220,13 +220,13 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
/* [DIRAC_STD] 10.3.7 Clean area. clean_area(video_params) */
if
(
get_bits1
(
gb
))
{
/* [DIRAC_STD] custom_clean_area_flag */
/* [DIRAC_STD] CLEAN_WIDTH */
dsh
->
clean_width
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
clean_width
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] CLEAN_HEIGHT */
dsh
->
clean_height
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
clean_height
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] CLEAN_LEFT_OFFSET */
dsh
->
clean_left_offset
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
clean_left_offset
=
get_interleaved
_ue_golomb
(
gb
);
/* [DIRAC_STD] CLEAN_RIGHT_OFFSET */
dsh
->
clean_right_offset
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
clean_right_offset
=
get_interleaved
_ue_golomb
(
gb
);
}
/* [DIRAC_STD] 10.3.8 Signal range. signal_range(video_params)
...
...
@@ -234,17 +234,17 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
* AVCOL_RANGE_MPEG/JPEG values */
if
(
get_bits1
(
gb
))
{
/* [DIRAC_STD] custom_signal_range_flag */
/* [DIRAC_STD] index */
dsh
->
pixel_range_index
=
svq3_get
_ue_golomb
(
gb
);
dsh
->
pixel_range_index
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
pixel_range_index
>
4
)
return
AVERROR_INVALIDDATA
;
// This assumes either fullrange or MPEG levels only
if
(
!
dsh
->
pixel_range_index
)
{
luma_offset
=
svq3_get
_ue_golomb
(
gb
);
luma_depth
=
av_log2
(
svq3_get
_ue_golomb
(
gb
))
+
1
;
svq3_get
_ue_golomb
(
gb
);
/* chroma offset */
svq3_get
_ue_golomb
(
gb
);
/* chroma excursion */
luma_offset
=
get_interleaved
_ue_golomb
(
gb
);
luma_depth
=
av_log2
(
get_interleaved
_ue_golomb
(
gb
))
+
1
;
get_interleaved
_ue_golomb
(
gb
);
/* chroma offset */
get_interleaved
_ue_golomb
(
gb
);
/* chroma excursion */
dsh
->
color_range
=
luma_offset
?
AVCOL_RANGE_MPEG
:
AVCOL_RANGE_JPEG
;
}
...
...
@@ -265,7 +265,7 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
/* [DIRAC_STD] 10.3.9 Colour specification. colour_spec(video_params) */
if
(
get_bits1
(
gb
))
{
/* [DIRAC_STD] custom_colour_spec_flag */
/* [DIRAC_STD] index */
idx
=
dsh
->
color_spec_index
=
svq3_get
_ue_golomb
(
gb
);
idx
=
dsh
->
color_spec_index
=
get_interleaved
_ue_golomb
(
gb
);
if
(
dsh
->
color_spec_index
>
4
)
return
AVERROR_INVALIDDATA
;
...
...
@@ -277,20 +277,20 @@ static int parse_source_parameters(AVDiracSeqHeader *dsh, GetBitContext *gb,
if
(
!
dsh
->
color_spec_index
)
{
/* [DIRAC_STD] 10.3.9.1 Colour primaries */
if
(
get_bits1
(
gb
))
{
idx
=
svq3_get
_ue_golomb
(
gb
);
idx
=
get_interleaved
_ue_golomb
(
gb
);
if
(
idx
<
3
)
dsh
->
color_primaries
=
dirac_primaries
[
idx
];
}
/* [DIRAC_STD] 10.3.9.2 Colour matrix */
if
(
get_bits1
(
gb
))
{
idx
=
svq3_get
_ue_golomb
(
gb
);
idx
=
get_interleaved
_ue_golomb
(
gb
);
if
(
!
idx
)
dsh
->
colorspace
=
AVCOL_SPC_BT709
;
else
if
(
idx
==
1
)
dsh
->
colorspace
=
AVCOL_SPC_BT470BG
;
}
/* [DIRAC_STD] 10.3.9.3 Transfer function */
if
(
get_bits1
(
gb
)
&&
!
svq3_get
_ue_golomb
(
gb
))
if
(
get_bits1
(
gb
)
&&
!
get_interleaved
_ue_golomb
(
gb
))
dsh
->
color_trc
=
AVCOL_TRC_BT709
;
}
}
else
{
...
...
@@ -323,13 +323,13 @@ int av_dirac_parse_sequence_header(AVDiracSeqHeader **pdsh,
goto
fail
;
/* [DIRAC_SPEC] 10.1 Parse Parameters. parse_parameters() */
version_major
=
svq3_get
_ue_golomb
(
&
gb
);
svq3_get
_ue_golomb
(
&
gb
);
/* version_minor */
dsh
->
profile
=
svq3_get
_ue_golomb
(
&
gb
);
dsh
->
level
=
svq3_get
_ue_golomb
(
&
gb
);
version_major
=
get_interleaved
_ue_golomb
(
&
gb
);
get_interleaved
_ue_golomb
(
&
gb
);
/* version_minor */
dsh
->
profile
=
get_interleaved
_ue_golomb
(
&
gb
);
dsh
->
level
=
get_interleaved
_ue_golomb
(
&
gb
);
/* [DIRAC_SPEC] sequence_header() -> base_video_format as defined in
* 10.2 Base Video Format, table 10.1 Dirac predefined video formats */
video_format
=
svq3_get
_ue_golomb
(
&
gb
);
video_format
=
get_interleaved
_ue_golomb
(
&
gb
);
if
(
log_ctx
)
{
if
(
version_major
<
2
)
...
...
@@ -366,7 +366,7 @@ int av_dirac_parse_sequence_header(AVDiracSeqHeader **pdsh,
/* [DIRAC_STD] picture_coding_mode shall be 0 for fields and 1 for frames
* currently only used to signal field coding */
picture_coding_mode
=
svq3_get
_ue_golomb
(
&
gb
);
picture_coding_mode
=
get_interleaved
_ue_golomb
(
&
gb
);
if
(
picture_coding_mode
!=
0
)
{
if
(
log_ctx
)
{
av_log
(
log_ctx
,
AV_LOG_ERROR
,
"Unsupported picture coding mode %d"
,
...
...
libavcodec/golomb.h
浏览文件 @
4024b566
...
...
@@ -108,7 +108,7 @@ static inline int get_ue_golomb_31(GetBitContext *gb)
return
ff_ue_golomb_vlc_code
[
buf
];
}
static
inline
unsigned
svq3_get
_ue_golomb
(
GetBitContext
*
gb
)
static
inline
unsigned
get_interleaved
_ue_golomb
(
GetBitContext
*
gb
)
{
uint32_t
buf
;
...
...
@@ -218,7 +218,7 @@ static inline int get_se_golomb_long(GetBitContext *gb)
return
buf
;
}
static
inline
int
svq3_get
_se_golomb
(
GetBitContext
*
gb
)
static
inline
int
get_interleaved
_se_golomb
(
GetBitContext
*
gb
)
{
unsigned
int
buf
;
...
...
@@ -253,7 +253,7 @@ static inline int svq3_get_se_golomb(GetBitContext *gb)
static
inline
int
dirac_get_se_golomb
(
GetBitContext
*
gb
)
{
uint32_t
ret
=
svq3_get
_ue_golomb
(
gb
);
uint32_t
ret
=
get_interleaved
_ue_golomb
(
gb
);
if
(
ret
)
{
uint32_t
buf
;
...
...
libavcodec/rv30.c
浏览文件 @
4024b566
...
...
@@ -81,7 +81,7 @@ static int rv30_decode_intra_types(RV34DecContext *r, GetBitContext *gb, int8_t
for
(
i
=
0
;
i
<
4
;
i
++
,
dst
+=
r
->
intra_types_stride
-
4
){
for
(
j
=
0
;
j
<
4
;
j
+=
2
){
unsigned
code
=
svq3_get
_ue_golomb
(
gb
)
<<
1
;
unsigned
code
=
get_interleaved
_ue_golomb
(
gb
)
<<
1
;
if
(
code
>=
81
*
2
){
av_log
(
r
->
s
.
avctx
,
AV_LOG_ERROR
,
"Incorrect intra prediction code
\n
"
);
return
-
1
;
...
...
@@ -109,7 +109,7 @@ static int rv30_decode_mb_info(RV34DecContext *r)
static
const
int
rv30_b_types
[
6
]
=
{
RV34_MB_SKIP
,
RV34_MB_B_DIRECT
,
RV34_MB_B_FORWARD
,
RV34_MB_B_BACKWARD
,
RV34_MB_TYPE_INTRA
,
RV34_MB_TYPE_INTRA16x16
};
MpegEncContext
*
s
=
&
r
->
s
;
GetBitContext
*
gb
=
&
s
->
gb
;
unsigned
code
=
svq3_get
_ue_golomb
(
gb
);
unsigned
code
=
get_interleaved
_ue_golomb
(
gb
);
if
(
code
>
11
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
"Incorrect MB type code
\n
"
);
...
...
libavcodec/rv34.c
浏览文件 @
4024b566
...
...
@@ -854,8 +854,8 @@ static int rv34_decode_mv(RV34DecContext *r, int block_type)
memset
(
r
->
dmv
,
0
,
sizeof
(
r
->
dmv
));
for
(
i
=
0
;
i
<
num_mvs
[
block_type
];
i
++
){
r
->
dmv
[
i
][
0
]
=
svq3_get
_se_golomb
(
gb
);
r
->
dmv
[
i
][
1
]
=
svq3_get
_se_golomb
(
gb
);
r
->
dmv
[
i
][
0
]
=
get_interleaved
_se_golomb
(
gb
);
r
->
dmv
[
i
][
1
]
=
get_interleaved
_se_golomb
(
gb
);
}
switch
(
block_type
){
case
RV34_MB_TYPE_INTRA
:
...
...
libavcodec/rv40.c
浏览文件 @
4024b566
...
...
@@ -231,7 +231,7 @@ static int rv40_decode_mb_info(RV34DecContext *r)
int
mb_pos
=
s
->
mb_x
+
s
->
mb_y
*
s
->
mb_stride
;
if
(
!
r
->
s
.
mb_skip_run
)
r
->
s
.
mb_skip_run
=
svq3_get
_ue_golomb
(
gb
)
+
1
;
r
->
s
.
mb_skip_run
=
get_interleaved
_ue_golomb
(
gb
)
+
1
;
if
(
--
r
->
s
.
mb_skip_run
)
return
RV34_MB_SKIP
;
...
...
libavcodec/svq3.c
浏览文件 @
4024b566
...
...
@@ -290,7 +290,7 @@ static inline int svq3_decode_block(GetBitContext *gb, int16_t *block,
const
uint8_t
*
const
scan
=
scan_patterns
[
type
];
for
(
limit
=
(
16
>>
intra
);
index
<
16
;
index
=
limit
,
limit
+=
8
)
{
for
(;
(
vlc
=
svq3_get
_ue_golomb
(
gb
))
!=
0
;
index
++
)
{
for
(;
(
vlc
=
get_interleaved
_ue_golomb
(
gb
))
!=
0
;
index
++
)
{
int
sign
=
(
vlc
&
1
)
?
0
:
-
1
;
vlc
=
vlc
+
1
>>
1
;
...
...
@@ -527,8 +527,8 @@ static inline int svq3_mc_dir(SVQ3Context *s, int size, int mode,
if
(
mode
==
PREDICT_MODE
)
{
dx
=
dy
=
0
;
}
else
{
dy
=
svq3_get
_se_golomb
(
&
s
->
gb_slice
);
dx
=
svq3_get
_se_golomb
(
&
s
->
gb_slice
);
dy
=
get_interleaved
_se_golomb
(
&
s
->
gb_slice
);
dx
=
get_interleaved
_se_golomb
(
&
s
->
gb_slice
);
if
(
dx
==
INVALID_VLC
||
dy
==
INVALID_VLC
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
"invalid MV vlc
\n
"
);
...
...
@@ -839,7 +839,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type)
/* decode prediction codes for luma blocks */
for
(
i
=
0
;
i
<
16
;
i
+=
2
)
{
vlc
=
svq3_get
_ue_golomb
(
&
s
->
gb_slice
);
vlc
=
get_interleaved
_ue_golomb
(
&
s
->
gb_slice
);
if
(
vlc
>=
25
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
...
...
@@ -917,7 +917,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type)
if
(
!
IS_INTRA16x16
(
mb_type
)
&&
(
!
IS_SKIP
(
mb_type
)
||
s
->
pict_type
==
AV_PICTURE_TYPE_B
))
{
if
((
vlc
=
svq3_get
_ue_golomb
(
&
s
->
gb_slice
))
>=
48
)
{
if
((
vlc
=
get_interleaved
_ue_golomb
(
&
s
->
gb_slice
))
>=
48
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
"cbp_vlc=%"
PRIu32
"
\n
"
,
vlc
);
return
-
1
;
}
...
...
@@ -927,7 +927,7 @@ static int svq3_decode_mb(SVQ3Context *s, unsigned int mb_type)
}
if
(
IS_INTRA16x16
(
mb_type
)
||
(
s
->
pict_type
!=
AV_PICTURE_TYPE_I
&&
s
->
adaptive_quant
&&
cbp
))
{
s
->
qscale
+=
svq3_get
_se_golomb
(
&
s
->
gb_slice
);
s
->
qscale
+=
get_interleaved
_se_golomb
(
&
s
->
gb_slice
);
if
(
s
->
qscale
>
31u
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
"qscale:%d
\n
"
,
s
->
qscale
);
...
...
@@ -1045,7 +1045,7 @@ static int svq3_decode_slice_header(AVCodecContext *avctx)
skip_bits_long
(
&
s
->
gb
,
slice_bytes
*
8
);
}
if
((
slice_id
=
svq3_get
_ue_golomb
(
&
s
->
gb_slice
))
>=
3
)
{
if
((
slice_id
=
get_interleaved
_ue_golomb
(
&
s
->
gb_slice
))
>=
3
)
{
av_log
(
s
->
avctx
,
AV_LOG_ERROR
,
"illegal slice type %u
\n
"
,
slice_id
);
return
-
1
;
}
...
...
@@ -1228,12 +1228,12 @@ static av_cold int svq3_decode_init(AVCodecContext *avctx)
avctx
->
has_b_frames
=
!
s
->
low_delay
;
if
(
s
->
unknown_flag
)
{
#if CONFIG_ZLIB
unsigned
watermark_width
=
svq3_get
_ue_golomb
(
&
gb
);
unsigned
watermark_height
=
svq3_get
_ue_golomb
(
&
gb
);
int
u1
=
svq3_get
_ue_golomb
(
&
gb
);
unsigned
watermark_width
=
get_interleaved
_ue_golomb
(
&
gb
);
unsigned
watermark_height
=
get_interleaved
_ue_golomb
(
&
gb
);
int
u1
=
get_interleaved
_ue_golomb
(
&
gb
);
int
u2
=
get_bits
(
&
gb
,
8
);
int
u3
=
get_bits
(
&
gb
,
2
);
int
u4
=
svq3_get
_ue_golomb
(
&
gb
);
int
u4
=
get_interleaved
_ue_golomb
(
&
gb
);
unsigned
long
buf_len
=
watermark_width
*
watermark_height
*
4
;
int
offset
=
get_bits_count
(
&
gb
)
+
7
>>
3
;
...
...
@@ -1501,7 +1501,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data,
/* TODO: support s->mb_skip_run */
}
mb_type
=
svq3_get
_ue_golomb
(
&
s
->
gb_slice
);
mb_type
=
get_interleaved
_ue_golomb
(
&
s
->
gb_slice
);
if
(
s
->
pict_type
==
AV_PICTURE_TYPE_I
)
mb_type
+=
8
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录