Skip to content

Conversation

@reiniert
Copy link
Member

@rosemwahlin and @jpovedano, please review the changes.

Disclaimers:

  • These changes have mostly been tested on Ubuntu 14 and a little bit on Ubuntu 16 and Darwin 14. Not on Windows yet; I would he happy to help with that as well but wanted to wait for the reviews first.
  • Documentation has not been updated
  • The configuration XML files could use an update as well. They are still pointing to 5.0.0 XSDs and have settings that are no longer needed, like 65507 message_size_max and receiver_pool etc. I did not do that because it would be better to do an upgrade like that in a single pass for all use cases

Changes to code:

  • Modified code to work with GStreamer 1.0. Development was done on Ubuntu 14.04, which comes with GStreamer 1.2.4
    -- One particular change to be aware of is that the "ffmpegcolorspace" plugin is no longer supported. The pipeline had to be modified to use "videoconvert" instead
  • Made a few modifications to have the code build on Darwin
    -- In particular, the re-defintion of the restrict macro was an issue, I changed it to use the same solution as GStreamer has for this, found in the file gst/gstmacros.h. When compiling with C++, STDC_VERSION is not defined, but restrict is supported (although called restrict for some compiler versions).
    -- The Darwin version works but has an issue with the GStreamer display on the receiving side. I do not know yet how to resolve that, I think the pipeline is incorrect. I was able to send video date from OSX and receive and display on Ubuntu.
  • I removed any "../" paths in #includes -- sort of by accident because it looked like the relative paths gave an issue with make. Once I had made the changes, I was too lazy to revert them :-)

Changes to the run scripts:

  • Minor modifications to support all Linux and Darwin platforms
    -- I did remove the reference to the thirdparty libraries because it is not clear to me whether we really need those? For both Ubuntu and Darwin, I was fine without them -- are these for Windows only?

Changes to build system:

  • Introduced makefiles for two more architectures. Also introduced two more generic makefiles (Makefile.Linux and Makefile.Darwin) for convenience, to avoid the need for Makefile.someArchitecture or every single architecture
  • Leveraged pkg-config for configuring the proper GStreamer header files and libraries
  • Heavily refactored Makefile.common to resolve quite a few problems (see below for a list).
    -- If you agree that this is important, I could review the makefiles for the other use cases and make similar adjustments -- let me know

List of makefile problems resolved:

  • Incorrect invocation of make was not handled properly
  • Incorrect rules for IDL code generation
  • Makefiles causing make to do activities even if everything is up to date
  • Include dependencies missing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant