Petri Hintukainen pushed to branch master at VideoLAN / libbluray


Commits:
bc5560e2 by Masstock at 2026-01-16T15:58:04+02:00
Add missing UOs for the BD_EVENT_UO_MASK_CHANGED event

- - - - -


2 changed files:

- src/libbluray/bluray.c
- src/libbluray/bluray.h


Changes:

=====================================
src/libbluray/bluray.c
=====================================
@@ -572,7 +572,40 @@ static void _init_textst_timer(BLURAY *bd)
 
 static uint32_t _compressed_mask(BD_UO_MASK mask)
 {
-    return mask.menu_call | (mask.title_search << 1);
+    uint32_t value = 0x0;
+#define UO_MASK_VALUE(v, f)  ((!!(mask.f)) * (BLURAY_UO_ ## v))
+    value |= UO_MASK_VALUE(MENU_CALL,                           menu_call);
+    value |= UO_MASK_VALUE(TITLE_SEARCH,                        title_search);
+    value |= UO_MASK_VALUE(CHAPTER_SEARCH,                      
chapter_search);
+    value |= UO_MASK_VALUE(TIME_SEARCH_MASK,                    time_search);
+    value |= UO_MASK_VALUE(SKIP_TO_NEXT_POINT_MASK,             
skip_to_next_point);
+    value |= UO_MASK_VALUE(SKIP_BACK_TO_PREVIOUS_POINT_MASK,    
skip_to_prev_point);
+    value |= UO_MASK_VALUE(STOP_MASK,                           stop);
+    value |= UO_MASK_VALUE(PAUSE_ON_MASK,                       pause_on);
+    value |= UO_MASK_VALUE(STILL_OFF_MASK,                      still_off);
+    value |= UO_MASK_VALUE(FORWARD_PLAY_MASK,                   forward);
+    value |= UO_MASK_VALUE(BACKWARD_PLAY_MASK,                  backward);
+    value |= UO_MASK_VALUE(RESUME_MASK,                         resume);
+    value |= UO_MASK_VALUE(MOVE_UP_SELECTED_BUTTON_MASK,        move_up);
+    value |= UO_MASK_VALUE(MOVE_DOWN_SELECTED_BUTTON_MASK,      move_down);
+    value |= UO_MASK_VALUE(MOVE_LEFT_SELECTED_BUTTON_MASK,      move_left);
+    value |= UO_MASK_VALUE(MOVE_RIGHT_SELECTED_BUTTON_MASK,     move_right);
+    value |= UO_MASK_VALUE(SELECT_BUTTON_MASK,                  select);
+    value |= UO_MASK_VALUE(ACTIVATE_BUTTON_MASK,                activate);
+    value |= UO_MASK_VALUE(SELECT_AND_ACTIVATE_MASK,            
select_and_activate);
+    value |= UO_MASK_VALUE(PRIMARY_AUDIO_CHANGE_MASK,           
primary_audio_change);
+    value |= UO_MASK_VALUE(ANGLE_CHANGE_MASK,                   angle_change);
+    value |= UO_MASK_VALUE(POPUP_ON_MASK,                       popup_on);
+    value |= UO_MASK_VALUE(POPUP_OFF_MASK,                      popup_off);
+    value |= UO_MASK_VALUE(PG_TEXTST_ENABLE_DISABLE_MASK,       
pg_enable_disable);
+    value |= UO_MASK_VALUE(PG_TEXTST_CHANGE_MASK,               pg_change);
+    value |= UO_MASK_VALUE(SECONDARY_VIDEO_ENABLE_DISABLE_MASK, 
secondary_video_enable_disable);
+    value |= UO_MASK_VALUE(SECONDARY_VIDEO_CHANGE_MASK,         
secondary_video_change);
+    value |= UO_MASK_VALUE(SECONDARY_AUDIO_ENABLE_DISABLE_MASK, 
secondary_audio_enable_disable);
+    value |= UO_MASK_VALUE(SECONDARY_AUDIO_CHANGE_MASK,         
secondary_audio_change);
+    value |= UO_MASK_VALUE(PIP_PG_TEXTST_CHANGE_MASK,           pip_pg_change);
+#undef UO_MASK_VALUE
+    return value;
 }
 
 static void _update_uo_mask(BLURAY *bd)


