Linux-Media Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] cec-compliance: system audio control
@ 2019-09-09 20:20 Jiunn Chang
  2019-09-10  6:53 ` Hans Verkuil
  2019-09-10 19:34 ` [PATCH v2] " Jiunn Chang
  0 siblings, 2 replies; 5+ messages in thread
From: Jiunn Chang @ 2019-09-09 20:20 UTC (permalink / raw)
  To: linux-media, linux-kernel-mentees; +Cc: hverkuil

Add comment block documenting tests not included from section 13.15 of
the HDMI CEC 1.4b specification.  This section outlines the System Audio
Control feature.

Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
---
 utils/cec-compliance/cec-test-audio.cpp | 30 +++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/utils/cec-compliance/cec-test-audio.cpp b/utils/cec-compliance/cec-test-audio.cpp
index 2bc24daf..e0cdb9dc 100644
--- a/utils/cec-compliance/cec-test-audio.cpp
+++ b/utils/cec-compliance/cec-test-audio.cpp
@@ -309,6 +309,36 @@ const unsigned arc_subtests_size = ARRAY_SIZE(arc_subtests);
 
 /* System Audio Control */
 
+/**
+ * The following scenarios defined in section 13.15 of the HDMI CEC 1.4b
+ * specification are not currently tested:
+ *
+ * 1.  Amplifier initiated <System Audio Mode Request> and active source
+ *     discovery with a <Request Active Source> broadcast plus the
+ *     <Active Source> response.
+ * 2.  Post discovery, amplifier subsequent <Set System Audio Mode> [On]
+ *     and System Audio Control feature support confirmation with TV if
+ *     present.
+ * 3.  Amplifier broadcasts <Set System Audio Mode> [On] to mute the TV and
+ *     unmute amplifier.
+ * 4.  Amplifier broadcasts <Set System Audio Mode> [Off] to unmute the TV
+ *     and mute the amplifier.
+ * 5.  When System Audio Mode is On, muting and unmuting an amplifier sends
+ *     a <Report Audio Status> message to the TV.
+ * 6.  When System Audio Mode is On, the amplifier sends a <Set System Audio
+ *     Mode> [Off] to unmute the TV before going into standby.
+ * 7.  When System Audio Mode is On, only the amplifier can control system
+ *     volume.
+ * 8.  Optional features defined in subsection 13.15.4 of the HDMI CEC 1.4b
+ *     specifictation.
+ * 9.  <Request Audio Descriptor> message is new since HDMI CEC 1.4 so 1.3a
+ *     or earlier devices report <Feature Abort> for this feature.
+ * 10. <Report Audio Descriptor> message is new since HDMI CEC 1.4 so 1.3a
+ *     or earlier devices report <Feature Abort> for this feature.
+ * 11. System Audio Control is new since HDMI CEC 1.3a so 1.3 and earlier
+ *     devices report <Feature Abort> for this feature.
+ */
+
 static int sac_request_sad_probe(struct node *node, unsigned me, unsigned la, bool interactive)
 {
 	struct cec_msg msg = {};
-- 
2.23.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] cec-compliance: system audio control
  2019-09-09 20:20 [PATCH] cec-compliance: system audio control Jiunn Chang
@ 2019-09-10  6:53 ` Hans Verkuil
  2019-09-10 19:34 ` [PATCH v2] " Jiunn Chang
  1 sibling, 0 replies; 5+ messages in thread
From: Hans Verkuil @ 2019-09-10  6:53 UTC (permalink / raw)
  To: Jiunn Chang, linux-media, linux-kernel-mentees

