Jump to content

Show media stubs message


azeos

Recommended Posts

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:

540381bfe4c5c_mediastubsmessage.jpg

 

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.

  • Like 1
Link to comment
Share on other sites

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

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 by azeos
  • Like 1
Link to comment
Share on other sites

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

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.

  • Like 3
Link to comment
Share on other sites

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 by azeos
  • Like 1
Link to comment
Share on other sites

xnappo

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 by xnappo
Link to comment
Share on other sites

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

xnappo

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...