.. Permission is granted to copy, distribute and/or modify this
.. document under the terms of the GNU Free Documentation License,
.. Version 1.1 or any later version published by the Free Software
.. Foundation, with no Invariant Sections, no Front-Cover Texts
.. and no Back-Cover Texts. A copy of the license is included at
.. Documentation/media/uapi/fdl-appendix.rst.
..
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections

.. include:: <isonum.txt>

.. _cec:

#########################################
Part V - Consumer Electronics Control API
#########################################

This part describes the CEC: Consumer Electronics Control


.. only:: html

   .. class:: toc-title

        Table of Contents

.. toctree::
    :maxdepth: 5
    :numbered:

    cec-intro
    cec-funcs
    cec-pin-error-inj
    cec-header


**********************
Revision and Copyright
**********************
Authors:

- Verkuil, Hans <hverkuil-cisco@xs4all.nl>

 - Initial version.

**Copyright** |copy| 2016 : Hans Verkuil

****************
Revision History
****************

:revision: 1.0.0 / 2016-03-17 (*hv*)

Initial revision