On 9/9/19 10:20 PM, Jiunn Chang wrote:
> Add comment block documenting tests not included from section 13.15 of
> the HDMI CEC 1.4b specification.  This section outlines the System Audio
> Control feature.
> 
> Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
> ---
>  utils/cec-compliance/cec-test-audio.cpp | 30 +++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/utils/cec-compliance/cec-test-audio.cpp b/utils/cec-compliance/cec-test-audio.cpp
> index 2bc24daf..e0cdb9dc 100644
> --- a/utils/cec-compliance/cec-test-audio.cpp
> +++ b/utils/cec-compliance/cec-test-audio.cpp
> @@ -309,6 +309,36 @@ const unsigned arc_subtests_size = ARRAY_SIZE(arc_subtests);
>  
>  /* System Audio Control */
>  
> +/**

Just use /*. This doesn't have to end up in DocBook documentation.

> + * The following scenarios defined in section 13.15 of the HDMI CEC 1.4b
> + * specification are not currently tested:

Which of these tests require three CEC devices? That's a good reason for
not implementing the test. But I think some of these tests can be done if the
CEC adapter is configured as an Audio System, and you test against a TV.

> + *
> + * 1.  Amplifier initiated <System Audio Mode Request> and active source
> + *     discovery with a <Request Active Source> broadcast plus the
> + *     <Active Source> response.
> + * 2.  Post discovery, amplifier subsequent <Set System Audio Mode> [On]
> + *     and System Audio Control feature support confirmation with TV if
> + *     present.
> + * 3.  Amplifier broadcasts <Set System Audio Mode> [On] to mute the TV and
> + *     unmute amplifier.
> + * 4.  Amplifier broadcasts <Set System Audio Mode> [Off] to unmute the TV
> + *     and mute the amplifier.
> + * 5.  When System Audio Mode is On, muting and unmuting an amplifier sends
> + *     a <Report Audio Status> message to the TV.
> + * 6.  When System Audio Mode is On, the amplifier sends a <Set System Audio
> + *     Mode> [Off] to unmute the TV before going into standby.
> + * 7.  When System Audio Mode is On, only the amplifier can control system
> + *     volume.
> + * 8.  Optional features defined in subsection 13.15.4 of the HDMI CEC 1.4b
> + *     specifictation.

typo: specification

> + * 9.  <Request Audio Descriptor> message is new since HDMI CEC 1.4 so 1.3a
> + *     or earlier devices report <Feature Abort> for this feature.
> + * 10. <Report Audio Descriptor> message is new since HDMI CEC 1.4 so 1.3a
> + *     or earlier devices report <Feature Abort> for this feature.
> + * 11. System Audio Control is new since HDMI CEC 1.3a so 1.3 and earlier

1.3 -> 1.3a

> + *     devices report <Feature Abort> for this feature.
> + */
> +
>  static int sac_request_sad_probe(struct node *node, unsigned me, unsigned la, bool interactive)
>  {
>  	struct cec_msg msg = {};
> 

Regards,

	Hans

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] cec-compliance: system audio control
  2019-09-09 20:20 [PATCH] cec-compliance: system audio control Jiunn Chang
  2019-09-10  6:53 ` Hans Verkuil
@ 2019-09-10 19:34 ` " Jiunn Chang
  2019-09-11  7:12   ` Hans Verkuil
  2019-09-11 13:00   ` [PATCH v3] " Jiunn Chang
  1 sibling, 2 replies; 5+ messages in thread
From: Jiunn Chang @ 2019-09-10 19:34 UTC (permalink / raw)
  To: linux-media, linux-kernel-mentees; +Cc: hverkuil

Add comment block documenting tests not included from section 13.15 of
the CEC 1.4b specification.  This section outlines the System Audio
Control feature.

Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
---
 utils/cec-compliance/cec-test-audio.cpp | 29 +++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/utils/cec-compliance/cec-test-audio.cpp b/utils/cec-compliance/cec-test-audio.cpp
index 2bc24daf..14f1d122 100644
--- a/utils/cec-compliance/cec-test-audio.cpp
+++ b/utils/cec-compliance/cec-test-audio.cpp
@@ -309,6 +309,35 @@ const unsigned arc_subtests_size = ARRAY_SIZE(arc_subtests);
 
 /* System Audio Control */
 
