[libbluray-devel] Moved internally handled pids from BLURAY to BD_STREAM ( we want different pids from sub-paths)
hpi1
git at videolan.org
Thu Jul 25 10:22:21 CEST 2013
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Thu Jul 25 09:22:45 2013 +0300| [b6e5cee89c7ea2891010a3dc7dd592232af9f0e5] | committer: hpi1
Moved internally handled pids from BLURAY to BD_STREAM (we want different pids from sub-paths)
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=b6e5cee89c7ea2891010a3dc7dd592232af9f0e5
---
src/libbluray/bluray.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 5604b45..49688c7 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -99,6 +99,9 @@ typedef struct {
BD_UO_MASK uo_mask;
+ /* internally handled pids */
+ uint16_t ig_pid; /* pid of currently selected IG stream */
+ uint16_t pg_pid; /* pid of currently selected PG stream */
} BD_STREAM;
typedef struct {
@@ -127,8 +130,6 @@ struct bluray {
BD_STREAM st0; /* main path */
BD_PRELOAD st_ig; /* preloaded IG stream sub path */
BD_PRELOAD st_textst; /* preloaded TextST sub path */
- int ig_pid; /* pid of currently selected IG stream in main path */
- int pg_pid; /* pid of currently selected PG stream in main path */
/* buffer for bd_read(): current aligned unit of main stream (st0) */
uint8_t int_buf[6144];
@@ -445,7 +446,7 @@ static int _init_pg_stream(BLURAY *bd)
unsigned pg_subclip = 0;
uint16_t pg_pid = 0;
- bd->pg_pid = 0;
+ bd->st0.pg_pid = 0;
if (!bd->graphics_controller) {
return 0;
@@ -462,7 +463,7 @@ static int _init_pg_stream(BLURAY *bd)
/* store PID of main path embedded PG stream */
if (pg_subpath < 0) {
- bd->pg_pid = pg_pid;
+ bd->st0.pg_pid = pg_pid;
return !!pg_pid;
}
@@ -1886,14 +1887,14 @@ static int _bd_read(BLURAY *bd, unsigned char *buf, int len)
int r = _read_block(bd, st, bd->int_buf);
if (r > 0) {
- if (bd->ig_pid > 0) {
- if (gc_decode_ts(bd->graphics_controller, bd->ig_pid, bd->int_buf, 1, -1) > 0) {
+ if (st->ig_pid > 0) {
+ if (gc_decode_ts(bd->graphics_controller, st->ig_pid, bd->int_buf, 1, -1) > 0) {
/* initialize menus */
_run_gc(bd, GC_CTRL_INIT_MENU, 0);
}
}
- if (bd->pg_pid > 0) {
- if (gc_decode_ts(bd->graphics_controller, bd->pg_pid, bd->int_buf, 1, -1) > 0) {
+ if (st->pg_pid > 0) {
+ if (gc_decode_ts(bd->graphics_controller, st->pg_pid, bd->int_buf, 1, -1) > 0) {
/* render subtitles */
gc_run(bd->graphics_controller, GC_CTRL_PG_UPDATE, 0, NULL);
}
@@ -2125,7 +2126,7 @@ static int _init_ig_stream(BLURAY *bd)
unsigned ig_subclip = 0;
uint16_t ig_pid = 0;
- bd->ig_pid = 0;
+ bd->st0.ig_pid = 0;
if (!bd->graphics_controller) {
return 0;
@@ -2141,7 +2142,7 @@ static int _init_ig_stream(BLURAY *bd)
/* store PID of main path embedded IG stream */
if (ig_subpath < 0) {
- bd->ig_pid = ig_pid;
+ bd->st0.ig_pid = ig_pid;
return 1;
}
More information about the libbluray-devel
mailing list