Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
c13dd704
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c13dd704
编写于
9月 19, 2007
作者:
M
Mauro Carvalho Chehab
提交者:
Mauro Carvalho Chehab
5月 18, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
V4L/DVB (12797): tm6000: Allow selecting audio bitrate
Signed-off-by:
N
Mauro Carvalho Chehab
<
mchehab@redhat.com
>
上级
7e2fdf02
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
10 deletion
+30
-10
drivers/staging/tm6000/tm6000-core.c
drivers/staging/tm6000/tm6000-core.c
+2
-0
drivers/staging/tm6000/tm6000-video.c
drivers/staging/tm6000/tm6000-video.c
+27
-10
drivers/staging/tm6000/tm6000.h
drivers/staging/tm6000/tm6000.h
+1
-0
未找到文件。
drivers/staging/tm6000/tm6000-core.c
浏览文件 @
c13dd704
...
...
@@ -722,9 +722,11 @@ printk("Original value=%d\n",val);
switch
(
bitrate
)
{
case
44100
:
val
|=
0xd0
;
dev
->
audio_bitrate
=
bitrate
;
break
;
case
48000
:
val
|=
0x60
;
dev
->
audio_bitrate
=
bitrate
;
break
;
}
val
=
tm6000_set_reg
(
dev
,
REQ_07_SET_GET_AVREG
,
0xeb
,
val
);
...
...
drivers/staging/tm6000/tm6000-video.c
浏览文件 @
c13dd704
...
...
@@ -566,8 +566,7 @@ static int tm6000_prepare_isoc(struct tm6000_core *dev,
dev
->
isoc_ctl
.
urb
[
i
]
=
urb
;
dev
->
isoc_ctl
.
transfer_buffer
[
i
]
=
usb_buffer_alloc
(
dev
->
udev
,
sb_size
,
GFP_KERNEL
,
&
dev
->
isoc_ctl
.
urb
[
i
]
->
transfer_dma
);
sb_size
,
GFP_KERNEL
,
&
urb
->
transfer_dma
);
if
(
!
dev
->
isoc_ctl
.
transfer_buffer
[
i
])
{
tm6000_err
(
"unable to allocate %i bytes for transfer"
" buffer %i
\n
"
,
sb_size
,
i
);
...
...
@@ -787,14 +786,32 @@ buffer_prepare(struct videobuf_queue *vq, struct videobuf_buffer *vb,
urb_init
=
1
;
if
(
urb_init
)
{
/* Should allocate/request at least h
res x v res x 2 bytes/pixel */
urbsize
=
(
buf
->
vb
.
size
+
dev
->
max_isoc_in
-
1
)
/
dev
->
max_isoc_in
;
/* Hack to allocate memory for Video + Audio */
/* FIXME: should also consider header ovehead of
4 bytes/180 bytes */
urbsize
+=
((
48000
*
4
+
24
)
/
25
+
dev
->
max_isoc_in
-
1
)
/
dev
->
max_isoc_in
;
/* memory for video
Should be at least
Vres x Vres x 2 bytes/pixel by frame */
urbsize
=
buf
->
vb
.
size
;
/* memory for audio
Should be at least
bitrate * 2 channels * 2 bytes / frame rate */
if
(
dev
->
norm
&
V4L2_STD_525_60
)
{
urbsize
+=
(
dev
->
audio_bitrate
*
4
+
29
)
/
30
;
}
else
{
urbsize
+=
(
dev
->
audio_bitrate
*
4
+
24
)
/
25
;
}
/* each audio frame seeems to have a frame number
with 2 bytes */
urbsize
+=
2
;
/* Add 4 bytes by each 180 bytes frame */
urbsize
+=
((
urbsize
+
179
)
/
180
)
*
4
;
/* Round to an enough number of URBs */
urbsize
=
(
urbsize
+
dev
->
max_isoc_in
-
1
)
/
dev
->
max_isoc_in
;
printk
(
"Allocating %d packets to handle %lu size
\n
"
,
urbsize
,
buf
->
vb
.
size
);
dprintk
(
dev
,
V4L2_DEBUG_QUEUE
,
"Allocating %d packets to handle "
"%lu size
\n
"
,
urbsize
,
buf
->
vb
.
size
);
...
...
drivers/staging/tm6000/tm6000.h
浏览文件 @
c13dd704
...
...
@@ -137,6 +137,7 @@ struct tm6000_core {
/* Demodulator configuration */
int
demod_addr
;
/* demodulator address */
int
audio_bitrate
;
/* i2c i/o */
struct
i2c_adapter
i2c_adap
;
struct
i2c_client
i2c_client
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录