Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Beginner on PC with Windows7

ms777
2012-11-06
2013-05-02
  • ms777
    ms777
    2012-11-06

    Hi,

    I have tried to setup Cyberlink for Java on a Windows7 PC within an Eclipse environment and found several issues.

    My environment is XBMC or a Panasonic TV as media renderer, and a FritzBox as a media server.

    1. If you import from github https://github.com/cybergarage/CyberLink4Java the poms contain some lines which prevent an import as a Maven project into eclipse. I created a fork https://github.com/ms777/CyberLink4Java.git where this is changed. I am not an expert in maven, so please be patient … I have also removed the dependency on the 1.8.1 in the pom, as I found different behavior when using the 1.8.1 jar compared to using the source for the upnp stack, which I assume is 2.1.0

    2. I had a problem with the MediaGate demo application. Linking against the 1.8.1 jar, it was recogniced by XBMC as a server, linking against the 2.1.0 upnp-stack source it was not. I tracked this back to XmlPullParser being the standard parser in 2.1.0. Adding

        static {
            org.cybergarage.upnp.UPnP.setXMLParser(new kXML2Parser());
    

    }
    to MediaGate solved this.

    3. MediaGate did not play a selected video, both in 1.8.1 and in 2.1.0. I tracked this to what I believe is a bug in org.cybergarage.upnp.std.av.server.object.container.ContainerNode. Adding

    if (cnode.getID().equals(id)) 
      return cnode;
    

    in

    public ContentNode findContentNodeByID(String id)
    

    solved this.

    4. I have created a small test which lists the services and actions a device offers (org.cybergarage.ms777.test.ListServicesAndActions). This did not work in either 1.8.1 or 2.1.0. I tracked this back to what may be a bug in Service.java. Adding the lines

    try {
      URL urlLoc = new URL(rootDev.getLocation());
      URL scpdUrl = new URL(urlLoc.getProtocol(), urlLoc.getHost(), urlLoc.getPort(), scpdURLStr);
      scpdNode = getSCPDNode(scpdUrl);      
      if (scpdNode != null) {
        data.setSCPDNode(scpdNode);
        return scpdNode;
      }
    }
      catch (Exception e){}
    

    in

    private Node getSCPDNode()
    

    solved this

    5. I have created a small test which plays a file on my server on my renderer (org.cybergarage.ms777.test.PlayFromServerToRenderer). This works now.

    Hope this helps others in the same situation …

    ms777