Petri Hintukainen pushed to branch master at VideoLAN / libbluray
Commits:
6702de70 by rapperskull at 2026-01-28T12:09:54+00:00
Copy dynamic range, color space, cr_flag and HDR10+ flag in _copy_streams
- - - - -
ef4f7102 by rapperskull at 2026-01-28T12:09:54+00:00
Show number of Dolby Vision tracks in list_titles
- - - - -
3 changed files:
- src/libbluray/bluray.c
- src/libbluray/bluray.h
- src/tools/bd_list_titles.c
Changes:
=====================================
src/libbluray/bluray.c
=====================================
@@ -2818,10 +2818,15 @@ static int _copy_streams(const NAV_CLIP *clip,
BLURAY_STREAM_INFO **pstreams,
memcpy(streams[ii].lang, si[ii].lang, 4);
streams[ii].pid = si[ii].pid;
streams[ii].aspect = nav_clip_lookup_aspect(clip, si[ii].pid);
- if ((si->stream_type == 2) || (si->stream_type == 3))
+ if ((si->stream_type == 2) || (si->stream_type == 3) ||
(si->stream_type == 4)) {
streams[ii].subpath_id = si->subpath_id;
- else
+ } else {
streams[ii].subpath_id = -1;
+ }
+ streams[ii].dynamic_range_type = si[ii].dynamic_range_type;
+ streams[ii].color_space = si[ii].color_space;
+ streams[ii].cr_flag = si[ii].cr_flag;
+ streams[ii].hdr_plus_flag = si[ii].hdr_plus_flag;
}
return 1;
@@ -2893,12 +2898,14 @@ static BLURAY_TITLE_INFO* _fill_title_info(NAV_TITLE*
title, uint32_t title_idx,
ci->ig_stream_count = pi->stn.num_ig;
ci->sec_video_stream_count = pi->stn.num_secondary_video;
ci->sec_audio_stream_count = pi->stn.num_secondary_audio;
+ ci->dv_stream_count = pi->stn.num_dv;
if (!_copy_streams(nc, &ci->video_streams, pi->stn.video,
ci->video_stream_count) ||
!_copy_streams(nc, &ci->audio_streams, pi->stn.audio,
ci->audio_stream_count) ||
!_copy_streams(nc, &ci->pg_streams, pi->stn.pg,
ci->pg_stream_count) ||
!_copy_streams(nc, &ci->ig_streams, pi->stn.ig,
ci->ig_stream_count) ||
!_copy_streams(nc, &ci->sec_video_streams,
pi->stn.secondary_video, ci->sec_video_stream_count) ||
- !_copy_streams(nc, &ci->sec_audio_streams,
pi->stn.secondary_audio, ci->sec_audio_stream_count)) {
+ !_copy_streams(nc, &ci->sec_audio_streams,
pi->stn.secondary_audio, ci->sec_audio_stream_count) ||
+ !_copy_streams(nc, &ci->dv_streams, pi->stn.dv,
ci->dv_stream_count)) {
goto error;
}
@@ -2906,6 +2913,7 @@ static BLURAY_TITLE_INFO* _fill_title_info(NAV_TITLE*
title, uint32_t title_idx,
}
title_info->mvc_base_view_r_flag =
title->pl->app_info.mvc_base_view_r_flag;
+ title_info->sdr_conversion_notification_flag =
title->pl->app_info.sdr_conversion_notification_flag;
return title_info;
@@ -2993,6 +3001,7 @@ void bd_free_title_info(BLURAY_TITLE_INFO *title_info)
X_FREE(title_info->clips[ii].ig_streams);
X_FREE(title_info->clips[ii].sec_video_streams);
X_FREE(title_info->clips[ii].sec_audio_streams);
+ X_FREE(title_info->clips[ii].dv_streams);
}
X_FREE(title_info->clips);
}
=====================================
src/libbluray/bluray.h
=====================================
@@ -238,6 +238,11 @@ typedef enum {
BLURAY_DYNAMIC_RANGE_DOLBY_VISION = 2
} bd_dynamic_range_type_e;
+typedef enum {
+ BLURAY_COLOR_SPACE_BT709 = 1,
+ BLURAY_COLOR_SPACE_BT2020 = 2
+} bd_color_space_e;
+
/** Clip substream information */
typedef struct bd_stream_info {
uint8_t coding_type; /**< Stream coding (\ref bd_stream_type_e) */
@@ -248,6 +253,10 @@ typedef struct bd_stream_info {
uint16_t pid; /**< mpeg-ts PID */
uint8_t aspect; /**< Stream video aspect ratio (\ref
bd_video_aspect_e) */
uint8_t subpath_id; /**< Sub path identifier (= separate mpeg-ts mux
/ .m2ts file) */
+ uint8_t dynamic_range_type;
+ uint8_t color_space;
+ uint8_t cr_flag;
+ uint8_t hdr_plus_flag;
} BLURAY_STREAM_INFO;
/** Clip information */
@@ -261,12 +270,14 @@ typedef struct bd_clip {
uint8_t ig_stream_count; /**< Number of IG (Interactive
Graphics) streams */
uint8_t sec_audio_stream_count; /**< Number of secondary audio
streams */
uint8_t sec_video_stream_count; /**< Number of secondary video
streams */
+ uint8_t dv_stream_count;
BLURAY_STREAM_INFO *video_streams; /**< Video streams information
*/
BLURAY_STREAM_INFO *audio_streams; /**< Audio streams information
*/
BLURAY_STREAM_INFO *pg_streams; /**< PG (Presentation
Graphics) streams information */
BLURAY_STREAM_INFO *ig_streams; /**< IG (Interactive Graphics)
streams information */
BLURAY_STREAM_INFO *sec_audio_streams; /**< Secondary audio streams
information */
BLURAY_STREAM_INFO *sec_video_streams; /**< Secondary video streams
information */
+ BLURAY_STREAM_INFO *dv_streams;
uint64_t start_time; /**< start media time, 90kHz, ("playlist
time") */
uint64_t in_time; /**< start timestamp, 90kHz */
@@ -307,6 +318,7 @@ typedef struct bd_title_info {
BLURAY_TITLE_MARK *marks; /**< Playmark information */
uint8_t mvc_base_view_r_flag; /**< MVC base view (0 - left,
1 - right) */
+ uint8_t sdr_conversion_notification_flag;
} BLURAY_TITLE_INFO;
/** Sound effect data */
=====================================
src/tools/bd_list_titles.c
=====================================
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
ti = bd_get_title_info(bd, ii, 0);
printf(
"index: %3d duration: %02" PRIu64 ":%02" PRIu64 ":%02" PRIu64 "
chapters: %3d angles: %2u clips: %3u (playlist: %05d.mpls) "
- "V:%d A:%-2d PG:%-2d IG:%-2d SV:%d SA:%d\n",
+ "V:%d A:%-2d PG:%-2d IG:%-2d SV:%d SA:%d DV:%d\n",
ii + 1,
(ti->duration / 90000) / (3600),
((ti->duration / 90000) % 3600) / 60,
@@ -128,7 +128,8 @@ int main(int argc, char *argv[])
ti->clips[0].pg_stream_count,
ti->clips[0].ig_stream_count,
ti->clips[0].sec_video_stream_count,
- ti->clips[0].sec_audio_stream_count
+ ti->clips[0].sec_audio_stream_count,
+ ti->clips[0].dv_stream_count
);
if (langs) {
_dump_langs(&ti->clips[0]);
View it on GitLab:
https://code.videolan.org/videolan/libbluray/-/compare/15dd24fe7dd684f4fba93870f69b4ce65ddd1ef4...ef4f7102c4b7211d5de980060934c3f7f2049895
--
View it on GitLab:
https://code.videolan.org/videolan/libbluray/-/compare/15dd24fe7dd684f4fba93870f69b4ce65ddd1ef4...ef4f7102c4b7211d5de980060934c3f7f2049895
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