Bug #2775

Can not play some DVD image

Added by Rural Hunter over 5 years ago. Updated over 3 years ago.

Status:NewStart date:08/21/2015
Priority:NormalDue date:
Assignee:Andreas Smas% Done:

0%

Category:DVD
Target version:-
Found in version:4.99.129.ge4369 Platform:Linux

Description

I have a DVD image iso which movian can not play. This is the log when I try to play it:

00:00:06.696: navigator [INFO ]:Opening file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso
00:00:06.701: vp [DEBUG]:Waiting for event
00:00:06.701: vp [DEBUG]:Playing 'file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso', primary, resume:ask user (overridden)
00:00:06.701: media [DEBUG]:Settings initialized for URL file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso in folder: 视频 [file:///home/sunzhu/视频]
00:00:06.702: SVSYNC [DEBUG]:Set to 0s
00:00:06.703: DVD [DEBUG]:Starting playback of file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso
00:00:06.703: AVSYNC [DEBUG]:Set to 0 ms
00:00:06.703: DVDCSS [DEBUG]:opening target `file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso'
00:00:06.703: DVDCSS [DEBUG]:using CSS key cache dir: /home/rhunter/.dvdcss/JACKY-2010042423532900/
00:00:06.703: DVDNAV [ERROR]:vm: failed to open/read the DVD
00:00:06.703: dvdnav [ERROR]:Unable to start VM: file:///home/rhunter/视频/张学友.-.[95友学友演唱会卡拉OK].演唱会.(DVDISO).iso
00:00:06.703: vp [DEBUG]:Waiting for event
00:00:06.711: X11 [DEBUG]:Suspending screensaver
00:00:06.711: Freetype [DEBUG]:Loaded font family='roboto condensed' fullname='roboto condensed light' style='Light' from skin://fonts/RobotoCondensed-Light.ttf domain:11

History

#1 Updated by Rural Hunter about 5 years ago

If I mount the iso as dvd disk, showtime can play it correctly.

#2 Updated by Rural Hunter about 5 years ago

I traced the source and found movian fails at dvd_reader.c

/* sanity check, is it a valid UDF image, can we find the root dir */
if(!UDFFindFile(dvd, "/", NULL)) {
dvdinput_close(dvd->dev);
if(dvd->udfcache) {
FreeUDFCache(dvd, dvd->udfcache);
}
if(dvd->align) {
if(dvd->verbose >= 0) {
TRACE(TRACE_DEBUG, "libdvdread", "DVDOpenImageFile(): Memory leak in align functions 1");
}
}
free(dvd);
TRACE(TRACE_ERROR, "libdvdread", "DVDOpenImageFile(): Image check failed.");
return NULL;
}

The UDFFindFile fails. So maybe movian only supports UDF format and this ISO is not UDF format?

#3 Updated by Rural Hunter about 5 years ago

I mounted it on windows and it shows the file system is CDFS in disk property dialog.

#4 Updated by Rural Hunter over 3 years ago

The 'file' command shows the info of the problematic iso file is: ISO 9660 CD-ROM filesystem data while those playable files are 'UDF filesystem data'. It looks libdvdread doesn't support ISO-9660 image file. For reference: http://dvdnav-discuss.mplayerhq.narkive.com/mUX5U691/dvdread-patch-for-broken-dvd-s

#5 Updated by Rural Hunter over 3 years ago

Hi Andreas,
I added the fix for reading ISO 9660 image files in upgraded libdvdread in this commit of my clone repo: https://github.com/RuralHunter/showtime/commit/25b1d847f8549a647274ce5c1b772191357efe7e
This works fine on Linux build.

For PS3, I made changes to let the code build: https://github.com/RuralHunter/showtime/commit/8591d5ced6bb57115a30a0f0a82f5035c8d19833
But it doesn't play any dvd image files(both UDF/ISO9660) on PS3 now. There is not any useful messages in log except an error that it can not read the dvd file. I believe I should have messed up some platform things with the new code. Can you please guide me how to let movian print more useful debug messages on PS3 or should I send a pull request so you can take a look?

#6 Updated by Rural Hunter over 3 years ago

I found the way to add log in code. This is what I got:

00:00:19.614: DVD [DEBUG]:Starting playback of ntfs0://DVDISO/mydvd.iso
00:00:19.625: libdvdread [ERROR]:Can't open 'ntfs0://DVDISO/mydvd.iso' for reading: No such file or directory
00:00:19.627: dvdnav [ERROR]:Unable to start VM: ntfs0://DVDISO/mydvd.iso

The path is correct though. Is there anything special I should handle in the code for PS3 path?

#7 Updated by Rob Koni over 3 years ago

Rural Hunter wrote:

I found the way to add log in code. This is what I got:

00:00:19.614: DVD [DEBUG]:Starting playback of ntfs0://DVDISO/mydvd.iso
00:00:19.625: libdvdread [ERROR]:Can't open 'ntfs0://DVDISO/mydvd.iso' for reading: No such file or directory
00:00:19.627: dvdnav [ERROR]:Unable to start VM: ntfs0://DVDISO/mydvd.iso

The path is correct though. Is there anything special I should handle in the code for PS3 path?

This is really good news Ruralhunter. Thanks for the work. I hope Andreas will merge your code soon.

#8 Updated by Rural Hunter over 3 years ago

I think I found the problem: https://github.com/RuralHunter/showtime/commit/18c919f2e477c945c752c0c43e78bc5af87c5fea
This tests fine on Linux. Will test later on PS3.

Also available in: Atom PDF