Section 5.4.1 of AVRCP 1.3 spec says: If TG does not support SongLength And SongPosition on TG, then TG shall return 0xFFFFFFFF. SongPosition is always available, but song length depends on user to provied it. --- audio/avrcp.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/audio/avrcp.c b/audio/avrcp.c index b1c3d54..5f8277c 100644 --- a/audio/avrcp.c +++ b/audio/avrcp.c @@ -796,6 +796,7 @@ static uint8_t avrcp_handle_get_play_status(struct avrcp_player *player, uint16_t len = ntohs(pdu->params_len); uint32_t position; uint32_t duration; + void *pduration; if (len != 0) { pdu->params_len = htons(1); @@ -804,11 +805,13 @@ static uint8_t avrcp_handle_get_play_status(struct avrcp_player *player, } position = player->cb->get_position(player->user_data); - duration = GPOINTER_TO_UINT(player->cb->get_metadata( - AVRCP_MEDIA_ATTRIBUTE_DURATION, - player->user_data)); + pduration = player->cb->get_metadata(AVRCP_MEDIA_ATTRIBUTE_DURATION, + player->user_data); + if (pduration != NULL) + duration = htonl(GPOINTER_TO_UINT(pduration)); + else + duration = htonl(UINT32_MAX); - duration = htonl(duration); position = htonl(position); memcpy(&pdu->params[0], &duration, 4); -- 1.7.7 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html