Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
c612b00d
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c612b00d
编写于
9月 09, 2007
作者:
R
Reimar Döffinger
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify nuv: factor out LZO decompression
Originally committed as revision 10440 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
dd6ca721
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
14 deletion
+9
-14
libavcodec/nuv.c
libavcodec/nuv.c
+9
-14
未找到文件。
libavcodec/nuv.c
浏览文件 @
c612b00d
...
...
@@ -114,11 +114,19 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
// skip rest of the frameheader.
buf
=
&
buf
[
12
];
buf_size
-=
12
;
if
(
comptype
==
NUV_RTJPEG_IN_LZO
||
comptype
==
NUV_LZO
)
{
int
outlen
=
c
->
decomp_size
,
inlen
=
buf_size
;
if
(
lzo1x_decode
(
c
->
decomp_buf
,
&
outlen
,
buf
,
&
inlen
))
av_log
(
avctx
,
AV_LOG_ERROR
,
"error during lzo decompression
\n
"
);
buf
=
c
->
decomp_buf
;
buf_size
=
c
->
decomp_size
;
}
c
->
pic
.
pict_type
=
FF_I_TYPE
;
c
->
pic
.
key_frame
=
1
;
// decompress/copy/whatever data
switch
(
comptype
)
{
case
NUV_LZO
:
case
NUV_UNCOMPRESSED
:
{
int
height
=
c
->
height
;
if
(
buf_size
<
c
->
width
*
height
*
3
/
2
)
{
...
...
@@ -128,24 +136,11 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size,
copy_frame
(
&
c
->
pic
,
buf
,
c
->
width
,
height
);
break
;
}
case
NUV_RTJPEG_IN_LZO
:
case
NUV_RTJPEG
:
{
rtjpeg_decode_frame_yuv420
(
&
c
->
rtj
,
&
c
->
pic
,
buf
,
buf_size
);
break
;
}
case
NUV_RTJPEG_IN_LZO
:
{
int
outlen
=
c
->
decomp_size
,
inlen
=
buf_size
;
if
(
lzo1x_decode
(
c
->
decomp_buf
,
&
outlen
,
buf
,
&
inlen
))
av_log
(
avctx
,
AV_LOG_ERROR
,
"error during lzo decompression
\n
"
);
rtjpeg_decode_frame_yuv420
(
&
c
->
rtj
,
&
c
->
pic
,
c
->
decomp_buf
,
c
->
decomp_size
);
break
;
}
case
NUV_LZO
:
{
int
outlen
=
c
->
decomp_size
,
inlen
=
buf_size
;
if
(
lzo1x_decode
(
c
->
decomp_buf
,
&
outlen
,
buf
,
&
inlen
))
av_log
(
avctx
,
AV_LOG_ERROR
,
"error during lzo decompression
\n
"
);
copy_frame
(
&
c
->
pic
,
c
->
decomp_buf
,
c
->
width
,
c
->
height
);
break
;
}
case
NUV_BLACK
:
{
memset
(
c
->
pic
.
data
[
0
],
0
,
c
->
width
*
c
->
height
);
memset
(
c
->
pic
.
data
[
1
],
128
,
c
->
width
*
c
->
height
/
4
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录