* PROBLEM: Wrong bitrate when capturing sound from Creative webcam
@ 2010-02-24 17:18 Arseniy Lartsev
2010-03-02 10:31 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Arseniy Lartsev @ 2010-02-24 17:18 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: Text/Plain, Size: 9129 bytes --]
Hello,
I've got an USB webcam (Creative VF0470 Live Cam Notebook). The problem
is that sound from it's microphone is captured with wrong bitrate.
Apparently it reports 16000 Hz while it should actually be 8000 (so
the sound is 2x faster).
The following patch works for me:
--- linux-2.6.33-rc8/sound/usb/usbaudio.c
+++ linux-2.6.33-rc8-new/sound/usb/usbaudio.c
@@ -2513,6 +2513,8 @@ static int parse_audio_format_rates(stru
chip->usb_id == USB_ID(0x0d8c, 0x0102)) &&
fp->altsetting == 5 && fp->maxpacksize == 392)
rate = 96000;
+ if ((rate == 16000) && (chip->usb_id = USB_ID(0x041e, 0x4068)))
+ rate = 8000;
fp->rate_table[fp->nr_rates] = rate;
if (!fp->rate_min || rate < fp->rate_min)
fp->rate_min = rate;
I'm not sure if this is correct, maybe there should be more conditions
to identify this particular camera.
Here is output of lsusb -v:
Bus 002 Device 002: ID 041e:4068 Creative Technology, Ltd Webcam Live! Notebook
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x041e Creative Technology, Ltd
idProduct 0x4068 Webcam Live! Notebook
bcdDevice 1.00
iManufacturer 1 Creative Labs
iProduct 2 VF0470 Live! Cam Notebook
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 180
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0180 1x 384 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 2
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 3
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0300 1x 768 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 4
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0380 1x 896 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 30
bInCollection 1
baInterfaceNr( 0) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Microphone
bAssocTerminal 0
bNrChannels 1
wChannelConfig 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 2
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 1
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 2
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 16000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0028 1x 40 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Device Status: 0x0000
(Bus Powered)
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 316 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: PROBLEM: Wrong bitrate when capturing sound from Creative webcam
2010-02-24 17:18 PROBLEM: Wrong bitrate when capturing sound from Creative webcam Arseniy Lartsev
@ 2010-03-02 10:31 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2010-03-02 10:31 UTC (permalink / raw)
To: Arseniy Lartsev; +Cc: linux-kernel
At Wed, 24 Feb 2010 20:18:38 +0300,
Arseniy Lartsev wrote:
>
> Hello,
>
> I've got an USB webcam (Creative VF0470 Live Cam Notebook). The problem
> is that sound from it's microphone is captured with wrong bitrate.
> Apparently it reports 16000 Hz while it should actually be 8000 (so
> the sound is 2x faster).
>
> The following patch works for me:
> --- linux-2.6.33-rc8/sound/usb/usbaudio.c
> +++ linux-2.6.33-rc8-new/sound/usb/usbaudio.c
> @@ -2513,6 +2513,8 @@ static int parse_audio_format_rates(stru
> chip->usb_id == USB_ID(0x0d8c, 0x0102)) &&
> fp->altsetting == 5 && fp->maxpacksize == 392)
> rate = 96000;
> + if ((rate == 16000) && (chip->usb_id = USB_ID(0x041e, 0x4068)))
> + rate = 8000;
> fp->rate_table[fp->nr_rates] = rate;
> if (!fp->rate_min || rate < fp->rate_min)
> fp->rate_min = rate;
>
> I'm not sure if this is correct, maybe there should be more conditions
> to identify this particular camera.
The change looks good to me. Could you give your sign-off for merge,
preferably repost in a right patch style?
thanks,
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-03-02 10:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-24 17:18 PROBLEM: Wrong bitrate when capturing sound from Creative webcam Arseniy Lartsev
2010-03-02 10:31 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®