+/*
+ * The following scenarios are defined in section 13.15 of the CEC 1.4b
+ * specification where the amplifier provides the audio for a source that
+ * is being displayed on a TV.
+ *
+ * 1.  Amplifier initiated <System Audio Mode Request> and active source
+ *     discovery with a <Request Active Source> broadcast plus the
+ *     <Active Source> response.
+ * 2.  Post discovery, subsequent amplifier <Set System Audio Mode> [On]
+ *     and System Audio Control feature confirmation with TV.
+ * 3.  Amplifier broadcasts <Set System Audio Mode> [On] to mute the TV and
+ *     unmute amplifier.
+ * 4.  Amplifier broadcasts <Set System Audio Mode> [Off] to unmute the TV
+ *     and mute the amplifier.
+ * 5.  When System Audio Mode is On, muting and unmuting an amplifier sends
+ *     a <Report Audio Status> message to the TV.
+ * 6.  When System Audio Mode is On, the amplifier sends a <Set System Audio
+ *     Mode> [Off] to unmute the TV before going into standby.
+ * 7.  When System Audio Mode is On, only the amplifier can control system
+ *     volume.
+ * 8.  Optional features in subsection 13.15.4 of version 1.4b.
+ * 9.  <Request Audio Descriptor> message is from version 1.4 so older versions
+ *     report <Feature Abort>.
+ * 10. <Report Audio Descriptor> message is from version 1.4 so older versions
+ *     report <Feature Abort>.
+ * 11. System Audio Control is from version 1.3a so older versions report
+ *     <Feature Abort>.
+ */
+
 static int sac_request_sad_probe(struct node *node, unsigned me, unsigned la, bool interactive)
 {
 	struct cec_msg msg = {};
-- 
2.23.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] cec-compliance: system audio control
  2019-09-10 19:34 ` [PATCH v2] " Jiunn Chang
@ 2019-09-11  7:12   ` Hans Verkuil
  2019-09-11 13:00   ` [PATCH v3] " Jiunn Chang
  1 sibling, 0 replies; 5+ messages in thread
From: Hans Verkuil @ 2019-09-11  7:12 UTC (permalink / raw)
  To: Jiunn Chang, linux-media, linux-kernel-mentees

Hi Jiunn,

A few nitpicks below:

On 9/10/19 9:34 PM, Jiunn Chang wrote:
> Add comment block documenting tests not included from section 13.15 of
> the CEC 1.4b specification.  This section outlines the System Audio
> Control feature.
> 
> Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
> ---
>  utils/cec-compliance/cec-test-audio.cpp | 29 +++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/utils/cec-compliance/cec-test-audio.cpp b/utils/cec-compliance/cec-test-audio.cpp
> index 2bc24daf..14f1d122 100644
> --- a/utils/cec-compliance/cec-test-audio.cpp
> +++ b/utils/cec-compliance/cec-test-audio.cpp
> @@ -309,6 +309,35 @@ const unsigned arc_subtests_size = ARRAY_SIZE(arc_subtests);
>  
>  /* System Audio Control */
>  
> +/*
> + * The following scenarios are defined in section 13.15 of the CEC 1.4b

It's CEC 1.4, not 1.4b. The version number refers to the corresponding HDMI
specification that first defined this CEC version, which was HDMI 1.4. Later
small HDMI updates were releases (1.4a and 1.4b), but the CEC spec remained
unchanged. So CEC 1.4 is the right CEC version number to use, and it applies
to HDMI 1.4, 1.4a and 1.4b.

So replace 1.4b in this comment block with 1.4.

> + * specification where the amplifier provides the audio for a source that
> + * is being displayed on a TV.
> + *
> + * 1.  Amplifier initiated <System Audio Mode Request> and active source
> + *     discovery with a <Request Active Source> broadcast plus the
> + *     <Active Source> response.
> + * 2.  Post discovery, subsequent amplifier <Set System Audio Mode> [On]
> + *     and System Audio Control feature confirmation with TV.
> + * 3.  Amplifier broadcasts <Set System Audio Mode> [On] to mute the TV and
> + *     unmute amplifier.
> + * 4.  Amplifier broadcasts <Set System Audio Mode> [Off] to unmute the TV
> + *     and mute the amplifier.
> + * 5.  When System Audio Mode is On, muting and unmuting an amplifier sends
> + *     a <Report Audio Status> message to the TV.
> + * 6.  When System Audio Mode is On, the amplifier sends a <Set System Audio
> + *     Mode> [Off] to unmute the TV before going into standby.
> + * 7.  When System Audio Mode is On, only the amplifier can control system
> + *     volume.
> + * 8.  Optional features in subsection 13.15.4 of version 1.4b.
> + * 9.  <Request Audio Descriptor> message is from version 1.4 so older versions
> + *     report <Feature Abort>.
> + * 10. <Report Audio Descriptor> message is from version 1.4 so older versions
> + *     report <Feature Abort>.
> + * 11. System Audio Control is from version 1.3a so older versions report
> + *     <Feature Abort>.

I would like to see that the reason why these scenarios are not implemented is
added as well.

For 1-7 I think that is because you need three CEC devices for testing.
9-11 deal with 1.3a or older versions and is not worth spending time on.
8 is because these are hard-to-test corner cases.

Regards,

	Hans

> + */
> +
>  static int sac_request_sad_probe(struct node *node, unsigned me, unsigned la, bool interactive)
>  {
>  	struct cec_msg msg = {};
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3] cec-compliance: system audio control
  2019-09-10 19:34 ` [PATCH v2] " Jiunn Chang
  2019-09-11  7:12   ` Hans Verkuil
@ 2019-09-11 13:00   ` " Jiunn Chang
  1 sibling, 0 replies; 5+ messages in thread
