none
OPM を使った映像保護の制御について

    質問

  • OPM を使った映像出力保護の実装をしています。HDCP 2.2 に対応した4Kモニタを接続した状態で

    IOPMVideoOutput::GetInformation() の pParameters->guidguidInformation に OPM_GET_SUPPORTED_PROTECTION_TYPES

    を指定して値を取得すると、OPM_GET_SUPPORTED_PROTECTION_TYPES として 0x28 という値が返ってきます。

    MSDN の Help を見ると、OPM_GET_SUPPORTED_PROTECTION_TYPES には 0x20 というフラグは定義されていないのですが、

    * 実際にこの環境で HDCP を 有効にしてみると HDCP 2.2 が有効になる

    * HDCP2.2 に対応していない環境の場合 0x08 が返ってくる

    ことから、0x20 は HDCP 2.2 をサポートしている、という情報なのでしょうか?

    ドキュメント記載がないので、確認させていただきたく。よろしくお願いいたします。

    なお、MSDN のドキュメントは以下を参考にしました

    IOPMVideoOutput::GetInformation

    https://docs.microsoft.com/en-us/windows/desktop/api/opmapi/nf-opmapi-iopmvideooutput-getinformation

    OPM_GET_SUPPORTED_PROTECTION_TYPES

    https://docs.microsoft.com/ja-jp/windows/desktop/medfound/opm-protection-type-flags

    2018年8月24日 6:18

回答

  • opmapi.idlやopmapi.hには

    enum
    {
        OPM_PROTECTION_TYPE_OTHER                       = 0x80000000,
        OPM_PROTECTION_TYPE_NONE                        = 0x00000000,
        OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP        = 0x00000001,
        OPM_PROTECTION_TYPE_ACP                         = 0x00000002,
        OPM_PROTECTION_TYPE_CGMSA                       = 0x00000004,
        OPM_PROTECTION_TYPE_HDCP                        = 0x00000008,
        OPM_PROTECTION_TYPE_DPCP                        = 0x00000010,
        OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP       = 0x00000020,
    };

    と定義されているので、OPM_PROTECTION_TYPE_HDCP | OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP という意味ではありませんか?

    # 変化が激しいのでドキュメントの更新が追い付いていないことがあります。最終的には定義を確認するのが確実です。

    2018年8月24日 6:44

すべての返信

  • opmapi.idlやopmapi.hには

    enum
    {
        OPM_PROTECTION_TYPE_OTHER                       = 0x80000000,
        OPM_PROTECTION_TYPE_NONE                        = 0x00000000,
        OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP        = 0x00000001,
        OPM_PROTECTION_TYPE_ACP                         = 0x00000002,
        OPM_PROTECTION_TYPE_CGMSA                       = 0x00000004,
        OPM_PROTECTION_TYPE_HDCP                        = 0x00000008,
        OPM_PROTECTION_TYPE_DPCP                        = 0x00000010,
        OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP       = 0x00000020,
    };

    と定義されているので、OPM_PROTECTION_TYPE_HDCP | OPM_PROTECTION_TYPE_TYPE_ENFORCEMENT_HDCP という意味ではありませんか?

    # 変化が激しいのでドキュメントの更新が追い付いていないことがあります。最終的には定義を確認するのが確実です。

    2018年8月24日 6:44
  • 早速のご回答、ありがとうございます。opmapi.h で、定義あることを確認できました。
    2018年8月24日 6:49
  • Yasushi.Kimura さん、こんにちは。フォーラム オペレーターの立花です。
    MSDN フォーラムへご投稿くださいましてありがとうございます。

    フォーラム オペレーターから 1 点お願いがあります。

    参考となる返信をいただいたときには、その投稿に対して
    [回答としてマーク] をご設定くださいますようお願いいたします。

    同じ問題で後から参照した方が情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。


    参考になった投稿には回答としてマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    2018年8月24日 7:01
    モデレータ
  • マークしました。
    2018年8月24日 8:24
  • Yasushi.Kimura さん、こんにちはフォーラム オペレーターの立花です。
    [回答としてマーク] の設定にご対応くださいましてどうもありがとうございます。

    また何かございましたらご投稿くださいますようお願いいたします。


    参考になった投稿には回答としてマークの設定にご協力ください
    MSDN/TechNet Community Support 立花楓

    2018年8月28日 0:18
    モデレータ