libbluray | branch: master | hpi1 <[email protected]> | Sun Jul 3 16:12:46 2011 +0300| [5a478d553211a63227e4c53b7638367dba79e702] | committer: hpi1
Added BD_EVENT_READ_ERROR > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=5a478d553211a63227e4c53b7638367dba79e702 --- player_wrappers/xine/input_bluray.c | 5 +++++ src/examples/hdmv_test.c | 6 ++++++ src/libbluray/bluray.c | 1 + src/libbluray/bluray.h | 5 +++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/player_wrappers/xine/input_bluray.c b/player_wrappers/xine/input_bluray.c index 21f5009..29e8669 100644 --- a/player_wrappers/xine/input_bluray.c +++ b/player_wrappers/xine/input_bluray.c @@ -458,6 +458,11 @@ static void handle_libbluray_event(bluray_input_plugin_t *this, BD_EVENT ev) this->error = 1; return; + case BD_EVENT_READ_ERROR: + LOGMG("m2ts file read error"); + /*stream_flush(this); leave error detection and handling for upper layer */ + return; + case BD_EVENT_ENCRYPTED: lprintf("BD_EVENT_ENCRYPTED\n"); _x_message (this->stream, XINE_MSG_ENCRYPTED_SOURCE, diff --git a/src/examples/hdmv_test.c b/src/examples/hdmv_test.c index fb542ba..9401c3d 100644 --- a/src/examples/hdmv_test.c +++ b/src/examples/hdmv_test.c @@ -33,6 +33,12 @@ static void _print_event(BD_EVENT *ev) case BD_EVENT_ERROR: printf("EVENT_ERROR:\t%d\n", ev->param); break; + case BD_EVENT_READ_ERROR: + printf("EVENT_READ_ERROR:\t%d\n", ev->param); + break; + case BD_EVENT_ENCRYPTED: + printf("EVENT_ENCRYPTED:\t%d\n", ev->param); + break; /* current playback position */ diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 4e2fce3..fd69c62 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -434,6 +434,7 @@ static int _read_block(BLURAY *bd, BD_STREAM *st, uint8_t *buf) BD_DEBUG(DBG_STREAM | DBG_CRIT, "Read %d bytes at %"PRIu64" failed ! (%p)\n", len, st->clip_block_pos, bd); + _queue_event(bd, (BD_EVENT){BD_EVENT_READ_ERROR, 0}); return 0; } diff --git a/src/libbluray/bluray.h b/src/libbluray/bluray.h index f3777d8..83cf1a1 100644 --- a/src/libbluray/bluray.h +++ b/src/libbluray/bluray.h @@ -466,8 +466,9 @@ void bd_stop_bdj(BLURAY *bd); // shutdown BD-J and clean up resources typedef enum { BD_EVENT_NONE = 0, - BD_EVENT_ERROR, - BD_EVENT_ENCRYPTED, + BD_EVENT_ERROR, /* Fatal error. Playback can't be continued. */ + BD_EVENT_READ_ERROR, /* Reading of .m2ts aligned unit failed. Next call to read will try next block. */ + BD_EVENT_ENCRYPTED, /* .m2ts file is encrypted and can't be played */ /* current playback position */ BD_EVENT_ANGLE, /* current angle, 1...N */ _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
