AVRCP v1.6.2
AVRCP v1.6.2
Control
Bluetooth® Profile Specification
▪ Revision: v1.6.2
Abstract:
This profile defines the requirements for Bluetooth® devices necessary for the support of the
Audio/Video Remote Control usage case. The requirements are expressed in terms of end-
user services, and by defining the features and procedures that are required for
interoperability between Bluetooth devices in the Audio/Video Remote Control usage case.
Revision History
Version History
Versions Changes
v1.6.0 to v1.6.1 Incorporated errata E6069 and E6073.
Contributors
Name Company
Alexander Hanke Audi
Alicia Courtney Broadcom
Ash Kapur Broadcom
Rüdiger Mosig Berner and Mattner
Gordon Downie CSR
David Trainor CSR
Souichi Saito Denso
Morgan Lindqvist Ericsson
Wim Koster Ericsson
Rene Kuiken Ericsson
Masahiko Nakashima Fujitsu
Baskar Subramanian Impulsesoft
K.A Srinivasan Impulsesoft
Ilya Goldberg Matsushita
Tsuyoshi Okada Matsushita
Thomas Karlsson Mecel
Jurgen Schnitzler Nokia
Kalervo Kontola Nokia
Martti Niska Nokia
Thomas Block Nokia
Vesa Lunden Nokia
Sebastien Henrio Parrot
Thierry Wœlfflé Parrot
Erik Schylander Philips
Shaun Barrett Philips
Christian Bouffioux Philips
Geert Knapen Philips
Emmanuel Mellery Philips
Laurent Meunier Philips
Scott Walsh Plantronics
John Larkin Qualcomm
Dmitri Toropov Siemens
Masakazu Hattori Sony
Name Company
Harumi Kawamura Sony
Rüdiger Mosig Sony
Yoshiyuki Nezu Sony
Hiroyasu Noguchi Sony
Tomoko Tanaka Sony
Atsushi Ichise Sony
Wilhelm Hagg Sony
Masahiko Seki Sony
Dick de Jong Sony Ericsson
Patric Lind Sony Ericsson
Siân James Symbian
Tim Howes Symbian
Junko Ami Toshiba
Yoshiaki Takabatake Toshiba
Ichiro Tomoda Toshiba
Makoto Kobayashi Toshiba
Shuichi Sakurai Toshiba
Makoto Yamashita Toshiba
Use of this specification is your acknowledgement that you agree to and will comply with the following notices and
disclaimers. You are advised to seek appropriate legal, engineering, and other professional advice regarding the use,
interpretation, and effect of this specification.
Use of Bluetooth specifications by members of Bluetooth SIG is governed by the membership and other related agreements
between Bluetooth SIG and its members, including those agreements posted on Bluetooth SIG’s website located at
www.bluetooth.com. Any use of this specification by a member that is not in compliance with the applicable membership
and other related agreements is prohibited and, among other things, may result in (i) termination of the applicable
agreements and (ii) liability for infringement of the intellectual property rights of Bluetooth SIG and its members.
Use of this specification by anyone who is not a member of Bluetooth SIG is prohibited and is an infringement of the
intellectual property rights of Bluetooth SIG and its members. The furnishing of this specification does not grant any license
to any intellectual property of Bluetooth SIG or its members. THIS SPECIFICATION IS PROVIDED “AS IS” AND BLUETOOTH
SIG, ITS MEMBERS AND THEIR AFFILIATES MAKE NO REPRESENTATIONS OR WARRANTIES AND DISCLAIM ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, TITLE, NON-
INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE CONTENT OF THIS SPECIFICATION IS FREE
OF ERRORS. For the avoidance of doubt, Bluetooth SIG has not made any search or investigation as to third parties that
may claim rights in or to any specifications or any intellectual property that may be required to implement any specifications
and it disclaims any obligation or duty to do so.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BLUETOOTH SIG, ITS MEMBERS AND THEIR AFFILIATES
DISCLAIM ALL LIABILITY ARISING OUT OF OR RELATING TO USE OF THIS SPECIFICATION AND ANY INFORMATION
CONTAINED IN THIS SPECIFICATION, INCLUDING LOST REVENUE, PROFITS, DATA OR PROGRAMS, OR BUSINESS
INTERRUPTION, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, AND EVEN IF BLUETOOTH SIG, ITS MEMBERS OR THEIR
AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF THE DAMAGES.
If this specification is a prototyping specification, it is solely for the purpose of developing and using prototypes to verify
the prototyping specifications at Bluetooth SIG sponsored IOP events. Prototyping Specifications cannot be used to develop
products for sale or distribution and prototypes cannot be qualified for distribution.
Products equipped with Bluetooth wireless technology ("Bluetooth Products") and their combination, operation, use,
implementation, and distribution may be subject to regulatory controls under the laws and regulations of numerous
countries that regulate products that use wireless non-licensed spectrum. Examples include airline regulations,
telecommunications regulations, technology transfer controls and health and safety regulations. You are solely responsible
for complying with all applicable laws and regulations and for obtaining any and all required authorizations, permits, or
licenses in connection with your use of this specification and development, manufacture, and distribution of Bluetooth
Products. Nothing in this specification provides any information or assistance in connection with complying with applicable
laws or regulations or obtaining required authorizations, permits, or licenses.
Bluetooth SIG is not required to adopt any specification or portion thereof. If this specification is not the final version adopted
by Bluetooth SIG’s Board of Directors, it may not be adopted. Any specification adopted by Bluetooth SIG’s Board of
Directors may be withdrawn, replaced, or modified at any time. Bluetooth SIG reserves the right to change or alter final
specifications in accordance with its membership and operating agreements.
Copyright © 2014–2019. All copyrights in the Bluetooth Specifications themselves are owned by Apple Inc., Ericsson AB,
Intel Corporation, Lenovo (Singapore) Pte. Ltd., Microsoft Corporation, Nokia Corporation, and Toshiba Corporation. The
Bluetooth word mark and logos are owned by Bluetooth SIG, Inc. Other third-party brands and names are the property of
their respective owners.
Contents
1 Introduction .................................................................................................................................. 10
1.1 Scope....................................................................................................................................... 10
1.2 Profile dependencies ............................................................................................................... 10
1.3 Symbols and conventions........................................................................................................ 11
1.3.1 Requirement status symbols ............................................................................................. 11
1.3.2 Definition ........................................................................................................................... 11
1.3.3 Conventions ...................................................................................................................... 11
1.3.4 Notation for timers ............................................................................................................. 12
1.4 Bluetooth AVRCP Profile change history ................................................................................ 12
1.4.1 Changes from 1.4 to 1.5 ................................................................................................... 12
1.4.2 Changes from 1.5 to 1.6 ................................................................................................... 13
1.5 Language ................................................................................................................................. 13
1.5.1 Language conventions ...................................................................................................... 13
1.5.2 Reserved for Future Use ................................................................................................... 13
1.5.3 Prohibited .......................................................................................................................... 14
2 Profile overview ............................................................................................................................ 15
2.1 Profile stack ............................................................................................................................. 15
2.2 Configuration and roles ........................................................................................................... 15
2.2.1 Roles ................................................................................................................................. 15
2.2.2 Categories ......................................................................................................................... 16
2.3 User requirements ................................................................................................................... 16
2.3.1 Scenarios .......................................................................................................................... 16
2.3.2 User expectations ............................................................................................................. 19
2.4 Profile fundamentals ................................................................................................................ 20
2.5 Conformance ........................................................................................................................... 20
3 Application layer .......................................................................................................................... 21
3.1 Feature support ....................................................................................................................... 21
3.2 Feature mapping ..................................................................................................................... 22
4 Control interoperability requirements ....................................................................................... 24
4.1 Procedures .............................................................................................................................. 24
4.1.1 AVCTP connection establishment .................................................................................... 24
4.1.2 AVCTP connection release ............................................................................................... 25
4.1.3 Procedure of AV/C command ........................................................................................... 26
4.1.4 AV/C command operation ................................................................................................. 27
4.1.5 Procedure of AVRCP specific AV/C commands ............................................................... 28
4.1.6 Procedure of AVRCP browsing commands ...................................................................... 28
4.1.7 OBEX connection establishment ...................................................................................... 28
4.1.8 OBEX connection release ................................................................................................. 28
4.2 Supported unit commands....................................................................................................... 28
4.2.1 UNIT INFO command ....................................................................................................... 28
4.2.2 SUBUNIT INFO command ................................................................................................ 29
4.3 Supported common unit and subunit commands .................................................................... 29
4.3.1 VENDOR DEPENDENT command................................................................................... 29
4.4 Supported subunit command................................................................................................... 29
4.4.1 PASS THROUGH command ............................................................................................ 30
4.5 AVRCP specific commands..................................................................................................... 30
4.6 Categories ............................................................................................................................... 33
4.6.1 Support level in TG ........................................................................................................... 33
4.6.2 Support level in CT............................................................................................................ 35
5 Protocol concepts ........................................................................................................................ 37
5.1 Types of commands ................................................................................................................ 37
5.1.1 AV/C commands ............................................................................................................... 37
1 Introduction
1.1 Scope
The Audio/Video Remote Control Profile (AVRCP) defines the features and procedures required in order
to ensure interoperability between Bluetooth devices with audio/video control functions in the Audio/Video
distribution scenarios. This profile specifies the scope of the AV/C Digital Interface Command Set (AV/C
command set, defined by the 1394 Trade Association) to be applied, and it realizes simple implementation
and easy operability. This profile adopts the AV/C device model and command format for control messages,
and those messages are transported by the Audio/Video Control Transport Protocol (AVCTP). Browsing
functionality is provided over a second AVCTP channel, which does not use AV/C. Functionality to transmit
images associated to media items (‘Cover Art’) is provided through the protocol defined in the Bluetooth
Basic Imaging Profile (BIP) over OBEX protocol.
In this profile, the controller translates the detected user action to the A/V control signal, and then transmits
it to a remote Bluetooth device. The functions available for a conventional infrared remote controller can be
realized in this profile. In addition to this, the profile uses Bluetooth specific extensions to support transfer
of metadata related to content to be transferred between Bluetooth devices. Browsing features are provided
to allow a remote controller to navigate the media and control specific media players on the remote target
device. The remote control described in this profile is designed specific to A/V control. Other remote control
solutions using Bluetooth wireless technology may be applied for general Bluetooth devices including A/V
devices.
Note that the Audio/Video Remote Control Profile does not handle the audio/video streaming. Devices that
support this profile may support audio/video streaming by also implementing the Advanced Audio
Distribution Profile and/or Video Distribution Profile.
Basic
Audio Video Remote Control Profile Imaging
Profile
A B
1.5 Language
1.5.1 Language conventions
The Bluetooth SIG has established the following conventions for use of the words shall, must, will,
should, may, can, is, and note in the development of specifications:
OR
For clarity of the definition of those terms, see Core Specification Volume 1, Part E, Section 1.
Where a field, parameter, or other variable object can take a range of values and some values are
described as "Reserved for Future Use," a device sending the object shall not set the object to those
values. A device receiving an object with such a value should reject it, and any data structure containing
it, as being erroneous; however, this does not apply in a context where the object is described as being
ignored or it is specified to ignore unrecognized values.
When a field value is a bit field, unassigned bits can be marked as Reserved for Future Use and shall be
set to 0. Implementations that receive a message that contains a Reserved for Future Use bit that is set
to 1 shall process the message as if that bit was set to 0, except where specified otherwise.
1.5.3 Prohibited
When a field value is an enumeration, unassigned values can be marked as “Prohibited.” These values
shall never be used by an implementation, and any message received that includes a Prohibited value
shall be ignored and shall not be processed and shall not be responded to.
Where a field, parameter, or other variable object can take a range of values, and some values are
described as “Prohibited,” devices shall not set the object to any of those Prohibited values. A device
receiving an object with such a value should reject it, and any data structure containing it, as being
erroneous.
2 Profile overview
2.1 Profile stack
Application Application
(Controller) (Target)
(BIP) AV/C
AV/C AV/C
AV/C (BIP)
L2CAP L2CAP
Baseband Baseband
The Baseband, LMP, and L2CAP are the OSI layer 1 and 2 Bluetooth protocols. AVCTP and BIP define
the procedures and messages to be exchanged for controlling A/V devices. SDP is the Bluetooth Service
Discovery Protocol [10]. OBEX is the Bluetooth adaptation of IrOBEX and it is the underlying transport
protocol for BIP, which is the entity providing functionality to exchange images associated with media. BIP
is depicted in parentheses in Figure 2.1 to indicate that some BIP features are reused or redefined for
AVRCP but BIP is not utilized as a stand-alone profile. AV/C is the entity responsible for AV/C command-
based device control signaling. The application is the AVRCP entity, exchanging control and browsing
commands as defined in this specification.
command
PC as a CT VCR as a TG
2.2.2 Categories
This profile ensures interoperability by classifying the A/V functions into four categories.
2.2.2.1 Category 1: player/recorder
Basic operations of a player or a recorder are defined, regardless of the type of media (tape, disc, solid
state, etc.) or the type of contents (audio or video, etc.).
2.2.2.2 Category 2: monitor/amplifier
The category 2 is to define basic operations of a video monitor or an audio amplifier.
2.2.2.3 Category 3: tuner
The category 3 defines the basic operation of a video tuner or an audio tuner.
2.2.2.4 Category 4: menu
The basic operations for a menu function are defined in category 4. The method to display menu data is
not specified. It may be a display panel of the device itself, or on-screen display (OSD) on an external
monitor.
Headphone
audio
stream*
Category 1
Command
audio stream*
Category 1
Command
Figure 2.5: Remote control and audio stream between two devices
Category 1
command
Category 2
Portable Disc Player command
Headphone
* The audio stream is not handled in this profile.
audio stream*
Figure 2.8: Cover Art from the browsed or played media items
2.5 Conformance
When conformance to this profile is claimed, all capabilities indicated mandatory for this profile shall be
supported in the specified manner (process mandatory). This also applies to optional and conditional
capabilities, for which support is indicated, and subject to verification as part of the Bluetooth certification
program.
3 Application layer
This section describes the feature requirements on units complying with the Audio/Video Remote Control
Profile.
Features 10 to 15 in Table 3.1 shall be collectively termed as AVRCP Specific AV/C commands in this
document.
Features 16 to 21 in Table 3.1 shall be collectively termed as AVRCP Specific Browsing commands in this
document.
4.1 Procedures
4.1.1 AVCTP connection establishment
An L2CAP connection establishment for AVCTP control may be initiated by the CT or by the TG. An internal
event or an event generated by a user, such as turning the power on, initiates the connection establishment.
If a browsing channel is supported by both devices, the browsing channel may be established after the
control channel. The control channel shall always be established before the browsing channel. It is
recommended that the browsing channel is established immediately after the control channel is established
to avoid unsatisfactory latency when a browsing command is sent. However, as some use cases involve
very occasional use of browsing functionality, devices for which this applies may wish to open the browsing
channel on demand to minimize resource usage. The browsing channel shall be configured to use L2CAP
Enhanced Retransmission Mode.
If both devices open an AVCTP channel at the same time, both channels shall be closed and each device
shall wait a random time (not more than 1 s and not less than 100ms) and then try to open the AVCTP
channel again. If it is known which device is the master, that device can re-try at once.
Note: Only one L2CAP connection for control and one L2CAP connection for browsing (if supported by both
devices) shall be established between AVCTP entities. If the connection(s) already exist(s), the CT/TG shall
not initiate the connection request.
CT TG
CT TG
User initiated action
/internal event
CT TG
User initiated action
/internal event
Figure 4.3: Control channel establishment initiated by TG and browsing channel establishment initiated by CT when
needed.
CT TG
User initiated action User initiated action
/internal event /internal event
CT TG
User initiated action
/internal event
Connection
Connection establishment establishment will
be completed at
this point at the
latest.
AV/C command
AV/C response**
*: AV/C interim response may be returned in response to a VENDOR DEPENDENT command. AV/C
interim response shall not be returned for other commands.
**: In some exceptional cases, the TG may not return a response. For details, refer to the AV/C General
Specification.
The following table shows the list of possible AV/C commands to be exchanged in this profile:
Command CT TG
1. UNIT INFO O M
2. SUBUNIT INFO O M
3. VENDOR DEPENDENT C C
4. PASS THROUGH M M
Table 4.1: List of possible AV/C commands
C: Mandatory if any of 3.1-10 to 3.1-15 is supported, Optional otherwise
Requirements for CT refer to the ability to send a command.
Requirements for TG refer to the ability to respond to a command.
4.1.4 AV/C command operation
This section describes the operation procedure of AV/C command exchange shown in Figure 4.5 with
example. For more information of the AV/C unit/subunit model and AV/C command operation, refer to AV/C
General Specification [1] and AV/C Panel Subunit Specification [2]. Version 4.1 in [1] is backwards
compatible with version 4.0 in [1], so either version can be used.
The AV/C General Specification covers the AV/C general command and response model, unit/subunit
model, and standard unit and subunit commands. An AV/C subunit is an instantiation of a logical entity that
is identified within an AV/C unit. An AV/C subunit has a set of coherent functions that the electronic device
provides. Functions are defined for each category of devices in its subunit specification (Monitor, Audio,
Tape recorder/player, Disc, Tuner, etc.).
The AV/C command set consists of the AV/C General Specification and each subunit command. In the
AV/C General Specification, the UNIT INFO command and SUBUNIT INFO command are both
mandatory. For subunit commands, the mandatory commands are defined in each subunit specification,
and it depends on the device implementation which subunit to support.
The UNIT INFO command is used to obtain information that pertains to the AV/C unit as a whole. The
response frame includes information of the vendor ID of the TG and subunit type that best describes the
unit. The information of vendor ID may be used to investigate the vendor of TG before using VENDOR
DEPENDENT command. For example of subunit type, a VCR device may return the unit_type of the tape
recorder/player, even though the VCR has a tuner. In this profile, the panel subunit is the main function. It
is also possible that other subunits may be returned if other profiles co-exist in the device.
The SUBUNIT INFO command is used to obtain information about the subunit(s) of an AV/C unit. A device
with this profile may support other subunits than the panel subunit if other profiles co-exist in the device,
which can be found with the SUBUNIT INFO command. With this command, a typical AV/C controller
manipulates AV/C function discovery.
The VENDOR DEPENDENT command permits module vendors to specify their own set of commands and
responses for AV/C units or subunits determined by the AV/C address that is contained in the AV/C frame.
The vendor dependent commands are used by this specification. Please refer to Section 4.1.5.
One feature of this profile is the remote control performed by the PASS THROUGH command of the Panel
subunit. The Panel subunit provides a user-centric model for actuating the controls on a device. The CT
controls the Panel subunit according to the user operation using certain CT-dependent manners. The user
manipulates the user interface on the display or operates a button, and then the CT sends commands to
the panel subunit. In response to these commands, the Panel subunit performs some action(s). Even
though there may be several subunits in a TG, the TG shall have only one panel subunit. Unlike many other
AV/C subunits, the panel subunit does not directly deal with media streams itself. The main purpose for
using a panel subunit is to allow it to translate the incoming user action commands into internal actions,
which affect other subunits and/or the unit, and dispatch them to an appropriate subunit or unit inside the
TG using the TG-dependent manner. The result of these actions may have an effect on media streams.
This profile uses the PASS THROUGH command, which is one of the subunit commands defined in the
Panel Subunit Specification. A CT conveys a user operation to a TG by the PASS THROUGH command.
In the company_ID field of a UNIT INFO response frame, the 24-bit unique ID obtained from the IEEE
Registration Authority Committee shall be inserted. If the vendor of a TG device does not have the unique
ID above, the value 0xFFFFFF may be used.
4.2.2 SUBUNIT INFO command
As defined in the AV/C General Specification, the SUBUNIT INFO status command is used to obtain
information about the subunit(s) of a unit. For details of the SUBUNIT INFO command, refer to the AV/C
General Specification [1].
If the unit implements this profile, it shall return PANEL subunit in the subunit_type field, and value 0 in the
max_subunit_ID field in the response frame.
M*: Mandatory to support the opcode for PASS THROUGH command. See Section 4.6 for support levels
of each operation_ids
C17 C17
0x41 AbortContinuingResponse AV/C CONTROL TMTC 6.8.2
C17 C17
Absolute Volume C3 C3 6.13
0x50 SetAbsoluteVolume AV/C CONTROL C3 C3 TMTC 6.13.2
0x31 EVENT _VOLUME_CHANGED AV/C NOTIFY C3 C3 TMTP 6.13.3
MediaPlayerSelection O C6 0
0x60 SetAddressedPlayer AV/C CONTROL O C6 TMTC 6.9.1
0x71 GetFolderItems(MediaPlayerList) Browsing C5 C6 6.10.4.2
6.10.2.1
0x75 GetTotalNumberOfItems Browsing O C6 6.10.4.4
0x31 EVENT_ADDRESSED_ AV/C NOTIFY O C6 TMTP 6.9.2
PLAYER_CHANGED
0x31 EVENT_AVAILABLE_ AV/C NOTIFY O C6 TMTP 6.9.4
PLAYERS_CHANGED
Browsing O O 6.10
0x70 SetBrowsedPlayer Browsing C4 C4 6.9.3
C17 Mandatory to support at least one of these PDUs if device supports Metadata Attributes for
Current Media Item, Optional otherwise.
Requirements for CT refer to the ability to send a command.
Requirements for TG refer to the ability to respond to a command. For AV/C commands the AV/C
command type of the response PDU shall be per the AV/C specification’s definitions for responses.
For error response PDU, the response parameter is always the error code independent of the response
format defined for ACCEPTED PDU response for the corresponding PDU command.
All strings passed in AVRCP specific command PDUs are not null terminated.
AVRCP adds the following operations that shall be used with PASS THROUGH command:
Vendor Unique Operation AV/C Command
Item CT TG Section
Operation ID Name Type
6.9
1 Basic Group Navigation O O
2. 0x0000 Next Group CONTROL C1 C1 6.14.1
3. 0x0001 Previous Group CONTROL C1 C1 6.14.2
Table 4.6: AVRCP Specific vendor unique PASS THROUGH command
C1 Mandatory if Basic Group Navigation Table 3.1, item 15 is supported, Excluded otherwise.
These PASS THROUGH commands shall use Bluetooth SIG registered CompanyId as the opcode with
the defined vendor unique operation Id with the PANEL subunit-type. Refer to Section 25.10 for packet
structure of command and response.
Requirements for CT refer to the ability to send a command.
Requirements for TG refer to the ability to respond to a command.
4.6 Categories
For each category, the mandatory commands for the TG are defined by the operation_ids in the PASS
THROUGH command. It is mandatory for the TG to support at least one of the categories.
4.6.1 Support level in TG
The table below is the operation_ids and their support level in TG for each category.
“C1” in the table below means that the command is mandatory if the TG supports Category 1. In the same
manner, “C2” means mandatory in Category 2, “C3” in Category 3, and “C4” in Category 4.
operation_id Category 1: Category 2: Category 3: Category 4:
5 Protocol concepts
5.1 Types of commands
The commands used in AVRCP fall into three main groups described below.
5.1.1 AV/C commands
There exist two sets of AV/C commands in AVRCP. The set of PASSTHROUGH commands, UNIT and
SUBUNIT INFO commands are defined in the AV/C specification. There also exists a set of commands,
hereafter referred to as AVRCP specific AV/C commands, defined as a Bluetooth SIG Vendor Dependent
extension. These commands use the AV/C Vendor Dependent Opcode, and the Vendor Unique
PASSTHROUGH operation id. They are sent over the AVCTP control channel.
5.1.2 Browsing commands
The set of browsing commands use the AVCTP browsing channel. AVCTP is used directly, with no AV/C
layer. AVCTP fragmentation shall not be applied on the browsing channel. This means that an AVRCP
entity can determine from the AVCTP Browsing Channel MTU how much data can be accepted by the
peer entity. The sender can then take actions necessary to limit the amount of data sent whilst preserving
user experience. For example, when sending a search command to a TG, the CT should limit the search
string length which can be input by the user such that the search command will fit within the L2CAP MTU.
Some examples of this are shown in Section 29.20 and Section 29.21.
5.1.3 Cover Art commands
The Cover Art commands used in AVRCP are reused or overridden from BIP [14]. The BIP Generic
Imaging Image Pull feature is used to provide functionality to allow the CT (acting as the Imaging Initiator)
to retrieve images associated with the media on the TG (acting as the Imaging Responder). These
commands are used over an OBEX connection.
5.2 Capabilities
CT shall have the ability to query the capabilities of TG. The following capabilities can be queried:
1. List of Company IDs supported by TG. For details refer to Section 6.4.
2. List of Event IDs supported by TG. For details refer to Section 6.4 and Section 28.
3. Player Application specific feature bitmask. This is part of the Media Player Item which can be
retrieved by browsing the available media players with the GetFolderItems command in the scope of
the Media Player List. For details also refer to Section 6.10.2.1 and Section 25.19.
Each player application setting has a unique AttributeID and the attributes have values that have a
ValueID. Target-defined attributes and values have displayable text associated with them for allowing the
CT to be able to provide menu extensions to existing media players.
Refer to Section 6.5 for the list of PDUs.
5.6 Continuation
Continuation enables the TG to create responses larger than the maximum AV/C frame size of 512 octets
by providing commands to handle a fragmented AVRCP specific AV/C command. The commands
include:
• Request for continuation packets
• Abort continuation of current message
The packet type on the PDU response from TG shall indicate whether the PDU is a start packet with
additional packets available for CT. The CT can then request for continuation packets using the
RequestContinuingResponse command till end of packet is signaled on the PDU packet type.
The CT has the option to abort the current PDU continuation by sending AbortContinuingResponse
command at any time after the reception of the first PDU response for the corresponding PDU command.
[/E3155]
Note that Continuation is required due to the limit of 512 octets per AV/C frame. Continuation is therefore
only necessary for AV/C commands.
There may be a variety of media players, including music players, video players, streaming players, FM
radios, mobile TV tuners, etc. To allow media playing to be controlled from a remote device it is possible
for that device to select which media player it wants to control the play status for and which player it
wishes to navigate the media content of.
The media content available to be played is dependent on what media player is currently selected, for
example a radio application may offer a variety of radio stations, whereas an audio media player may
offer audio tracks present on local storage.
Functionality is available to allow a CT to view available media players on the TG, select a media player
to control and a media player to browse the media content of, and to be notified of changes to the
available media players.
The media player selection functionality allows a TG device to support a range of media players with
varying functionality. All media player applications on an AVRCP 1.4 TG device may not support the full
range of AVRCP 1.4 features even though the Bluetooth AVRCP 1.4 profile implementation is capable of
supporting these. For example, a device may have two media player applications, one fully featured
application supporting browsing functionality and one which was written to support AVRCP 1.3 which only
provides basic control and Metadata access. To allow the CT to make a decision about which player to
select the capabilities of each player are published in a Player Feature Bitmask. This is part of the Media
Player Item which can be retrieved by browsing the available media players.
5.9.1 Addressed player
The player to which the AV/C Panel Subunit [2] shall route AV/C commands is the addressed player.
Browsing commands with the scope Now Playing shall be routed via AVRCP to the Addressed Player.
5.9.2 Browsed player
The player to which AVRCP shall route browsing commands with the scope Virtual Media Player
Filesystem or Search is the browsed player. Refer to Section 6.10.1 for more information on scope. The
browsed player is an AVRCP concept and is independent of any media browsing which occurs locally on
the TG device.
5.11 UID
Media elements are identified within the virtual filesystem by an 8 octet identifier, the UID. This allows
individual items to be specified as the target of an operation, for example the PlayItem command takes a
UID as a parameter to specify which media element should be played.
5.11.1 UID Counter
The UID Counter allows the CT device to detect updates on the TG device. A TG device that supports the
UID Counter shall update the value of the counter on each change to the media database.
5.12 Search
The search functionality allows the CT to locate specific media elements on the TG. On the typical target
devices it is unlikely that full metadata will be available for all content, either because it is not present as
part of the available media data, or because the interface between the Bluetooth stack and the media
player does not allow this to be accessed. For this reason, a fully featured search facility offering, for
instance, functions such as search within genre or artist, is not available. Instead, only basic search
functionality is provided with basic string search.
Advanced search facilities, such as search on artist are not supported. However, equivalent filtering may
be possible using search within folder on folders which contain specific types of content, as folders have
properties which include the type of content they hold (see Section 6.10.2.2). For example, if the CT
navigates to the /Artists/ArtistA folder and searches on string “Track” it should be equivalent to searching
for the string “Track” in media element items where the artist is ArtistA, dependent on media player
behavior.
5.13 Browsing
Browsing functionality allows a CT device to navigate and view media content on the TG. Four different
scopes are defined which may each be browsed.
5.13.1 Media Player List
The Media Player List contains available media players. The CT may view and select these as described
in Section 5.9.
5.13.2 Virtual Media Filesystem
The Virtual Media Filesystem is a representation of the Media Elements and Folders present on the TG.
Having navigated the Virtual Media Filesystem the CT may then choose to operate on a Media Element
Item, for example, to play it.
5.13.3 Search
The Search folder contains the results of the last search performed by the CT. The search is performed
using the search functionality described in Section 5.12.
5.13.4 Now Playing
The Now Playing folder contains the list of Media Elements that are currently scheduled to be played by
the Addressed Player on the TG. This is outlined in more detail in Section 5.10.
4.4.6.5 Monitoring-image
Object
4.4.7 Imaging Descriptors 4.4.7.3 Attachment Descriptor Section 5.14.2.2
4.5 Imaging Functions Subsections (Top level
chapter text is in scope,
subsections are explicitly
pulled into scope below)
4.5.7 GetImageProperties None
Function
4.5.8 GetImage Function None
4.5.9 GetLinkedThumbnail None
Function
5 OBEX 5.5.1 Primary and Secondary Sections 4.1.7, 4.1.8, and 14
Sessions
needs and therefore support only the GetLinkedThumbnail feature. More sophisticated CT devices can
use the GetImage function to negotiate specific image settings.
The imaging thumbnail pixel size is redefined in AVRCP whilst other thumbnail format details are the
same as those defined in BIP. The AVRCP thumbnail description is specified as:
• Pixel size: 200x200
• JPEG baseline-compliant
• sRGB as default colour space
• Sampling: YCC422
• One marker segment for each DHT and DQT
• Typical Huffman table
• DCF thumbnail file as file format (i.e., EXIF with the thumbnail container in APP1 empty and the
imaging thumbnail as basic main image as defined in [13]).
If the aspect ratio of the original image differs from 1:1, it is left to the TG implementer to decide which
method to use to produce the thumbnail (padding, filling, cropping, etc.).
5.14.2.2.2 Imaging Handle
The Imaging Handle is used by the GetImageProperties, GetImage and GetLinkedThumbnail functions. It
is retrieved as described in Section 5.14.1.
The BIP imaging handle is unique and persistent over the duration of an OBEX connection. The AVRCP
CT shall ensure that the Cover Art OBEX channel is disconnected when UIDs become invalid as the TG
may not be able to preserve BIP image handles for longer than the lifetime of the associated element. For
a database aware player this is when a UIDs changed notification is received. For a database unaware
player this is when a UIDs changed notification is received or when the folder is changed. Refer to
Section 4.1.8 for more detail on the handling of the OBEX disconnect and the underlying L2CAP channel.
It is implementation dependent how the BIP image handles are allocated, however the BIP Imaging
Responder shall ensure that all handles offered to BIP Imaging Initiators are unique.
5.14.2.2.3 Image Descriptor
The Image Descriptor is used by the GetImage function to specify the properties of the image the Imaging
Initiator would like to receive. This behavior allows a CT to specify its needs for Cover Art pictures in
terms of encoding, pixel size, byte size, maximum size and transformations towards the TG in accordance
with the available sizes/encodings provided in the Image-Properties object.
5.14.2.2.4 Image-Properties object
The Image-Properties object is used by the GetImageProperties function to retrieve information about the
properties of an image. This allows a TG to inform the CT on the available sizes/encodings an image is
available in.
6 Protocol description
6.1 Framing
6.1.1 AV/C commands
The non-Vendor Dependent and non-Vendor Unique AV/C commands are sent using AV/C Digital
Interface Command Set General Specification [1] and the AV/C Panel Subunit specification [2] as
specified by 1394 Trade Association.
6.1.2 AVRCP specific AV/C commands
All the AVRCP specific AV/C command and response packets are sent using AV/C Digital Interface
Command Set General Specification as specified by the 1394 Trade Association [1]. All the AVRCP
specific AV/C commands are exchanged using VENDOR DEPENDENT commands and Vendor Unique
PASSTHROUGH commands as defined in the 1394 specifications.
6.1.3 AVRCP specific browsing commands
The AVRCP specific browsing commands are sent using the format defined in Section 6.3.2.
6.2 Timers
All AV/C transactions shall comply with the following time period unless explicitly specified otherwise. TG
shall respond to any AV/C command within a time period of T RCP (100) counting from the moment a
command frame is received.
For some AVRCP specific AV/C CONTROL commands, the TG may not be able to complete the request
or determine whether it is possible to complete the request within the T RCP (100) allowed. In this case,
the TG shall return an initial response code in INTERIM with the expectation that the final response follow
later.
For AVRCP specific AV/C commands the following time periods are defined.
TMTC (200) is the time period before which TG shall generate a response frame for CONTROL
commands.
TMTP (1000) is the time period before which TG shall generate a response frame for interim response for
NOTIFY commands and final response for STATUS commands.
For AVRCP specific browsing commands, a timer is not defined as the time required to complete the
operation may be quite variable, however the TG should respond in a timely fashion.
support less functionality, the CT may receive error responses indicating that the function requested is not
implemented. The CT may then decide to reissue the GetCapabilities to get the most current capabilities.
If the TG application changes to support more features, the CT may be happy to continue using the
original set of features supported. If not, it may choose to occasionally poll the TG with a GetCapabilities
to determine when further capabilities are available.
6.5.2 ListPlayerApplicationSettingValues
Description:
This primitive requests the target device to list the set of possible values for the requested player
application setting attribute. The list of reserved player application setting attributes and their values are
provided in Appendix F: list of defined player application settings and values. It is expected that a target
device may have additional attribute values not defined as part of this specification.
Command Format (ListPlayerApplicationSettingValues)
Parameters Size Description Allowed Values
(octets)
PlayerApplicationSetting 1 Player application setting Player application setting
AttributeID attribute ID attribute ID as defined in
Appendix F: list of defined
(octets)
NumPlayerApplicationSet 1 Number of player application 1-255
tingValues (N) setting values
PlayerApplicationSetting 1 Specifies the player application See Appendix F: list of
ValueID1 setting value ID defined player application
settings and values for list of
reserved player application
setting values.
6.5.3 GetCurrentPlayerApplicationSettingValue
This primitive requests the target device to provide the current set values on the target for the provided
player application setting attributes list.
Command Format (GetCurrentPlayerApplicationSettingValue)
Parameters Size Description Allowed Values
(octets)
NumPlayerApplicationSet 1 Number of player application 1-255
tingAttributeID (N) setting attribute for which
current set values are
requested
PlayerApplicationSetting 1 Player application setting Valid
AttributeID1 attribute ID for which the PlayerApplicationSettingAttrib
corresponding current set uteID values received from
value is requested the target, or defined as part
of Appendix F: list of defined
player application settings
and values
And so on for the number of target defined player application setting attributes in the requested order
(N).
Table 6.14: GetCurrentPlayerApplicationSettingValue command
6.5.4 SetPlayerApplicationSettingValue
This primitive requests to set the player application setting list of player application setting values on the
target device for the corresponding defined list of PlayerApplicationSettingAttributes.
Command Format (SetPlayerApplicationSettingValue)
Parameters Size Description Allowed Values
(octets)
NumPlayerApplication 1 Number of player application 1-255
SettingAttributes (N) setting attributes for which the
player application setting
PlayerApplicationSetting 1 Player application setting Valid
AttributeID1 attribute ID for which the value PlayerApplicationSettingAttrib
needs to be set uteID values received from
the target, or defined as part
of Appendix F: list of defined
player application settings
and values
PlayerApplication 1 Player application setting value Valid
SettingValueID1 ID for the corresponding player PlayerApplicationSettingValu
application setting attribute ID eID values received from the
target, or defined as part of
Appendix F: list of defined
player application settings
and values
And so on for the number of target defined player application setting attributes and their values.
Table 6.16: SetPlayerApplicationSettingValue command
NOTE: Setting of a value by CT does not implicitly mean that the setting will take effect on TG. The
setting shall take effect after a play command from CT. If currently playing, it is up to the TG to decide
when the setting shall take effect. There shall be an error response sent back if there are errors in
attribute and/or value. See Section 6.15 for additional details.
6.5.5 GetPlayerApplicationSettingAttributeText
This primitive requests the target device to provide supported player application setting attribute
displayable text for the provided PlayerApplicationSettingAttributeIDs.
NOTE: This command is expected to be used mainly for extended attributes for menu navigation; for
defined attributes the CT provides text for the application. However, to avoid inconsistency between CT
and TG provided text, the TG can choose to provide text for defined attributes as well. It is assumed that
all pairs used for menu extensions are statically defined by TG.
Command Format (GetPlayerApplicationSettingAttributeText)
Parameters Size Description Allowed Values
(octets)
NumPlayerApplicationSet 1 Number of player application 1-255
tingAttributes (N) setting attribute IDs for which
corresponding string is needed
PlayerApplicationSetting 1 Player application setting Valid
AttributeID1 attribute ID for which the PlayerApplicationSettingAttrib
corresponding attribute uteID values received from
displayable text is needed the target, or defined
attributeID as part of
Appendix F: list of defined
player application settings
and values
And so on for the number of needed player application setting attribute ID (N)
Table 6.18: GetPlayerApplicationSettingAttributeText command
Response format (GetPlayerApplicationSettingAttributeText)
Parameters Size Description Allowed Values
(octets)
NumPlayerApplicationSet 1 Number of attributes provided 1-255
tingAttributes (N)
PlayerApplicationSetting 1 Specified the player 1-255
AttributeID1 application setting attribute ID
for which the displayable text
is returned
CharacterSetID1 2 Specifies the character set ID Use MIBenum defined in
to be displayed on CT IANA character set document
(Refer to
InformDisplayableCharacterS
et)
PlayerApplicationSetting 1 Length of the player 1-255
AttributeStringLength1 (n) application setting attribute
string
PlayerApplicationSetting 1-n Specifies the player application Any string encoded in
AttributeString1 setting attribute string in specified character set
specified character set.
And so on for the number of target defined player application setting attributes in the requested order
(N).
Table 6.19: GetPlayerApplicationSettingAttributeText response
6.5.6 GetPlayerApplicationSettingValueText
This primitive request the target device to provide target supported player application setting value
displayable text for the provided player application setting attribute values.
NOTE: This command is expected to be used mainly for extended attributes for menu navigation; for
defined attributes the CT provides text for the application. However, to avoid inconsistency between CT
and TG provided text, the TG can choose to provide text for defined attributes as well. It is assumed that
all pairs used for menu extensions are statically defined by TG.
Command Format (GetPlayerApplicationSettingValueText)
Parameters Size Description Allowed Values
(octets)
PlayerApplicationSetting 1 Player application setting Player application setting
AttributeID attribute ID attribute ID as defined in
Appendix F: list of defined
player application settings
and values or received from
the target
NumPlayerApplicationSet 1 Number of player application 1-255
tingValue(N) setting values for which
corresponding string is needed
PlayerApplicationSetting 1 Player application setting value Valid ValueID values received
ValueID1 ID for which the corresponding from the target, or defined
value string is needed ValueID as part of Appendix
F: list of defined player
application settings and
values
And so on for the number of target defined player application setting values in the requested order (N).
Table 6.20: GetPlayerApplicationSettingValueText command
Response format (GetPlayerApplicationSettingValueText)
Parameters Size Description Allowed Values
(octets)
NumPlayerApplicationSet 1 Number of player application 1-255
tingValues (N) settings value provided
PlayerApplicationSetting 1 Player application setting value 1-255
ValueID1 ID for which the text is
returned
CharacterSetID1 2 Specifies the character set ID Refer to Section 6.5.7 for
to be displayed on CT allowed values
PlayerApplicationSetting 1 Length of the player 1-255
ValueStringLength1 (n) application setting value string
PlayerApplicationSetting 1-n Specifies the player application Any string encoded in
ValueString1 setting value string in specified specified character set
character set.
And so on for the number of target defined player application setting values in the requested order (N).
Table 6.21: GetPlayerApplicationSettingValueText response
6.5.7 InformDisplayableCharacterSet
This primitive provides the list of character sets supported by CT to the TG. This shall allow the TG to
send responses with strings in any of the character sets supported by CT.
After the TG has received this command, the TG may send a string in any of the character sets that are
specified in this command. By default, the TG shall send strings in UTF-8 if it has not received a valid
version of this command.
Command Format (InformDisplayableCharacterSet)
Parameters Size Description Allowed Values
(octets)
NumCharacterSet(N) 1 Number of displayable 1-255
character sets provided
CharacterSetID1 2 Supported Character Set Refer to note for valid values.
The CharacterSetID parameter is present for each supported character set; that is, it should be present
N times.
Table 6.22: InformDisplayableCharacterSet command
Response format (InformDisplayableCharacterSet)
Parameters Size Description Allowed Values
(octets)
None
Table 6.23: InformDisplayableCharacterSet response
Refer to Figure 29.2 in Appendix J: list of example MSCs of different AVRCP specific commands
(informative).
Note: If this command is not issued, UTF-8 shall be used for any strings as default character set. It is
mandatory for CT to send UTF-8 as one of the supported character set in the PDU parameters.
The CT should send this command before it sends any commands that support multiple character sets as
follows:
• GetPlayerApplicationSettingAttributeText
• GetPlayerApplicationSettingValueText
• GetElementAttributes
• SetBrowsedPlayer
• GetFolderItems
• Search
• CharacterSetID parameter in all the above listed PDUs including this PDU is MIBenum value of the
character set defined in IANA character set document [11].
6.5.8 InformBatteryStatusOfCT
This command frame is being sent by the CT to TG whenever the CT's battery status has been changed.
Command Format (InformBatteryStatusOfCT)
Parameters Size Description Allowed Values
(octets)
Battery status 1 Battery status 0x0 – NORMAL –
0x1 – WARNING -
0x2 – CRITICAL –
0x3 – EXTERNAL –
0x4 - FULL_CHARGE –
6.7.1 GetPlayStatus
This primitive is used by the CT to get the status of the currently playing media at the TG.
Command Format (GetPlayStatus):
Parameters Size Description Allowed Values
(octets)
None
Table 6.28: GetPlayStatus command
Response Format (GetPlayStatus):
Parameters Size Description Allowed Values
(octets)
SongLength 4 The total length of the 0-(232 – 1)
playing song in
milliseconds
SongPosition 4 The current position of the 0-(232 – 1)
playing in milliseconds
elapsed
PlayStatus 1 Current Status of playing 0x00 : STOPPED
0x01 : PLAYING
0x02 : PAUSED
0x03: FWD_SEEK
0x04: REV_SEEK
0xFF : ERROR
Table 6.29: GetPlayStatus response
Note: If TG does not support SongLength And SongPosition on TG, then TG shall return 0xFFFFFFFF.
6.7.2 RegisterNotification
This primitive registers with the TG to receive notifications asynchronously based on specific events
occurring. The initial response to this Notify command shall be an INTERIM response with current status,
or a REJECTED/NOT IMPLEMENTED response. This has to take place within TMTP time from receiving
the command. The following response shall be a CHANGED response with the updated status, or a
REJECT response. This is as per 1394 AV/C protocol specification. A registered notification gets
changed on receiving CHANGED event notification. For a new notification, additional NOTIFY command
is expected to be sent. Only one EventID shall be used per notification registration.
Refer to Figure 29.4 in Appendix J: list of example MSCs of different AVRCP specific commands
(informative).
Command Format (RegisterNotification):
Parameters Size Description Allowed Values
(octets)
EventID 1 Event for which the CT Refer to 28 Appendix H: list of
requires notifications defined notification events
Playback interval 4 Specifies the time interval 0 < Playback interval
(in seconds) at which the
change in playback
position will be notified. If
(0x01)
PlayStatus 1 Indicates the current status of 0x00: STOPPED
playback
0x01: PLAYING
0x02: PAUSED
0x03: FWD_SEEK
0x04: REV_SEEK
0xFF: ERROR
Table 6.31: Response EVENT_PLAYBACK_STATUS_CHANGED
UNPLUGGED (0x02)
Table 6.38: Response EVENT_SYSTEM_STATUS_CHANGED
POWER_OFF and UNPLUGGED are used for Bluetooth Accessories which attach to Media Players. In
this case, it will happen that Audio Player's power state is "POWER OFF" or Audio Player is detached
from Bluetooth Adapter (UNPLUGGED)
Response Data format for EVENT_ PLAYER_APPLICATION_SETTING_CHANGED
Parameters Size Description Allowed Values
(octets)
EventID 1 Specific EventID EVENT_
PLAYER_APPLICATION_SETTIN
G_CHANGED (0x08)
6.8.2 AbortContinuingResponse
This primitive is used by CT to abort continuing response. This command will be invoked by CT after
receiving a response with <Packet Type – Start(01) or Continue(10)>. Refer to Figure 29.6 in Appendix J:
list of example MSCs of different AVRCP specific commands (informative).
Command Format (AbortContinuingResponse)
Parameters Size (octets) Description Allowed Values
ContinueAbort PDU_ID 1 Target PDU_ID for abort PDU_ID
continue command
Table 6.41: AbortContinuingResponse command
Response Format (AbortContinuingResponse)
Parameters Size (octets) Description Allowed Values
None
Table 6.42: AbortContinuingResponse response
6.9.3 SetBrowsedPlayer
Command Command Parameters Response Parameters
SetBrowsedPlayer PlayerId Status,
UID Counter,
Number of Items,
Folder Depth,
Folder Name
The SetBrowsedPlayer command is used to control to which player browsing commands should be
routed. It shall be sent successfully before any other commands are sent on the browsing channel except
GetFolderItems in the Media Player List scope. If the browsed player has become unavailable, the
SetBrowsedPlayer command shall be sent successfully again before further commands are sent on the
browsing channel.
Some players may support browsing only when set as the Addressed Player. This is shown in the player
feature bitmask (see Section 6.10.2.1). If a SetBrowsedPlayer command is received by the TG for a
Player Id which does not support browsing while not addressed it shall return the PlayerNotAddressed
error in the status field of the response.
The response contains the current browsed path of the player. This is built up through a sequence of
name/value pairs as illustrated in the example response in Table 6.44 Example set browsed player
response PDU. This example shows a successful switch to a browsed player with the current directory
DEF, which is the child of the folder BC, which itself is the child of the root folder A, which is in the root
folder. The folder depth of the root folder is 0.
CT implementers should be aware that some legacy implementations will not allow navigation into the
root folder and will only permit the CT to navigate to a minimum folder depth of 1. In this example, the
names are in UTF-8. As with other commands, the character set shall only be UTF-8 or a character set
which the CT has informed the TG it supports, using the InformDisplayableCharacterSet command
(Section 6.5.7).
On completion of the Set Browsed Player command, the TG shall complete the
EVENT_UIDS_CHANGED notification with AV/C CType rejected if it is outstanding.
MSB LSB
Status 0x04 UID Counter – 0x1357 Number of Items MSB
0x00
Number of Items LSB 0x000005 Char Set MSB
0x00
Char Set LSB 0x6A Folder Depth 0x03 Folder Name Length 0x0001
‘A’ 0x41 Folder Name Length 0x0002 ‘B’ 0x42
‘C’ 0x43 Folder Name Length 0x0003 ‘D’ 0x44
‘E’ 0x45 ‘F’ 0x46
Table 6.44 Example set browsed player response PDU
6.9.3.1 Command parameters
Player Id – 2 Octets
Value Parameter Description
0xXXXX Unique Media Player Id as defined in Section
6.10.2.1
6.9.3.2 Response parameters
Status – 1 Octet
Value Parameter Description
Status as defined in Section 6.15.3 The result of the SetBrowsedPlayer operation. If
an error has occurred then this is the only field
present in the response.
UID Counter – 2 Octets
Value Parameter Description
0xXXXX UID Counter as defined in Section 6.10.3
Number of Items – 4 Octets
Value Parameter Description
0xXXXXXXXX If the SetBrowsedPlayer succeeded the number
of items in the current folder. If the
SetBrowsedPlayer did not succeed the value of
this parameter shall be ignored.
Character Set Id – 2 Octets
Value Parameter Description
0xXXXX Specifies the character set ID to be displayed on
CT as defined in IANA character set document,
see [11].
Folder Depth – 1 Octet
Value Parameter Description
0xXX The number of Folder Name Length/Folder Name
pairs which follow
6.9.3.2.1 Folder name length/folder name pair
The following two fields together comprise a Folder Name Length/Folder Name pair. They are repeated
together Folder Depth times, each pair representing one folder level. The root folder has no name and its
folder depth is 0. [/E3294]
Folder Name Length – 2 Octets
Value Parameter Description
0xXXXX The length in octets of the folder name which
follows.
Now Playing 0x03 Media Element Item The Now Playing list Addressed
(or queue) of the
addressed player
Table 6.45: Scopes
6.10.1.1 Media Player list
The Media Player list contains available media players. When the contents of this scope changes, that is
a media player is added or removed, any outstanding AvailablePlayerNotification shall be completed.
Once the connection between the TG and the CT has been established, the TG shall not require user
interaction to use a feature described in that player’s Player Feature Bitmask when the CT controls the
TG. For instance, the TG shall not ask the user if the CT is allowed to perform a search once a
connection is established.
If the Addressed Player ceases to be available the procedure for a TG initiated Addressed Player
Changed procedure described in Section 6.9.2.2 shall be followed.
If the Browsed Player ceases to be available the TG shall complete all commands which require a
selected Browsed Player with an error until the CT selects a new Browsed Player.
6.10.1.2 Media Player virtual media filesystem
The filesystem presented to the CT is a virtual one. The virtual filesystem is hierarchical. Only one virtual
filesystem is presented at a time. The player selected as the browsed player is the player whose virtual
filesystem is presented.
Each folder in a tree is a group of zero, one or more items. Each item can be either a folder or a media
element playable by the player in whose folder tree the element is located. A specific media element can
be present at more than one location within the virtual filesystem.
Root
(Audio Media
Player)
/songlists /bands
t l li t t ti t
/songlists/Monday /songlists/Tuesday
t titl t titl
/songlists/Monday/songABC
Folders present in the filesystem have properties that can be discovered by the CT during browsing.
These properties specify the content type of the folder (e.g., playlist, album, artist). This allows browsing
by type, icon based user interfaces and localization. The total number of items contained in the folder
may also be available.
The TG shall only present items in the media filesystem if they are folders or if they are supported media
items.
The structure of the filesystem below the level of the media player root is implementation dependent.
6.10.1.3 Search
The search scope contains the results of the most recently performed search, if they are still valid. For
more details on the search scope, refer to Section 6.10.1.3.
Note that some media players do not support search. This can be determined by browsing the Media
Player list and retrieving the Media Player Item for the required Media Player. The Player Feature Bitmask
(Section 6.10.2.1) includes a bit indicating support for Search.
6.10.1.4 Now Playing
The Now Playing scope contains the items in the Now Playing list, or queue of the addressed media
player.
Support of the Now Playing folder is mandatory if Browsing is supported (otherwise it is optional). In the
case where the media player does not natively support a Now Playing folder, it may present a folder
containing one item, the currently playing media element, as would be returned by a
GetElementAttributes command with the now playing UID.
The ordering in which the items in the Now Playing folder are presented over AVRCP shall be the same
as they are presented on the local TG user interface.
6.10.2 Browseable items
6.10.2.1 Media player item
There are currently four base types of media player, audio player (for example mp3 player), video player
(for example mpeg4 player), broadcasting audio player (for example FM radio) and broadcasting video
player (for example DVB-H tuner). These are generic base types into which any player should fall. These
are defined in the Bluetooth Assigned Numbers. The types distinguish between players which are liable to
need to be controlled in different manners, for example, a pause command may not be accepted on a
broadcasting player. These are represented by a bitmask, so a player may fall into more than one of
these major types. Note that it is up to each player to advertise itself appropriately for user’s convenience.
To allow further differentiation to be performed subtypes are defined. These are defined in the Bluetooth
Assigned numbers. There are two defined subtypes, Audio Book player and Podcast player. Future
subtypes may be defined in the Bluetooth Assigned Numbers. These are both subtypes of the audio
player type. This field is also a bitmask.
The Play Status field can be used by the CT to learn which players are currently playing without having to
switch the Addressed Player between all players to explicitly request each player’s status separately
(Note that on some TGs, switching the Addressed Player might result in stopping a player’s audio
stream).
Each Player on a TG announces its features to the CT in the PlayerFeatureBitmask. This allows the CT to
only offer functions to the user that are available on the current player. Although the SDP record is used
to indicate what the AVRCP implementation is capable of supporting this does not mean that all players
present on the device have equal capabilities. The Player Feature Bitmask provides finer grained
information on the capabilities of a specific player. Because it is player specific it shall be used in
preference to the SDP record if the CT requires information about a specific player.
The Advanced Control Player bit indicates that the player supports AVRCP v1.4 or above. For legacy
players below AVRCP v1.4, the PlayerFeatureBitmask shall be handled by the underlying Bluetooth stack
that routes the commands to the different players. In that case, the feature bits shall be set to reflect the
supported Categories and the CT shall be aware that these capabilities only give a hint of the TG
features.
Item Type – 1 Octets
Value Parameter Description
0x01 Media Player Item
Item Length – 2 Octets
Value Parameter Description
0xXXXX Length of media player item in octets, not
including Item Type and Item Length fields.
Player Id – 2 Octets
Value Parameter Description
0xXXXX A unique identifier for this media player.
Major Player Type – 1 Octet
Value Parameter Description
Bit 0 (0x01) Audio
Bit 1 (0x02) Video
Bit 2 (0x04) Broadcasting Audio
Is Playable – 1 Octet
Value Parameter Description
0x00 The folder cannot be played. This means that the
folder UID shall not be passed to either the
PlayItem or AddToNowPlaying commands.
0x01 The folder can be played. The folder UID may be
passed to the PlayItem and AddtoNowPlaying (if
supported) commands. The media player
behavior on playing a folder should be same as
on the local user interface.
0x02 - 0xFF Reserved
Character Set ID – 2 Octets
Value Parameter Description
0xXXXX Specifies the character set ID to be displayed on
CT as defined in IANA character set document,
see [11].
Displayable Name Length – 2 Octets
Value Parameter Description
0xXXXX Length of Displayable Name in octets. The name
shall be limited such that a response to a
GetFolderItems containing one folder item fits
within the maximum size of PDU which can be
received by the CT.
Displayable Name – Displayable Name Length Octets
Value Parameter Description
String Displayable name of folder
6.10.2.3 Media element item
Each media element is identified by a UID.
The allowable values for Media Type are defined in the Bluetooth Assigned Numbers [6].
Item Type – 1 Octet
Value Parameter Description
0x03 Media Element Item
Item Length – 2 Octets
Value Parameter Description
0xXXXX Length of media element item in octets, not
including Item Type and Item Length fields.
Media Element UID – 8 Octets
Value Parameter Description
0xXXXXXXXXXXXXXXXX UID as defined in Section 6.10.3
Media Type – 1 Octet
Value Parameter Description
0x00 Audio
0x01 Video
0x02-0xFF Reserved
6.10.3 UIDs
Media elements are identified within the virtual filesystem by an 8 octet identifier, the UID. The UID shall
be unique within a scope with the exception of the Virtual Media Player Filesystem on database unaware
media players as described in Section 6.10.3.1. Scope is defined in Section 6.10.1.2.
Within the Virtual Media Player Filesystem, a UID uniquely identifies a Media Element Item. If the same
Media Element Item is present at more than one location in the Virtual Media Player Filesystem, then it
may have the same UID in each location. Within the Now Playing list, a UID uniquely identifies a Media
Element Item. If the same Media Element Item is present at more than one location in the Now Playing
list, each instance shall have a different UID.
The value of UID=0x0 is a special value used only to request the metadata for the currently playing media
using the GetElementAttributes command and shall not be used for any item in a folder.
The UID shall be used whenever a media element is required to be identified. For example, it may be
used in conjunction with the GetItemAttributes command to obtain metadata information about a specific
media element, or in combination with ChangePath to change to a specific folder.
The UID scope is limited to one player, even if that player may have unique UIDs across its virtual
filesystem. For example, a media element with the UID 1 in the folder hierarchy for player 1 may be a
different media element to that with the UID 1 in the folder hierarchy for player 2.
There are two different ways a Media Player on a target may handle the UID, depending on the nature of
the Media Player: Database Aware (with UID change detection) and Database Unaware (without UID
change detection). UID handling is specific to a player, and different players on the same TG device may
behave in different ways. Support for UID change detection is indicated in the media player feature
bitmask (see Table 6.46 Player Feature Bitmask). Database aware players shall maintain a UID counter
that is incremented whenever the database changes.
6.10.3.1 Database Unaware Players (without UID change detection)
Some media players may not have the ability to detect when UIDs cease to be valid. For these the scope
in the media browsing tree is limited to one folder at a time, that is when the current path is changed all
current UIDs cease to be valid. Therefore, the CT shall always update its UID information after each
change of path and not rely on any UIDs stored from previous visits to a folder. Database Unaware
Players shall always return UIDcounter=0. Database Unaware Players may use the
UIDsChangedNotification to indicate changes to the Media Database.
6.10.3.2 Database Aware Players (with UID change detection)
Database Aware players are aware of any change to their Media database. They shall ensure the UID is
unique across the entire media browsing tree. Any change to the Media Database shall result in an
increase of the UIDcounter and a UIDsChangedNotification.
The unique identifier may persist between AVRCP Browse Reconnects, but is not required to do so.
However the TG should try to persist the UIDs for as long as possible and should only change them when
there is a change in available media content. The player application on the TG shall announce in its
feature bitmask whether it is able to persist UIDs between AVRCP Browse Reconnects. An AVRCP
Browse Reconnect occurs whenever the browsed player is switched with the SetBrowsedPlayer
command. This may be the result of the CT changing the browsed player, or may be as a result of the
underlying AVCTP browsing channel having been released and established again.
The UID counter shall be incremented every time the TG makes an update which invalidates existing
UIDs, skipping the value 0. The TG should ensure that the amount by which the counter is incremented is
small, to avoid the counter wrapping frequently. The initial value of the UID counter, including the situation
when the UID counter is not persisted between AVRCP Browse Reconnects, shall be a random value
between 1 and 65535. This reduces the chance of the UID counter incorrectly indicating no change for
the players where UID counter is not persisted between AVRCP Browse Reconnects or in case if the TG
has been reset to factory settings.
If the TG has a UID counter value not equal to the UID counter value on the CT, then any UIDs cached
on the CT are invalid. Any UID dependent information cached on the CT is therefore invalid.
The TG should keep UIDs as persistent as possible to avoid situations such as the CT retrieving a folder
listing, and then the UIDs becoming invalid before the CT performs an operation. Only circumstances
such as a change of available media (e.g., insertion of memory card) or local error conditions (e.g., out of
memory) should cause the TG to regenerate UIDs. The TG should have a sensible strategy to minimize
UID changes in circumstances where there is liable to be a burst of changes to media. For example, if a
TG device is to be synchronized with a remote media library it should only update UIDs once the
synchronization process is complete.
6.10.3.3 UIDs Changed notification
To enable the CT to detect when the UIDs have changed on the TG it may register a notification for the
event EVENT_UIDS_CHANGED.
This is an event which may be used for the Register Notification command described in Section 6.7.2,
which is a vendor dependent AV/C Notify.
A database unaware player may accept and complete UIDs changed notifications as it may be able to
detect some changes to the available media. However it should be noted that the UID counter value shall
always be 0.
Note that to refresh UID information after having received an EVENT_UID_CHANGED, the Media Player
Virtual Filesystem may be browsed (see Section 6.10.4.2). If the Media Player Virtual Filesystem is
browsed as reaction to the EVENT_UIDS_CHANGED, the CT should register the
EVENT_UIDS_CHANGED again before browsing the Media Player Virtual Filesystem in order to get
informed about intermediate changes within the filesystem.
The response parameters for this event are defined in Section 6.10.3.3.1. As with all Register
Notifications, the response parameters are the same for the Interim and Final responses.
An example PDU for this command is given in Section 25.15.
6.10.3.3.1 Response parameters
UID Counter – 2 Octets
Value Parameter Description
0xXXXX The UID Counter of the currently browsed player
as defined in Section 6.10.3
6.10.4 Browsing commands
Browsing commands are used to retrieve information about the available browsable items.
Some players may not support browsing of the media player tree or search results unless the Browsed
Player is set to the Addressed Player. This is indicated in the player feature bitmask.
6.10.4.1 ChangePath
Command Command Parameters Response Parameters
ChangePath UID Counter, Status,
FolderUID
The ChangePath command is used to navigate the virtual filesystem. This command allows the CT to
navigate one level up or down in the virtual filesystem
Attribute List
This PDU can be used to retrieve a listing of the contents of a folder. The CT may specify a range of
entries to be returned. This means that a CT which can only display a limited number of items can obtain
a listing one part at a time as the user scrolls the display. If possible, the returned list should resemble the
order used on the local display on the TG, but should list all folder items before media element items to
facilitate browsing on the CT.
To allow the CT to request specific Metadata Attributes be returned along with each media element in the
folder listing, the command shall include a filter specifying which metadata attributes are requested to be
returned by the TG. The TG should provide the available attribute values in the response. The TG is not
required to provide a value for all requested attributes.
The CT should not issue a GetFolderItems command to an empty folder. If the TG receives a
GetFolderItems command for an empty folder, then the TG shall return the error (= Range Out of Bounds)
in the status field of the GetFolderItems response.
In some situations the CT may issue a command where the response with full data would exceed the
maximum size of AVRCP PDU, which the CT can handle. In this case the TG should prefer to return
complete items. So if four items were requested with three attributes each, then the TG should return as
many items as can be returned with full attribute data. If the response containing only one item still
exceeds the size which can be handled by the CT, then the TG should return less attributes than are
requested.
6.10.4.2.1 Command parameters
Scope – 1 Octet
Value Parameter Description
0xXX Scope as defined in Section 6.10.1
Start Item – 4 Octets
Value Parameter Description
0xXXXXXXXX The offset within the listing of the item, which
should be the first returned item. The first
element in the listing is at offset 0.
End Item – 4 Octets
Value Parameter Description
0xXXXXXXXX The offset within the listing of the item which
should be the final returned item. If this is set to a
value beyond what is available, the TG shall
return items from the provided Start Item index to
the index of the final item. If the End Item index is
smaller than the Start Item index, the TG shall
return an error. If CT requests too many items,
TG can respond with a sub-set of the requested
items.
Attribute Count– 1 Octet
Value Parameter Description
0x00 All attributes are requested. There is no following
Attribute List.
0x01-0xFE The following Attribute List contains this number
of attributes.
0xFF No attributes are requested. There is no following
Attribute List.
Attribute List
Value Parameter Description
Attribute Count Attributes as defined in Section Attributes which are requested to be returned for
26 each item returned.
Number of Attributes,
AttributeID list
The GetItemAttributes command is used to retrieve the metadata attributes for a particular media element
item or folder item. The PDU format is similar to that of the GetElementAttributes command, however the
GetItemAttributes is sent over the browsing channel to the Browsed Player and is not encapsulated within
an AV/C frame.
When the TG supports GetItemAttributes, the CT shall use GetItemAttributes and not
GetElementAttributes. To retrieve the Metadata for the currently playing track, the CT should register to
receive Track Changed Notifications. This shall then provide the UID of the currently playing track, which
can be used in the scope of the Now Playing folder.
6.10.4.3.1 Command parameters
Scope – 1 Octet
Value Parameter Description
Scope as defined in Section 6.10.1 The scope in which the UID of the media element
item or folder item is valid.
UID – 8 Octets
Value Parameter Description
0xXXXXXXXXXXXXXXXX The UID of the media element item or folder item
to return the attributes for as defined in Section
6.10.3. UID 0 shall not be used.
UID Counter,
Number of Items
This PDU can be used to retrieve the number of items in a folder prior to calling GetFolderItems to
retrieve a listing of the contents of a folder. The purpose of the command is to provide both scaling
information, and total item count for devices that may not be able to store or display an entire folder
content listing.
6.10.4.4.1 Command Parameters
Scope – 1 Octet
Value Parameter Description
0xXX Scope as defined in section 6.10.1.
6.11 Search
Command Command Parameters Response Parameters
Search Character Set, Status,
UID,
UID Counter
The PlayItem command starts playing an item indicated by the UID. It is routed to the Addressed Player.
If a UIDs_CHANGED event has happened on the TG, but not yet received by the CT, the CT may send
PlayItem command with the previous UIDcounter. In this case a failure status shall be returned.
Sending PlayItem to the Addressed Player with the scope of Media Player Virtual Filesystem or Search
shall result in the Now Playing folder being invalidated. The old content may not be valid any more or may
contain additional items. What is put in the NowPlaying folder depends on both the media player and its
state; however the item selected by the PlayItem command shall be included.
Sending PlayItem on an item in the Now Playing item should not change the contents of the Now Playing
Folder, the only effect is that the new item is played
The CT shall not send PlayItem with the scope of Media Player List.
The CT may send PlayItem with the UID of a Folder Item if the folder is playable (see Section 6.10.2.2). If
a TG receives a PlayItem command with the UID of a type it cannot play it shall return a specific error to
indicate this as defined in Section 6.15.3.
6.12.1.1 Command parameters
Scope – 1 Octet
Value Parameter Description
Scope as defined in Section 6.10.1 The scope in which the UID of the media element
item or folder item, if supported, is valid.
UID – 8 Octets
Value Parameter Description
0xXXXXXXXXXXXXXXXX The UID of the media element item or folder
item, if supported, to be played as defined in
Section 6.10.3.
UID Counter – 2 Octets
Value Parameter Description
0xXXXX The UID Counter as defined in Section 6.10.3.
6.12.1.2 Response parameters
Status – 1 Octet
Value Parameter Description
Status as defined in Section 6.15.3 The result of the PlayItem operation.
6.12.2 AddToNowPlaying
Command Command Parameters Response Parameters
AddToNowPlaying Scope, Status
UID,
UID Counter
The AddToNowPlaying command adds an item indicated by the UID to the Now Playing queue.
Sending AddToNowPlaying with the scope of Media Player Virtual Filesystem, NowPlaying or Search
shall result in the item being added to the Now Playing folder on media players that support the
AddToNowPlaying command.
The CT shall not send an AddToNowPlaying command with the scope set to Media Player List.
If a UIDs_CHANGED event has happened on the TG, but not yet received by the CT, the CT may send
an AddToNowPlaying command with the previous UIDcounter. In this case a failure status shall be
returned.
The CT may send AddToNowPlaying with the UID of a Folder Item if the folder is playable (see Section
6.10.2.2). The result of this is that the contents of that folder are added to the Now Playing folder, not the
folder itself. The Now Playing folder shall not have subfolders. If a TG receives an AddToNowPlaying
command with the UID of a type it cannot play it shall return a specific error to indicate this as defined in
Section 6.15.3.
This command is used to set an absolute volume to be used by the rendering device. This is in addition to
the relative volume PASS THROUGH commands. It is expected that the audio sink will perform as the TG
for this command.
As this command specifies a percentage rather than an absolute dB level, the CT should exercise caution
when sending this command.
It should be noted that this command is intended to alter the rendering volume on the audio sink. It is not
intended to alter the volume within the audio stream.
The volume level which has actually been set on the TG is returned in the response. This is to enable the
CT to deal with whatever granularity of volume control the TG provides.
When the volume is changed on the TG by this command, the Volume Change notification shall not be
completed.
The Set Absolute Volume command is transported as an AV/C Control command. The command and
response parameters are given in Section 6.13.2.1 and Section 6.13.2.2.
An example PDU is given in Section 25.16.
The General Reject response is used in situations where the received command cannot be parsed
sufficiently to return a command specific response, for example, commands where the PDU Id is not
recognized. It shall only be used to reject commands sent on the browsing channel (refer to Table 4.5:
AVRCP specific operations).
It should be noted that as with all other commands the response can be matched up with the command it
refers to by the AVCTP transaction label.
6.15.2.1.1 Response parameters
Reject Reason – 1 Octet
Value Parameter Description
Error code as defined in Section 6.15.3 The reason for the General Reject
6.15.3 Status and error codes
The responses of AVRCP Specific Browsing Commands contain a status field to indicate success/failure
and an error status code is added to the AV/C REJECTED response if the TG rejected an AVRCP
Specific AV/C command. It is useful for CT to know why the command was rejected by the TG. Table
6.49 shows the status and error codes to be used with both AVRCP Specific Browsing Commands and
AVRCP Specific AV/C Commands.
Error/Status Code Description Valid for Commands
0x00 Invalid command, sent if TG received All
a PDU that it did not understand.
0x01 Invalid parameter, sent if the TG All
received a PDU with a parameter ID
that it did not understand. This error
code applies to the following
identifiers:
• PDU ID
• Capability ID
• Event ID
• Player Application Setting
Attribute ID
• Player Application Setting Value
ID
• Element Attribute ID
0x02 Parameter content error. Sent if the All
parameter ID is understood, but
content is wrong or corrupted.
0x03 Internal Error - sent if there are error All
conditions not covered by a more
specific error code.
0x04 Operation completed without error. All except where the response
This is the status that should be CType is AV/C REJECTED
returned if the operation was
successful.
0x05 UID Changed – The UIDs on the All
device have changed
0x06 Reserved All
0x07 Invalid Direction – The Direction Change Path
parameter is invalid
0x08 Not a Directory – The UID provided Change Path
does not refer to a folder item
Protocol #0
Protocol #1 UUID AVCTP M
Parameter #0 for Version Uint 16 0x0104*1 M
Protocol #1
Additional Protocol C1
Descriptor List
Protocol Descriptor C1
List
Protocol #0 UUID L2CAP C1
Parameter #0 for PSM Uint 16 PSM= C1
AVCTP_Browsing
Protocol #0
Protocol #1 UUID AVCTP C1
Parameter #0 for Version Uint 16 0x0104*1 C1
Protocol #1
Bluetooth Profile M
Descriptor List
Profile #0 UUID A/V Remote M
Control
Parameter #0 for Version Uint 16 0x0106*2 M
Profile #0
Bit 1 = Category 2
Bit 2 = Category 3
Bit 3 = Category 4
Bit 6 = Supports
browsing
Bit 7 = Supports
Cover Art
GetImagePropertie
s feature
Bit 8 = Supports
Cover Art
GetImage feature
Bit 9 = Supports
Cover Art
GetLinkedThumbn
ail feature
Protocol #0
Protocol #1 UUID AVCTP M
Parameter #0 for Version Uint 16 0x0104*1 M
Protocol #1
Additional Protocol C1
Descriptor List
Protocol Descriptor C1
List
Protocol #0 UUID L2CAP C1
Parameter #0 for PSM Uint 16 PSM= C1
AVCTP_Browsing
Protocol #0
Protocol #1 UUID AVCTP C1
Parameter #0 for Version Uint 16 0x0104*1 C1
Protocol #1
Protocol Descriptor C2
List #1
Protocol #0 UUID L2CAP C2
Parameter #0 for PSM Uint 16 Dynamically C2
Protocol #0 assigned L2CAP
PSM on which the
Cover Art service is
available
Protocol #1 UUID OBEX C2
Bluetooth Profile M
Descriptor List
Profile #0 UUID A/V Remote M
Control
Parameter #0 for Version Uint 16 0x0106*2 M
Profile #0
Bit 1 = Category 2
Bit 2 = Category 3
Bit 3 = Category 4
Bit 4 = Player
Application
Settings. Bit 0
should be set for
this bit to be set.
Bit 5 = Group
Navigation. Bit 0
should be set for
this bit to be set.
Bit 6 = Supports
browsing*4
Bit 7 = Supports
multiple media
player applications
Bit 8 = Supports
Cover Art
*4: Bit 6 (Browsing supported) is not set based on category. Bit 6 in the SDP record shall only be set if
browsing of the "Media Player Virtual Filesystem" is supported.
C1 If SDP record indicates support for categories 1 or 3, then the SDP record shall contain the Additional
Protocol Descriptor List for the browsing channel.
C2 Mandatory if Cover Art is supported.
9.2 Signaling
AVRCP does not impose any restrictions or requirements on L2CAP signaling.
12.1 Modes
In addition to the requirements in GAP [8], the requirement in Table 12.1 applies to AVRCP.
Procedure Support in CT Support in TG
1. Discoverability modes
2. General Discoverable Mode M M
Table 12.1: Modes
1. General inquiry M O
2. Limited inquiry O O
3 Name discovery O O
4. Device discovery O O
5. Bonding O O*
Table 12.2: Supported Idle mode procedures
*: Acceptance of bonding shall be supported. If General inquiry is supported, initiation of bonding shall be
supported, otherwise, should be supported.
16 Testing
The Audio Video Remote Control Profile requires interoperability test. The details of the test strategy are
described in [5]. Tested functionality is defined in [4].
18 References
[1] 1394 Trade Association , AV/C Digital Interface Command Set – General Specification, Version 4.0,
Document No. 1999026 and AV/C Digital Interface Command Set - General Specification, Version
4.1, Document No. 2001012 (http://www.1394ta.org)
[2] 1394 Trade Association , AV/C Panel Subunit, Version 1.1, Document No. 2001001
(http://www.1394ta.org)
[3] Bluetooth SIG, Specification of the Bluetooth System, Profiles, Version 1.0 or Later, Audio/Video
Control Transport Protocol
[4] Bluetooth SIG, Specification of the Bluetooth System, ICS, Version 1.0 or Later, ICS proforma for
Audio/Video Remote Control Profile
[5] Bluetooth SIG, Specification of the Bluetooth System, TSS, Version 1.0 or Later, Test Suite Structure
(TSS) and Test Procedures (TP) for Audio/Video Remote Control Profile
[6] Bluetooth SIG, Bluetooth Assigned Numbers, Bluetooth SIG member web site
[7] Bluetooth Core Specification Version 1.2 or Later, Baseband
[8] Bluetooth Core Specification Version 1.2 or Later, Generic Access Profile
[9] Bluetooth Core Specification Version 1.2 or Later, Link Manager Protocol
[10] Bluetooth Core Specification Version 1.2 or Later, Service Discovery Protocol
[11] http://www.iana.org/assignments/character-sets
[12] Bluetooth SIG, Specification of the Bluetooth System, Core, Addendum 1, Logical Link Control and
Adaptation Protocol Specification
[13] Graphics Interchange Format, Version 89a (http://www.w3.org/Graphics/GIF/spec-gif89a.txt)
[14] Basic Image Profile Version 1.0 or later,
[15] Bluetooth Core Specification Version 3.0 or Later, Logical Link Control and Adaptation Protocol
Specification
[16] Generic Object Exchange Profile v2.0 or later
[17] Infrared Data Association, IrDA Object Exchange Protocol (IrOBEX) Version 1.5 or later
19 List of figures
Figure 1.1: Audio/Video Remote Control Profile dependency .................................................................... 10
Figure 1.2: Signaling conventions ............................................................................................................... 12
Figure 2.1: Protocol model .......................................................................................................................... 15
Figure 2.2: Controller and target ................................................................................................................. 16
Figure 2.3: Remote control from separate controller .................................................................................. 17
Figure 2.4: Remote control from car audio system ..................................................................................... 17
Figure 2.5: Remote control and audio stream between two devices .......................................................... 18
Figure 2.6: Mutual remote control within a piconet ..................................................................................... 18
Figure 2.7: Headphone with LCD connected to media player .................................................................... 19
Figure 2.8: Cover Art from the browsed or played media items ................................................................. 19
Figure 4.1: Connection establishment initiated by CT ................................................................................ 24
Figure 4.2: Connection establishment initiated by TG ................................................................................ 25
Figure 4.3: Control channel establishment initiated by TG and browsing channel establishment initiated by
CT when needed. ................................................................................................................................. 25
Figure 4.4: Connection release initiated by CT or TG ................................................................................ 26
Figure 4.5: Procedure of AV/C command ................................................................................................... 26
Figure 6.1 Virtual filesystem example ......................................................................................................... 67
Table 22.1 Example of latency .................................................................................................................. 109
Table 23.1: Category combination examples............................................................................................ 110
Figure 25.1: UNIT INFO command frame ................................................................................................. 112
Figure 25.2: UNIT INFO response frame .................................................................................................. 112
Figure 25.3: SUBUNIT INFO command frame ......................................................................................... 113
Figure 25.4: SUBUNIT INFO response frame .......................................................................................... 113
Figure 25.5: PASS THROUGH command frame ...................................................................................... 114
Figure 25.6: PASS THROUGH response frame ....................................................................................... 114
Figure 29.1 Example message sequence chart ...................................................................................... 137
Figure 29.2: Example of using InformDisplayableCharacterSet where the TG does not support any of the
listed character sets other than UTF-8 ............................................................................................... 138
Figure 29.3: Example of using InformDisplayableCharacterSet where the TG supports at least one of the
listed character sets in addition to UTF-8 .......................................................................................... 139
Figure 29.4: Example of using RegisterNotification .................................................................................. 139
Figure 29.5: Example of using RequestContinuingResponse .................................................................. 140
Figure 29.6: Example of using AbortContinuingResponse ....................................................................... 140
Updated MSC replaces current MSC, which is identical to MSC in 26.13 in AVRCP 1.5 ........................ 147
Updated MSC ............................................................................................................................................ 148
Figure 30.1: AV/C command frame .......................................................................................................... 157
Figure 30.2: AV/C response frame ........................................................................................................... 158
20 List of Tables
Version History ............................................................................................................................................ 2
Table 3.1: Application layer features ........................................................................................................... 21
Table 3.2: Application layer feature to procedure mapping ........................................................................ 23
Table 4.1: List of possible AV/C commands ............................................................................................... 27
Table 4.2: Supported unit commands ......................................................................................................... 28
Table 4.3: Vendor Dependent commands .................................................................................................. 29
Table 4.4: PASS THROUGH command ..................................................................................................... 29
Table 4.5: AVRCP specific operations ........................................................................................................ 32
Table 4.6: AVRCP Specific vendor unique PASS THROUGH command .................................................. 33
Table 4.7: Support levels of operation_id in TG.......................................................................................... 34
Table 4.8: Support levels of operation_id in CT .......................................................................................... 36
Table 6.1: AVRCP specific AV/C PDU format ............................................................................................ 45
Table 6.2: AVRCP specific AV/C command ............................................................................................... 45
Table 6.3: Browsing PDU header format .................................................................................................... 46
Table 6.4: GetCapabilities command .......................................................................................................... 46
Table 6.5: GetCapabilities command allowed values ................................................................................. 46
Table 6.6: GetCapabilities response for COMPANY_ID............................................................................. 47
Table 6.7: GetCapabilities response for CompanyID allowed values ......................................................... 47
Table 6.8: GetCapabilities response for EVENTS_SUPPORTED.............................................................. 47
Table 6.9: GetCapabilities response for EVENTS_SUPPORTED allowed values ..................................... 47
Table 6.10: ListPlayerApplicationSettingAttributes command .................................................................... 48
Table 6.11: ListPlayerApplicationSettingAttributes response ..................................................................... 48
Table 6.12: ListPlayerApplicationSettingValues command ........................................................................ 49
Table 6.13: ListPlayerApplicationSettingValues response ......................................................................... 49
Table 6.14: GetCurrentPlayerApplicationSettingValue command .............................................................. 49
Table 6.15: GetCurrentPlayerApplicationSettingValue response ............................................................... 50
Table 6.16: SetPlayerApplicationSettingValue command .......................................................................... 50
Table 6.17: SetPlayerApplicationSettingValue response ........................................................................... 50
Table 6.18: GetPlayerApplicationSettingAttributeText command ............................................................... 51
Table 6.19: GetPlayerApplicationSettingAttributeText response ................................................................ 51
Table 6.20: GetPlayerApplicationSettingValueText command ................................................................... 52
Table 6.21: GetPlayerApplicationSettingValueText response .................................................................... 52
Table 6.22: InformDisplayableCharacterSet command .............................................................................. 53
Table 6.23: InformDisplayableCharacterSet response ............................................................................... 53
Table 6.24: InformBatteryStatusOfCT command ........................................................................................ 54
Table 6.25: InformBatteryStatusOfCT response ......................................................................................... 54
Table 6.26: GetElementAttributes command .............................................................................................. 55
Table 6.27: GetElementAttributes response ............................................................................................... 55
Table 6.28: GetPlayStatus command ......................................................................................................... 56
Table 6.29: GetPlayStatus response .......................................................................................................... 56
Table 6.30: RegisterNotification command ................................................................................................. 57
Table 6.31: Response EVENT_PLAYBACK_STATUS_CHANGED .......................................................... 57
Table 6.32: Response EVENT_TRACK_CHANGED ................................................................................. 58
Table 6.33: Response EVENT_TRACK_REACHED_END ........................................................................ 58
Table 6.34: Response EVENT_TRACK_REACHED_START .................................................................... 58
Table 6.35: Response EVENT_ PLAYBACK_POS_CHANGED ................................................................ 58
Table 6.36: Response EVENT_BATT_STATUS_CHANGED .................................................................... 59
Table 6.37: Allowed Values for Battery Status............................................................................................ 59
Table 6.38: Response EVENT_SYSTEM_STATUS_CHANGED............................................................... 59
Table 6.39: Response EVENT_ PLAYER_APPLICATION_SETTING_CHANGED ................................... 60
Table 6.40: RequestContinuingResponse command ................................................................................. 60
Figure 2.3: Remote control from Remote Controller Portable Disc Player 200 msec
separate controller
Figure 2.5: Remote control and Headphone Portable Disc Player 200 msec
audio stream between two devices
Figure 2.6: Mutual remote control Headphone Portable Disc Player 200 msec
within a piconet
Figure 2.7: Headphone with LCD Headphone with Portable Disc Player 100 msec
connected to media player LCD Remote
Controller
Figure 2.7: Headphone with LCD Remote Controller VCR 100 msec
connected to media player
Table 22.1 Example of latency
(FF16) octet 3
(FF16) octet 4
(FF16) octet 5
(FF16) octet 6
(FF16) octet 7
(0716) octet 3
octet 5
octet 7
If, in future, a Bluetooth AV control profile that applies AV/C command set is defined, and if a TG supports
this AV control profile in addition to AVRCP, it is possible that a TG returns other subunit type than Panel
as its unit_type.
(FF16) octet 4
(FF16) octet 5
(FF16) octet 6
(FF16) octet 7
(FF16) octet 5
(FF16) octet 6
(FF16) octet 7
If, in future, a Bluetooth AV control profile that applies AV/C command set is defined, and if a TG supports
this AV control profile in addition to AVRCP, the TG returns all of its supporting subunits including Panel in
page_data field.
msb lsb
0000 ctype: CONTROL (016) octet 0
subunit_type: Panel (916) subunit_ID: (016) octet 1
opcode: PASS THROUGH (7C16) octet 2
14
Register Notification interim response
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xF (INTERIM)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x9
10 EventID2: 0x2 (EVENT_TRACK_CHANGED)
11- Identifier: 0xFFFFFFFFFFFFFFFF
18
Register Notification response
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x9
10 EventID2: 0x2 (EVENT_TRACK_CHANGED)
11- Identifier: 0x0
18
18 AttributeCount: 0x2
19 - 22 Attribute1: 0x1 (TitleOfMedia)
25.9 Fragmentation
Initial GetElementAttributes Command
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Ctype: 0x1 (STATUS)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID (0x20 – GetElementAttributes)
7 Reserved (0x00) Packet Type (0x0)
8-9 Parameter Length (0x11)
10 - Identifier: 0x0 (PLAYING)
17
18 AttributeCount: 0x2
19 - Attribute1: 0x1 (TitleOfMedia)
22
23 - Attribute2: 0x7 (Playing Time)
26
Start Fragment GetElementAttributes Response
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xC (STABLE)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID (0x20 – GetElementAttributes)
7 Reserved (0x00) Packet Type (0x1)
8-9 Parameter Length (0x1F6)
10 Number of Attributes (0x2)
11 - Attribute ID 1: 0x1 (TitleOfMedia)
14
15 - CharacterSetID1: 0x6A (UTF-8)
16
17 – AttributeValueLength1: 0x1FA
18
19 - AttributeValue1: First 0x1ED octets
51
RequestContinuingResponse:
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Ctype: 0x0 (CONTROL)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID (0x40 – RequestContinuingResponse)
7 Reserved (0x00) Packet Type (0x0)
8-9 Parameter Length (0x1)
10 PDU ID: 0x20
End Fragment GetElementAttributes Response:
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xC (STABLE)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
10 -
11
Player Id as defined in Section 6.10.2.1
Response for Set Addressed Player.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Ctype: 0x9 (Accepted)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3 -5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID (0x60 – SetAddressedPlayer)
7 Reserved (0x00) Packet Type (0x0)
8 – Parameter Length (0x1)
9
10 Status as defined in Section 6.15.3
14
Addressed Player Changed Notification Response.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x5
10 EventID2: 0xb (EVENT_ADDRESSED_PLAYER_CHANGED)
11 - PlayerId as defined in Section 6.10.2.1
12
13 - UID Counter as defined in Section 6.10.3
14
14
Available Players Changed Notification Response.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x1
10 EventID2: 0x0a (EVENT_AVAILABLE_PLAYERS_CHANGED)
14
Now Playing Content Changed Notification Response.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x1
10 EventID: 0x09 (EVENT_NOW_PLAYING_CONTENT_CHANGED)
14
UIDs changed notification response.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x3
10 EventID: 0x0c (EVENT_UIDS_CHANGED)
11 - UID Counter as defined in Section 6.10.3
12
14
Volume Changed Notification Response.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Response: 0xD (CHANGED)
1 Subunit_type: 0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x31 (Register Notification)
7 Reserved: 0x00 Packet Type: 0x0
8-9 Parameter Length: 0x2
10 EventID2: 0x0d (EVENT_ VOLUME_CHANGED)
11 RFD Absolute Volume
[E5
539]
100 Feature Bit Mask: 0x0000000000B701EF02000000000000 (Support Play / Stop / Pause /
- Rewind / fast forward / Forward / Backward / Vendor Unique / Basic Group Navigation /
115 Advanced Control Player / Browsing / AddToNowPlaying / UIDs unique /
OnlyBrowsableWhenAddressed / NowPlaying)
[E5
539]
116 Character Set Id: 0x006A (UTF-8)
-
117
[E5
539]
118 Displayable Name Length: 0x000b (11) [E3208]
-
119
[E5
539]
120 Displayable Name: ‘Book Reader’ (0x42 0x6f 0x6f 0x6b 0x20 0x52 0x65 0x61 0x64 0x65 0x72)
-
130
[E5
539]
Browsing command for Get Folder Items.(Filesystem)
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x71 (GetFolderItems)
1-2 Parameter Length : 0x0012 (18)
3 Scope: 0x01 (Media Player Virtual Filesystem)
4-7 Start Item: 0x00000000
8 - End Item: 0x00000001
11
12 AttributeCount: 0x02
13 - Attribute ID: 0x00000001 (Title of the media)
16
17 - Attribute ID: 0x00000002 (Name of the artist)
20
Response for Get Folder Items.(Filesystem)
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x71 (GetFolderItems)
1-2 Parameter Length : 0x0057 (87)[/E3208]
3 Status: 0x04 (Operation completed without error)
4-5 UID Counter: 0x2468
6-7 Number of Items: 0x0002
8 Item Type: 0x02 (Folder Item)
9 - Item Length: 0x0017(23)
10
11 - Folder UID: 0x0000000000000005
18
19 Folder Type: 0x05 (Playlists)
20 Is Playable: 0x01 (The folder can be played)
21 - Character Set Id: 0x006A (UTF-8)
22
23 - Displayable Name Length: 0x0009
24
25 - Displayable Name:’songlists’ (0x73 0x6f 0x6e 0x67 0x6c 0x69 0x73 0x74 0x73)
33
34 Item Type: 0x03 (Media Element Item)
35 - Item Length: 0x0035 (53)
36
37 - Media Element UID: 0x0000000000000007
44
45 Media Type: 0x00 (Audio)
46 - Character Set Id: 0x006A (UTF-8)
47
48 - Displayable Name Length: 0x0008
49
50 - Displayable Name: ‘Tomorrow’ (0x54 0x6f 0x6d 0x6f 0x72 0x72 0x6f 0x77)
57
25.20 ChangePath
Browsing command for ChangePath
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x72 (ChangePath)
1-2 Parameter Length : 0x000B
3-4 UID Counter : 0x1234
5 Direction: 0x01 (Folder Down)
6- Folder UID: 0x0000000000000005
13
25.22 Search
Browsing command for Search.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x80 (Search)
1-2 Parameter Length : 0x000b (11)
3-4 Character Set Id: 0x006A (UTF-8)
5-6 Length : 0x0007
7 - Search String: ‘Country’ (0x43 0x6f 0x75 0x6e 0x74 0x72 0x79)
13
Response for Search
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x80 (Search)
1-2 Parameter Length : 0x0007
3 Status: 0x04 (Operation completed without error)
4-5 UID Counter: 0x1357
6-9 Number of Items: 0x00000005
25.24 AddToNowPlaying
Control command for AddToNowPlaying.
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Ctype: 0x1 (CONTROL)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x90 (AddToNowPlaying)
7 Reserved (0x00) Packet Type (0x0)
8-9 Parameter Length: 0x000b (11)
10 Scope: 0x01 (Media Player Virtual Filesystem)
11 - UID: 0x0000000000000007
18
19 - UID Counter: 0x2468
20
Response for AddToNowPlaying
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 0x0 Ctype: 0x9 (Accepted)
1 Subunit_type:0x9 (PANEL) Subunit_ID: 0x0
2 Opcode: 0x0 (VENDOR DEPENDENT)
3-5 Company ID: Bluetooth SIG registered CompanyID
6 PDU ID: 0x90 (AddToNowPlaying)
25.25 GetTotalNumberOfItems
Command and Response PDUs which may be used in any scope (NowPlayingList, SearchResultList,
Virtual FileSystem, MediaPlayerList) to request the Number of Items in the selected folder at the selected
scope are defined below. These PDUs are used over the Browsing channel.
Command PDU for GetTotalNumberOfItems – Issued by Browsing Controller (CT) role
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x75 (GetTotalNumberOfItems)
1-2 Parameter Length: 0x0001
3 Scope: (0x00-Media Player List, 0x01-Media Player Virtual FS, 0x02-Search, 0x03-Now
Playing)
Response PDU for GetTotalNumberOfItems – Returned by Browsed Target (TG) role
Oct MSB (7) 6 5 4 3 2 1 LSB (0)
0 PDU ID: 0x75 (GetTotalNumberOfItems)
1-2 Parameter Length: 0x0007
3 Status
4-5 UID Counter
6-9 Number of Items
PlayerApplicationSettingValueID O
ValueID Description
Equalizer
0x01
ON/OFF status
0x01 OFF
0x02 ON
0x03-0xFF Reserved for future use
PlayerApplicationSettingValueID O
ValueID Description
Repeat Mode
0x02
status 0x01 OFF
0x02 Single track repeat
0x03 All track repeat
0x04 Group repeat
0x05-0xFF Reserved for future use
PlayerApplicationSettingValueID O
ValueID Description
Shuffle ON/OFF
0x03
status
0x01 OFF
0x02 All tracks shuffle
0x03 Group shuffle
0x04-0xFF Reserved for future use
PlayerApplicationSettingValueID O
ValueID Description
Scan ON/OFF
0x04
status
0x01 OFF
0x02 All tracks scan
0x03 Group scan
0x04-0xFF Reserved for future use
O
Reserved for
0x05 – 0x7F
future use
Provided for TG O
driven static
0x80 – 0xFF media player
menu extension
by CT
Table 27.1: PlayerApplicationSettingAttributeIDs
CT TG
RegisterNotification command
(TRACK_CHANGED)
RegisterNotification response
(INTERIM, TRACK_CHANGED)
User action
(FWD Key Press) PassThrough command (FWD,PRESSED)
User action
( FWD Key Release) PassThrough command (FWD,RELEASED)
RegisterNotification command
(TRACK_CHANGED)
RegisterNotification response
(INTERIM, TRACK_CHANGED)
GetElementAttributes command(PLAYING)
GetElementAttributes response
29.2 InformDisplayableCharacterSet
CT TG
Figure 29.2: Example of using InformDisplayableCharacterSet where the TG does not support any of the listed
character sets other than UTF-8
CT TG
Figure 29.3: Example of using InformDisplayableCharacterSet where the TG supports at least one of the listed
character sets in addition to UTF-8
29.3 RegisterNotification
CT TG
29.4 RequestContinuingResponse
CT TG
X command is responded
VENDOR DEPENDENT response <Packet Type – Startt>
Request to continue (X response )
to send a response
VENDOR DEPENDENT
command
RequestContinuingResponse Part where X command is
continuously responded
<Packet Type - Continue>
VENDOR DEPENDENT response
( X response )
Request to continue
to send a response
VENDOR DEPENDENT command
RequestContinuingResponse
Part where X command is
continuously responded
VENDOR DEPENDENT response <Packet Type - End>
( X response )
29.5 AbortContinuingResponse
With no directive to
send Notifications, TG
sends Legacy
CT TG
<AVRCP Established> Response Only.
Legacy CT does
not register for
Play(Key_Dn
Notifications
PlayRsp(Accept
Play Default
Play(Key_Up
PlayRsp(Accept
TG Local MP
Default MP under
control of TG, and
routes Play/Pause/Etc
appropriately.
Play(Key_Dn
PlayRsp(Accept
Play New Default
Play(Key_Up
PlayRsp(Accept
RegisterNotification(PLAYBACK_STATUS)
InterimResponse(PlaybackStatus)
RegisterNotification(SYSTEM_STATUS)
InterimResponse(SystemStatus)
RegisterNotification(BATTERY_STATUS)
InterimResponse(BatteryStatus)
CT
<AVRCP Established> TG
Connection initiated
by the Sink. L2CAP
connection is
established.
…
RegisterNotification(VOLUME_CHANGED) Source is
InterimResponse(Volume) the
controller.
“BeatPlayer“
CT
Receives a list of <AVRCP Established>
TG
three items of
type media player. GetFolderItems_Cmd(Media Player List)
GetFolderItemsRsp(ListingOfMediaPlayers)
Display list of
media players to SetAddressedPlayer(Player ID)
user.
SetAddressedPlayerRsp()
U l t
CT TG
AVRCP session established
Notifications registered, e.g.:
PLAYBACK_STATUSCHANGED, TRACK_CHANGED
The only available
Player is
„BeatPlayer“ with
RegisterNotification(AVAILABLE_PLAYERS_CHANGED) PlayerID=0
InterimRsp(AVAILABLE_PLAYERS_CHANGED)
PlayItem()
...
User starts „MagicPlayer“
(PlayerID=1)
RegisterNotificationRsp(AVAILABLE_PLAYERS_CHANGED)
RegisterNotification(AVAILABLE_PLAYERS_CHANGED)
CT knows name of InterimRsp(AVAILABLE_PLAYERS_CHANGED)
new player is
MagicPlayerr GetFolderItem(MediaPlayerList)
<RegisterNotifications
(e.g. TRACK_CHANGED, PLAYBACK_STATUSCHANGED, ...)>
...
RegisterNotificationRsp(PLAYBACK_STATUSCHANGED, PLAYING)
Updated MSC replaces current MSC, which is identical to MSC in 26.13 in AVRCP 1.5
CT TG
SetAddressedPlayer(PlayerId=2, ...)
RegisterNotification(TRACK_CHANGED)
InterimResponse()
RegisterNotification(ADDRESSED_PLAYER_CHANGED)
User removes player
PlayerId=2. It is
InterimResponse(PlayerId=2) replaced by player
PlayerId=1
GetFolderItems(MediaPlayerList)
GetFolderItemsRsp(ListMediaPlayers)
SetAddressedPlayer(PlayerId=3, ...)
Updated MSC
GetFolderItems_Cmd(
GetFolderItemsRsp(
SetAddressedPlayerCmd(
Set Player in MP
SetAddressedPlayerRsp(
AddressedPlayerChangedNotification()
Device dependant if
RegisterAddressedPlayerChangedNotification(
previous player continues
playing
PlayCmd button
PlayRsp button play note to default MP
PlayCmd button
PlayRsp button
Search(String)
SearchRsp()
GetFolderItems(SearchResultList)
GetFolderListingRsp(SearchResultList)
PlayItem(UID, SearchResultList)
AddItemToNowPlaying(UID, Scope)
NowPlayingContentChangedNotification
Register_NowPlayingContentChangedNotification
NowPlayingContentChangedNotification(Interrim)
Updated <GetFolderItems(NowPlaying)>
Queue is
shown
Current Player
Queue is is playing from
shown the queue
CT TG
<Ongoing streaming>
<Browsing and song selection>
<Add to queue>
NowPlayingContentChangedNotification
<GetFolderItems(NowPlaying)>
Updated
Queue is
shown RegisterNowPlayingContentChangedNotification
NowPlayingContentChangedNotification(Interrim)
PlayStatusChangedNotification(Playing)
TrackChangedNotification
New GetAttributes_Cmd(Metadata)
queue
<GetFolderItems(NowPlaying)>
and new
song title
is shown
CT TG
RegisterNotification command
(Volume_Changed)
RegisterNotification command
(Volume_Changed)
60 Items
Request Items 0 to
99 from GetFolderItems_Cmd
SearchResultList - DisplNameLen =
(With Attribute Artist 40 for all
(SearchResultList,0,99,1,ArtistName)
Name)
GetFolderItemsRsp(Items 0-24)
Based on CT MTU
of 2048 bytes only
Request Next Items 25 complete Items
25 to 99 from fit in one AVCTP
SearchResultList
Browsing
(With Attribute Artist Response
Name) GetFolderItems_Cmd
command
(SearchResultList,25,100,1,ArtistName)
GetFolderItemsRsp(Items 25-49)
Based on CT MTU
of 2048 bytes again
only 25 complete
… Items fit in one
AVCTP Browsing
Response
command
Maximum
CT TG
receivable MTU of
CT is (e.g., 335
bytes) <AVRCP Established>
Based on CT MTU
GeItemAttributesRsp(6 Attributes) of 335 only 6
CT handles the 4 not
attributes of the
received attributes as
item fit in one
“Not Available” for the
AVCTP Browsing
item. Response
command.
Thus only 6
attributes are put in
th
GetFolderItems(NowPlayingList, 4-6)
Display 2nd page
of 3 songs with
scroll bar GetFolderItems Response(‚Song4', ‚Song5', ‚Song6')
showing 30-60%
CT TG
30 Appendix A: AV/C
This appendix summarizes the information contained in the AV/C specification. Refer to the AV/C General
specification [1] for more information.
msb lsb
opcode octet 2
operand[0] octet 3
operand[1] octet 4
operand[2] octet 5
… :
All of the operands are optional and are defined based on the values of ctype, subunit_type, and opcode.
30.1.3 AV/C response frame
An AV/C response frame is contained in the AVCTP Command/Response Message Information field, and
it has the structure shown in the figure below.
msb lsb
opcode octet 2
operand[0] octet 3
operand[1] octet 4
operand[2] octet 5
… :
All of the operands are optional and are defined based on the values of ctype, subunit_type, and opcode.
30.1.4 AV/C frame fields
For the fields and code values for AV/C command and response frames listed below, as well as the
definition of reserved field and reserved value, refer to the AV/C General Specification.
• Command type codes (ctype)
• Response codes (response)
• AV/C address (subunit_type, subunit_ID)
• Subunit_type and subunit_ID encoding
• Operation (opcode)
• Operands
31 UID scheme(informative)
In order to further illustrate the UID scheme described in Section 6.10.3, this section provides a role
based view on the tasks a device has to perform.