Uploaded image for project: 'Help-Desk'
  1. Help-Desk
  2. HELP-5435

FIWARE.Request.Tech.Data.Stream-oriented.Re: Update on Kurento implementation

    Details

    • Type: extRequest
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Fix Version/s: 2021
    • Component/s: FIWARE-TECH-HELP
    • Labels:
      None

      Description

      Hi there,

      yesterday I asked for help to Luis López Fernández about kurento
      development, and, being me part of a FIWARE acceleration program (company
      sofasession), he suggested me to contact FIWARE helpdesk directly.
      It's about developing and installing a new kurento module (not filter).
      All the details are in the forwarded email.

      Hope to hear from you soon,
      Thanks,

      Alberto Pierini

      On Mon, Nov 30, 2015 at 7:09 PM, Luis López Fernández <luis.lopez@urjc.es>
      wrote:

      > Hi Alberto,
      >
      > See comments in-line
      >
      >
      > El 30/11/2015, a las 17:00, Alberto Pierini <albertopierini@gmail.com>
      > escribió:
      >
      > Hi Luis,
      >
      > I'm Alberto, one of the developer at sofasession.
      > As you know we are in the process of integrating kurento functionalities
      > in our technology stack. We already managed to plug kurento in our
      > signalling server, and establish peer connections between the clients and
      > kurento.
      >
      > Unfortunately now I'm struggling to implement a brand new kurento module.
      > This new GStreamer module should mix local tracks and "expose" the src
      > pad. I already implemented the gstream logic but unfortunately the process
      > to port it into kurento is far from trivial. There's no documentation about
      > it, and the small sample to create a new module is about creating a filter,
      > according to the forum it is kind of outdated, and it doesn't compile
      > anyway.
      >
      >
      > Kurento extensibility mechanism are designed for filters. Kurento
      > documentation dealing with Filter extensions is up to date and we don't
      > have any (serious) reports of having it out of sync or failing in
      > compilation. Creating a Kurento extension out of the filter model is, as
      > you are noticing, quite complex and requires to manage a lot of different
      > variables and conditions. In general that's not a trivial task.
      >
      > I was wondering if you could help anyhow in this process.
      >
      >
      > I understand that you are coming from a FIWARE acceleration. In that case,
      > you need to use the FIWARE helpdesk for receiving support. Open a ticket
      > with your request and we'll figure out how to address it.
      >
      > Right now the only documentation that I have access to, is the one located
      > at https://www.kurento.org/docs/current/index.html. Is there a more
      > technical, more developer-oriented one available perhaps?
      >
      >
      > This is the most advanced documentation we have and it should be enough
      > for doing filter extensions. For going deeper into KMS internals I'm afraid
      > the code is the only available additional resource.
      >
      >
      > I also recently asked for help in the forum (
      > https://groups.google.com/forum/#!topic/kurento/N6St7t1EvKs
      > https://groups.google.com/forum/#!topic/kurento/8E2NtDodPlI).
      >
      >
      > I saw it, but as you have noticed, doing such type of extension is
      > complex. For being able to really help you I would need to invest many
      > hours of my developers and FIWARE is not providing such much resources now
      > (Kurento budget in FIWARE has been cut in 60K€ in the last couple of
      > months). Lets open the issue in the FIWARE help desk (so that the time we
      > invest on it officially counts from FIWARE perspective) and lets work
      > together to see if we can provide you some hints on how to progress.
      >
      > Best regards.
      >
      >
      >
      > Thanks,
      > –
      > Alberto Pierini
      >
      > On Tue, Nov 24, 2015 at 10:28 AM, Carmen Mac Williams <
      > Carmen@grassroots-arts.eu> wrote:
      >
      >> Hi Helmut,
      >>
      >> Danke für die Info.
      >>
      >> My contact person for Kurento is
      >>
      >> Luis López Fernández luis.lopez@urjc.es
      >>
      >> Subdirector de Investigación y Relaciones con la Empresa
      >> Escuela Técnica Superior de Ingenieros de Telecomunicación
      >> Universidad Rey Juan Carlos
      >> http://www.etsit.urjc.es
      >> e-mail: luis.lopez@urjc.es
      >> Tf1: +34 914 888 747
      >> Tf2: + 34 914 888 713
      >>
      >> Ich habe mit meinem Partner Dirk Krause (Technischer Leiter von
      >> Pixelpark) selbst den Kurento Enabler ausprobiert und installiert im
      >> Februar 2014. Ich sende Dir unseren Email Exchange.
      >>
      >> Vielleicht richte Dich direct an ihn.
      >>
      >> Seine Mitarbeiter sind Ivan Boni und Miguel.
      >>
      >>
      >>
      >> Weiter hat Johnny von Iminds mir erzählt, dass Du eine telefonische
      >> Beratung von Iminds Living Lab bekommen hast.
      >>
      >>
      >>
      >> Sie haben mir gesagt, dass Du Ihnen in diesem Gespräch gesagt hast, dass
      >> “your ideas and Your cofounders may not be aligned. “
      >>
      >> Gibt es vielleicht ein Problem in Deinem Team?
      >>
      >>
      >>
      >> Viele Grüsse
      >>
      >>
      >>
      >> Carmen
      >>
      >>
      >>
      >> Von: Helmut Herglotz h.herglotz@sofasession.com
      >> Gesendet: Montag, 23. November 2015 14:22
      >> An: 'Carmen Mac Williamss' <Carmen@grassroots-arts.eu>
      >> Cc: s.bider@sofasession.com; Alberto Pierini <albertopierini@gmail.com>
      >> Betreff: Update on Kurento implementation
      >>
      >>
      >>
      >> Hi Carmen,
      >>
      >>
      >>
      >> Just a short update from our side:
      >>
      >>
      >>
      >> We have been working on implementing Kurento into our system
      >> architecture. Alberto or Stefano contacted you regarding a technical issue,
      >> which we were able to resolve on our own. Alberto contacted Franck Le-Gall
      >> a couple of days ago with a technical question, which he was not able to
      >> answer (Franck referred Alberto to a newsletter subscription… this is a
      >> good way to get updated about news, but will not help in solving concrete
      >> questions in case they pop up).
      >>
      >>
      >>
      >> We met Ivan Garcia from Kurento in Vienna earlier this year, we’ll also
      >> get in touch with him.
      >>
      >>
      >>
      >> Thanks a lot and talk soon!
      >>
      >>
      >>
      >> Helmut
      >>
      >
      >
      >

      Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost.
      Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one.
      _______________________________________________
      Fiware-tech-help mailing list
      Fiware-tech-help@lists.fiware.org
      https://lists.fiware.org/listinfo/fiware-tech-help
      [Created via e-mail received from: Alberto Pierini <albertopierini@gmail.com>]

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open In Progress In Progress
        9h 13m 1 NaevaTeC Development Team 01/Dec/15 7:38 PM
        In Progress In Progress Answered Answered
        3s 1 NaevaTeC Development Team 01/Dec/15 7:38 PM
        Answered Answered Closed Closed
        47d 17h 14m 1 NaevaTeC Development Team 18/Jan/16 12:52 PM
        fla Fernando Lopez made changes -
        Fix Version/s 2021 [ 12600 ]
        backlogmanager Backlog Manager made changes -
        Summary FIWARE.Request.Tech.Re: Update on Kurento implementation FIWARE.Request.Tech.Data.Stream-oriented.Re: Update on Kurento implementation
        mev Manuel Escriche made changes -
        HD-Enabler Kurento [ 10873 ]
        HD-Chapter Data [ 10838 ]
        mev Manuel Escriche made changes -
        Hide
        fw.ext.user FW External User added a comment -

        I think this issue can now be closed.

        On Wed, Dec 16, 2015 at 9:31 AM, Alberto Pierini <albertopierini@gmail.com>

        Show
        fw.ext.user FW External User added a comment - I think this issue can now be closed. On Wed, Dec 16, 2015 at 9:31 AM, Alberto Pierini <albertopierini@gmail.com>
        backlogmanager Backlog Manager made changes -
        Summary Re: [Fiware-tech-help] Update on Kurento implementation FIWARE.Request.Tech.Re: Update on Kurento implementation
        llopez NaevaTeC Development Team made changes -
        Resolution Done [ 10000 ]
        Status Answered [ 10104 ] Closed [ 6 ]
        Hide
        llopez NaevaTeC Development Team added a comment -

        We didn't have further news in relation to this issue. Hence, we understand it has been solved. We close it.

        Show
        llopez NaevaTeC Development Team added a comment - We didn't have further news in relation to this issue. Hence, we understand it has been solved. We close it.
        Hide
        llopez NaevaTeC Development Team added a comment -

        Manuel Escriche Please, do not close the issue yet. We are trying to solve a quite comple problems and I feel there are still some topics to be discussed. I'll close the issue a soon as we feel that the development is fully functional.

        Show
        llopez NaevaTeC Development Team added a comment - Manuel Escriche Please, do not close the issue yet. We are trying to solve a quite comple problems and I feel there are still some topics to be discussed. I'll close the issue a soon as we feel that the development is fully functional.
        Hide
        fw.ext.user FW External User added a comment -

        On Tue, Dec 15, 2015 at 7:20 PM, Help-Desk <jira-help-desk@fi-ware.org>

        Ok, yes, I noticed that!
        When I was pausing and then resuming, the stream was starting from the
        beginning with odd behaviors. The reason was that I had a mistake in my
        code,
        this: gst_bin_add(GST_BIN(self->priv->pipeline), appsrc);
        instead of: gst_bin_add(GST_BIN(self), appsrc);

        Show
        fw.ext.user FW External User added a comment - On Tue, Dec 15, 2015 at 7:20 PM, Help-Desk <jira-help-desk@fi-ware.org> Ok, yes, I noticed that! When I was pausing and then resuming, the stream was starting from the beginning with odd behaviors. The reason was that I had a mistake in my code, this: gst_bin_add(GST_BIN(self->priv->pipeline), appsrc); instead of: gst_bin_add(GST_BIN(self), appsrc);
        Hide
        fw.ext.user FW External User added a comment -

        Hi,

        thanks a lot for your reply.
        My module seems to work properly.

        Please check my comments inline.

        On Tue, Dec 15, 2015 at 6:13 PM, Help-Desk <jira-help-desk@fi-ware.org>

        I call gst_element_sync_state_with_parent just with appsink and appsrc,
        exactly as playerendpoint does.
        There are two bins, the internal pipeline, and self, also exactly as
        playerendpoint.
        I manage the state of the internal pipeline, and it switchs correctly
        between play, stop and pause.

        Could you please be a bit more specific? With "a player" what do you mean?
        At the beginning I did some experiments with composite, but back then it
        didn't seem a good idea to use it. Also, I'm not sure it is goin to support
        all features we will need: states, eos, seek, volumes for each input.

        Cheers,

        Alberto

        Show
        fw.ext.user FW External User added a comment - Hi, thanks a lot for your reply. My module seems to work properly. Please check my comments inline. On Tue, Dec 15, 2015 at 6:13 PM, Help-Desk <jira-help-desk@fi-ware.org> I call gst_element_sync_state_with_parent just with appsink and appsrc, exactly as playerendpoint does. There are two bins, the internal pipeline, and self, also exactly as playerendpoint. I manage the state of the internal pipeline, and it switchs correctly between play, stop and pause. Could you please be a bit more specific? With "a player" what do you mean? At the beginning I did some experiments with composite, but back then it didn't seem a good idea to use it. Also, I'm not sure it is goin to support all features we will need: states, eos, seek, volumes for each input. Cheers, – Alberto
        Hide
        mev Manuel Escriche added a comment -

        Dear Alberto, Dear Luis,

        I see a great exchange took place on this issue.
        Can we close this issue?

        Thanks for cooperation!!
        Manuel

        Show
        mev Manuel Escriche added a comment - Dear Alberto, Dear Luis, I see a great exchange took place on this issue. Can we close this issue? Thanks for cooperation!! Manuel
        Hide
        llopez NaevaTeC Development Team added a comment -

        In relation to your latest question, we use an internal pipeline to avoid a synchronization problems. For example if you don't use a different pipelie, and you pause, all the pipeline (including other media elements in the kurento pipeline) will be paused, and not only your elements that is the expected behaviour, if your element is not going to pause it's OK to use kmselement as a pipelie.

        Show
        llopez NaevaTeC Development Team added a comment - In relation to your latest question, we use an internal pipeline to avoid a synchronization problems. For example if you don't use a different pipelie, and you pause, all the pipeline (including other media elements in the kurento pipeline) will be paused, and not only your elements that is the expected behaviour, if your element is not going to pause it's OK to use kmselement as a pipelie.
        Hide
        llopez NaevaTeC Development Team added a comment -

        Hi,

        Reading your code, I'm not pretty sure if adding elements the way you are doing will work, specially with adder, think that adder will synchronize input streams before mixing, this can work using gst-launch because the pipeline starts just when the elements are linked, but this is not the same inside kms where the pipeline and the elements are creates asynchronously. Nevertheless, it could work, the first thing you should try is to call gst_element_sync_state_with_parent for all the elements you add to the bin, otherwise they are not going to change their state to PLAYING and they are not going to emit media.

        Why don't you just use a player and mix all the audios with a composite but just connnecting audio streams? Creating this element won't be easy as you are seeing and you are will have to deal with many gstreamer issues that kurento have solved for you.

        Show
        llopez NaevaTeC Development Team added a comment - Hi, Reading your code, I'm not pretty sure if adding elements the way you are doing will work, specially with adder, think that adder will synchronize input streams before mixing, this can work using gst-launch because the pipeline starts just when the elements are linked, but this is not the same inside kms where the pipeline and the elements are creates asynchronously. Nevertheless, it could work, the first thing you should try is to call gst_element_sync_state_with_parent for all the elements you add to the bin, otherwise they are not going to change their state to PLAYING and they are not going to emit media. Why don't you just use a player and mix all the audios with a composite but just connnecting audio streams? Creating this element won't be easy as you are seeing and you are will have to deal with many gstreamer issues that kurento have solved for you.
        Hide
        fw.ext.user FW External User added a comment -

        Hi,

        I managed to have my module working.
        I would like to illustrate you briefly my implementation so far: maybe you
        will spot some mistakes or you will have some precious suggestions..

        My gstreamer plugin extends now from kmselement. A big part of the
        gstreamer logic is copied from PlayerEndpoint: I used appsrc and appsink
        and all associated methods exactly as in PlayerEndpoint.
        One big difference is that my pipeline is the KmsElement itself, not a new
        pipeline created ad hoc as in PlayerEndpoint. Is there any particular
        reason why in PlayerEndpoint a new pipeline is created and used?

        https://bitbucket.org/sofasessiondev/kurento-audiomix/src/e09d11b91ad1301945fc3b9cdf571433b5b228bf/src/gst-plugins/gstamix.cpp?at=master&fileviewer=file-view-default

        Thanks,

        Alberto Pierini

        On Mon, Dec 7, 2015 at 5:36 PM, Alberto Pierini <albertopierini@gmail.com>

        Show
        fw.ext.user FW External User added a comment - Hi, I managed to have my module working. I would like to illustrate you briefly my implementation so far: maybe you will spot some mistakes or you will have some precious suggestions.. My gstreamer plugin extends now from kmselement. A big part of the gstreamer logic is copied from PlayerEndpoint: I used appsrc and appsink and all associated methods exactly as in PlayerEndpoint. One big difference is that my pipeline is the KmsElement itself, not a new pipeline created ad hoc as in PlayerEndpoint. Is there any particular reason why in PlayerEndpoint a new pipeline is created and used? https://bitbucket.org/sofasessiondev/kurento-audiomix/src/e09d11b91ad1301945fc3b9cdf571433b5b228bf/src/gst-plugins/gstamix.cpp?at=master&fileviewer=file-view-default Thanks, – Alberto Pierini On Mon, Dec 7, 2015 at 5:36 PM, Alberto Pierini <albertopierini@gmail.com>
        Hide
        fw.ext.user FW External User added a comment -

        Hi,

        thanks for the reply.

        I did some experiments, and, looking at the kms element dummyscr, I managed
        to have a audioappsrc gstreamer wrapped by my AmixEndpoint:
        (
        https://bitbucket.org/sofasessiondev/kurento-audiomix/src/2fea6ad2b87b21b13f6c5d1dce3e59e1358912a9/src/gst-plugins/gstamix.cpp?at=dummysrc&fileviewer=file-view-default
        )
        I can correctly hear the audio in my html5 element.

        I then tried to replace audioappsrc with another element (audiomixer): I
        don't have any error in console, but I can not hear the audio:
        https://bitbucket.org/sofasessiondev/kurento-audiomix/src/8d3fefc8e961a601e533b3dec123d3c14431cc7a/src/gst-plugins/gstamix.cpp?at=audiomixer&fileviewer=file-view-default
        In a standalone app, the gstreamer part works correctly.
        In both cases I link the src pad of the element to the same agnosticbin.
        With the audiomixer I guess have to call gst_element_set_state by myself,
        but still no results.

        Could you please provide me some hints regarding what I could have done
        wrong?

        Thanks you,

        Alberto

        On Thu, Dec 3, 2015 at 6:54 PM, Help-Desk <jira-help-desk@fi-ware.org>

        Show
        fw.ext.user FW External User added a comment - Hi, thanks for the reply. I did some experiments, and, looking at the kms element dummyscr, I managed to have a audioappsrc gstreamer wrapped by my AmixEndpoint: ( https://bitbucket.org/sofasessiondev/kurento-audiomix/src/2fea6ad2b87b21b13f6c5d1dce3e59e1358912a9/src/gst-plugins/gstamix.cpp?at=dummysrc&fileviewer=file-view-default ) I can correctly hear the audio in my html5 element. I then tried to replace audioappsrc with another element (audiomixer): I don't have any error in console, but I can not hear the audio: https://bitbucket.org/sofasessiondev/kurento-audiomix/src/8d3fefc8e961a601e533b3dec123d3c14431cc7a/src/gst-plugins/gstamix.cpp?at=audiomixer&fileviewer=file-view-default In a standalone app, the gstreamer part works correctly. In both cases I link the src pad of the element to the same agnosticbin. With the audiomixer I guess have to call gst_element_set_state by myself, but still no results. Could you please provide me some hints regarding what I could have done wrong? Thanks you, – Alberto On Thu, Dec 3, 2015 at 6:54 PM, Help-Desk <jira-help-desk@fi-ware.org>
        Hide
        llopez NaevaTeC Development Team added a comment -

        Hi,
        After evaluating your code the best recomendation we can provide you is the following:

        For what we see, your code does not contain working GStreamer bin or element yet. Your first objective should be to have your module working first in GStreamer and forget about Kurento. You should try to validate that your module is indeed capable of implementing the functionalities you wish inside GStreamer. You can inject fake media or use fake sinks if appropriate for that.

        Once you have a GStreamer element working, we could evaluate what could be the best approach for integrating it into Kurento.

        Show
        llopez NaevaTeC Development Team added a comment - Hi, After evaluating your code the best recomendation we can provide you is the following: For what we see, your code does not contain working GStreamer bin or element yet. Your first objective should be to have your module working first in GStreamer and forget about Kurento. You should try to validate that your module is indeed capable of implementing the functionalities you wish inside GStreamer. You can inject fake media or use fake sinks if appropriate for that. Once you have a GStreamer element working, we could evaluate what could be the best approach for integrating it into Kurento.
        Hide
        fw.ext.user FW External User added a comment -

        Hi,

        I created the repo at https://bitbucket.org/sofasessiondev/kurento-audiomix

        If anything, something to check is the implementation of the gstreamer
        pipeline in gstamix.cpp, in particular in the gst_amix_init and cb_new_pad
        functions.

        My gstreamer requirement is very limited: just link an audio src pad to the
        app sink.

        Cheers,

        Alberto Pierini

        On Thu, Dec 3, 2015 at 9:56 AM, Alberto Pierini <albertopierini@gmail.com>

        Show
        fw.ext.user FW External User added a comment - Hi, I created the repo at https://bitbucket.org/sofasessiondev/kurento-audiomix If anything, something to check is the implementation of the gstreamer pipeline in gstamix.cpp, in particular in the gst_amix_init and cb_new_pad functions. My gstreamer requirement is very limited: just link an audio src pad to the app sink. Cheers, – Alberto Pierini On Thu, Dec 3, 2015 at 9:56 AM, Alberto Pierini <albertopierini@gmail.com>
        Hide
        fw.ext.user FW External User added a comment -

        Hi,

        thanks for the reply.

        I'm trying to develop a new Gstreamer module for kurento. This would not
        be a filter, but rather a producer (similar to PlayerEndpoint) of a single
        audio src, pluggable to other kurento module endpoints (we are interested
        in plugging into WebRtcEndpoint and HttpEndpoint).

        What I need to do isn't really science fiction: almost all block element
        functionalities that I need have already been developed in the kurento
        architecture and in the several available modules. But I'm struggling
        nevertheless for the lack of documentation.

        Those are the full requirement of my module:

        • Build a new gstreamer kurento module
        • It has a single audio src pad: no video, no sinks
        • Can be prepended to WebRtcEndpoint (and HttpEndpoint)
        • Has a method that takes a String, and based on that choose what to play
          (in particular will take a json with an array of {"track":"path", "volume":vol}

          and will mix the N tracks)

        • Has three methods play, pause, stop
        • It will trigger EndOfStream
        • Has to be instantiated from the js client
        • (Has a method seek(position))

        All the gstreamer logic is already implemented in a standalone app, and has
        to be slowly ported into the kurento module.
        But for now I'm trying to implement just a small subset of the
        requirements: I don't care about mixing and it's enough if I can manage to
        output some audio of any kind. This is how I proceeded:

        1) I created a new module with scaffold utility
        2) I changed the src and the kmd, to extend from UriEndpoint rather than
        Filter
        3) I copied into it a small subset of the functionalities of PlayerEndpoint
        4) I managed to edit srcs, CmakeLists and conf files, and have the .deb
        installed in the kurento-media-server
        5) I created the js client with cmake
        6) I'm using a modified version of tutorial-js/hello-world to test the
        module: it instantiates it, it plugs it to a WebRtcEndpoint, it links the
        stream to an audio html element. Unfortunately I can not hear any audio
        yet, and no errors are triggered in the kurento console. If I replace my
        module with PlayerEndpoint (just changing the first argument of
        pipeline.create()), it works perfectly instead.

        I have the following practical questions to ask:

        • Do you think it was a good way to proceed? Or maybe there's a better way?
        • How can I log some output in the server side?
        • As I said I copied just a small subset of functionalities from
          PlayerEndpoint cause for some parts I can not fix some compilation problem.
          For example I have the following:
          error: invalid conversion from ‘gpointer {aka void*}

          ’ to ‘Gstamix*

          {aka _Gstamix*}

          [-fpermissive]
          Gstamix is my module and the code is identical to the one in PlayerEndpoint

        Do you know anything about that permissive flag? Maybe I can tune it.

        Not extremely important right now:

        • What's the proper way to use the generated js client file? I had to copy
          and paste the content of the file into the tutorial-js/hello-world
          kurento-client.js

        I'm going to create a git repo so that you can check the code.

        Thanks a lot for your time,

        Alberto Pierini

        On Tue, Dec 1, 2015 at 7:38 PM, Help-Desk <jira-help-desk@fi-ware.org>

        Show
        fw.ext.user FW External User added a comment - Hi, thanks for the reply. I'm trying to develop a new Gstreamer module for kurento. This would not be a filter, but rather a producer (similar to PlayerEndpoint) of a single audio src, pluggable to other kurento module endpoints (we are interested in plugging into WebRtcEndpoint and HttpEndpoint). What I need to do isn't really science fiction: almost all block element functionalities that I need have already been developed in the kurento architecture and in the several available modules. But I'm struggling nevertheless for the lack of documentation. Those are the full requirement of my module: Build a new gstreamer kurento module It has a single audio src pad: no video, no sinks Can be prepended to WebRtcEndpoint (and HttpEndpoint) Has a method that takes a String, and based on that choose what to play (in particular will take a json with an array of {"track":"path", "volume":vol} and will mix the N tracks) Has three methods play, pause, stop It will trigger EndOfStream Has to be instantiated from the js client (Has a method seek(position)) All the gstreamer logic is already implemented in a standalone app, and has to be slowly ported into the kurento module. But for now I'm trying to implement just a small subset of the requirements: I don't care about mixing and it's enough if I can manage to output some audio of any kind. This is how I proceeded: 1) I created a new module with scaffold utility 2) I changed the src and the kmd, to extend from UriEndpoint rather than Filter 3) I copied into it a small subset of the functionalities of PlayerEndpoint 4) I managed to edit srcs, CmakeLists and conf files, and have the .deb installed in the kurento-media-server 5) I created the js client with cmake 6) I'm using a modified version of tutorial-js/hello-world to test the module: it instantiates it, it plugs it to a WebRtcEndpoint, it links the stream to an audio html element. Unfortunately I can not hear any audio yet, and no errors are triggered in the kurento console. If I replace my module with PlayerEndpoint (just changing the first argument of pipeline.create()), it works perfectly instead. I have the following practical questions to ask: Do you think it was a good way to proceed? Or maybe there's a better way? How can I log some output in the server side? As I said I copied just a small subset of functionalities from PlayerEndpoint cause for some parts I can not fix some compilation problem. For example I have the following: error: invalid conversion from ‘gpointer {aka void*} ’ to ‘Gstamix* {aka _Gstamix*} ’ [-fpermissive] Gstamix is my module and the code is identical to the one in PlayerEndpoint Do you know anything about that permissive flag? Maybe I can tune it. Not extremely important right now: What's the proper way to use the generated js client file? I had to copy and paste the content of the file into the tutorial-js/hello-world kurento-client.js I'm going to create a git repo so that you can check the code. Thanks a lot for your time, – Alberto Pierini On Tue, Dec 1, 2015 at 7:38 PM, Help-Desk <jira-help-desk@fi-ware.org>
        llopez NaevaTeC Development Team made changes -
        Status In Progress [ 3 ] Answered [ 10104 ]
        llopez NaevaTeC Development Team made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Hide
        llopez NaevaTeC Development Team added a comment -

        Hi Alberto,

        As I commented on a previous e-mail, Kurento official extension capabilities are base on Filters. Your use-case is somehow special because it gets out of Kurento officialy supported functionalities. Integrating arbitrarty GStreamer capabilities into Kurento is not a simple tasks and may require relevant effort investments depending on the nature of the capabilities you wish to integrate.

        In relation to this, I would appreciate if you could first provide a precise description of the capabilities you want to integrate. Access to your source code may be helpful. I would appreciate if you could also explain what steps did you executed for making the integration and the problems you encountered. The more precise you are the more chances we'll have of helping you. Questions such as "explain me how to integrate things into Kurento" shall not be very useful because the integration steps and complexities depend significanly on what things you are integrating and what requirement that things need to satisfy.

        Show
        llopez NaevaTeC Development Team added a comment - Hi Alberto, As I commented on a previous e-mail, Kurento official extension capabilities are base on Filters. Your use-case is somehow special because it gets out of Kurento officialy supported functionalities. Integrating arbitrarty GStreamer capabilities into Kurento is not a simple tasks and may require relevant effort investments depending on the nature of the capabilities you wish to integrate. In relation to this, I would appreciate if you could first provide a precise description of the capabilities you want to integrate. Access to your source code may be helpful. I would appreciate if you could also explain what steps did you executed for making the integration and the problems you encountered. The more precise you are the more chances we'll have of helping you. Questions such as "explain me how to integrate things into Kurento" shall not be very useful because the integration steps and complexities depend significanly on what things you are integrating and what requirement that things need to satisfy.
        Hide
        flegall Franck Le Gall added a comment -

        Hello

        I confirm the fiware-fic3-coaching@lists.fiware.org<fiware-fic3-coaching@lists.fiware.org> is the FI-C3 mailing list to generate tickets which can then internally be assigned to the right persons

        Also, the general forum for FIWARE questions is ask.fiware.org. Did you went there ?

        Franck

        De : stefano de panfilis stefano.depanfilis@eng.it
        Envoyé : mardi 1 décembre 2015 15:31
        À : Alberto Pierini <albertopierini@gmail.com>
        Cc : Helmut Herglotz <h.herglotz@sofasession.com>; fiware-tech-help@lists.fiware.org; Stefano Bider Sofasession <s.bider@sofasession.com>; Carmen Mac Williams <carmen@grassroots-arts.eu>; Franck Le Gall <franck.le-gall@eglobalmark.com>
        Objet : Re: [Fiware-tech-help] Update on Kurento implementation

        Dear Alberto,

        You did somehow rigth, i mean correct to have contacted Franck, your fiware coach, but this should had been through the fiware-fic3-coaching@lists.fiware.org<fiware-fic3-coaching@lists.fiware.org> (please franck to confirm). This way a proper ticket will be generated and Lost somewhere leaving you without help.

        Please Franck keep Alberto towards the end solution of his problem.

        Thank you in advance!

        Ciao
        Stefano
        Il 01/Dic/2015 11:31, "Alberto Pierini" <albertopierini@gmail.com<albertopierini@gmail.com>> ha scritto:
        Hi Stefano,

        thanks for the reply.
        The accelerator is FI-C3.
        Would you be so kind to give me a contact (we previously contacted Franck Le Gall but our needs are very technical ) or could you please redirect the ticket yourself?

        Thanks,

        Alberto

        On Tue, Dec 1, 2015 at 11:20 AM, stefano de panfilis <stefano.depanfilis@eng.it<stefano.depanfilis@eng.it>> wrote:

        Dear Alberto,

        Sorry with all of this bureaucracy ...
        To which accelerator you belong to? You should send it to them, but I can of course redirect your ticket myself.

        Ciao
        Stefano
        Il 01/Dic/2015 10:23, "Alberto Pierini" <albertopierini@gmail.com<albertopierini@gmail.com>> ha scritto:
        Hi there,

        yesterday I asked for help to Luis López Fernández about kurento development, and, being me part of a FIWARE acceleration program (company sofasession), he suggested me to contact FIWARE helpdesk directly.
        It's about developing and installing a new kurento module (not filter).
        All the details are in the forwarded email.

        Hope to hear from you soon,
        Thanks,

        Alberto Pierini

        On Mon, Nov 30, 2015 at 7:09 PM, Luis López Fernández <luis.lopez@urjc.es<luis.lopez@urjc.es>> wrote:
        Hi Alberto,

        See comments in-line

        El 30/11/2015, a las 17:00, Alberto Pierini <albertopierini@gmail.com<albertopierini@gmail.com>> escribió:

        Hi Luis,

        I'm Alberto, one of the developer at sofasession.
        As you know we are in the process of integrating kurento functionalities in our technology stack. We already managed to plug kurento in our signalling server, and establish peer connections between the clients and kurento.

        Unfortunately now I'm struggling to implement a brand new kurento module.
        This new GStreamer module should mix local tracks and "expose" the src pad. I already implemented the gstream logic but unfortunately the process to port it into kurento is far from trivial. There's no documentation about it, and the small sample to create a new module is about creating a filter, according to the forum it is kind of outdated, and it doesn't compile anyway.

        Kurento extensibility mechanism are designed for filters. Kurento documentation dealing with Filter extensions is up to date and we don't have any (serious) reports of having it out of sync or failing in compilation. Creating a Kurento extension out of the filter model is, as you are noticing, quite complex and requires to manage a lot of different variables and conditions. In general that's not a trivial task.

        I was wondering if you could help anyhow in this process.

        I understand that you are coming from a FIWARE acceleration. In that case, you need to use the FIWARE helpdesk for receiving support. Open a ticket with your request and we'll figure out how to address it.

        Right now the only documentation that I have access to, is the one located at https://www.kurento.org/docs/current/index.html. Is there a more technical, more developer-oriented one available perhaps?

        This is the most advanced documentation we have and it should be enough for doing filter extensions. For going deeper into KMS internals I'm afraid the code is the only available additional resource.

        I also recently asked for help in the forum (https://groups.google.com/forum/#!topic/kurento/N6St7t1EvKs https://groups.google.com/forum/#!topic/kurento/8E2NtDodPlI).

        I saw it, but as you have noticed, doing such type of extension is complex. For being able to really help you I would need to invest many hours of my developers and FIWARE is not providing such much resources now (Kurento budget in FIWARE has been cut in 60K€ in the last couple of months). Lets open the issue in the FIWARE help desk (so that the time we invest on it officially counts from FIWARE perspective) and lets work together to see if we can provide you some hints on how to progress.

        Best regards.

        Thanks,

        Alberto Pierini

        On Tue, Nov 24, 2015 at 10:28 AM, Carmen Mac Williams <Carmen@grassroots-arts.eu<Carmen@grassroots-arts.eu>> wrote:
        Hi Helmut,
        Danke für die Info.
        My contact person for Kurento is
        Luis López Fernández luis.lopez@urjc.es<luis.lopez@urjc.es>
        Subdirector de Investigación y Relaciones con la Empresa
        Escuela Técnica Superior de Ingenieros de Telecomunicación
        Universidad Rey Juan Carlos
        http://www.etsit.urjc.es<http://www.etsit.urjc.es/>
        e-mail: luis.lopez@urjc.es<luis.lopez@urjc.es>
        Tf1: +34 914 888 747<tel:%2B34%20914%20888%20747>
        Tf2: + 34 914 888 713<tel:%2B%2034%20914%20888%20713>

        Ich habe mit meinem Partner Dirk Krause (Technischer Leiter von Pixelpark) selbst den Kurento Enabler ausprobiert und installiert im Februar 2014. Ich sende Dir unseren Email Exchange.
        Vielleicht richte Dich direct an ihn.
        Seine Mitarbeiter sind Ivan Boni und Miguel.

        Weiter hat Johnny von Iminds mir erzählt, dass Du eine telefonische Beratung von Iminds Living Lab bekommen hast.

        Sie haben mir gesagt, dass Du Ihnen in diesem Gespräch gesagt hast, dass “your ideas and Your cofounders may not be aligned. “
        Gibt es vielleicht ein Problem in Deinem Team?

        Viele Grüsse

        Carmen

        Von: Helmut Herglotz h.herglotz@sofasession.com<mailto:h.herglotz@sofasession.com>
        Gesendet: Montag, 23. November 2015 14:22
        An: 'Carmen Mac Williamss' <Carmen@grassroots-arts.eu<Carmen@grassroots-arts.eu>>
        Cc: s.bider@sofasession.com<s.bider@sofasession.com>; Alberto Pierini <albertopierini@gmail.com<albertopierini@gmail.com>>
        Betreff: Update on Kurento implementation

        Hi Carmen,

        Just a short update from our side:

        We have been working on implementing Kurento into our system architecture. Alberto or Stefano contacted you regarding a technical issue, which we were able to resolve on our own. Alberto contacted Franck Le-Gall a couple of days ago with a technical question, which he was not able to answer (Franck referred Alberto to a newsletter subscription… this is a good way to get updated about news, but will not help in solving concrete questions in case they pop up).

        We met Ivan Garcia from Kurento in Vienna earlier this year, we’ll also get in touch with him.

        Thanks a lot and talk soon!

        Helmut

        Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org<http://lists.fiware.org> will be lost.
        Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org<Fiware-tech-help@lists.fiware.org>) instead of the old one.

        Show
        flegall Franck Le Gall added a comment - Hello I confirm the fiware-fic3-coaching@lists.fiware.org< fiware-fic3-coaching@lists.fiware.org > is the FI-C3 mailing list to generate tickets which can then internally be assigned to the right persons Also, the general forum for FIWARE questions is ask.fiware.org. Did you went there ? Franck De : stefano de panfilis stefano.depanfilis@eng.it Envoyé : mardi 1 décembre 2015 15:31 À : Alberto Pierini <albertopierini@gmail.com> Cc : Helmut Herglotz <h.herglotz@sofasession.com>; fiware-tech-help@lists.fiware.org; Stefano Bider Sofasession <s.bider@sofasession.com>; Carmen Mac Williams <carmen@grassroots-arts.eu>; Franck Le Gall <franck.le-gall@eglobalmark.com> Objet : Re: [Fiware-tech-help] Update on Kurento implementation Dear Alberto, You did somehow rigth, i mean correct to have contacted Franck, your fiware coach, but this should had been through the fiware-fic3-coaching@lists.fiware.org< fiware-fic3-coaching@lists.fiware.org > (please franck to confirm). This way a proper ticket will be generated and Lost somewhere leaving you without help. Please Franck keep Alberto towards the end solution of his problem. Thank you in advance! Ciao Stefano Il 01/Dic/2015 11:31, "Alberto Pierini" <albertopierini@gmail.com< albertopierini@gmail.com >> ha scritto: Hi Stefano, thanks for the reply. The accelerator is FI-C3. Would you be so kind to give me a contact (we previously contacted Franck Le Gall but our needs are very technical ) or could you please redirect the ticket yourself? Thanks, – Alberto On Tue, Dec 1, 2015 at 11:20 AM, stefano de panfilis <stefano.depanfilis@eng.it< stefano.depanfilis@eng.it >> wrote: Dear Alberto, Sorry with all of this bureaucracy ... To which accelerator you belong to? You should send it to them, but I can of course redirect your ticket myself. Ciao Stefano Il 01/Dic/2015 10:23, "Alberto Pierini" <albertopierini@gmail.com< albertopierini@gmail.com >> ha scritto: Hi there, yesterday I asked for help to Luis López Fernández about kurento development, and, being me part of a FIWARE acceleration program (company sofasession), he suggested me to contact FIWARE helpdesk directly. It's about developing and installing a new kurento module (not filter). All the details are in the forwarded email. Hope to hear from you soon, Thanks, – Alberto Pierini On Mon, Nov 30, 2015 at 7:09 PM, Luis López Fernández <luis.lopez@urjc.es< luis.lopez@urjc.es >> wrote: Hi Alberto, See comments in-line El 30/11/2015, a las 17:00, Alberto Pierini <albertopierini@gmail.com< albertopierini@gmail.com >> escribió: Hi Luis, I'm Alberto, one of the developer at sofasession. As you know we are in the process of integrating kurento functionalities in our technology stack. We already managed to plug kurento in our signalling server, and establish peer connections between the clients and kurento. Unfortunately now I'm struggling to implement a brand new kurento module. This new GStreamer module should mix local tracks and "expose" the src pad. I already implemented the gstream logic but unfortunately the process to port it into kurento is far from trivial. There's no documentation about it, and the small sample to create a new module is about creating a filter, according to the forum it is kind of outdated, and it doesn't compile anyway. Kurento extensibility mechanism are designed for filters. Kurento documentation dealing with Filter extensions is up to date and we don't have any (serious) reports of having it out of sync or failing in compilation. Creating a Kurento extension out of the filter model is, as you are noticing, quite complex and requires to manage a lot of different variables and conditions. In general that's not a trivial task. I was wondering if you could help anyhow in this process. I understand that you are coming from a FIWARE acceleration. In that case, you need to use the FIWARE helpdesk for receiving support. Open a ticket with your request and we'll figure out how to address it. Right now the only documentation that I have access to, is the one located at https://www.kurento.org/docs/current/index.html . Is there a more technical, more developer-oriented one available perhaps? This is the most advanced documentation we have and it should be enough for doing filter extensions. For going deeper into KMS internals I'm afraid the code is the only available additional resource. I also recently asked for help in the forum ( https://groups.google.com/forum/#!topic/kurento/N6St7t1EvKs https://groups.google.com/forum/#!topic/kurento/8E2NtDodPlI ). I saw it, but as you have noticed, doing such type of extension is complex. For being able to really help you I would need to invest many hours of my developers and FIWARE is not providing such much resources now (Kurento budget in FIWARE has been cut in 60K€ in the last couple of months). Lets open the issue in the FIWARE help desk (so that the time we invest on it officially counts from FIWARE perspective) and lets work together to see if we can provide you some hints on how to progress. Best regards. Thanks, – Alberto Pierini On Tue, Nov 24, 2015 at 10:28 AM, Carmen Mac Williams <Carmen@grassroots-arts.eu< Carmen@grassroots-arts.eu >> wrote: Hi Helmut, Danke für die Info. My contact person for Kurento is Luis López Fernández luis.lopez@urjc.es< luis.lopez@urjc.es > Subdirector de Investigación y Relaciones con la Empresa Escuela Técnica Superior de Ingenieros de Telecomunicación Universidad Rey Juan Carlos http://www.etsit.urjc.es < http://www.etsit.urjc.es/ > e-mail: luis.lopez@urjc.es< luis.lopez@urjc.es > Tf1: +34 914 888 747<tel:%2B34%20914%20888%20747> Tf2: + 34 914 888 713<tel:%2B%2034%20914%20888%20713> Ich habe mit meinem Partner Dirk Krause (Technischer Leiter von Pixelpark) selbst den Kurento Enabler ausprobiert und installiert im Februar 2014. Ich sende Dir unseren Email Exchange. Vielleicht richte Dich direct an ihn. Seine Mitarbeiter sind Ivan Boni und Miguel. Weiter hat Johnny von Iminds mir erzählt, dass Du eine telefonische Beratung von Iminds Living Lab bekommen hast. Sie haben mir gesagt, dass Du Ihnen in diesem Gespräch gesagt hast, dass “your ideas and Your cofounders may not be aligned. “ Gibt es vielleicht ein Problem in Deinem Team? Viele Grüsse Carmen Von: Helmut Herglotz h.herglotz@sofasession.com<mailto:h.herglotz@sofasession.com> Gesendet: Montag, 23. November 2015 14:22 An: 'Carmen Mac Williamss' <Carmen@grassroots-arts.eu< Carmen@grassroots-arts.eu >> Cc: s.bider@sofasession.com< s.bider@sofasession.com >; Alberto Pierini <albertopierini@gmail.com< albertopierini@gmail.com >> Betreff: Update on Kurento implementation Hi Carmen, Just a short update from our side: We have been working on implementing Kurento into our system architecture. Alberto or Stefano contacted you regarding a technical issue, which we were able to resolve on our own. Alberto contacted Franck Le-Gall a couple of days ago with a technical question, which he was not able to answer (Franck referred Alberto to a newsletter subscription… this is a good way to get updated about news, but will not help in solving concrete questions in case they pop up). We met Ivan Garcia from Kurento in Vienna earlier this year, we’ll also get in touch with him. Thanks a lot and talk soon! Helmut Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org< http://lists.fiware.org > will be lost. Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org< Fiware-tech-help@lists.fiware.org >) instead of the old one.
        Hide
        Stefano Stefano De Panfilis added a comment -

        Dear Alberto,

        You did somehow rigth, i mean correct to have contacted Franck, your
        fiware coach, but this should had been through the
        fiware-fic3-coaching@lists.fiware.org (please franck to confirm). This way
        a proper ticket will be generated and Lost somewhere leaving you without
        help.

        Please Franck keep Alberto towards the end solution of his problem.

        Thank you in advance!

        Ciao
        Stefano
        Il 01/Dic/2015 11:31, "Alberto Pierini" <albertopierini@gmail.com> ha

        Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost.
        Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one.
        _______________________________________________
        Fiware-tech-help mailing list
        Fiware-tech-help@lists.fiware.org
        https://lists.fiware.org/listinfo/fiware-tech-help

        Show
        Stefano Stefano De Panfilis added a comment - Dear Alberto, You did somehow rigth, i mean correct to have contacted Franck, your fiware coach, but this should had been through the fiware-fic3-coaching@lists.fiware.org (please franck to confirm). This way a proper ticket will be generated and Lost somewhere leaving you without help. Please Franck keep Alberto towards the end solution of his problem. Thank you in advance! Ciao Stefano Il 01/Dic/2015 11:31, "Alberto Pierini" <albertopierini@gmail.com> ha Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost. Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one. _______________________________________________ Fiware-tech-help mailing list Fiware-tech-help@lists.fiware.org https://lists.fiware.org/listinfo/fiware-tech-help
        mev Manuel Escriche made changes -
        Assignee Luis López Fernández [ llopez ]
        Hide
        fw.ext.user FW External User added a comment -

        Hi Stefano,

        thanks for the reply.
        The accelerator is FI-C3.
        Would you be so kind to give me a contact (we previously contacted Franck
        Le Gall but our needs are very technical ) or could you please redirect the
        ticket yourself?

        Thanks,

        Alberto

        On Tue, Dec 1, 2015 at 11:20 AM, stefano de panfilis <

        Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost.
        Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one.
        _______________________________________________
        Fiware-tech-help mailing list
        Fiware-tech-help@lists.fiware.org
        https://lists.fiware.org/listinfo/fiware-tech-help

        Show
        fw.ext.user FW External User added a comment - Hi Stefano, thanks for the reply. The accelerator is FI-C3. Would you be so kind to give me a contact (we previously contacted Franck Le Gall but our needs are very technical ) or could you please redirect the ticket yourself? Thanks, – Alberto On Tue, Dec 1, 2015 at 11:20 AM, stefano de panfilis < Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost. Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one. _______________________________________________ Fiware-tech-help mailing list Fiware-tech-help@lists.fiware.org https://lists.fiware.org/listinfo/fiware-tech-help
        Hide
        Stefano Stefano De Panfilis added a comment -

        Dear Alberto,

        Sorry with all of this bureaucracy ...
        To which accelerator you belong to? You should send it to them, but I can
        of course redirect your ticket myself.

        Ciao
        Stefano
        Il 01/Dic/2015 10:23, "Alberto Pierini" <albertopierini@gmail.com> ha

        Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost.
        Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one.
        _______________________________________________
        Fiware-tech-help mailing list
        Fiware-tech-help@lists.fiware.org
        https://lists.fiware.org/listinfo/fiware-tech-help

        Show
        Stefano Stefano De Panfilis added a comment - Dear Alberto, Sorry with all of this bureaucracy ... To which accelerator you belong to? You should send it to them, but I can of course redirect your ticket myself. Ciao Stefano Il 01/Dic/2015 10:23, "Alberto Pierini" <albertopierini@gmail.com> ha Since January 1st, old domains won't be supported and messages sent to any domain different to @lists.fiware.org will be lost. Please, send your messages using the new domain (Fiware-tech-help@lists.fiware.org) instead of the old one. _______________________________________________ Fiware-tech-help mailing list Fiware-tech-help@lists.fiware.org https://lists.fiware.org/listinfo/fiware-tech-help
        backlogmanager Backlog Manager made changes -
        Field Original Value New Value
        Component/s FIWARE-TECH-HELP [ 10278 ]
        fw.ext.user FW External User created issue -

          People

          • Assignee:
            llopez NaevaTeC Development Team
            Reporter:
            fw.ext.user FW External User
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: