azeos 8 Posted August 31, 2014 Share Posted August 31, 2014 I'm using XBMB3C 0.9.532 with XBMC 13.2 Gotham. My media stubs appear in my media library as expected. But when I want to play them, nothing happens. This popup message should open: Which is what I have in the file Barry Lyndon (1975).dvd.disc: <discstub> <title>DVD #47</title> </discstub> In the xbmc.log I can see that the XBMB3C is trying to play the file as it was an actual DVD, and of course, it can't find the files. 16:59:20 T:5512 NOTICE: ===== XBMB3C START ===== 16:59:20 T:5512 NOTICE: XBMB3C -> running Python: sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0) 16:59:20 T:5512 NOTICE: XBMB3C -> running XBMB3C: 0.9.532 16:59:20 T:5512 NOTICE: 13.2 Git:20140817-0f3db05 16:59:20 T:5512 NOTICE: XBMB3C -> Platform: Windows 16:59:20 T:5512 NOTICE: XBMB3C -> LogLevel: 0 16:59:20 T:5512 NOTICE: XBMB3C 0 -> Version : 13.2 - {u'major': 13, u'tag': u'stable', u'minor': 2, u'revision': u'20140817-0f3db05'} 16:59:20 T:5512 NOTICE: PLAY ACTION URL PARTS : ['LANBOX:8096', 'e07852e02879f53c90c09bd05592cc93'] 16:59:21 T:2588 NOTICE: Thread FileCache start, auto delete: false 16:59:21 T:5512 NOTICE: XBMB3C getPlayUrl 16:59:21 T:5512 NOTICE: XBMB3C isNetworkQualitySufficient -> TRUE default 16:59:21 T:5512 NOTICE: XBMB3C getPlayUrl -> Direct Play 16:59:22 T:5512 NOTICE: XBMB3C isNetworkQualitySufficient -> TRUE default 16:59:22 T:3460 NOTICE: DVDPlayer: Opening: smb://USERNAME@Lanbox/ex503/Peliculas/Barry Lyndon (1975)/Barry Lyndon (1975).dvd.disc/VIDEO_TS/VIDEO_TS.IFO 16:59:22 T:3460 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED 16:59:22 T:5896 NOTICE: Thread DVDPlayer start, auto delete: false 16:59:22 T:5896 NOTICE: Creating InputStream 16:59:22 T:5896 ERROR: Error on dvdnav_open 16:59:22 T:5896 ERROR: CDVDPlayer::OpenInputStream - error opening [smb://Matias:@Lanbox/ex503/Peliculas/Barry Lyndon (1975)/Barry Lyndon (1975).dvd.disc/VIDEO_TS/VIDEO_TS.IFO] 16:59:22 T:5896 NOTICE: CDVDPlayer::OnExit() 16:59:22 T:5896 NOTICE: CDVDPlayer::OnExit() deleting input stream 16:59:22 T:3460 NOTICE: CDVDPlayer::CloseFile() 16:59:22 T:3460 NOTICE: DVDPlayer: waiting for threads to exit 16:59:22 T:3460 NOTICE: DVDPlayer: finished waiting 16:59:22 T:3460 NOTICE: CDVDPlayer::CloseFile() 16:59:22 T:3460 NOTICE: DVDPlayer: waiting for threads to exit 16:59:22 T:3460 NOTICE: DVDPlayer: finished waiting 16:59:22 T:2444 NOTICE: XBMB3C Service -> onPlayBackStopped 16:59:23 T:3348 NOTICE: Thread LanguageInvoker start, auto delete: false 16:59:23 T:3348 NOTICE: -->Python Interpreter Initialized<-- 16:59:23 T:3348 NOTICE: ===== XBMB3C START ===== 16:59:23 T:3348 NOTICE: XBMB3C -> running Python: sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0) 16:59:23 T:3348 NOTICE: XBMB3C -> running XBMB3C: 0.9.532 16:59:23 T:3348 NOTICE: 13.2 Git:20140817-0f3db05 16:59:23 T:3348 NOTICE: XBMB3C -> Platform: Windows 16:59:23 T:3348 NOTICE: XBMB3C -> LogLevel: 0 16:59:23 T:3348 NOTICE: XBMB3C 0 -> Version : 13.2 - {u'major': 13, u'tag': u'stable', u'minor': 2, u'revision': u'20140817-0f3db05'} 16:59:23 T:3348 NOTICE: ===== XBMB3C STOP ===== 16:59:24 T:4924 NOTICE: Thread FileCache start, auto delete: false 16:59:28 T:3460 NOTICE: Previous line repeats 1 times. 16:59:28 T:3460 NOTICE: Storing total System Uptime 16:59:28 T:3460 NOTICE: Saving settings 16:59:28 T:3460 NOTICE: stop all 16:59:31 T:5512 NOTICE: ===== XBMB3C STOP ===== I found this thread http://forum.xbmc.org/showthread.php?tid=178180&pid=1623771#pid1623771 which led me to this code: Utils.py. In the line 34 the playurl change depending on the "VideoType". I think that before that, a check to see if the file is a media stub is needed. But I don't know how to do that nor what to do next. So, is there any way to bring the original behavior of XBMC to XBMB3C? Thanks, azeós. 1 Link to comment Share on other sites More sharing options...
Luke 36879 Posted August 31, 2014 Share Posted August 31, 2014 and we also support stubs. It's the IsPlaceHolder property. so this should be doable and some of our other apps are already supporting this. Link to comment Share on other sites More sharing options...
azeos 8 Posted August 31, 2014 Author Share Posted August 31, 2014 (edited) and we also support stubs. It's the IsPlaceHolder property. so this should be doable and some of our other apps are already supporting this. Well, I found that there is a check for isPlaceHolder in the default.py line 857. So, it is there but it's not working or what? I tried with different skins with no luck (Aeon MQ 5 MB3, Aeon Nox Gotham and Confluence XBMB3C). Edited August 31, 2014 by azeos 1 Link to comment Share on other sites More sharing options...
Luke 36879 Posted August 31, 2014 Share Posted August 31, 2014 Well if you got that far I'm sure you can help xnappo a little more by investigating more. we love contributors. Link to comment Share on other sites More sharing options...
azeos 8 Posted August 31, 2014 Author Share Posted August 31, 2014 Well if you got that far I'm sure you can help xnappo a little more by investigating more. we love contributors. And I love to contribute. I'm very new to the MB and XBMB3C world but I'll give a try. Don't know how to modify the files and test them, but I'm going to search for the documentation. Cheers. 3 Link to comment Share on other sites More sharing options...
xnappo 1592 Posted September 1, 2014 Share Posted September 1, 2014 This should be a really easy first contribution project. I'll look into it a bit when I get home.. Link to comment Share on other sites More sharing options...
azeos 8 Posted September 1, 2014 Author Share Posted September 1, 2014 (edited) This should be a really easy first contribution project. I'll look into it a bit when I get home..Okay, if you give me some tips to start, I'll see what I can do. I'm not too comfortable with Python (I just work with PHP), I'd made some things, but I'm kind rusty.I need to install Python and compile the py files to make the pyo ones? Just tell me how to test the files and I do the rest. EDIT: Well, I'd made some advance. Now it recognize it is a stub/placeholder, and the "This item is not playable" message shows up. Now I need to find the way to show the stub info. default.py line 856: if (result.get("LocationType") == "Virtual") or (result.get("IsPlaceholder")=="true"): Should be: if (result.get("LocationType") == "Virtual") or (result.get("IsPlaceHolder")==True): It is "IsPlaceHolder" with capital "H" It has a boolean value, not a string. So, True instead of "true". Just a couple of typos. EDIT 2 & Solution: Utils.py line 34: # If the file it is not a media stub if (result.get("IsPlaceHolder") != True): if (result.get("VideoType") == "Dvd"): playurl = playurl + "/VIDEO_TS/VIDEO_TS.IFO" elif (result.get("VideoType") == "BluRay"): playurl = playurl + "/BDMV/index.bdmv" if addonSettings.getSetting('smbusername') == '': playurl = playurl.replace("\\\\", "smb://") else: playurl = playurl.replace("\\\\", "smb://" + addonSettings.getSetting('smbusername') + ':' + addonSettings.getSetting('smbpassword') + '@') playurl = playurl.replace("\\", "/") If the file is a media stub, we don't check the VideoType because that will change the url and we don't want that. default.py line 856: # Can not play virtual items if (result.get("LocationType") == "Virtual"): xbmcgui.Dialog().ok(__language__(30128), __language__(30129)) return But we CAN play media stubs. So we just remove the check for IsPlaceHolder from that if. If it is a media stub, then we'll just play the file and XBMC will handle it. It will show the corresponding dialog. And that's all. I'll love to make this changes in the GitHub repository, but I'm new to GitHub to. What are the steps to follow? I need to make a fork, edit the corresponding files and then make a pull request? PS: The same behavior happens in the line 952 inside the PLAYPlaylist method. Should I make the same changes? Don't know exactly what it does. Edited September 1, 2014 by azeos 1 Link to comment Share on other sites More sharing options...
xnappo 1592 Posted September 1, 2014 Share Posted September 1, 2014 (edited) Ha - I see you figured out Github too. I can add you as a developer if you are going to continue to make improvements to make it easier to commit. I merged your changes - seems to work fine. Personally I don't think people are going to be using virtual media inside of a playlist - that would be painful - but it doesn't hurt anything. Thanks a lot! xnappo Edited September 1, 2014 by xnappo Link to comment Share on other sites More sharing options...
azeos 8 Posted September 2, 2014 Author Share Posted September 2, 2014 Ha - I see you figured out Github too. I can add you as a developer if you are going to continue to make improvements to make it easier to commit. I merged your changes - seems to work fine. Personally I don't think people are going to be using virtual media inside of a playlist - that would be painful - but it doesn't hurt anything. Thanks a lot! xnappo Hehe, took me some trial and error, but I figured out. Thanks for accepting the changes. I think you are right, virtual media inside playlists doesn't make too much sense. But I think we should remove the IsPlaceHolder check from the if statement as we did in the PLAY method just to be consistent with the approach. Again, I didn't do it because I wasn't sure of what was the function of the PLAYPlaylist method (I know... is pretty obvious... but you never know). If you could add me as a developer, that would be great! I'm just getting into the MB world, but I'll love to contribute with anything I can. Link to comment Share on other sites More sharing options...
xnappo 1592 Posted September 2, 2014 Share Posted September 2, 2014 Cool - added you to the Git development team - Welcome! @@Luke - can you add him as dev here? Six developers and no fights yet doing pretty well! xnappo Link to comment Share on other sites More sharing options...
azeos 8 Posted September 2, 2014 Author Share Posted September 2, 2014 Thanks fellas Link to comment Share on other sites More sharing options...
Recommended Posts