Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
8a6cb114
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,发现更多精彩内容 >>
提交
8a6cb114
编写于
11月 27, 2004
作者:
M
Michael Niedermayer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
10l (encode bit buffer too small for 1920x1080 raw)
Originally committed as revision 3716 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
11087086
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
10 deletion
+13
-10
ffmpeg.c
ffmpeg.c
+13
-10
未找到文件。
ffmpeg.c
浏览文件 @
8a6cb114
...
...
@@ -663,6 +663,7 @@ static void fill_pad_region(AVPicture* img, int height, int width,
}
}
static
int
bit_buffer_size
=
1024
*
256
;
static
uint8_t
*
bit_buffer
=
NULL
;
static
void
do_video_out
(
AVFormatContext
*
s
,
...
...
@@ -678,8 +679,6 @@ static void do_video_out(AVFormatContext *s,
AVCodecContext
*
enc
,
*
dec
;
enum
PixelFormat
target_pixfmt
;
#define VIDEO_BUFFER_SIZE (1024*1024)
avcodec_get_frame_defaults
(
&
picture_format_temp
);
avcodec_get_frame_defaults
(
&
picture_crop_temp
);
...
...
@@ -891,7 +890,7 @@ static void do_video_out(AVFormatContext *s,
big_picture
.
pts
=
av_rescale
(
ost
->
sync_opts
,
AV_TIME_BASE
*
(
int64_t
)
enc
->
frame_rate_base
,
enc
->
frame_rate
);
//av_log(NULL, AV_LOG_DEBUG, "%lld -> encoder\n", ost->sync_opts);
ret
=
avcodec_encode_video
(
enc
,
bit_buffer
,
VIDEO_BUFFER_SIZE
,
bit_buffer
,
bit_buffer_size
,
&
big_picture
);
//enc->frame_number = enc->real_pict_num;
if
(
ret
){
...
...
@@ -1298,12 +1297,12 @@ static int output_packet(AVInputStream *ist, int ist_index,
switch
(
ost
->
st
->
codec
.
codec_type
)
{
case
CODEC_TYPE_AUDIO
:
ret
=
avcodec_encode_audio
(
enc
,
bit_buffer
,
VIDEO_BUFFER_SIZE
,
NULL
);
ret
=
avcodec_encode_audio
(
enc
,
bit_buffer
,
bit_buffer_size
,
NULL
);
audio_size
+=
ret
;
pkt
.
flags
|=
PKT_FLAG_KEY
;
break
;
case
CODEC_TYPE_VIDEO
:
ret
=
avcodec_encode_video
(
enc
,
bit_buffer
,
VIDEO_BUFFER_SIZE
,
NULL
);
ret
=
avcodec_encode_video
(
enc
,
bit_buffer
,
bit_buffer_size
,
NULL
);
video_size
+=
ret
;
if
(
enc
->
coded_frame
&&
enc
->
coded_frame
->
key_frame
)
pkt
.
flags
|=
PKT_FLAG_KEY
;
...
...
@@ -1355,11 +1354,6 @@ static int av_encode(AVFormatContext **output_files,
file_table
=
(
AVInputFile
*
)
av_mallocz
(
nb_input_files
*
sizeof
(
AVInputFile
));
if
(
!
file_table
)
goto
fail
;
if
(
!
bit_buffer
)
bit_buffer
=
av_malloc
(
VIDEO_BUFFER_SIZE
);
if
(
!
bit_buffer
)
goto
fail
;
/* input stream init */
j
=
0
;
...
...
@@ -1663,8 +1657,17 @@ static int av_encode(AVFormatContext **output_files,
}
}
}
if
(
codec
->
codec_type
==
CODEC_TYPE_VIDEO
){
int
size
=
codec
->
width
*
codec
->
height
;
bit_buffer_size
=
FFMAX
(
bit_buffer_size
,
4
*
size
);
}
}
if
(
!
bit_buffer
)
bit_buffer
=
av_malloc
(
bit_buffer_size
);
if
(
!
bit_buffer
)
goto
fail
;
/* dump the file output parameters - cannot be done before in case
of stream copy */
for
(
i
=
0
;
i
<
nb_output_files
;
i
++
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录