Git Product home page Git Product logo

upnpx's Introduction

  • 👋 Hi, I’m @rnut
  • 👨🏽‍💻 Curently My roles is Father & Mobile Developer
  • 👀 I’m interested in Soccers
  • 🌱 I’m currently learning Go > Python > Ruby
  • 📫 How to reach me 💌 [email protected] 💌

upnpx's People

Watchers

 avatar

upnpx's Issues

Rendering Videos not working

What steps will reproduce the problem?
1.i am trying to access smart TV it show some mobile device  but not samsung 
smart tv i want to play videos in  smart tv from my mobile but wifi list of 
devices not showed me the smart tv ??? i am using version 1.2.4, 
i was getting this error when render the any video, if rendring normal apps 
like iMediasher, etc......

Parser Error 5, Description: (null), Line: 1, Column: 1
2013-08-07 03:02:58.697 
Something went wrong during LastChange parsing

What is the expected output? What do you see instead?
I  want rendering the  videos from my upnpx demo app

What version of the product are you using? On what operating system?
1.2.4


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 7 Aug 2013 at 7:21

Missing user-centric logging facility

Hello,

Here is my second request for enhancement.
A future enhancement could be to have a logging framework used in libupnpx and 
configurable in the api. A variable could be set to VERBOSE, INFO or ERROR ... 
and according to value set, we could have more or less logs from libupnpx.
Reading the code, I noticed that some useful debugging logs are now commented.
What could be interesting would be to enable/disable the debugging logs 
according to the value set in the client code.

What steps will reproduce the problem?
1. Following the tutorial
2. Reading the code
3. ...

What is the expected output? What do you see instead?
Expecting more debugging logs

What version of the product are you using? On what operating system?
Current version. On iOS 4.3


Original issue reported on code.google.com by [email protected] on 5 Jun 2011 at 11:17

stopSSDP doesn't stop the UPnP searching completely

Please find the attached updated/modified demo app with two buttons at the 
navigation bar.
Start - to start the upnp searching.
Stop - to stop the upnp searching.

What steps will reproduce the problem?
1. Start the UPnP demo app, it will search all the UPnP devices on the network.
2. Now click on Stop button at the navigation bar to stop the upnp 
searching(stopSSDP).
3. Remove/switchOFF one of the upnp device, now if you see on the iphone 
simulator that removed device will get disappear after some time, which shows 
that still there is some searching process running in the background even 
though we have already stop the searching(stopSSDP).
4. Now switch On the device & click on the start button, which we again start 
the searching & that device will again appear in the upnp device list. Library 
is running brilliantly in all other scenarios.

What is the expected output? What do you see instead?
When we stop the upnp searching it should stop the searching in the background 
& when we start it again it should do a fresh searching as in the case of 
re-launching the application.

What version of the product are you using? On what operating system?
upnpx-1.2.3.tar.gz   upnpx Release 1.2.3   UPnP upnpx

Please provide any additional information below.
Testing on the UPnP demo app with additional two buttons(Start & Stop) at the 
top.

Original issue reported on code.google.com by [email protected] on 3 Oct 2011 at 6:45

Attachments:

iOS 5.x destroys sockets on standby (screen lock) - thereafter searchSSDP::Search leads to crash

What steps will reproduce the problem?
1. Do a Discovery search (e.g.  [[[UPnPManager GetInstance] SSDP] searchSSDP]; )
2. Press the standby (screen lock button)
3. Call Discovery search again.  (e.g.  [[[UPnPManager GetInstance] SSDP] 
searchSSDP]; )

What is the expected output? What do you see instead?
App crashes in ssdp.cpp on sendto(...) because sockets are no longer valid

What version of the product are you using? On what operating system?
I saw this on iOS 5.1.1 and upnpx 1.2.4.

Please provide any additional information below.
This is a new problem in iOS 5 
(http://stackoverflow.com/questions/8270860/locking-iphone-disconnects-sockets-o
n-ios-5-only)

Original issue reported on code.google.com by [email protected] on 21 May 2012 at 2:36

iPhone not deteting my Samsung Smart Tv

i am trying to access smart TV it show some mobile device  but not samsung 
smart tv i want to control smart tv volume and channel but wifi list of devices 
not showed me the smart tv ??? i am using version 1.2.3  And second i want to 
ask i want to control my samsung tab volume how i get the desired result. i 
call this method to get volume but nothing happen
int x = [[m_device1 renderingControl] GetVolumeWithInstanceID:@"0" 
Channel:@"Master" OutCurrentVolume:[NSMutableString stringWithCapacity:0]];

