diff --git a/android/a2dp.c b/android/a2dp.c
index e65e5a3..c193873 100644
--- a/android/a2dp.c
+++ b/android/a2dp.c
endpoint->caps = presets->data;
endpoint->presets = g_slist_copy(g_slist_nth(presets, 1));
+ if (endpoint->codec == A2DP_CODEC_VENDOR) {
+ a2dp_vendor_codec_t *vndcodec = (void *) endpoint->caps->data;
+
+ avdtp_sep_set_vendor_codec(endpoint->sep,
+ btohl(vndcodec->vendor_id),
+ btohs(vndcodec->codec_id));
+ }
+
endpoints = g_slist_append(endpoints, endpoint);
return endpoint->id;
diff --git a/android/avdtp.c b/android/avdtp.c
index 3d309b9..89f4860 100644
--- a/android/avdtp.c
+++ b/android/avdtp.c
#include <glib.h>
+#include "lib/bluetooth.h"
#include "src/log.h"
#include "avdtp.h"
+#include "../profiles/audio/a2dp-codecs.h"
#define AVDTP_PSM 25
struct avdtp_stream *stream;
struct seid_info info;
uint8_t codec;
+ uint32_t vndcodec_vendor;
+ uint16_t vndcodec_codec;
gboolean delay_reporting;
GSList *caps;
struct avdtp_sep_ind *ind;
if (codec_data->media_codec_type != lsep->codec)
continue;
+ /* FIXME: Add Vendor Specific Codec match to SEP callback */
+ if (lsep->codec == A2DP_CODEC_VENDOR) {
+ a2dp_vendor_codec_t *vndcodec =
+ (void *) codec_data->data;
+
+ if (btohl(vndcodec->vendor_id) != lsep->vndcodec_vendor)
+ continue;
+
+ if (btohs(vndcodec->codec_id) != lsep->vndcodec_codec)
+ continue;
+ }
+
if (sep->stream == NULL)
return sep;
}
return sep;
}
+void avdtp_sep_set_vendor_codec(struct avdtp_local_sep *sep, uint32_t vendor_id,
+ uint16_t codec_id)
+{
+ sep->vndcodec_vendor = vendor_id;
+ sep->vndcodec_codec = codec_id;
+}
+
int avdtp_unregister_sep(struct avdtp_local_sep *sep)
{
if (!sep)
diff --git a/android/avdtp.h b/android/avdtp.h
index 7fdf597..9d683c4 100644
--- a/android/avdtp.h
+++ b/android/avdtp.h
struct avdtp_sep_ind *ind,
struct avdtp_sep_cfm *cfm,
void *user_data);
+void avdtp_sep_set_vendor_codec(struct avdtp_local_sep *sep, uint32_t vendor_id,
+ uint16_t codec_id);
/* Find a matching pair of local and remote SEP ID's */
struct avdtp_remote_sep *avdtp_find_remote_sep(struct avdtp *session,