Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
4f4cc0ef
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4f4cc0ef
编写于
9月 18, 2009
作者:
M
malc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
audio: use muldiv64 where it makes sense
Signed-off-by:
N
malc
<
av1474@comtv.ru
>
上级
68f6dc7e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
12 addition
and
9 deletion
+12
-9
audio/audio.c
audio/audio.c
+2
-1
audio/audio_template.h
audio/audio_template.h
+1
-1
audio/noaudio.c
audio/noaudio.c
+3
-2
audio/wavaudio.c
audio/wavaudio.c
+2
-1
hw/gus.c
hw/gus.c
+2
-2
hw/sb16.c
hw/sb16.c
+2
-2
未找到文件。
audio/audio.c
浏览文件 @
4f4cc0ef
...
...
@@ -1878,7 +1878,8 @@ static void audio_init (void)
}
conf
.
period
.
ticks
=
1
;
}
else
{
conf
.
period
.
ticks
=
get_ticks_per_sec
()
/
conf
.
period
.
hertz
;
conf
.
period
.
ticks
=
muldiv64
(
1
,
get_ticks_per_sec
(),
conf
.
period
.
hertz
);
}
e
=
qemu_add_vm_change_state_handler
(
audio_vm_change_state_handler
,
s
);
...
...
audio/audio_template.h
浏览文件 @
4f4cc0ef
...
...
@@ -556,7 +556,7 @@ uint64_t glue (AUD_get_elapsed_usec_, TYPE) (SW *sw, QEMUAudioTimeStamp *ts)
return
0
;
}
return
(
delta
*
sw
->
hw
->
info
.
freq
)
/
1000000
;
return
muldiv64
(
delta
,
sw
->
hw
->
info
.
freq
,
1000000
)
;
}
#undef TYPE
...
...
audio/noaudio.c
浏览文件 @
4f4cc0ef
...
...
@@ -53,7 +53,7 @@ static int no_run_out (HWVoiceOut *hw)
now
=
qemu_get_clock
(
vm_clock
);
ticks
=
now
-
no
->
old_ticks
;
bytes
=
(
ticks
*
hw
->
info
.
bytes_per_second
)
/
get_ticks_per_sec
(
);
bytes
=
muldiv64
(
ticks
,
hw
->
info
.
bytes_per_second
,
get_ticks_per_sec
()
);
bytes
=
audio_MIN
(
bytes
,
INT_MAX
);
samples
=
bytes
>>
hw
->
info
.
shift
;
...
...
@@ -109,7 +109,8 @@ static int no_run_in (HWVoiceIn *hw)
if
(
dead
)
{
int64_t
now
=
qemu_get_clock
(
vm_clock
);
int64_t
ticks
=
now
-
no
->
old_ticks
;
int64_t
bytes
=
(
ticks
*
hw
->
info
.
bytes_per_second
)
/
get_ticks_per_sec
();
int64_t
bytes
=
muldiv64
(
ticks
,
hw
->
info
.
bytes_per_second
,
get_ticks_per_sec
());
no
->
old_ticks
=
now
;
bytes
=
audio_MIN
(
bytes
,
INT_MAX
);
...
...
audio/wavaudio.c
浏览文件 @
4f4cc0ef
...
...
@@ -54,7 +54,8 @@ static int wav_run_out (HWVoiceOut *hw)
struct
st_sample
*
src
;
int64_t
now
=
qemu_get_clock
(
vm_clock
);
int64_t
ticks
=
now
-
wav
->
old_ticks
;
int64_t
bytes
=
(
ticks
*
hw
->
info
.
bytes_per_second
)
/
get_ticks_per_sec
();
int64_t
bytes
=
muldiv64
(
ticks
,
hw
->
info
.
bytes_per_second
,
get_ticks_per_sec
());
if
(
bytes
>
INT_MAX
)
{
samples
=
INT_MAX
>>
hw
->
info
.
shift
;
...
...
hw/gus.c
浏览文件 @
4f4cc0ef
...
...
@@ -156,8 +156,8 @@ static void GUS_callback (void *opaque, int free)
}
s
->
left
=
samples
;
reset:
gus_irqgen
(
&
s
->
emu
,
(
double
)
(
net
*
1000000
)
/
s
->
freq
);
reset:
gus_irqgen
(
&
s
->
emu
,
muldiv64
(
net
,
1000000
,
s
->
freq
)
);
}
int
GUS_irqrequest
(
GUSEmuState
*
emu
,
int
hwirq
,
int
n
)
...
...
hw/sb16.c
浏览文件 @
4f4cc0ef
...
...
@@ -758,8 +758,8 @@ static void complete (SB16State *s)
freq
=
s
->
freq
>
0
?
s
->
freq
:
11025
;
samples
=
dsp_get_lohi
(
s
)
+
1
;
bytes
=
samples
<<
s
->
fmt_stereo
<<
(
s
->
fmt_bits
==
16
);
ticks
=
(
bytes
*
get_ticks_per_sec
())
/
freq
;
if
(
ticks
<
get_ticks_per_sec
()
/
1024
)
{
ticks
=
muldiv64
(
bytes
,
get_ticks_per_sec
(),
freq
)
;
if
(
ticks
<
get_ticks_per_sec
()
/
1024
)
{
qemu_irq_raise
(
s
->
pic
);
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录