From: Jiunn Chang @ 2019-09-11 13:00 UTC (permalink / raw)
  To: linux-media, linux-kernel-mentees; +Cc: hverkuil

Add comment block documenting tests not included from section 13.15 of
the CEC 1.4b specification.  This section outlines the System Audio
Control feature.

Signed-off-by: Jiunn Chang <c0d1n61at3@gmail.com>
---
 utils/cec-compliance/cec-test-audio.cpp | 38 +++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/utils/cec-compliance/cec-test-audio.cpp b/utils/cec-compliance/cec-test-audio.cpp
index 2bc24daf..55315439 100644
--- a/utils/cec-compliance/cec-test-audio.cpp
+++ b/utils/cec-compliance/cec-test-audio.cpp
@@ -309,6 +309,44 @@ const unsigned arc_subtests_size = ARRAY_SIZE(arc_subtests);
 
 /* System Audio Control */
 
+/*
+ * The following scenarios are defined in section 13.15 of the CEC 1.4
+ * specification.
+ *
+ * These are not tested as they need three CEC devices.  An amplifier
+ * provides the audio for a source that is being displayed on a TV.
+ *
+ * 1.  Amplifier initiated <System Audio Mode Request> and active source
+ *     discovery with a <Request Active Source> broadcast plus the
+ *     <Active Source> response.
+ * 2.  Post discovery, subsequent amplifier <Set System Audio Mode> [On]
+ *     and System Audio Control feature confirmation with TV.
+ * 3.  Amplifier broadcasts <Set System Audio Mode> [On] to mute the TV and
+ *     unmute amplifier.
+ * 4.  Amplifier broadcasts <Set System Audio Mode> [Off] to unmute the TV
+ *     and mute the amplifier.
+ * 5.  When System Audio Mode is On, muting and unmuting an amplifier sends
+ *     a <Report Audio Status> message to the TV.
+ * 6.  When System Audio Mode is On, the amplifier sends a <Set System Audio
+ *     Mode> [Off] to unmute the TV before going into standby.
+ * 7.  When System Audio Mode is On, only the amplifier can control system
+ *     volume.
+ *
+ * These are not tested as they are hard-to-test corner cases.
+ *
+ * 1.  Optional features in subsection 13.15.4 of version 1.4.
+ *
+ * These are not tested as they deal with 1.3a or older versions and is not
+ * worth spending time on.
+ *
+ * 1.  <Request Audio Descriptor> message is from version 1.4 so older versions
+ *     report <Feature Abort>.
+ * 2.  <Report Audio Descriptor> message is from version 1.4 so older versions
+ *     report <Feature Abort>.
+ * 3.  System Audio Control is from version 1.3a so older versions report
+ *     <Feature Abort>.
+ */
+
 static int sac_request_sad_probe(struct node *node, unsigned me, unsigned la, bool interactive)
 {
 	struct cec_msg msg = {};
-- 
2.23.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-09 20:20 [PATCH] cec-compliance: system audio control Jiunn Chang
2019-09-10  6:53 ` Hans Verkuil
2019-09-10 19:34 ` [PATCH v2] " Jiunn Chang
2019-09-11  7:12   ` Hans Verkuil
2019-09-11 13:00   ` [PATCH v3] " Jiunn Chang

Linux-Media Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-media/0 linux-media/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-media linux-media/ https://lore.kernel.org/linux-media \
		linux-media@vger.kernel.org linux-media@archiver.kernel.org
	public-inbox-index linux-media

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-media


AGPL code for this site: git clone https://public-inbox.org/ public-inbox