Original issue reported on code.google.com by [email protected] on 10 May 2013 at 11:14

Issue with scdp code generator

What steps will reproduce the problem?
1. Run scdpcodegenerator.xcodeproject with Base SDK = OS X 10.7
2.
3.

What is the expected output? What do you see instead?
I expected to input in the "all output" window in Xcode in order to add a 
service, but I cant, because the program finished immediately 

What version of the product are you using? On what operating system?
upnpx 1.2.1, OS X Lion 10.7.5




Original issue reported on code.google.com by [email protected] on 17 Dec 2012 at 7:02

SoapAction parameters are not order preserved

Thanks to opensource the project and change the license to BSD!

I tried the latest svn and found out it doesn't work with Windows 7 media 
player's media sharing(Windows Xp not tested yet). It founds the media server, 
but when it trys to do the ContentDirectory browse, I always get a 402 Invalid 
Args error.

It works for Twonky server thou.

I spent some time in tracing the issue and found out it is the SoapAction 
paramenter is not passing to the server in "proper" order. The xml body tags 
for ContentDirectory:1 Browse SoapAction is in the order:
BrowseFlag ObjectID SortCriteria Filter StartingIndex RequestedCount.

When I tried hard coded the order in:
ObjectID BrowseFlag Filter StartingIndex RequestedCount SortCriteria

Then I am getting the contents list from windows's upnp server.

I checked the code:
trunk/src/upnp/SoapActionsContentDirectory1.m
line 88:
parameterKeys = [NSArray arrayWithObjects:@"ObjectID", @"BrowseFlag", 
@"Filter", @"StartingIndex", @"RequestedCount", @"SortCriteria", nil];

The parameters are setup in a proper order, But they are stored in NSDictionary 
which is not order preserved so the output order would vary depends on the hash 
algorithm, I guess.

I read other upnp implementation, some are using the vector with pair value to 
preserve the order. But it might be to much work for the project. Maybe an 
ordered dictionary should be used to replace the NSDictionary to have the issue 
sorted in a relatively easy way.


Original issue reported on code.google.com by [email protected] on 12 Jul 2011 at 6:15

Upnp Update do not run immediately

What steps will reproduce the problem?
1. Searching the upnp and get results A is true
2. in ios simulator , i change the WIFI to another one 
3. I get alert , i  search the upnp device again , i get B device ,but it was 
mixed up with previous wifi upnp device before , such as A & B

What is the expected output? What do you see instead?
In another wifi , i should only get B ; 

What version of the product are you using? On what operating system?
1.2.4 / ios simulator , not tried in iOS device

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 22 Mar 2013 at 12:30

communicating between a DMS and DMR using iPhone DMC

Hi All,

I'm developing an application using the upnpx library for iOS. Followed the 
demo app and now I'm able to browse the contents of DMS and also render the 
content as well in my application. Now I'm planning to render the content of a 
DMS to a DMR (Digital Media Renderer) (eg., rendering a video of a DMS on a 
DLNA enabled renderer such as a DLNA TV) using my iPhone DMC.

It would be great if you can provide me a link or some sample code which could 
give a detailed information as how to send a request to DMR with the 
information required to render the DMS content.

Thanks
Sudheer


Original issue reported on code.google.com by [email protected] on 5 Oct 2011 at 6:50

UPnP device discovery output differs in iphone device & simulator.

We have tested Issue-5 (UPNP device is not updating) on the new release 
(Release 1.2.3), problem is still there.

What steps will reproduce the problem?
1. Switch on the demo application. Demo app will show all the upnp devices.
2. Now switch OFF any upnp device, demo app's upnp list is taking time to 
remove that upnp device which is just switched off.
3. Now again switch On that device. If we test this on iphone simulator it will 
show that device again in the upnp device list after some time(1 to 2 minutes), 
but if we test this on iphone device, demo app will not show that upnp device 
again in the list.
4. If we force quit the demo app & start all over again immediately after 
switching ON the upnp device, that device will get populated in the upnp device 
list(both on simulator & iPhone device).

What is the expected output? What do you see instead?
Demo app should immediately update the list which the upnp device is switched 
ON & OFF both on iphone simulator & device.

What version of the product are you using? On what operating system?
upnpx-1.2.3.tar.gz   upnpx Release 1.2.3   UPnP upnpx

Please provide any additional information below.
Testing the upnpx demo

Original issue reported on code.google.com by [email protected] on 3 Oct 2011 at 4:55

Add new device should change the SoapActionFactory.m

What steps will reproduce the problem?
1. add a new device when following the tutorial
2. the soap action can not excute 
3. (solution:)add the urn of new service in the SoapActionFactory.m

