Hi,

I’ve been trying to get Kodi18, libbluray and libmmbd to play together nicely 
and I’ve run across what looks to me like a mistake in libbluray 1.0.2 code. 
Specifically, line 340 of libbluray/disc/disc.c:

 340 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/disc.c;h=be6a279d30963f0bf2ca7361633bbe9c868a37e7;hb=HEAD#l340>
     struct dec_dev dev = { p->fs_handle, p->pf_file_open_bdrom, p, 
(file_openFp)disc_open_path, p->disc_root, device_path };

The third member of that structure is p, which is a pointer to a BD_DISC 
structure.

However, the declaration of dec_dev (in libbluray/disc/dec.h) seems to indicate 
that the third member is intended to be a (possibly opaque) handle to be used 
when calling the function pointed to by the fourth member:

 /* device to use */
  37 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l37>
 struct dec_dev {
  38 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l38>
     void          *file_open_bdrom_handle;
  39 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l39>
     file_openFp   pf_file_open_bdrom;
  40 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l40>
     void          *file_open_vfs_handle;
  41 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l41>
     file_openFp   pf_file_open_vfs;
  42 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l42>
     const char    *root;   /* may be NULL if disc is not mounted */
  43 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l43>
     const char    *device; /* may be null if not reading from real device */
  44 
<http://git.videolan.org/?p=libbluray.git;a=blob;f=src/libbluray/disc/dec.h;h=d1329be272beb1cba4d9809be9ca343303ca4b7c;hb=HEAD#l44>
 };

Could someone who is familiar with the code determine whether the line in 
question will function as originally intended and provide a patch if that is 
not the case.

I’m in no position to do this myself. I’m just starting to learn C and C++ and 
can’t properly judge the consequences of any fix that seems to work for me. A 
little knowledge is a dangerous thing :-(

dgktkr
_______________________________________________
libbluray-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to