=====================================
src/libbluray/bluray.h
=====================================
@@ -877,9 +877,37 @@ typedef struct {
 #define BLURAY_KIT_SEC_VIDEO     0x200    /**< BD-J requests to handle "Sec. 
Video" UO    */
 #define BLURAY_KIT_PG_TEXTST     0x400    /**< BD-J requests to handle 
"Subtitle" UO      */
 
-/* BD_EVENT_UO_MASK flags */
-#define BLURAY_UO_MENU_CALL      0x1      /**< "Menu Call" masked (not 
allowed)    */
-#define BLURAY_UO_TITLE_SEARCH   0x2      /**< "Title Search" masked (not 
allowed) */
+/* BD_EVENT_UO_MASK_CHANGED flags */
+#define BLURAY_UO_MENU_CALL                           0x1        /**< "Menu 
Call" masked (not allowed)                            */
+#define BLURAY_UO_TITLE_SEARCH                        0x2        /**< "Title 
Search" masked (not allowed)                         */
+#define BLURAY_UO_CHAPTER_SEARCH                      0x4        /**< "Chapter 
Search" masked (not allowed)                       */
+#define BLURAY_UO_TIME_SEARCH_MASK                    0x8        /**< "Time 
Search" masked (not allowed)                          */
+#define BLURAY_UO_SKIP_TO_NEXT_POINT_MASK             0x10       /**< "Skip to 
Next Point" masked (not allowed)                   */
+#define BLURAY_UO_SKIP_BACK_TO_PREVIOUS_POINT_MASK    0x20       /**< "Skip 
Back to Previous Point" masked (not allowed)          */
+#define BLURAY_UO_STOP_MASK                           0x40       /**< "Stop" 
masked (not allowed)                                 */
+#define BLURAY_UO_PAUSE_ON_MASK                       0x80       /**< "Pause 
On" masked (not allowed)                             */
+#define BLURAY_UO_STILL_OFF_MASK                      0x100      /**< "Still 
Off" masked (not allowed)                            */
+#define BLURAY_UO_FORWARD_PLAY_MASK                   0x200      /**< "Forward 
Play" masked (not allowed)                         */
+#define BLURAY_UO_BACKWARD_PLAY_MASK                  0x400      /**< 
"Backward Play" masked (not allowed)                        */
+#define BLURAY_UO_RESUME_MASK                         0x800      /**< "Resume" 
masked (not allowed)                               */
+#define BLURAY_UO_MOVE_UP_SELECTED_BUTTON_MASK        0x1000     /**< "Move Up 
Selected Button" masked (not allowed)              */
+#define BLURAY_UO_MOVE_DOWN_SELECTED_BUTTON_MASK      0x2000     /**< "Move 
Down Selected Button" masked (not allowed)            */
+#define BLURAY_UO_MOVE_LEFT_SELECTED_BUTTON_MASK      0x4000     /**< "Move 
Left Selected Button" masked (not allowed)            */
+#define BLURAY_UO_MOVE_RIGHT_SELECTED_BUTTON_MASK     0x8000     /**< "Move 
Right Selected Button" masked (not allowed)           */
+#define BLURAY_UO_SELECT_BUTTON_MASK                  0x10000    /**< "Select 
Button" masked (not allowed)                        */
+#define BLURAY_UO_ACTIVATE_BUTTON_MASK                0x20000    /**< 
"Activate Button" masked (not allowed)                      */
+#define BLURAY_UO_SELECT_AND_ACTIVATE_MASK            0x40000    /**< "Select 
Button and Activate" masked (not allowed)           */
+#define BLURAY_UO_PRIMARY_AUDIO_CHANGE_MASK           0x80000    /**< "Primary 
Audio Stream Number Change" masked (not allowed)   */
+#define BLURAY_UO_ANGLE_CHANGE_MASK                   0x100000   /**< "Angle 
Number Change" masked (not allowed)                  */
+#define BLURAY_UO_POPUP_ON_MASK                       0x200000   /**< "PopUp 
On" masked (not allowed)                             */
+#define BLURAY_UO_POPUP_OFF_MASK                      0x400000   /**< "PopUp 
Off" masked (not allowed)                            */
+#define BLURAY_UO_PG_TEXTST_ENABLE_DISABLE_MASK       0x800000   /**< "PG 
textST Enable Disable" masked (not allowed)             */
+#define BLURAY_UO_PG_TEXTST_CHANGE_MASK               0x1000000  /**< "PG 
textST Stream Number Change" masked (not allowed)       */
+#define BLURAY_UO_SECONDARY_VIDEO_ENABLE_DISABLE_MASK 0x2000000  /**< 
"Secondary Video Enable Disable" masked (not allowed)       */
+#define BLURAY_UO_SECONDARY_VIDEO_CHANGE_MASK         0x4000000  /**< 
"Secondary Video Stream Number Change" masked (not allowed) */
+#define BLURAY_UO_SECONDARY_AUDIO_ENABLE_DISABLE_MASK 0x8000000  /**< 
"Secondary Audio Enable Disable" masked (not allowed)       */
+#define BLURAY_UO_SECONDARY_AUDIO_CHANGE_MASK         0x10000000 /**< 
"Secondary Audio Stream Number Change" masked (not allowed) */
+#define BLURAY_UO_PIP_PG_TEXTST_CHANGE_MASK           0x20000000 /**< "PiP PG 
textST Stream Number Change" masked (not allowed)   */
 
 /**
  *



View it on GitLab: 
https://code.videolan.org/videolan/libbluray/-/commit/bc5560e215b03d28b33d2a05b6e6c7ea6b1b6a27

-- 
View it on GitLab: 
https://code.videolan.org/videolan/libbluray/-/commit/bc5560e215b03d28b33d2a05b6e6c7ea6b1b6a27
You're receiving this email because of your account on code.videolan.org.


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

Reply via email to