public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Brad Midgley <bmidgley@xmission.com>
To: bluez-devel@lists.sourceforge.net
Subject: Re: [Bluez-devel] AVDTP socket?
Date: Fri, 19 Nov 2004 14:51:20 -0700	[thread overview]
Message-ID: <419E6AD8.7050104@xmission.com> (raw)
In-Reply-To: <1100897144.7213.63.camel@pegasus>

Marcel,

I added rcplay.c to cvs and made you a developer on bluetooth-alsa so 
you can tweak things if you see fit.

The bluetake sometimes works and sometimes doesn't when using a2play. 
The same stream will work a couple of times and then it produces loud 
white noise. There is probably something still not quite right.

I disabled this section in a2dp.c

   memset(buf, 0, 12);
   buf[0] = 0x80;
   buf[2] = seq_num >> 8;
   buf[3] = seq_num & 0xff;
   buf[12] = 0x0ff;
   buf[13] = 0x0ff;
   memcpy(buf + 14, &sbc_info, sizeof(sbc_info));
   size = read(fd, buf + 14 + sizeof(sbc_info), mtu - sizeof(sbc_info) - 
14);
   write(streamfd, buf, size + 14 + sizeof(sbc_info));
   seq_num++;

but it didn't help or hurt. I couldn't see why sbc_info was being 
written to the stream since I thought it was just a file header. Does 
your headset work with a2play as it is in cvs now?

Brad

Marcel Holtmann wrote:
> Hi Brad,
> 
> 
>>actually like with the attached patch. Most of the example *.sbc files
>>are working. Some of them are not working and this is maybe because the
>>frame header information don't matches the SBC configuration. Or maybe
>>hcidump is decoding this wrong.
> 
> 
> and I figured out what the extra RFCOMM channel 1 on my Aiptek headphone
> does. You can simply stream the SBC files over it. The attached program
> will do this for you, but actually it only works on streams with two
> channels. I don't know what to change to support all test SBC files.
> 
> Regards
> 
> Marcel
> 
> 
> 
> ------------------------------------------------------------------------
> 
> /*
>  *
>  *  Stream SBC files over RFCOMM
>  *
>  *  Copyright (C) 2004  Marcel Holtmann <marcel@holtmann.org>
>  *
>  *
>  *  This program is free software; you can redistribute it and/or modify
>  *  it under the terms of the GNU General Public License version 2 as
>  *  published by the Free Software Foundation;
>  *
>  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
>  *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>  *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
>  *  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) AND AUTHOR(S) BE LIABLE FOR ANY
>  *  CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES 
>  *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
>  *  ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 
>  *  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
>  *
>  *  ALL LIABILITY, INCLUDING LIABILITY FOR INFRINGEMENT OF ANY PATENTS, 
>  *  COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS, RELATING TO USE OF THIS 
>  *  SOFTWARE IS DISCLAIMED.
>  *
>  */
> 
> #include <stdio.h>
> #include <errno.h>
> #include <fcntl.h>
> #include <sys/socket.h>
> 
> #include <bluetooth/bluetooth.h>
> #include <bluetooth/rfcomm.h>
> 
> static int rfcomm_connect(bdaddr_t *src, bdaddr_t *dst, uint8_t channel)
> {
> 	struct sockaddr_rc addr;
> 	int sk;
> 
> 	sk = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
> 	if (sk < 0)
> 		return -1;
> 
> 	memset(&addr, 0, sizeof(addr));
> 	addr.rc_family = AF_BLUETOOTH;
> 	bacpy(&addr.rc_bdaddr, src);
> 	if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
> 		close(sk);
> 		return -1;
> 	}
> 
> 	memset(&addr, 0, sizeof(addr));
> 	addr.rc_family = AF_BLUETOOTH;
> 	bacpy(&addr.rc_bdaddr, dst);
> 	addr.rc_channel = channel;
> 	if (connect(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
> 		close(sk);
> 		return -1;
> 	}
> 
> 	return sk;
> }
> 
> static int stream_sbc(fd, sk)
> {
> 	unsigned char buf[330];
> 	int err, len;
> 
> 	while (1) {
> 		len = read(fd, buf, sizeof(buf));
> 		if (len <= 0)
> 			break;
> 
> 		err = write(sk, buf, len);
> 		if (err < 0)
> 			break;
> 	}
> 
> 	return 0;
> }
> 
> int main(int argc, char *argv[])
> {
> 	bdaddr_t bdaddr;
> 	int fd, sk;
> 
> 	if (argc < 3) {
> 		fprintf(stderr, "Usage: rcplay <bdaddr> <filename>\n");
> 		exit(1);
> 	}
> 
> 	str2ba(argv[1], &bdaddr);
> 
> 	fd = open(argv[2], O_RDONLY);
> 	if (fd < 0) {
> 		perror("Can't open file");
> 		exit(1);
> 	}
> 
> 	sk = rfcomm_connect(BDADDR_ANY, &bdaddr, 1);
> 	if (sk < 0) {
> 		perror("Can't open connection");
> 		close(fd);
> 		exit(1);
> 	}
> 
> 	stream_sbc(fd, sk);
> 
> 	close(sk);
> 	close(fd);
> 
> 	return 0;
> }


