libbluray | branch: master | hpi1 <[email protected]> | Thu Feb 12 11:53:04 2015 +0200| [2cfddf9a3c199257d04e787d179ae47cf1a10e98] | committer: hpi1
Add libudfread git submodule > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=2cfddf9a3c199257d04e787d179ae47cf1a10e98 --- .gitmodules | 3 +++ contrib/libudfread | 1 + src/libbluray/disc/udf_fs.c | 20 +++++++++++++++----- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e2722d7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "contrib/libudfread"] + path = contrib/libudfread + url = git://git.videolan.org/libudfread.git diff --git a/contrib/libudfread b/contrib/libudfread new file mode 160000 index 0000000..06c3cb9 --- /dev/null +++ b/contrib/libudfread @@ -0,0 +1 @@ +Subproject commit 06c3cb9223a3cb5ab048e42ab353958f422a8f57 diff --git a/src/libbluray/disc/udf_fs.c b/src/libbluray/disc/udf_fs.c index 6d5f25b..3068710 100644 --- a/src/libbluray/disc/udf_fs.c +++ b/src/libbluray/disc/udf_fs.c @@ -198,21 +198,31 @@ static struct udfread_block_input *_block_input(const char *img) void *udf_image_open(const char *img_path) { - udfread *udf = NULL; + udfread *udf = udfread_init(); + int result = -1; + + if (!udf) { + return NULL; + } /* app handles file I/O ? */ if (file_open != file_open_default()) { struct udfread_block_input *bi = _block_input(img_path); if (bi) { - udf = udfread_open_input(bi); - if (!udf) { + result = udfread_open_input(udf, bi); + if (result < 0) { bi->close(bi); } } } - if (!udf) { - udf = (void*)udfread_open(img_path); + if (result < 0) { + result = udfread_open(udf, img_path); + } + + if (result < 0) { + udfread_close(udf); + return NULL; } return (void*)udf; _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