What is the expected output? What do you see instead?
excute the actions

What version of the product are you using? On what operating system?
1.2.4 on ios5

Please provide any additional information below.
When add a new device and new services, we should change the DeviceFactory as 
tutorial said. At the same time, we should change the SoapActionFactory to 
specify the services' urn that we added. Otherwise, the [[aDevice 
getServiceForType:@"urn:..."] soap] will be nil, actually, the soapAction is 
not specified.

Original issue reported on code.google.com by [email protected] on 21 Sep 2012 at 3:43

1.2.4 bug upnp event headerlength parse error in httpsession.cpp

Hi programmer, 
i found a bug and fix it in httpsession.cpp, see following

       ++memset(&sessionBuf[currentFillLength], 0, sessionBufLen - currentFillLength);//which i fix
       ++memcpy(&sessionBuf[currentFillLength], buf, len);//which i fix
       if(firstData){
        --ret = ParseHeader(buf, len);
               ++ ret = ParseHeader((unsigned char*)&sessionBuf[currentFillLength], len); //which i fix
        if(ret < 0){
            return ret;
        }
    }
    firstData = false;

    ++currentFillLength = currentFillLength + len; //which i fix
    --memcpy(&sessionBuf[currentFillLength], buf, len);
    --currentFillLength = currentFillLength + len;

these code will parse a wrong header length that will lead to following event 
para lost it's first "<", because the receive buffer not cleaned correctly, so 
i copy the but to cleaned session buffer and parse there. this will fix it.
still you can clean socket receive buffer also can fix this. 

br
linn song 

Original issue reported on code.google.com by [email protected] on 17 Jun 2012 at 6:26

upnpx parser error on windowsMediaServer item


I'm developing an application using the upnpx library for iOS.
In Windows Server ,the upnpx  parser error on media item uri.The error like 
this.

What steps will reproduce the problem?
1.  Switch on the demo application. Demo app will show all the upnp devices.
2. access a windowsMediaServer, parse MediaServer1ItemObject.uri. 
3. the renderer cannot render the media. 

What is the expected output? What do you see instead?
expected output : 
upnpxdemo[696:f803] 
Folder_item.uri=======http://10.16.72.3:8080/%25/3%2FRealPlayer%20Downloads%2FOU
YA_%20A%20New%20Kind%20of%20Video%20Game%20Console%20by%20OUYA%20%E2%80%94%20Kic
kstarter.mp4
error output : 
upnpxdemo[696:f803] 
Folder_item.uri=======rtsp://10.16.72.7:554/WMPNSSv4/3531270218/ezZBNUExQzM4LUM1
REYtNDdBOC1CQUM2LTFEQzI0ODQyRDFGQX0uMC44.wmv?formatID=81

What version of the product are you using? On what operating system?
version : upnpx 1.2.4
 operating system : iOS 5.1

Do you have any good advice I would be very grateful


Thanks!!!

Original issue reported on code.google.com by [email protected] on 8 Oct 2012 at 8:06

Crash if used on network segment where router is running DD-WRT firmware and UPnP control is enabled

>What steps will reproduce the problem?
1. Update a router to use DD-WRT firmware (http://www.dd-wrt.com)
2. Build an application that uses upnpx.
3. Run the application that uses upnpx on a network segment where the router is 
running DD-WRT firmware.
4. The application crashes in upnpx with the callstack:
#0  0x968e29c6 in __pthread_kill ()
#1  0x99d1df78 in pthread_kill ()
#2  0x02b8157b in abort ()
#3  0x003bc62b in uncaught_exception_handler ()
#4  0x0330e318 in __handleUncaughtException ()
#5  0x0274a0b9 in _objc_terminate ()
#6  0x02cffacd in safe_handler_caller(void (*)()) ()
#7  0x02cffacd in std::terminate() ()
#8  0x02d00bc2 in __cxa_throw ()
#9  0x02749f89 in objc_exception_throw ()
#10 0x03238b6a in -[__NSArrayM insertObject:atIndex:] ()
#11 0x03238a20 in -[__NSArrayM addObject:] ()
#12 0x003a346f in -[BasicDeviceParser embeddedDevice:] ()
#13 0x0275d6b0 in -[NSObject performSelector:withObject:] ()
#14 0x003a4898 in -[BasicParser 
parser:didStartElement:namespaceRUI:qualifiedName:attributes:] ()
#15 0x0123a760 in _startElementNs ()
#16 0x006b8685 in xmlParseStartTag2 ()
#17 0x006ba4e5 in xmlParseTryOrFinish ()
#18 0x006b9f07 in xmlParseChunk ()
#19 0x01238e02 in -[NSXMLParser parse] ()
#20 0x003a46e4 in -[BasicParser startParser:] ()
#21 0x003a4650 in -[BasicParser parseFromURL:] ()
#22 0x003a3cc2 in -[BasicDeviceParser parse] ()
#23 0x003a70ea in -[BasicUPnPDevice loadDeviceDescriptionFromXML] ()
#24 0x003b5720 in -[UPnPDB httpThread:] ()
#25 0x011a5805 in -[NSThread main] ()
#26 0x011a5764 in __NSThread__main__ ()
#27 0x99d1bed9 in _pthread_start ()

