libbluray | branch: master | hpi1 <[email protected]> | Mon Apr 14 11:08:17 
2014 +0300| [a861f651afd2c4c9d89eaa350523328d482c3f7e] | committer: hpi1

_update_clip_psrs(): validate current IG stream number

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=a861f651afd2c4c9d89eaa350523328d482c3f7e
---

 src/libbluray/bluray.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 40ba0ad..ddd960c 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -353,7 +353,7 @@ static void _update_clip_psrs(BLURAY *bd, NAV_CLIP *clip)
                                        NULL, audio_lang);
         }
 
-    /* Validate selected audio and subtitle stream PSRs when using menus */
+    /* Validate selected audio, subtitle and IG stream PSRs when using menus */
     } else {
         uint32_t psr_val;
 
@@ -381,6 +381,15 @@ static void _update_clip_psrs(BLURAY *bd, NAV_CLIP *clip)
             }
             bd_psr_unlock(bd->regs);
         }
+        if (stn->num_ig) {
+            bd_psr_lock(bd->regs);
+            psr_val = bd_psr_read(bd->regs, PSR_IG_STREAM_ID);
+            if ((psr_val == 0) || (psr_val > stn->num_ig)) {
+                bd_psr_write(bd->regs, PSR_IG_STREAM_ID, 1);
+                BD_DEBUG(DBG_BLURAY | DBG_CRIT, "Selected IG stream 1 (stream 
%d not available)\n", psr_val);
+            }
+            bd_psr_unlock(bd->regs);
+        }
     }
 }
 

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

Reply via email to