summaryrefslogtreecommitdiffstats
path: root/gtk
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2010-09-08 16:51:59 +0000
committerjstebbins <[email protected]>2010-09-08 16:51:59 +0000
commita007891bf9f7e53d3705c51b5b41f9e56a144031 (patch)
treeb7a532c24a458d549afb0174c374e631b896a46e /gtk
parent772c3574758e9bc29cb76bbc86343cf9ad5ddd71 (diff)
Add Bluray support
Unencrypted BD directory trees only. Doesn't support iso images. Also, no PGS subtitle support yet. Chapters and angles are supported. Adds a new contrib libbluray. Adds new option to hb_scan() for duration of short titles to filter. This applies to BD and DVD multi-title scans only. Does not apply to any single title scans. Fixes memory leak during scan. hb_buffer_close() was not freeing all buffers in a chain of buffers passed to it. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3510 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'gtk')
-rw-r--r--gtk/src/Makefile.am4
-rw-r--r--gtk/src/callbacks.c3
-rw-r--r--gtk/src/ghb.ui55
-rw-r--r--gtk/src/hb-backend.c6
-rw-r--r--gtk/src/hb-backend.h2
-rw-r--r--gtk/src/internal_defaults.xml2
6 files changed, 64 insertions, 8 deletions
diff --git a/gtk/src/Makefile.am b/gtk/src/Makefile.am
index 12d23b11e..42d5d7f78 100644
--- a/gtk/src/Makefile.am
+++ b/gtk/src/Makefile.am
@@ -5,13 +5,13 @@ HB_LIBS= \
-lhb -la52 -lmkv -lavformat -lavcodec -lavutil -ldca -ldvdnav -ldvdread \
-lfaac -lmp3lame -lmpeg2 -lvorbis -lvorbisenc -logg -lsamplerate \
-lx264 -lmp4v2 -lswscale -ltheora -lfaad -lz \
- -lbz2 -liberty -lpthreadGC2
+ -lbz2 -liberty -lpthreadGC2 -lbluray
else
HB_LIBS= \
-lhb -la52 -lmkv -lavformat -lavcodec -lavutil -ldca -ldvdnav -ldvdread \
-lfaac -lmp3lame -lmpeg2 -lvorbis -lvorbisenc -logg -lsamplerate \
-lx264 -lmp4v2 -lswscale -ltheora -lfaad -lz \
- -lbz2 -lpthread
+ -lbz2 -lpthread -lbluray
endif
icons = \
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index 331342e68..c29d4a8ac 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -884,7 +884,8 @@ start_scan(
gtk_action_set_sensitive(action, FALSE);
action = GHB_ACTION(ud->builder, "source_single_action");
gtk_action_set_sensitive(action, FALSE);
- ghb_backend_scan(path, titlenum, preview_count);
+ ghb_backend_scan(path, titlenum, preview_count,
+ 90000L * ghb_settings_get_int64(ud->settings, "MinTitleDuration"));
}
void
diff --git a/gtk/src/ghb.ui b/gtk/src/ghb.ui
index 64cfa2a12..db2dadd31 100644
--- a/gtk/src/ghb.ui
+++ b/gtk/src/ghb.ui
@@ -272,6 +272,14 @@
<property name="page_size">0</property>
<property name="value">10</property>
</object>
+ <object class="GtkAdjustment" id="min_title_adj">
+ <property name="upper">7200</property>
+ <property name="lower">0</property>
+ <property name="page_increment">10</property>
+ <property name="step_increment">5</property>
+ <property name="page_size">0</property>
+ <property name="value">10</property>
+ </object>
<object class="GtkImage" id="subtitle_add_image">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -4075,6 +4083,51 @@ no-fast-pskip=0:no-dct-decimate=0:cabac=1</property>
</packing>
</child>
<child>
+ <object class="GtkAlignment" id="alignment58">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="bottom_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkHBox" id="hbox60">
+ <property name="visible">True</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkSpinButton" id="MinTitleDuration">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="max_length">4</property>
+ <property name="invisible_char">&#x25CF;</property>
+ <property name="shadow_type">none</property>
+ <property name="adjustment">min_title_adj</property>
+ <property name="numeric">True</property>
+ <signal name="value_changed" handler="pref_changed_cb"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label70">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Filter short titles (seconds)</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkAlignment" id="alignment64">
<property name="visible">True</property>
<property name="top_padding">6</property>
@@ -4093,7 +4146,7 @@ no-fast-pskip=0:no-dct-decimate=0:cabac=1</property>
</object>
<packing>
<property name="expand">False</property>
- <property name="position">4</property>
+ <property name="position">5</property>
</packing>
</child>
</object>
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index 1dee59666..8ebdd1d17 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -3205,9 +3205,9 @@ void ghb_backend_scan_stop()
}
void
-ghb_backend_scan(const gchar *path, gint titleindex, gint preview_count)
+ghb_backend_scan(const gchar *path, gint titleindex, gint preview_count, uint64_t min_duration)
{
- hb_scan( h_scan, path, titleindex, preview_count, 1 );
+ hb_scan( h_scan, path, titleindex, preview_count, 1, min_duration );
hb_status.scan.state |= GHB_STATE_SCANNING;
// initialize count and cur to something that won't cause FPE
// when computing progress
@@ -3219,7 +3219,7 @@ void
ghb_backend_queue_scan(const gchar *path, gint titlenum)
{
g_debug("ghb_backend_queue_scan()");
- hb_scan( h_queue, path, titlenum, 10, 0 );
+ hb_scan( h_queue, path, titlenum, 10, 0, 0 );
hb_status.queue.state |= GHB_STATE_SCANNING;
}
diff --git a/gtk/src/hb-backend.h b/gtk/src/hb-backend.h
index 10f9e97a4..4ca04f07b 100644
--- a/gtk/src/hb-backend.h
+++ b/gtk/src/hb-backend.h
@@ -124,7 +124,7 @@ gint ghb_get_scan_state();
gint ghb_get_queue_state();
void ghb_get_status(ghb_status_t *status);
void ghb_track_status(void);
-void ghb_backend_scan(const gchar *path, gint titleindex, gint preview_count);
+void ghb_backend_scan(const gchar *path, gint titleindex, gint preview_count, guint64 min_duration);
void ghb_backend_scan_stop();
void ghb_backend_queue_scan(const gchar *path, gint titleindex);
gboolean ghb_get_title_info(ghb_title_info_t *tinfo, gint titleindex);
diff --git a/gtk/src/internal_defaults.xml b/gtk/src/internal_defaults.xml
index d6474329c..0e41912f1 100644
--- a/gtk/src/internal_defaults.xml
+++ b/gtk/src/internal_defaults.xml
@@ -157,6 +157,8 @@
<true />
<key>reduce_hd_preview</key>
<true />
+ <key>MinTitleDuration</key>
+ <integer>10</integer>
<key>preview_count</key>
<integer>10</integer>
<key>preview_fullscreen</key>