>What is the expected output? What do you see instead?
The applicaiton should not crash.

>What version of the product are you using? On what operating system?
This has been confirmed to happen in iOS 5, 6 and 7, and Mac OS X 10.8 and 10.9.

>Please provide any additional information below.

It appears that the root device in the UPnP device description from DD-WRT does 
not include a "friendlyName" element, and the code is expecting there to be one.

Here is a patch that fixes the problem:

Index: BasicDeviceParser.m
===================================================================
--- BasicDeviceParser.m (revision 37158)
+++ BasicDeviceParser.m (revision 37159)
@@ -263,7 +263,9 @@

 -(void)embeddedDevice:(NSString*)startStop{
    if([startStop isEqualToString:@"ElementStart"]){
-       [friendlyNameStack addObject:friendlyName];
+       if(friendlyName){
+           [friendlyNameStack addObject:friendlyName];
+       }
        [udnStack addObject:udn];       
    }else{
        //Was this the device we are looking for ?
@@ -275,6 +277,7 @@
            }
        }
         [self setUdn:[udnStack lastObject]];
+        // NOTE: friendlyName might be nil.
         [self setFriendlyName:[friendlyNameStack lastObject]];

         [friendlyNameStack removeLastObject];

Original issue reported on code.google.com by [email protected] on 11 Dec 2013 at 9:12

Exceptions when running in seperate thread

What steps will reproduce the problem?
1. run SSDP discovery in seperate thread and communicate SSDPDBUpdated to 
another thread
2. try a couple of times until exception
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.

in:  SSDPDBUpdated