-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

  parent reply	other threads:[~2004-11-19 21:51 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-07  5:36 [Bluez-devel] AVDTP socket? Brad Midgley
2004-11-07 12:27 ` Marcel Holtmann
2004-11-07 16:34   ` Brad Midgley
2004-11-07 16:54     ` Marcel Holtmann
2004-11-07 18:55       ` Brad Midgley
2004-11-07 21:33         ` Marcel Holtmann
2004-11-10  5:46           ` Brad Midgley
2004-11-10  8:47             ` Marcel Holtmann
2004-11-10 18:01               ` Brad Midgley
2004-11-10 18:57                 ` Marcel Holtmann
2004-11-12 23:13                   ` Brad Midgley
2004-11-13  0:38                     ` Marcel Holtmann
2004-11-13  3:13                       ` Brad Midgley
2004-11-13 13:06                         ` Marcel Holtmann
2004-11-14  7:54                           ` Brad Midgley
2004-11-14 15:29                             ` Marcel Holtmann
2004-11-17 15:47                               ` Brad Midgley
2004-11-17 15:52                                 ` Marcel Holtmann
2004-11-17 19:52                                   ` Brad Midgley
2004-11-17 20:01                                     ` Marcel Holtmann
2004-11-18 13:27                                 ` Henryk Plötz
2004-11-18 15:26                                   ` Brad Midgley
2004-11-18 19:11                                     ` Marcel Holtmann
2004-11-19 18:32                                     ` Henryk Plötz
2004-11-19 21:40                                       ` Brad Midgley
2004-11-18 23:59                                   ` Marcel Holtmann
2004-11-19  9:03                                     ` Brad Midgley
2004-11-19 11:41                                       ` Marcel Holtmann
2004-11-19 16:35                                         ` Brad Midgley
2004-11-19 16:53                                           ` Marcel Holtmann
2004-11-19 17:39                                             ` Marcel Holtmann
2004-11-19 20:45                                               ` Marcel Holtmann
2004-11-19 21:20                                                 ` Henryk Plötz
2004-11-19 21:33                                                   ` Marcel Holtmann
2004-11-19 23:58                                                     ` Henryk Plötz
2004-11-19 21:51                                                 ` Brad Midgley [this message]
2004-11-19 22:04                                                   ` Marcel Holtmann
2004-11-19 23:23                                                     ` Brad Midgley
2004-11-20  0:09                                                       ` Marcel Holtmann
2004-11-20  0:04                                                     ` Henryk Plötz
2004-11-20  0:43                                                       ` Marcel Holtmann
2004-11-20  0:50                                                         ` Henryk Plötz
2004-11-20  5:04                                                           ` Marcel Holtmann
2004-11-19 18:44                                       ` Henryk Plötz
2004-11-19 18:38                                     ` Henryk Plötz
2004-11-19 18:56                                       ` Marcel Holtmann
2004-11-19 21:06                                         ` Henryk Plötz
2004-11-19 21:23                                           ` Marcel Holtmann
2004-11-21  5:46                                   ` Henryk Plötz
2004-11-21 17:44                                     ` Marcel Holtmann
2004-11-22  3:18                                       ` Marcel Holtmann
2004-11-22  4:32                                         ` Henryk Plötz
2004-11-22 13:28                                           ` Marcel Holtmann
2004-11-23  0:53                                             ` Henryk Plötz
2004-11-23  6:22                                               ` Marcel Holtmann
2004-11-22  4:22                                     ` [Bluez-devel] sbc reindent Brad Midgley
2004-11-15  8:24                         ` [Bluez-devel] AVDTP socket? Sebastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=419E6AD8.7050104@xmission.com \
    --to=bmidgley@xmission.com \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox