summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/libbluray/A02-expose-clip_id.patch37
-rw-r--r--libhb/bd.c22
2 files changed, 59 insertions, 0 deletions
diff --git a/contrib/libbluray/A02-expose-clip_id.patch b/contrib/libbluray/A02-expose-clip_id.patch
new file mode 100644
index 000000000..9fe3dfedb
--- /dev/null
+++ b/contrib/libbluray/A02-expose-clip_id.patch
@@ -0,0 +1,37 @@
+From 1a113167733091fe325152a5ece4d57ee1b89dc0 Mon Sep 17 00:00:00 2001
+From: John Stebbins <[email protected]>
+Date: Wed, 18 May 2016 15:40:17 -0600
+Subject: [PATCH] expose clip_id in BLURAY_CLIP_INFO
+
+---
+ src/libbluray/bluray.c | 1 +
+ src/libbluray/bluray.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
+index b7598b9..3478ade 100644
+--- a/src/libbluray/bluray.c
++++ b/src/libbluray/bluray.c
+@@ -2602,6 +2602,7 @@ static BLURAY_TITLE_INFO* _fill_title_info(NAV_TITLE* title, uint32_t title_idx,
+ BLURAY_CLIP_INFO *ci = &title_info->clips[ii];
+ NAV_CLIP *nc = &title->clip_list.clip[ii];
+
++ memcpy(ci->clip_id, pi->clip->clip_id, sizeof(ci->clip_id));
+ ci->pkt_count = nc->end_pkt - nc->start_pkt;
+ ci->start_time = (uint64_t)nc->title_time * 2;
+ ci->in_time = (uint64_t)pi->in_time * 2;
+diff --git a/src/libbluray/bluray.h b/src/libbluray/bluray.h
+index 3cd7118..177b3d4 100644
+--- a/src/libbluray/bluray.h
++++ b/src/libbluray/bluray.h
+@@ -225,6 +225,7 @@ typedef struct bd_stream_info {
+ } BLURAY_STREAM_INFO;
+
+ typedef struct bd_clip {
++ char clip_id[6];
+ uint32_t pkt_count;
+ uint8_t still_mode;
+ uint16_t still_time; /* seconds */
+--
+2.5.5
+
diff --git a/libhb/bd.c b/libhb/bd.c
index 16f79dc4c..e5fb6e83d 100644
--- a/libhb/bd.c
+++ b/libhb/bd.c
@@ -234,6 +234,24 @@ static int bd_audio_equal( BLURAY_CLIP_INFO *a, BLURAY_CLIP_INFO *b )
return 1;
}
+static void show_clip_list( BLURAY_TITLE_INFO * ti )
+{
+ int ii;
+
+ for (ii = 0; ii < ti->clip_count; ii++)
+ {
+ BLURAY_CLIP_INFO * ci = &ti->clips[ii];
+ int64_t duration = ci->out_time - ci->in_time;
+ int hh, mm, ss;
+
+ hh = duration / (90000 * 60 * 60);
+ mm = (duration / (90000 * 60)) % 60;
+ ss = (duration / 90000) % 60;
+ hb_log("bd:\t\t%s.M2TS -- Duration: %02d:%02d:%02d",
+ ti->clips[ii].clip_id, hh, mm, ss);
+ }
+}
+
/***********************************************************************
* hb_bd_title_scan
**********************************************************************/
@@ -314,6 +332,10 @@ hb_title_t * hb_bd_title_scan( hb_bd_t * d, int tt, uint64_t min_duration )
hb_log( "bd: ignoring title (too short)" );
goto fail;
}
+ if (global_verbosity_level >= 2)
+ {
+ show_clip_list(ti);
+ }
BLURAY_STREAM_INFO * bdvideo = &ti->clips[0].video_streams[0];