<commit_before>.. _faq:

%%%%%%%%%%%
Kurento FAQ
%%%%%%%%%%%

This is a list of Frequently Asked Questions about Kurento.  Feel free to
suggest new entries or different wording for answers!

How do I...
-----------

...install kurento media server from sources?
    Just follow the :ref:`building` guide.

...get a WebRTC stream without the browser asking the user for webcam/micro permissions?
    In your client-side code you can use these options when creating the
    kwsContentApi.KwsWebRtcContent object to indicate that you are just
    receiving:

    .. sourcecode:: js

        var options = {
	        remoteVideoTag: "yourRemoteVideoTagId",
	        audio: "recvonly",
	        video: "recvonly"
        };


...know how many :rom:cls:`pipelines<MediaPipeline>` do I need for my Application?
    :rom:cls:`Media elements<MediaElement>` can only communicate
    with each other when they are part of the same pipeline.
    Different MediaPipelines in the server are independent do not share
    audio, video, data or events.

    .. todo:: Endpoints???

        How many Endpoints are needed in a given pipeline?

    A good heuristic is that you will need one pipeline per each
    set of communicating partners in a channel, and one Endpoint in
    this pipeline per audio/video streams reaching a partner.


...know to what client a given WebRtcEndPoint belongs or where is it coming from?
    Kurento API currently offers no way to get application attributes
    stored in a :rom:cls:`MediaElement`. However, the application developer
    can maintain a hashmap or equivalent data structure mapping
    the :rom:cls:`WebRtcEndpoint`  internal Id (which is a string) to
    whatever application information is desired.

.. _intel_nvidia:

...stop kurento installing nvidia drivers in my machine?

    Kurento uses libopencv-dev to get auxiliary files for several
    Computer Vision algorythms in its filters. This package is part
    of the :wikipedia:`Open Source Computer Vision Library<en,OpenCV>`.

    libopencv-dev depends on libopencv-ocl-dev, which depends on
    libopencv-ocl2.4 which depends on virtual <libopencl1>, provided
    by any of

        * ocl-icd-libopencl1<commit_msg>Fix question about heuristics for pipelines and endpoints...<commit_after>.. _faq:

%%%%%%%%%%%
Kurento FAQ
%%%%%%%%%%%

This is a list of Frequently Asked Questions about Kurento.  Feel free to
suggest new entries or different wording for answers!

How do I...
-----------

...install kurento media server from sources?
    Just follow the :ref:`building` guide.

...get a WebRTC stream without the browser asking the user for webcam/micro permissions?
    In your client-side code you can use these options when creating the
    kwsContentApi.KwsWebRtcContent object to indicate that you are just
    receiving:

    .. sourcecode:: js

        var options = {
	        remoteVideoTag: "yourRemoteVideoTagId",
	        audio: "recvonly",
	        video: "recvonly"
        };


...know how many :rom:cls:`pipelines <MediaPipeline>` do I need for my Application?
    :rom:cls:`Media elements <MediaElement>` can only communicate
    with each other when they are part of the same pipeline.
    Different MediaPipelines in the server are independent do not share
    audio, video, data or events.

    A good heuristic is that you will need one pipeline per each
    set of communicating partners in a channel, and one Endpoint in
    this pipeline per audio/video streams reaching a partner.

...know how many :rom:cls:`endpoints <Endpoint>` do I need?
    Your application will need to create an endpoint for each
    media stream flowing to (or from) the pipeline. As we said in the
    previous answer, each set of communicating partners in a channel
    will be in the same *pipeline*, and each of them will use one oe more
    *endpoints*. They could use more than one if they are recording or
    reproducing several streams.

...know to what client a given WebRtcEndPoint belongs or where is it coming from?
    Kurento API currently offers no way to get application attributes
    stored in a :rom:cls:`MediaElement`. However, the application developer
    can maintain a hashmap or equivalent data structure mapping
    the :rom:cls:`WebRtcEndpoint`  internal Id (which is a string) to
    whatever application information is desired.

.. _intel_nvidia:

...stop kurento installing nvidia drivers in my machine?
    Kurento uses libopencv-dev to get auxiliary files for several
    Computer Vision algorythms in its filters. This package is part
    of the :wikipedia:`Open Source Computer Vision Library<en,OpenCV>`.

    libopencv-dev depends on libopencv-ocl-dev, which depends on
    libopencv-ocl2.4 which depends on virtual <libopencl1>, provided
    by any of

        * ocl-icd-libopencl1
{'fraction_non_alphanumeric': 0.07043424059837938, 'fraction_numerical': 0.0016621649698732599, 'mean_word_length': 3.3020554066130474, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2828556', 'n_tokens_mistral': 1308, 'n_tokens_neox': 1255, 'n_words': 616}