instead of:

 NSUInteger index = [rootDevices indexOfObjectPassingTest:^BOOL(id obj, NSUInteger index, BOOL *stop){

do:

  NSMutableArray *tempArr = [rootDevices mutableCopy];

NSUInteger index = [tempArr indexOfObjectPassingTest:^BOOL(id obj, NSUInteger 
index, BOOL *stop){


same in addToDescriptionQueue


and the crashes go away...

If you need further info, please don't hesitate contacting me

Cheers

andy

Original issue reported on code.google.com by [email protected] on 14 Aug 2013 at 9:57

License

The GPL/LGPL makes no one by only you can use this project as part of any 
iphone apps.

Original issue reported on code.google.com by [email protected] on 20 Apr 2011 at 3:09

mediaServer1ItemObject always have uriCOllection belongs to the last item in the same folder

What steps will reproduce the problem?
1.
Using the demo app comes with the source code.

2.
Modify the FolderView.m as following:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath 
*)indexPath {

    MediaServer1BasicObject *item = [m_playList objectAtIndex:indexPath.row];

    if([item isContainer]){
        MediaServer1ContainerObject *container = [m_playList objectAtIndex:indexPath.row];
        FolderView *targetViewController = [[[FolderView alloc] initWithMediaDevice:m_device andHeader:[container title] andRootId:[container objectID]] autorelease];
        [[self navigationController] pushViewController:targetViewController animated:YES];
    }
    else 
    {
        MediaServer1ItemObject *itemObj = (MediaServer1ItemObject *)item;

        for (id itemRes in [itemObj resources])
        {
            NSLog(@"*** Item protocolInfo: %@", [itemRes protocolInfo]);
            NSLog(@"*** Item URI: %@", [[itemObj uriCollection] objectForKey:[itemRes protocolInfo]]);
        }
    }
}

3.
Put couple videos in a upnp sever.

What is the expected output? What do you see instead?

Instead of seeing different Item URI's, the app always displays the URI of the 
last item in the list.


What version of the product are you using? On what operating system?
Trunk.

Please provide any additional information below.

To fix this:
MediaServer1ItemObject.h
line 76: @property(retain, nonatomic) NSDictionary *uriCollection;

Change to:
@property(copy, nonatomic) NSDictionary *uriCollection;


In fact, most of the properties declared should be copy instead of retain if 
the classes have mutable subclasses like the NSString, NSDictionary, NSArray, 
etc.

Original issue reported on code.google.com by [email protected] on 30 Apr 2012 at 2:36

UPnPDBObserver: change semantics to get explicit 'deviceAdded' or 'deviceRemoved' calls

I think those "dbUpdated" notification are really cumbersome to handle.

If one wants to know exactly what happend (what device actually was added or 
removed) one has to write extra code to find out. And I think its not too 
uncommon to want to find out the added devices.

Why isn't the Observer told explicitly what device was added or removed? This 
would make client code much much easier to write.

Attached you will find a proposed patch for the UPnPObserver. Note that it is 
not backwards compatible, as it removes the old notifications.
As UPnPDB still has a list of all devices - consumers that are just interested 
in the list, could still just access it, when one of the callbacks is called.

Please note that the same change could also be applied one level deeper 
(SSDPDB). It would make the code in UPnPDB:SSDPDBUpdated much much easier, if 
you didn't have to compare a previous state with the current state, just to 
calculate, what devices where added (and need to download the description) vs. 
the ones removed.

Original issue reported on code.google.com by [email protected] on 17 Jul 2012 at 10:11

Attachments:

Having OS and Product as arguments of the api

Hello,

Thank you for this project which is quite interesting and useful.
I followed the tutorial which is now quite detailed and read the code as well.
I noticed that the OS and the Product is hard-coded in ssdp.cpp. A tiny future 
enhancement could be to have these as arguments of the api (with the current 
values as example in comment).

What steps will reproduce the problem?
1. Follow the tutorial
2. Read the code in ssdp.cpp
3. ...

What is the expected output? What do you see instead?
Expect to set the OS and Product name/version according to where the libupnpx 
is used.

What version of the product are you using? On what operating system?
Current version. On iOS 4.3



Original issue reported on code.google.com by [email protected] on 5 Jun 2011 at 10:58

better BasicUPnPDevice implementation

After playing a bit more with upnpx I realized that I had some more needs, 
which required additional refactorings.
For instance I need the childdevices of a device - and if there are additional 
attributes in the device description, I'd also love to retrieve them.
After implementing issue #12 (filters for SSDP discovery) I also realized that 
in its current form upnpx requires to find all services via SSDP. I changed 
that to rely on the service description in the devices descrption as per the 
UPnP spec.

As always attached is a patch file, which includes all my changes.

Some notes from my own commit notes, with some additional info:
------------

reworked BasicUPnPDevice and corresponding parser
- UPnPDevice now contains the childDevices (can also be retrieved by UDN)
- UPnPDevice now contains a dictionary with all attributes (for clients to also 
retrieve custom attributes of devices)
- UPnPDevice now has more consistent fields  
      - uuid removed (as was the same as udn)
      - type removed (as was some arbitrary/strange field, not corresponding to deviceType)
      - smallIcon removed (as image should be downloaded async and if needed at all)
- deleted ServiceFactory - there are no subclasses, so no factory is needed
- when a device is parsed (BasicUPnPParser) its services are parsed along (only 
keys available in the description.xml) directly in the BasicUPnPParser
- services of a device are not dependend on SSDP anymore (as a filter can be 
set and the services aren't recognized via SSDP anyways)
- BasicServiceParser only parses the the service description now
- downloads of device descriptions are reduced, as BasicUPnPParser retrieves 
all information available at once
- retrieving the actual service parameters via BasisServiceParser is still done 
lazy (i.e. when the client actually tries to get a service object)

Original issue reported on code.google.com by [email protected] on 22 Jul 2012 at 9:15

Attachments:

UPNP device is not updating

What steps will reproduce the problem?
1. Switch on the demo application. Demo app will show all the upnp devices
2. Now switch OFF any upnp device, demo app's upnp list is taking time to 
remove that upnp device which is just switched off.
3. Now again switch On that device, demo app will not show that upnp device 
again in that list.

What is the expected output? What do you see instead?
Demo app should immediately update the list which the upnp device is switched 
ON & OFF.

What version of the product are you using? On what operating system?
upnpx-1.2.2.tar.gz   upnpx Release 1.2.2   UPnP upnpx

Please provide any additional information below.
Testing the upnpx demo

Original issue reported on code.google.com by [email protected] on 5 Sep 2011 at 9:40

Not building in iOS 7

What steps will reproduce the problem?
1. try to build it in iOS 7, Xcode 5 DP
2.
3.

What is the expected output? What do you see instead?

Lots of build errors. > 20.

What version of the product are you using? On what operating system?


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 13 Jun 2013 at 11:59

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.