[libbluray-devel] [Git][videolan/libbluray][master] Detect index HDR10+ and Dolby Vision flags

Petri Hintukainen gitlab at videolan.org
Sun May 17 16:58:54 CEST 2020



Petri Hintukainen pushed to branch master at VideoLAN / libbluray


Commits:
9795d2e1 by rapperskull at 2020-05-17T17:57:58+03:00
Detect index HDR10+ and Dolby Vision flags

- - - - -


2 changed files:

- src/libbluray/bdnav/index_parse.c
- src/libbluray/bdnav/index_parse.h


Changes:

=====================================
src/libbluray/bdnav/index_parse.c
=====================================
@@ -198,7 +198,7 @@ static int _parse_header(BITSTREAM *bs,
 static int _parse_indx_extension_hevc(BITSTREAM *bs, INDX_ROOT *index)
 {
   uint32_t len;
-  unsigned unk0, unk1, unk2, unk3, unk4;
+  unsigned unk0, unk1, unk2, unk3, unk4, unk5;
 
   len = bs_read(bs, 32);
   if (len < 8) {
@@ -210,18 +210,21 @@ static int _parse_indx_extension_hevc(BITSTREAM *bs, INDX_ROOT *index)
   unk0                 = bs_read(bs, 3);
   index->exist_4k_flag = bs_read(bs, 1);
   unk1                 = bs_read(bs, 8);
-  unk2                 = bs_read(bs, 6);
+  unk2                 = bs_read(bs, 3);
+  index->hdrplus_flag  = bs_read(bs, 1);
+  unk3                 = bs_read(bs, 1);
+  index->dv_flag       = bs_read(bs, 1);
   index->hdr_flags     = bs_read(bs, 2);
-  unk3                 = bs_read(bs, 8);
-  unk4                 = bs_read(bs, 32);
+  unk4                 = bs_read(bs, 8);
+  unk5                 = bs_read(bs, 32);
 
-  BD_DEBUG(DBG_NAV, "UHD disc type: %d, 4k: %d, HDR: %d\n",
-           index->disc_type, index->exist_4k_flag, index->hdr_flags);
+  BD_DEBUG(DBG_NAV, "UHD disc type: %d, 4k: %d, HDR: %d, HDR10+: %d, Dolby Vision: %d\n",
+           index->disc_type, index->exist_4k_flag, index->hdr_flags, index->hdrplus_flag, index->dv_flag);
 
-  if (unk0 | unk1 | unk2 | unk3 | unk4) {
+  if (unk0 | unk1 | unk2 | unk3 | unk4 | unk5) {
       BD_DEBUG(DBG_CRIT|DBG_NAV,
                "index.bdmv: unknown data in extension 3.1: "
-               "0x%02x 0x%02x 0x%02x 0x%02x 0x%08x\n", unk0, unk1, unk2, unk3, unk4);
+               "0x%01x 0x%02x 0x%01x 0x%01x 0x%02x 0x%08x\n", unk0, unk1, unk2, unk3, unk4, unk5);
   }
 
   return 1;


=====================================
src/libbluray/bdnav/index_parse.h
=====================================
@@ -118,6 +118,8 @@ typedef struct indx_root_s {
     /* UHD extension */
     uint8_t        disc_type;
     uint8_t        exist_4k_flag;
+    uint8_t        hdrplus_flag;
+    uint8_t        dv_flag;
     uint8_t        hdr_flags;
 } INDX_ROOT;
 



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

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




More information about the libbluray-devel mailing list