Lines Matching full:cfg
60 bt_receive(struct bt_config *cfg, void *ptr, int len, int use_delay) in bt_receive() argument
62 struct sbc_header *phdr = (struct sbc_header *)cfg->mtu_data; in bt_receive()
63 struct sbc_encode *sbc = cfg->handle.sbc_enc; in bt_receive()
73 switch (cfg->blocks) { in bt_receive()
88 switch (cfg->bands) { in bt_receive()
97 if (cfg->chmode != MODE_MONO) { in bt_receive()
119 err = sbc_decode_frame(cfg, sbc->rem_data_len * 8); in bt_receive()
126 err = read(cfg->fd, cfg->mtu_data, cfg->mtu); in bt_receive()
164 struct bt_config *cfg = pbe->arg; in bt_close() local
166 if (cfg->hc > 0) { in bt_close()
167 avdtpAbort(cfg->hc, cfg->sep); in bt_close()
168 avdtpClose(cfg->hc, cfg->sep); in bt_close()
169 close(cfg->hc); in bt_close()
170 cfg->hc = -1; in bt_close()
172 if (cfg->fd > 0) { in bt_close()
173 close(cfg->fd); in bt_close()
174 cfg->fd = -1; in bt_close()
181 struct bt_config *cfg = pbe->arg; in bt_play_close() local
183 switch (cfg->codec) { in bt_play_close()
185 if (cfg->handle.sbc_enc == NULL) in bt_play_close()
187 free(cfg->handle.sbc_enc); in bt_play_close()
188 cfg->handle.sbc_enc = NULL; in bt_play_close()
192 if (cfg->handle.av.context == NULL) in bt_play_close()
194 av_free(cfg->rem_in_data); in bt_play_close()
195 av_frame_free(&cfg->handle.av.frame); in bt_play_close()
196 avcodec_close(cfg->handle.av.context); in bt_play_close()
197 avformat_free_context(cfg->handle.av.format); in bt_play_close()
198 cfg->handle.av.context = NULL; in bt_play_close()
210 struct bt_config *cfg = pbe->arg; in bt_rec_close() local
212 switch (cfg->codec) { in bt_rec_close()
363 int bufsize __unused, int *pchannels, int *pformat, struct bt_config *cfg, in bt_open() argument
393 cfg->freq = FREQ_UNDEFINED; in bt_open()
394 cfg->aacMode1 = 0x80; in bt_open()
395 cfg->aacMode2 = 0x0C; in bt_open()
398 cfg->freq = FREQ_UNDEFINED; in bt_open()
399 cfg->aacMode1 = 0x40; in bt_open()
400 cfg->aacMode2 = 0x0C; in bt_open()
403 cfg->freq = FREQ_UNDEFINED; in bt_open()
404 cfg->aacMode1 = 0x20; in bt_open()
405 cfg->aacMode2 = 0x0C; in bt_open()
408 cfg->freq = FREQ_16K; in bt_open()
409 cfg->aacMode1 = 0x10; in bt_open()
410 cfg->aacMode2 = 0x0C; in bt_open()
413 cfg->freq = FREQ_UNDEFINED; in bt_open()
414 cfg->aacMode1 = 0x08; in bt_open()
415 cfg->aacMode2 = 0x0C; in bt_open()
418 cfg->freq = FREQ_UNDEFINED; in bt_open()
419 cfg->aacMode1 = 0x04; in bt_open()
420 cfg->aacMode2 = 0x0C; in bt_open()
423 cfg->freq = FREQ_32K; in bt_open()
424 cfg->aacMode1 = 0x02; in bt_open()
425 cfg->aacMode2 = 0x0C; in bt_open()
428 cfg->freq = FREQ_44_1K; in bt_open()
429 cfg->aacMode1 = 0x01; in bt_open()
430 cfg->aacMode2 = 0x0C; in bt_open()
433 cfg->freq = FREQ_48K; in bt_open()
434 cfg->aacMode1 = 0; in bt_open()
435 cfg->aacMode2 = 0x8C; in bt_open()
438 cfg->freq = FREQ_UNDEFINED; in bt_open()
439 cfg->aacMode1 = 0; in bt_open()
440 cfg->aacMode2 = 0x4C; in bt_open()
443 cfg->freq = FREQ_UNDEFINED; in bt_open()
444 cfg->aacMode1 = 0; in bt_open()
445 cfg->aacMode2 = 0x2C; in bt_open()
448 cfg->freq = FREQ_UNDEFINED; in bt_open()
449 cfg->aacMode1 = 0; in bt_open()
450 cfg->aacMode2 = 0x1C; in bt_open()
456 cfg->bands = BANDS_8; in bt_open()
457 cfg->bitpool = 0; in bt_open()
461 cfg->aacMode2 &= 0xF8; in bt_open()
462 cfg->chmode = MODE_MONO; in bt_open()
465 cfg->aacMode2 &= 0xF4; in bt_open()
466 cfg->chmode = MODE_STEREO; in bt_open()
470 cfg->allocm = ALLOC_LOUDNESS; in bt_open()
472 if (cfg->chmode == MODE_MONO || cfg->chmode == MODE_DUAL) in bt_open()
477 if (cfg->bands == BANDS_8) in bt_open()
485 cfg->bitpool = tmpbitpool; in bt_open()
497 cfg->hc = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BLUETOOTH_PROTO_L2CAP); in bt_open()
498 if (cfg->hc < 0) { in bt_open()
507 if (bind(cfg->hc, (struct sockaddr *)&addr, sizeof(addr)) < 0) { in bt_open()
513 if (connect(cfg->hc, (struct sockaddr *)&addr, sizeof(addr)) < 0) { in bt_open()
517 if (avdtpDiscoverAndConfig(cfg, isSink)) { in bt_open()
521 if (avdtpOpen(cfg->hc, cfg->sep)) { in bt_open()
525 cfg->fd = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BLUETOOTH_PROTO_L2CAP); in bt_open()
526 if (cfg->fd < 0) { in bt_open()
536 if (bind(cfg->fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { in bt_open()
542 if (connect(cfg->fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { in bt_open()
547 if (getsockopt(cfg->fd, SOL_L2CAP, SO_L2CAP_OMTU, &cfg->mtu, &mtusize) == -1) { in bt_open()
551 temp = cfg->mtu * 16; in bt_open()
552 if (setsockopt(cfg->fd, SOL_SOCKET, SO_SNDBUF, &temp, sizeof(temp)) == -1) { in bt_open()
556 temp = cfg->mtu; in bt_open()
557 if (setsockopt(cfg->fd, SOL_SOCKET, SO_SNDLOWAT, &temp, sizeof(temp)) == -1) { in bt_open()
562 if (getsockopt(cfg->fd, SOL_L2CAP, SO_L2CAP_IMTU, &cfg->mtu, &mtusize) == -1) { in bt_open()
566 temp = cfg->mtu * 16; in bt_open()
567 if (setsockopt(cfg->fd, SOL_SOCKET, SO_RCVBUF, &temp, sizeof(temp)) == -1) { in bt_open()
572 if (setsockopt(cfg->fd, SOL_SOCKET, SO_RCVLOWAT, &temp, sizeof(temp)) == -1) { in bt_open()
577 if (ioctl(cfg->fd, FIONBIO, &temp) == -1) { in bt_open()
583 if (avdtpStart(cfg->hc, cfg->sep)) { in bt_open()
587 switch (cfg->chmode) { in bt_open()
598 if (cfg->hc > 0) { in bt_open()
599 close(cfg->hc); in bt_open()
600 cfg->hc = -1; in bt_open()
602 if (cfg->fd > 0) { in bt_open()
603 close(cfg->fd); in bt_open()
604 cfg->fd = -1; in bt_open()
610 bt_init_cfg(struct bt_config *cfg) in bt_init_cfg() argument
612 memset(cfg, 0, sizeof(*cfg)); in bt_init_cfg()
619 struct bt_config *cfg = pbe->arg; in bt_rec_open() local
622 bt_init_cfg(cfg); in bt_rec_open()
625 cfg, SDP_SERVICE_CLASS_AUDIO_SOURCE, 0); in bt_rec_open()
635 struct bt_config *cfg = pbe->arg; in bt_play_open() local
638 bt_init_cfg(cfg); in bt_play_open()
641 cfg, SDP_SERVICE_CLASS_AUDIO_SINK, 1); in bt_play_open()
646 switch (cfg->codec) { in bt_play_open()
648 cfg->handle.sbc_enc = in bt_play_open()
649 malloc(sizeof(*cfg->handle.sbc_enc)); in bt_play_open()
650 if (cfg->handle.sbc_enc == NULL) in bt_play_open()
652 memset(cfg->handle.sbc_enc, 0, sizeof(*cfg->handle.sbc_enc)); in bt_play_open()
656 cfg->handle.av.codec = __DECONST(AVCodec *, in bt_play_open()
658 if (cfg->handle.av.codec == NULL) { in bt_play_open()
662 cfg->handle.av.format = avformat_alloc_context(); in bt_play_open()
663 if (cfg->handle.av.format == NULL) { in bt_play_open()
667 cfg->handle.av.format->oformat = in bt_play_open()
669 if (cfg->handle.av.format->oformat == NULL) { in bt_play_open()
673 cfg->handle.av.stream = avformat_new_stream( in bt_play_open()
674 cfg->handle.av.format, cfg->handle.av.codec); in bt_play_open()
676 if (cfg->handle.av.stream == NULL) { in bt_play_open()
680 cfg->handle.av.context = avcodec_alloc_context3(cfg->handle.av.codec); in bt_play_open()
681 if (cfg->handle.av.context == NULL) { in bt_play_open()
685 /*avcodec_get_context_defaults3(cfg->handle.av.context,*/ in bt_play_open()
686 /*cfg->handle.av.codec);*/ in bt_play_open()
688 cfg->handle.av.context->bit_rate = 128000; in bt_play_open()
689 cfg->handle.av.context->sample_fmt = AV_SAMPLE_FMT_FLTP; in bt_play_open()
690 cfg->handle.av.context->sample_rate = samplerate; in bt_play_open()
693 cfg->handle.av.context->ch_layout = *(AVChannelLayout *)AV_CH_LAYOUT_MONO; in bt_play_open()
696 cfg->handle.av.context->ch_layout = *(AVChannelLayout *)AV_CH_LAYOUT_STEREO; in bt_play_open()
700 cfg->handle.av.context->profile = FF_PROFILE_AAC_LOW; in bt_play_open()
707 if (avcodec_open2(cfg->handle.av.context, in bt_play_open()
708 cfg->handle.av.codec, &opts) < 0) { in bt_play_open()
716 cfg->handle.av.frame = av_frame_alloc(); in bt_play_open()
717 if (cfg->handle.av.frame == NULL) { in bt_play_open()
721 cfg->handle.av.frame->nb_samples = cfg->handle.av.context->frame_size; in bt_play_open()
722 cfg->handle.av.frame->format = cfg->handle.av.context->sample_fmt; in bt_play_open()
723 cfg->handle.av.frame->ch_layout = cfg->handle.av.context->ch_layout; in bt_play_open()
724 cfg->rem_in_size = av_samples_get_buffer_size(NULL, in bt_play_open()
725 cfg->handle.av.context->ch_layout.nb_channels, in bt_play_open()
726 cfg->handle.av.context->frame_size, in bt_play_open()
727 cfg->handle.av.context->sample_fmt, 0); in bt_play_open()
729 cfg->rem_in_data = av_malloc(cfg->rem_in_size); in bt_play_open()
730 if (cfg->rem_in_data == NULL) { in bt_play_open()
732 (unsigned)cfg->rem_in_size); in bt_play_open()
735 retval = avcodec_fill_audio_frame(cfg->handle.av.frame, in bt_play_open()
736 cfg->handle.av.context->ch_layout.nb_channels, in bt_play_open()
737 cfg->handle.av.context->sample_fmt, in bt_play_open()
738 cfg->rem_in_data, cfg->rem_in_size, 0); in bt_play_open()
745 av_free(cfg->rem_in_data); in bt_play_open()
747 av_frame_free(&cfg->handle.av.frame); in bt_play_open()
749 avcodec_close(cfg->handle.av.context); in bt_play_open()
751 avformat_free_context(cfg->handle.av.format); in bt_play_open()
752 cfg->handle.av.context = NULL; in bt_play_open()
773 struct bt_config *cfg = pbe->arg; in bt_play_sbc_transfer() local
774 struct sbc_encode *sbc = cfg->handle.sbc_enc; in bt_play_sbc_transfer()
779 switch (cfg->blocks) { in bt_play_sbc_transfer()
798 switch (cfg->bands) { in bt_play_sbc_transfer()
812 if (cfg->chmode != MODE_MONO) { in bt_play_sbc_transfer()
836 struct sbc_header *phdr = (struct sbc_header *)cfg->mtu_data; in bt_play_sbc_transfer()
840 if (cfg->chmode == MODE_MONO) in bt_play_sbc_transfer()
845 pkt_len = sbc_encode_frame(cfg); in bt_play_sbc_transfer()
848 if (cfg->mtu_offset == 0) { in bt_play_sbc_transfer()
851 phdr->seqnumMSB = (uint8_t)(cfg->mtu_seqnumber >> 8); in bt_play_sbc_transfer()
852 phdr->seqnumLSB = (uint8_t)(cfg->mtu_seqnumber); in bt_play_sbc_transfer()
853 phdr->ts3 = (uint8_t)(cfg->mtu_timestamp >> 24); in bt_play_sbc_transfer()
854 phdr->ts2 = (uint8_t)(cfg->mtu_timestamp >> 16); in bt_play_sbc_transfer()
855 phdr->ts1 = (uint8_t)(cfg->mtu_timestamp >> 8); in bt_play_sbc_transfer()
856 phdr->ts0 = (uint8_t)(cfg->mtu_timestamp); in bt_play_sbc_transfer()
860 cfg->mtu_seqnumber++; in bt_play_sbc_transfer()
861 cfg->mtu_offset += sizeof(*phdr); in bt_play_sbc_transfer()
864 rem = cfg->mtu - cfg->mtu_offset; in bt_play_sbc_transfer()
872 xlen = write(cfg->fd, cfg->mtu_data, cfg->mtu_offset); in bt_play_sbc_transfer()
878 cfg->mtu_offset = 0; in bt_play_sbc_transfer()
881 memcpy(cfg->mtu_data + cfg->mtu_offset, sbc->data, pkt_len); in bt_play_sbc_transfer()
883 cfg->mtu_offset += pkt_len; in bt_play_sbc_transfer()
884 cfg->mtu_timestamp += sbc->framesamples; in bt_play_sbc_transfer()
899 struct bt_config *cfg = pbe->arg; in bt_play_aac_transfer() local
922 if (delta > (int)(cfg->rem_in_size - cfg->rem_in_len)) in bt_play_aac_transfer()
923 delta = (int)(cfg->rem_in_size - cfg->rem_in_len); in bt_play_aac_transfer()
925 memcpy(cfg->rem_in_data + cfg->rem_in_len, ptr, delta); in bt_play_aac_transfer()
929 cfg->rem_in_len += delta; in bt_play_aac_transfer()
932 if (cfg->rem_in_len == cfg->rem_in_size) { in bt_play_aac_transfer()
933 struct aac_header *phdr = (struct aac_header *)cfg->mtu_data; in bt_play_aac_transfer()
939 err = avcodec_send_frame(cfg->handle.av.context, in bt_play_aac_transfer()
940 cfg->handle.av.frame); in bt_play_aac_transfer()
947 phdr->seqnumMSB = (uint8_t)(cfg->mtu_seqnumber >> 8); in bt_play_aac_transfer()
948 phdr->seqnumLSB = (uint8_t)(cfg->mtu_seqnumber); in bt_play_aac_transfer()
949 phdr->ts3 = (uint8_t)(cfg->mtu_timestamp >> 24); in bt_play_aac_transfer()
950 phdr->ts2 = (uint8_t)(cfg->mtu_timestamp >> 16); in bt_play_aac_transfer()
951 phdr->ts1 = (uint8_t)(cfg->mtu_timestamp >> 8); in bt_play_aac_transfer()
952 phdr->ts0 = (uint8_t)(cfg->mtu_timestamp); in bt_play_aac_transfer()
966 cfg->mtu_seqnumber++; in bt_play_aac_transfer()
967 cfg->mtu_offset = sizeof(*phdr); in bt_play_aac_transfer()
970 rem = cfg->mtu - cfg->mtu_offset; in bt_play_aac_transfer()
972 if (avio_open_dyn_buf(&cfg->handle.av.format->pb) == 0) { in bt_play_aac_transfer()
976 (void)avformat_write_header(cfg->handle.av.format, NULL); in bt_play_aac_transfer()
977 av_write_frame(cfg->handle.av.format, pkt); in bt_play_aac_transfer()
979 pkt_len = avio_close_dyn_buf(cfg->handle.av.format->pb, &pkt_buf); in bt_play_aac_transfer()
985 memcpy(cfg->mtu_data + cfg->mtu_offset, pkt_buf + 3, pkt_len - 3); in bt_play_aac_transfer()
989 cfg->mtu_offset += pkt_len - 3; in bt_play_aac_transfer()
990 if (cfg->chmode != MODE_MONO) in bt_play_aac_transfer()
991 cfg->mtu_timestamp += cfg->rem_in_size / 4; in bt_play_aac_transfer()
993 cfg->mtu_timestamp += cfg->rem_in_size / 2; in bt_play_aac_transfer()
995 xlen = write(cfg->fd, cfg->mtu_data, cfg->mtu_offset); in bt_play_aac_transfer()
1007 cfg->rem_in_len = 0; in bt_play_aac_transfer()
1020 struct bt_config *cfg = pbe->arg; in bt_play_transfer() local
1022 switch (cfg->codec) { in bt_play_transfer()