Code:
22:11:42 T:3061147488 M: 40570880 NOTICE: DVDPlayer: Opening: /inc/Some DVD/VIDEO_TS/VIDEO_TS.IFO
22:11:42 T:3061147488 M: 40570880 WARNING: CDVDMessageQueue::Put MSGQ_NOT_INITIALIZED
22:11:42 T:2917137296 M: 40562688 NOTICE: Creating InputStream
22:11:42 T:2917137296 M: 40435712 ERROR: Error on dvdnav_open
22:11:42 T:2917137296 M: 40435712 ERROR: InputStream: Error opening, /inc/Some DVD/VIDEO_TS/VIDEO_TS.IFO
22:11:42 T:2917137296 M: 40435712 NOTICE: CDVDPlayer::OnExit()
22:11:42 T:2917137296 M: 40435712 NOTICE: CDVDPlayer::OnExit() deleting input stream
22:11:43 T:3061147488 M: 40443904 NOTICE: CDVDPlayer::CloseFile()
22:11:43 T:3061147488 M: 40443904 WARNING: CDVDMessageQueue::Put MSGQ_NOT_INITIALIZED
22:11:43 T:3061147488 M: 40443904 NOTICE: DVDPlayer: waiting for threads to exit
22:11:43 T:3061147488 M: 40443904 NOTICE: DVDPlayer: finished waiting
22:11:43 T:3061147488 M: 40443904 ERROR: Playlist Player: skipping unplayable item: -1, path [/inc/Some DVD/VIDEO_TS/VIDEO_TS.IFO]
...After this, xbmc exits immediatly. This bug is different from the virtual file handles + getmntent one.
Using revision: 14676
Note 1 : in the above example, DVD is not a real dvd. Just AUDIO_TS/VIDEO_TS directories on disk.
Note 2 : xbmc works fine with .ISO.
Não há problema, amigo...
Distribution : Slackware 12.1
Architecture : i686
Install Method : manual
SVN Revision : 14676
Reproduce the problem : play a DVD from the hard-disk
Full debug log :
http://www.pastebin.ca/1093109
Backtrace :
Code:
#0 0x0831aebf in boost::detail::atomic_increment (pw=0x15)
at /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:66
#1 0x0831af21 in boost::detail::sp_counted_base::add_ref_copy (this=0x11)
at /usr/include/boost/detail/sp_counted_base_gcc_x86.hpp:133
#2 0x0831b003 in shared_count (this=0xbfe55e18, r=@0x8fecab4)
at /usr/include/boost/detail/shared_count.hpp:215
#3 0x0840eb8c in shared_ptr (this=0xbfe55e14)
at /usr/include/boost/shared_ptr.hpp:148
#4 0x085cca68 in PLAYLIST::CPlayList::SetUnPlayable (this=0x8d25550, iItem=-1)
at PlayList.cpp:352
#5 0x085d3455 in PLAYLIST::CPlayListPlayer::Play (this=0x8c7c240, iSong=0,
bAutoPlay=false, bPlayPrevious=false) at PlayListPlayer.cpp:216
#6 0x08541091 in CGUIWindowVideoBase::PlayMovie (this=0x8e742e8,
item=0xbfe560cc) at GUIWindowVideoBase.cpp:1273
#7 0x085414c6 in CGUIWindowVideoBase::OnPlayMedia (this=0x8e742e8, iItem=13)
at GUIWindowVideoBase.cpp:1187
#8 0x0854a4fe in CGUIWindowVideoFiles::OnPlayMedia (this=0x8e742e8, iItem=13)
at GUIWindowVideoFiles.cpp:327
#9 0x084a0c37 in CGUIMediaWindow::OnClick (this=0x8e742e8, iItem=13)
at GUIMediaWindow.cpp:744
#10 0x085406e4 in CGUIWindowVideoBase::OnClick (this=0x8e742e8, iItem=13)
at GUIWindowVideoBase.cpp:896
#11 0x0854a6f5 in CGUIWindowVideoFiles::OnClick (this=0x8e742e8, iItem=13)
at GUIWindowVideoFiles.cpp:300
#12 0x084a28d9 in CGUIMediaWindow::OnMessage (this=0x8e742e8,
message=@0xbfe56c78) at GUIMediaWindow.cpp:197
#13 0x085470e8 in CGUIWindowVideoBase::OnMessage (this=0x8e742e8,
message=@0xbfe56c78) at GUIWindowVideoBase.cpp:263
#14 0x0854b877 in CGUIWindowVideoFiles::OnMessage (this=0x8e742e8,
message=@0xbfe56c78) at GUIWindowVideoFiles.cpp:217
#15 0x0832f5c8 in CGUIControl::SendWindowMessage (this=0x9339590,
message=@0xbfe56c78) at GUIControl.cpp:247
#16 0x08319285 in CGUIBaseContainer::OnClick (this=0x9339590, actionID=7)
at GUIBaseContainer.cpp:394
#17 0x0831a0a6 in CGUIBaseContainer::OnAction (this=0x9339590,
action=@0xbfe56fe8) at GUIBaseContainer.cpp:124
#18 0x083527a7 in CGUIListContainer::OnAction (this=0x9339590,
action=@0xbfe56fe8) at GUIListContainer.cpp:195
#19 0x0838b84b in CGUIWindow::OnAction (this=0x8e742e8, action=@0xbfe56fe8)
at GUIWindow.cpp:502
#20 0x084a34ba in CGUIMediaWindow::OnAction (this=0x8e742e8,
action=@0xbfe56fe8) at GUIMediaWindow.cpp:134
#21 0x0854719c in CGUIWindowVideoBase::OnAction (this=0x8e742e8,
action=@0xbfe56fe8) at GUIWindowVideoBase.cpp:100
#22 0x08392700 in CGUIWindowManager::OnAction (this=0x8c7ade0,
action=@0xbfe56fe8) at GUIWindowManager.cpp:431
#23 0x083f021c in CApplication::OnAction (this=0x8c81840, action=@0xbfe56fe8)
at Application.cpp:2516
#24 0x083f191d in CApplication::OnKey (this=0x8c81840, key=@0xbfe5704c)
at Application.cpp:2483
#25 0x083f237e in CApplication::ProcessRemote (this=0x8c81840,
frameTime=0.0170000009) at Application.cpp:3188
#26 0x083f24b9 in CApplication::FrameMove (this=0x8c81840)
at Application.cpp:2833
#27 0x0869034b in CXBApplicationEx::Run (this=0x8c81840)
at XBApplicationEx.cpp:232
#28 0x086933cd in main (argc=3, argv=0xbfe573c4) at XboxMediaCenter.cpp:98
Something with the boost library. Mine is boost-1.35.0-i686-2as.
Thanks.
Note : SetUnPlayable is called with iItem as -1.
Should not happen, since playlist.size is greater than zero.
Weird. I'll dig into this later...
Followup :
Just before crash, iSong = 0 and m_iCurrentSong = -1.
Which is also weird, since m_iCurrentSong is set to iSong at PlayListPlayer.cpp:209.
Code:
#0 PLAYLIST::CPlayListPlayer::Reset (this=0x8c7c240) at PlayListPlayer.cpp:379
#1 0x085d3a77 in PLAYLIST::CPlayListPlayer::OnMessage (this=0x8c7c240, message=@0x8d1bdb8) at PlayListPlayer.cpp:77
#2 0x08394712 in CGUIWindowManager::SendMessage (this=0x8c7ade0, message=@0x8d1bdb8) at GUIWindowManager.cpp:66
#3 0x083ece98 in CApplication::PlayFile (this=0x8c81840, item=@0xb19062e0, bRestart=false) at Application.cpp:4146
#4 0x085d3400 in PLAYLIST::CPlayListPlayer::Play (this=0x8c7c240, iSong=0, bAutoPlay=false, bPlayPrevious=false)
at PlayListPlayer.cpp:213
In short, CApplication:
layFile checks whether playback has been successful. If not, it sends any queued messages. GUI_MSG_PLAYBACK_STOPPED in turn causes a playlist reset.
To get over this, I made a lousy hack : set m_iCurrentSong to iSong after application.PlayFile. Xbmc no longer crashes for me.
I'll now move to the next issue (ERROR: Error on dvdnav_open).
Okay, I got it.
From libdvdnav/src/dvdread/dvd_reader.c :
Code:
/**
* let's just give it a try to open the path directly
* should fail if this is really a standard folder
*/
auth_drive = DVDOpenImageFile( path, have_css );
In my case, this does not fail with a standard folder. So, dvd->isImageFile is set to 1 and everything gets screwed thereafter.
If I force auth_drive to null, then DVDOpenPath gets called later on, and the DVD plays.
That's all.
Oh, about the trac : forgive me, but I don't feel like writing everything again. I've already followed a set of guidelines on submiting a but report, so I don't feel like following another (longer and generic, btw).
If no one else is experiencing this problem (playing DVDs from a path on disk), then perhaps the problem doesn't exist (except on my system). If not, sooner or later someone will create the proper trac.
Thanx for tracking it down. I assume you are playing from local disk, that would probably explain it. I only tested over smb:// network. Will ponder how to solve your issue.
elupus Wrote:I assume you are playing from local disk, that would probably explain it.
Yes, I am playing from local disk.
Thanks.