Projects
Multimedia
handbrake
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 14
View file
handbrake.changes
Changed
@@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Sun Jun 28 14:24:04 UTC 2015 - seife+obs@b1-systems.com + +- update to 0.10.2 + * Assorted bug fixes and performance improvements + +------------------------------------------------------------------- Tue Apr 21 13:18:41 UTC 2015 - seife+obs@b1-systems.com - switch to gstreamer-1.0 instead of old gstreamer-0.10 for
View file
handbrake.spec
Changed
@@ -15,7 +15,7 @@ # Please submit bugfixes or comments via https://bugs.links2linux.org/ Name: handbrake -Version: 0.10.1 +Version: 0.10.2 Release: 0 License: GPL-2.0+ Summary: Multithreaded Video Transcoder
View file
HandBrake-0.10.1.tar.bz2/NEWS -> HandBrake-0.10.2.tar.bz2/NEWS
Changed
@@ -1,5 +1,9 @@ NEWS file for HandBrake <http://handbrake.fr/> +Changes between 0.10.1 and 0.10.2 + + - Assorted bug fixes and performance improvements. + Changes between 0.10.0 and 0.10.1
View file
HandBrake-0.10.1.tar.bz2/contrib/fdk-aac/module.defs -> HandBrake-0.10.2.tar.bz2/contrib/fdk-aac/module.defs
Changed
@@ -3,6 +3,11 @@ FDKAAC.FETCH.url = http://download.handbrake.fr/handbrake/contrib/fdk-aac-v0.1.1-6-gbae4553.tar.bz2 +# fdk-aac configure script fails to add compiler optimizations if the +# CFLAGS env variable is set during configure. Since we set it, we +# also need to set the desired optimization option +FDKAAC.GCC.args.extra += $(FDKAAC.GCC.args.O.$(FDKAAC.GCC.O)) + ## optional static libs need to be marked FDKAAC.OSL.libs = fdk-aac FDKAAC.OSL.files = $(foreach i,$(FDKAAC.OSL.libs),$(call fn.ABSOLUTE,$(CONTRIB.build/)lib/lib$(i).a))
View file
HandBrake-0.10.2.tar.bz2/contrib/ffmpeg/A12-strptime.patch
Added
@@ -0,0 +1,134 @@ +diff --git a/configure b/configure +index 05acff5..535ce49 100755 +--- a/configure ++++ b/configure +@@ -1403,7 +1403,6 @@ HAVE_LIST=" + socklen_t + soundcard_h + strerror_r +- strptime + struct_addrinfo + struct_group_source_req + struct_ip_mreq_source +@@ -3834,7 +3833,6 @@ check_func ${malloc_prefix}posix_memalign && enable posix_memalign + check_func_headers malloc.h _aligned_malloc && enable aligned_malloc + check_func setrlimit + check_func strerror_r +-check_func strptime + check_func sched_getaffinity + check_builtin sync_val_compare_and_swap "" "int *ptr; int oldval, newval; __sync_val_compare_and_swap(ptr, oldval, newval)" + check_builtin machine_rw_barrier mbarrier.h "__machine_rw_barrier()" +diff --git a/libavformat/utils.c b/libavformat/utils.c +index fca588b..da48ed9 100644 +--- a/libavformat/utils.c ++++ b/libavformat/utils.c +@@ -3293,21 +3293,14 @@ int ff_find_stream_index(AVFormatContext *s, int id) + + int64_t ff_iso8601_to_unix_time(const char *datestr) + { +-#if HAVE_STRPTIME + struct tm time1 = { 0 }, time2 = { 0 }; + char *ret1, *ret2; +- ret1 = strptime(datestr, "%Y - %m - %d %T", &time1); +- ret2 = strptime(datestr, "%Y - %m - %dT%T", &time2); ++ ret1 = av_small_strptime(datestr, "%Y - %m - %d %H:%M:%S", &time1); ++ ret2 = av_small_strptime(datestr, "%Y - %m - %dT%H:%M:%S", &time2); + if (ret2 && !ret1) + return av_timegm(&time2); + else + return av_timegm(&time1); +-#else +- av_log(NULL, AV_LOG_WARNING, +- "strptime() unavailable on this system, cannot convert " +- "the date string.\n"); +- return 0; +-#endif + } + + int avformat_query_codec(AVOutputFormat *ofmt, enum AVCodecID codec_id, +diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c +index 414cd47..89d0ff9 100644 +--- a/libavutil/parseutils.c ++++ b/libavutil/parseutils.c +@@ -399,11 +399,17 @@ static int date_get_num(const char **pp, + return val; + } + +-static const char *small_strptime(const char *p, const char *fmt, struct tm *dt) ++const char *av_small_strptime(const char *p, const char *fmt, struct tm *dt) + { + int c, val; + + for(;;) { ++ /* consume time string until a non whitespace char is found */ ++ while (av_isspace(*fmt)) { ++ while (av_isspace(*p)) ++ p++; ++ fmt++; ++ } + c = *fmt++; + if (c == '\0') { + return p; +@@ -517,7 +523,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) + + /* parse the year-month-day part */ + for (i = 0; i < FF_ARRAY_ELEMS(date_fmt); i++) { +- q = small_strptime(p, date_fmt[i], &dt); ++ q = av_small_strptime(p, date_fmt[i], &dt); + if (q) { + break; + } +@@ -541,7 +547,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) + + /* parse the hour-minute-second part */ + for (i = 0; i < FF_ARRAY_ELEMS(time_fmt); i++) { +- q = small_strptime(p, time_fmt[i], &dt); ++ q = av_small_strptime(p, time_fmt[i], &dt); + if (q) { + break; + } +@@ -553,7 +559,7 @@ int av_parse_time(int64_t *timeval, const char *timestr, int duration) + ++p; + } + /* parse timestr as HH:MM:SS */ +- q = small_strptime(p, time_fmt[0], &dt); ++ q = av_small_strptime(p, time_fmt[0], &dt); + if (!q) { + char *o; + /* parse timestr as S+ */ +diff --git a/libavutil/parseutils.h b/libavutil/parseutils.h +index 0844abb..94751d1 100644 +--- a/libavutil/parseutils.h ++++ b/libavutil/parseutils.h +@@ -109,6 +109,31 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, + int av_parse_time(int64_t *timeval, const char *timestr, int duration); + + /** ++ * Parse the input string p according to the format string fmt and ++ * store its results in the structure dt. ++ * This implementation supports only a subset of the formats supported ++ * by the standard strptime(). ++ * ++ * In particular it actually supports the parameters: ++ * - %H: the hour as a decimal number, using a 24-hour clock, in the ++ * range '00' through '23' ++ * - %M: the minute as a decimal number, using a 24-hour clock, in the ++ * range '00' through '59' ++ * - %S: the second as a decimal number, using a 24-hour clock, in the ++ * range '00' through '59' ++ * - %Y: the year as a decimal number, using the Gregorian calendar ++ * - %m: the month as a decimal number, in the range '1' through '12' ++ * - %d: the day of the month as a decimal number, in the range '1' ++ * through '31' ++ * - %%: a literal '%' ++ * ++ * @return a pointer to the first character not processed in this ++ * function call, or NULL in case the function fails to match all of ++ * the fmt string and therefore an error occurred ++ */ ++const char *av_small_strptime(const char *p, const char *fmt, struct tm *dt); ++ ++/** + * Attempt to find a specific tag in a URL. + * + * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
View file
HandBrake-0.10.1.tar.bz2/gtk/configure.ac -> HandBrake-0.10.2.tar.bz2/gtk/configure.ac
Changed
@@ -89,6 +89,8 @@ AM_PROG_LIBTOOL +AC_SYS_LARGEFILE + case $host in *-*-mingw*) GHB_PACKAGES="gthread-2.0 gio-2.0 gmodule-2.0"
View file
HandBrake-0.10.1.tar.bz2/gtk/src/audiohandler.c -> HandBrake-0.10.2.tar.bz2/gtk/src/audiohandler.c
Changed
@@ -1010,6 +1010,15 @@ GValue *asettings; ghb_widget_to_setting(ud->settings, widget); + asettings = audio_get_selected_settings(ud, NULL); + if (!block_updates && asettings != NULL) + { + ghb_widget_to_setting(asettings, widget); + audio_deps(ud, asettings, widget); + ghb_audio_list_refresh_selected(ud); + ghb_live_reset(ud); + } + acodec = ghb_settings_audio_encoder_codec(ud->settings, "AudioEncoder"); float low, high, gran, defval; @@ -1033,7 +1042,6 @@ return; } - asettings = audio_get_selected_settings(ud, NULL); if (ghb_audio_is_passthru(prev_acodec) && !ghb_audio_is_passthru(acodec)) { @@ -1085,13 +1093,6 @@ ghb_string_value(hb_mixdown_get_short_name(mix))); } prev_acodec = acodec; - if (asettings != NULL) - { - ghb_widget_to_setting(asettings, widget); - audio_deps(ud, asettings, widget); - ghb_audio_list_refresh_selected(ud); - ghb_live_reset(ud); - } } G_MODULE_EXPORT void
View file
HandBrake-0.10.1.tar.bz2/gtk/src/callbacks.c -> HandBrake-0.10.2.tar.bz2/gtk/src/callbacks.c
Changed
@@ -3392,6 +3392,35 @@ return TRUE; } +gboolean scroll_at_bottom(signal_user_data_t *ud, const char *scroll) +{ + GtkScrolledWindow *window; + GtkAdjustment *adj; + double val, upper, ps; + + window = GTK_SCROLLED_WINDOW(GHB_WIDGET(ud->builder, scroll)); + adj = gtk_scrolled_window_get_vadjustment(window); + val = gtk_adjustment_get_value(adj); + upper = gtk_adjustment_get_upper(adj); + ps = gtk_adjustment_get_page_size(adj); + return val >= upper - ps; +} + +G_MODULE_EXPORT gboolean +activity_scroll_to_bottom(signal_user_data_t *ud) +{ + GtkScrolledWindow *window; + GtkAdjustment *adj; + double upper, ps; + + window = GTK_SCROLLED_WINDOW(GHB_WIDGET(ud->builder, "activity_scroll")); + adj = gtk_scrolled_window_get_vadjustment(window); + upper = gtk_adjustment_get_upper(adj); + ps = gtk_adjustment_get_page_size(adj); + gtk_adjustment_set_value(adj, upper - ps); + return FALSE; +} + G_MODULE_EXPORT gboolean ghb_log_cb(GIOChannel *source, GIOCondition cond, gpointer data) { @@ -3400,7 +3429,6 @@ GtkTextView *textview; GtkTextBuffer *buffer; GtkTextIter iter; - GtkTextMark *mark; GError *gerror = NULL; GIOStatus status; @@ -3413,36 +3441,12 @@ length--; if (text != NULL && length > 0) { - GdkWindow *window; - gint width, height; - gint x, y; gboolean bottom = FALSE; gchar *utf8_text; + bottom = scroll_at_bottom(ud, "activity_scroll"); textview = GTK_TEXT_VIEW(GHB_WIDGET (ud->builder, "activity_view")); buffer = gtk_text_view_get_buffer (textview); - // I would like to auto-scroll the window when the scrollbar - // is at the bottom, - // must determine whether the insert point is at - // the bottom of the window - window = gtk_text_view_get_window(textview, GTK_TEXT_WINDOW_TEXT); - if (window != NULL) - { - width = gdk_window_get_width(window); - height = gdk_window_get_height(window); - gtk_text_view_window_to_buffer_coords(textview, - GTK_TEXT_WINDOW_TEXT, width, height, &x, &y); - gtk_text_view_get_iter_at_location(textview, &iter, x, y); - if (gtk_text_iter_is_end(&iter)) - { - bottom = TRUE; - } - } - else - { - // If the window isn't available, assume bottom - bottom = TRUE; - } gtk_text_buffer_get_end_iter(buffer, &iter); utf8_text = g_convert_with_fallback(text, -1, "UTF-8", "ISO-8859-1", "?", NULL, &length, NULL); @@ -3451,10 +3455,16 @@ gtk_text_buffer_insert(buffer, &iter, utf8_text, -1); if (bottom) { - gtk_text_buffer_get_end_iter(buffer, &iter); - mark = gtk_text_buffer_create_mark(buffer, NULL, &iter, FALSE); - gtk_text_view_scroll_mark_onscreen(textview, mark); - gtk_text_buffer_delete_mark(buffer, mark); + static guint scroll_tok = 0; + GSource *source = NULL; + if (scroll_tok > 0) + source = g_main_context_find_source_by_id(NULL, scroll_tok); + if (source != NULL) + { + g_source_remove(scroll_tok); + } + scroll_tok = g_idle_add((GSourceFunc)activity_scroll_to_bottom, + ud); } #if defined(_WIN32) gsize one = 1;
View file
HandBrake-0.10.1.tar.bz2/gtk/src/ghb.ui -> HandBrake-0.10.2.tar.bz2/gtk/src/ghb.ui
Changed
@@ -8145,6 +8145,7 @@ <property name="skip_pager_hint">True</property> <property name="create_folders">False</property> <property name="local_only">False</property> + <property name="transient_for">hb_window</property> <signal name="selection-changed" handler="chooser_file_selected_cb" swapped="no"/> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox9">
View file
HandBrake-0.10.1.tar.bz2/gtk/src/internal_defaults.xml -> HandBrake-0.10.2.tar.bz2/gtk/src/internal_defaults.xml
Changed
@@ -358,7 +358,7 @@ <key>x264Option</key> <string></string> <key>VideoPreset</key> - <string>custom</string> + <string>medium</string> <key>VideoTune</key> <string></string> <key>VideoProfile</key>
View file
HandBrake-0.10.1.tar.bz2/gtk/src/presets.c -> HandBrake-0.10.2.tar.bz2/gtk/src/presets.c
Changed
@@ -955,6 +955,7 @@ if (preset == NULL) preset = internal; + ghb_dict_remove(settings, "x264Option"); init_settings_from_dict(settings, preset, NULL, TRUE); }
View file
HandBrake-0.10.1.tar.bz2/gtk/src/settings.c -> HandBrake-0.10.2.tar.bz2/gtk/src/settings.c
Changed
@@ -576,9 +576,15 @@ else if (type == GTK_TYPE_TEXT_VIEW) { g_debug("textview (%s)", str); + static int text_view_busy = 0; GtkTextBuffer *buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(widget)); - gtk_text_buffer_set_text (buffer, str, -1); + if (!text_view_busy) + { + text_view_busy = 1; + gtk_text_buffer_set_text (buffer, str, -1); + text_view_busy = 0; + } } else if (type == GTK_TYPE_LABEL) {
View file
HandBrake-0.10.1.tar.bz2/gtk/src/standard_presets.xml -> HandBrake-0.10.2.tar.bz2/gtk/src/standard_presets.xml
Changed
@@ -84,7 +84,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -215,7 +215,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -346,7 +346,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -477,7 +477,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -624,7 +624,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -771,7 +771,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -918,7 +918,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -1049,7 +1049,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -1180,7 +1180,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -1311,7 +1311,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -1457,7 +1457,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key> @@ -1604,7 +1604,7 @@ <key>PictureDeinterlaceCustom</key> <string></string> <key>PictureDenoiseFilter</key> - <integer>off</integer> + <string>off</string> <key>PictureDenoiseCustom</key> <string></string> <key>PictureDetelecine</key>
View file
HandBrake-0.10.1.tar.bz2/gtk/src/videohandler.c -> HandBrake-0.10.2.tar.bz2/gtk/src/videohandler.c
Changed
@@ -20,6 +20,7 @@ #include "presets.h" #include "preview.h" #include "hb-backend.h" +#include "x264handler.h" int ghb_get_video_encoder(GValue *settings) { @@ -165,9 +166,9 @@ new_opts = hb_x264_param_unparse( preset, tunes, opts, profile, level, w, h); if (new_opts) - ghb_ui_update(ud, "x264Option", ghb_string_value(new_opts)); + ghb_update_x264Option(ud, new_opts); else - ghb_ui_update(ud, "x264Option", ghb_string_value("")); + ghb_update_x264Option(ud, ""); GtkWidget *eo = GTK_WIDGET(GHB_WIDGET(ud->builder, "VideoOptionExtra"));
View file
HandBrake-0.10.1.tar.bz2/gtk/src/x264handler.c -> HandBrake-0.10.2.tar.bz2/gtk/src/x264handler.c
Changed
@@ -150,7 +150,7 @@ gchar *sopts; sopts = sanitize_x264opts(ud, options); - ghb_ui_update(ud, "x264Option", ghb_string_value(sopts)); + ghb_update_x264Option(ud, sopts); ghb_x264_parse_options(ud, sopts); GtkWidget *eo = GTK_WIDGET(GHB_WIDGET(ud->builder, "VideoOptionExtra")); @@ -795,7 +795,7 @@ if (len > 0) result[len - 1] = 0; gchar *sopts; sopts = sanitize_x264opts(ud, result); - ghb_ui_update(ud, "x264Option", ghb_string_value(sopts)); + ghb_update_x264Option(ud, sopts); ghb_x264_parse_options(ud, sopts); g_free(sopts); g_free(result); @@ -1060,3 +1060,39 @@ { ud->x264_priv = ghb_settings_new(); } + +gboolean +ghb_background_refresh_x264Option(signal_user_data_t *ud) +{ + const char *opt; + opt = ghb_settings_get_const_string(ud->settings, "x264Option"); + + GtkWidget *widget; + GtkTextBuffer *buffer; + GtkTextIter start, end; + gchar *str; + + widget = GHB_WIDGET(ud->builder, "x264Option"); + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget)); + gtk_text_buffer_get_bounds(buffer, &start, &end); + str = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); + + // If the value has changed, then update it + if (opt != NULL) + { + if (str == NULL || strcmp(str, opt)) + { + ud->dont_clear_presets = 1; + ghb_ui_update(ud, "x264Option", ghb_string_value(opt)); + ud->dont_clear_presets = 0; + } + } + free(str); + return FALSE; +} + +void ghb_update_x264Option(signal_user_data_t *ud, const char *opt) +{ + ghb_settings_set_string(ud->settings, "x264Option", opt); + g_idle_add((GSourceFunc)ghb_background_refresh_x264Option, ud); +}
View file
HandBrake-0.10.1.tar.bz2/gtk/src/x264handler.h -> HandBrake-0.10.2.tar.bz2/gtk/src/x264handler.h
Changed
@@ -31,5 +31,6 @@ void ghb_x264_parse_options(signal_user_data_t *ud, const gchar *options); gint ghb_lookup_badapt(const gchar *options); void ghb_show_hide_advanced_video( signal_user_data_t *ud ); +void ghb_update_x264Option(signal_user_data_t *ud, const char *opt); #endif // _X264HANDLER_H_
View file
HandBrake-0.10.1.tar.bz2/libhb/decomb.c -> HandBrake-0.10.2.tar.bz2/libhb/decomb.c
Changed
@@ -1745,7 +1745,7 @@ int yy; int width = dst->plane[pp].width; int stride = dst->plane[pp].stride; - int height = dst->plane[pp].height; + int height = dst->plane[pp].height_stride; int penultimate = height - 2; segment_start = thread_args->segment_start[pp]; @@ -2025,7 +2025,9 @@ // Make segment sizes an even number of lines int height = hb_image_height(init->pix_fmt, init->height, 0); - pv->segment_height[0] = (height / pv->cpu_count) & ~1; + // Each segment must begin on the even "parity" row. + // I.e. each segment of each plane must begin on an even row. + pv->segment_height[0] = (height / pv->cpu_count) & ~3; pv->segment_height[1] = hb_image_height(init->pix_fmt, pv->segment_height[0], 1); pv->segment_height[2] = hb_image_height(init->pix_fmt, pv->segment_height[0], 2); @@ -2090,8 +2092,8 @@ * Final segment */ thread_args->segment_height[pp] = - hb_image_height(init->pix_fmt, init->height, pp) - - thread_args->segment_start[pp]; + ((hb_image_height(init->pix_fmt, init->height, pp) + + 3) & ~3) - thread_args->segment_start[pp]; } else { thread_args->segment_height[pp] = pv->segment_height[pp]; } @@ -2509,6 +2511,28 @@ filter->private_data = NULL; } +// Fill rows above height with copy of last row to prevent color distortion +// during blending +static void fill_stride(hb_buffer_t * buf) +{ + int pp, ii; + + for (pp = 0; pp < 3; pp++) + { + uint8_t * src, * dst; + + src = buf->plane[pp].data + (buf->plane[pp].height - 1) * + buf->plane[pp].stride; + dst = buf->plane[pp].data + buf->plane[pp].height * + buf->plane[pp].stride; + for (ii = 0; ii < 3; ii++) + { + memcpy(dst, src, buf->plane[pp].stride); + dst += buf->plane[pp].stride; + } + } +} + static int hb_decomb_work( hb_filter_object_t * filter, hb_buffer_t ** buf_in, hb_buffer_t ** buf_out ) @@ -2526,6 +2550,7 @@ /* Store current frame in yadif cache */ *buf_in = NULL; + fill_stride(in); store_ref(pv, in); // yadif requires 3 buffers, prev, cur, and next. For the first @@ -2656,12 +2681,13 @@ filter.tap[4] = -1; filter.normalize = 3; + fill_stride(src); for (pp = 0; pp < 3; pp++) { int yy; int width = src->plane[pp].width; int stride = src->plane[pp].stride; - int height = src->plane[pp].height; + int height = src->plane[pp].height_stride; // Filter parity lines uint8_t *pdst = &dst->plane[pp].data[0];
View file
HandBrake-0.10.1.tar.bz2/libhb/enctheora.c -> HandBrake-0.10.2.tar.bz2/libhb/enctheora.c
Changed
@@ -367,7 +367,15 @@ } th_encode_packetout( pv->ctx, 0, &op ); - buf = hb_buffer_init(op.bytes); + // Theora can generate 0 length output for duplicate frames. + // Since we use 0 length buffers to indicate end of stream, we + // can't allow 0 lenth buffers. + // + // As a work-around, always allocate an extra byte for theora buffers. + // + // This is fixed correctly in svn trunk by using a end of stream flag + // instead of 0 length buffer. + buf = hb_buffer_init(op.bytes + 1); memcpy(buf->data, op.packet, op.bytes); buf->f.fmt = AV_PIX_FMT_YUV420P; buf->f.width = frame_width;
View file
HandBrake-0.10.1.tar.bz2/libhb/encx265.c -> HandBrake-0.10.2.tar.bz2/libhb/encx265.c
Changed
@@ -188,11 +188,8 @@ while ((entry = hb_dict_next(x265_opts, entry)) != NULL) { // here's where the strings are passed to libx265 for parsing - if (param_parse(param, entry->key, entry->value)) - { - hb_dict_free(&x265_opts); - goto fail; - } + // unknown options or bad values are non-fatal, see encx264.c + param_parse(param, entry->key, entry->value); } hb_dict_free(&x265_opts);
View file
HandBrake-0.10.1.tar.bz2/libhb/muxavformat.c -> HandBrake-0.10.2.tar.bz2/libhb/muxavformat.c
Changed
@@ -912,6 +912,11 @@ snprintf(tool_string, sizeof(tool_string), "HandBrake %s %i", HB_PROJECT_VERSION, HB_PROJECT_BUILD); av_dict_set(&m->oc->metadata, "encoding_tool", tool_string, 0); + time_t now = time(NULL); + struct tm * now_utc = gmtime(&now); + char now_8601[24]; + strftime(now_8601, sizeof(now_8601), "%FT%TZ", now_utc); + av_dict_set(&m->oc->metadata, "creation_time", now_8601, 0); ret = avformat_write_header(m->oc, &av_opts); if( ret < 0 ) @@ -1052,6 +1057,19 @@ duration = 0; } + // Theora can generate 0 length output for duplicate frames. + // Since we use 0 length buffers to indicate end of stream, we + // can't allow 0 lenth buffers. + // + // As a work-around, always allocate an extra byte for theora buffers. + // Remove this extra byte here. + // + // This is fixed correctly in svn trunk by using a end of stream flag + // instead of 0 length buffer. + if (track->type == MUX_TYPE_VIDEO && job->vcodec == HB_VCODEC_THEORA) + { + buf->size--; + } av_init_packet(&pkt); pkt.data = buf->data; pkt.size = buf->size;
View file
HandBrake-0.10.1.tar.bz2/libhb/param.c -> HandBrake-0.10.2.tar.bz2/libhb/param.c
Changed
@@ -236,7 +236,7 @@ int hb_validate_filter_settings(int filter_id, const char *filter_param) { // Regex matches "number" followed by one or more ":number", where number is uint or ufloat - const char *hb_colon_separated_params_regex = "^((([0-9]+([.][0-9]+)?)|([.][0-9]+))((:(([0-9]+([.][0-9]+)?)|([.][0-9]+)))+)?)$"; + const char *hb_colon_separated_params_regex = "^((([0-9]+([.,][0-9]+)?)|([.,][0-9]+))((:(([0-9]+([.,][0-9]+)?)|([.,][0-9]+)))+)?)$"; const char *regex_pattern = NULL;
View file
HandBrake-0.10.1.tar.bz2/libhb/reader.c -> HandBrake-0.10.2.tar.bz2/libhb/reader.c
Changed
@@ -45,6 +45,7 @@ stream_timing_t *stream_timing; int64_t scr_offset; + int sub_scr_set; hb_psdemux_t demux; int scr_changes; uint32_t sequence; @@ -226,6 +227,21 @@ return 0; } +static int is_subtitle( hb_work_private_t *r, int id ) +{ + int i; + hb_subtitle_t *sub; + + for( i = 0; ( sub = hb_list_item( r->title->list_subtitle, i ) ); ++i ) + { + if ( sub->id == id ) + { + return 1; + } + } + return 0; +} + // The MPEG STD (Standard Target Decoder) essentially requires that we keep // per-stream timing so that when there's a timing discontinuity we can // seemlessly join packets on either side of the discontinuity. This join @@ -601,6 +617,7 @@ ( st == r->stream_timing && !r->saw_audio ) ) { new_scr_offset( r, buf ); + r->sub_scr_set = 0; } else { @@ -609,8 +626,26 @@ // frame but video & subtitles don't. Clear // the timestamps so the decoder will generate // them from the frame durations. - buf->s.start = AV_NOPTS_VALUE; - buf->s.renderOffset = AV_NOPTS_VALUE; + if (is_subtitle(r, buf->s.id) && + buf->s.start != AV_NOPTS_VALUE) + { + if (!r->sub_scr_set) + { + // We can't generate timestamps in the + // subtitle decoder as we can for + // audio & video. So we need to make + // the closest guess that we can + // for the subtitles start time here. + int64_t last = r->stream_timing[0].last; + r->scr_offset = buf->s.start - last; + r->sub_scr_set = 1; + } + } + else + { + buf->s.start = AV_NOPTS_VALUE; + buf->s.renderOffset = AV_NOPTS_VALUE; + } } } }
View file
HandBrake-0.10.1.tar.bz2/libhb/scan.c -> HandBrake-0.10.2.tar.bz2/libhb/scan.c
Changed
@@ -32,7 +32,7 @@ } hb_scan_t; -#define PREVIEW_READ_THRESH (1024 * 1024 * 10) +#define PREVIEW_READ_THRESH (1024 * 1024 * 300) static void ScanFunc( void * ); static int DecodePreviews( hb_scan_t *, hb_title_t * title, int flush ); @@ -621,8 +621,9 @@ hb_buffer_t * vid_buf = NULL; - int total_read = 0; - while (total_read < PREVIEW_READ_THRESH) + int total_read = 0, packets = 0; + while (total_read < PREVIEW_READ_THRESH || + (!AllAudioOK(title) && packets < 10000)) { if (data->bd) { @@ -679,6 +680,7 @@ goto skip_preview; } total_read += buf->size; + packets++; (hb_demux[title->demuxer])(buf, list_es, 0 );
View file
HandBrake-0.10.1.tar.bz2/macosx/Controller.m -> HandBrake-0.10.2.tar.bz2/macosx/Controller.m
Changed
@@ -4290,8 +4290,7 @@ [fSrcTimeEndEncodingField setStringValue: [NSString stringWithFormat: @"%d", duration]]; /* For point a to point b frame encoding, set the start and end fields to 0 and the title duration * announced fps in seconds respectively */ [fSrcFrameStartEncodingField setStringValue: [NSString stringWithFormat: @"%d", 1]]; - //[fSrcFrameEndEncodingField setStringValue: [NSString stringWithFormat: @"%d", ((title->hours * 3600) + (title->minutes * 60) + (title->seconds)) * 24]]; - [fSrcFrameEndEncodingField setStringValue: [NSString stringWithFormat: @"%d", duration * (title->rate / title->rate_base)]]; + [fSrcFrameEndEncodingField setStringValue: [NSString stringWithFormat: @"%d", (int)((title->duration / 90000.) * (title->rate / (double)title->rate_base))]]; /* Update encode start / stop variables */ @@ -4455,7 +4454,7 @@ hb_title_t * title = (hb_title_t*) hb_list_item( list, (int)[fSrcTitlePopUp indexOfSelectedItem] ); - int duration = ([fSrcFrameEndEncodingField intValue] - [fSrcFrameStartEncodingField intValue]) / (title->rate / title->rate_base); + int duration = ([fSrcFrameEndEncodingField intValue] - [fSrcFrameStartEncodingField intValue]) / (title->rate / (double)title->rate_base); [fSrcDuration2Field setStringValue: [NSString stringWithFormat: @"%02d:%02d:%02d", duration / 3600, ( duration / 60 ) % 60, duration % 60]];
View file
HandBrake-0.10.2.tar.bz2/macosx/English.lproj/ExceptionAlert.xib
Added
@@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14E17e" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> + <dependencies> + <deployment identifier="macosx"/> + <development version="6100" identifier="xcode"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/> + </dependencies> + <objects> + <customObject id="-2" userLabel="File's Owner" customClass="MyExceptionAlertController"> + <connections> + <outlet property="window" destination="1" id="17"/> + </connections> + </customObject> + <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> + <customObject id="-3" userLabel="Application" customClass="NSObject"/> + <window title="Internal Error" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" oneShot="NO" animationBehavior="default" id="1"> + <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/> + <rect key="contentRect" x="196" y="127" width="636" height="383"/> + <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/> + <value key="minSize" type="size" width="636" height="383"/> + <view key="contentView" id="2"> + <rect key="frame" x="0.0" y="0.0" width="636" height="383"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <imageView id="3"> + <rect key="frame" x="20" y="302" width="70" height="61"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon" id="4"/> + </imageView> + <textField verticalHuggingPriority="750" id="9"> + <rect key="frame" x="95" y="323" width="524" height="40"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> + <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="An internal error has occurred. You can choose to continue in an unstable state, or crash." id="10"> + <font key="font" metaFont="systemBold"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> + <textField verticalHuggingPriority="750" id="11"> + <rect key="frame" x="95" y="282" width="339" height="41"/> + <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> + <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Reason contents go here." id="12"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + <connections> + <binding destination="-2" name="value" keyPath="exceptionMessage" id="27"> + <dictionary key="options"> + <bool key="NSAllowsEditingMultipleValuesSelection" value="NO"/> + </dictionary> + </binding> + </connections> + </textField> + <button verticalHuggingPriority="750" id="13"> + <rect key="frame" x="418" y="12" width="96" height="32"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> + <buttonCell key="cell" type="push" title="Crash" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="14"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="system"/> + <string key="keyEquivalent" base64-UTF8="YES"> +Gw +</string> + </buttonCell> + <connections> + <action selector="btnCrashClicked:" target="-2" id="24"/> + </connections> + </button> + <button verticalHuggingPriority="750" id="15"> + <rect key="frame" x="526" y="12" width="97" height="32"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> + <buttonCell key="cell" type="push" title="Continue" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="16"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="system"/> + <string key="keyEquivalent" base64-UTF8="YES"> +DQ +</string> + </buttonCell> + <connections> + <action selector="btnContinueClicked:" target="-2" id="23"/> + </connections> + </button> + <scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" id="19"> + <rect key="frame" x="20" y="60" width="596" height="206"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <clipView key="contentView" id="RBQ-rK-0Rs"> + <rect key="frame" x="1" y="1" width="594" height="204"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <subviews> + <textView importsGraphics="NO" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" usesFontPanel="YES" verticallyResizable="YES" allowsNonContiguousLayout="YES" spellingCorrection="YES" smartInsertDelete="YES" id="22"> + <rect key="frame" x="0.0" y="0.0" width="594" height="204"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <size key="minSize" width="594" height="204"/> + <size key="maxSize" width="759" height="10000000"/> + <color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> + <size key="minSize" width="594" height="204"/> + <size key="maxSize" width="759" height="10000000"/> + <connections> + <binding destination="-2" name="attributedString" keyPath="exceptionBacktrace" id="28"/> + </connections> + </textView> + </subviews> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </clipView> + <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="21"> + <rect key="frame" x="-100" y="-100" width="87" height="18"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + <scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="20"> + <rect key="frame" x="579" y="1" width="16" height="204"/> + <autoresizingMask key="autoresizingMask"/> + </scroller> + </scrollView> + </subviews> + </view> + <connections> + <outlet property="initialFirstResponder" destination="13" id="29"/> + </connections> + <point key="canvasLocation" x="256" y="550.5"/> + </window> + </objects> + <resources> + <image name="NSApplicationIcon" width="128" height="128"/> + </resources> +</document>
View file
HandBrake-0.10.1.tar.bz2/macosx/English.lproj/MainMenu.xib -> HandBrake-0.10.2.tar.bz2/macosx/English.lproj/MainMenu.xib
Changed
@@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6250" systemVersion="14B23" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7706" systemVersion="14E17e" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> <dependencies> <deployment version="1060" identifier="macosx"/> <development version="5100" identifier="xcode"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6250"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7706"/> </dependencies> <objects> - <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"> + <customObject id="-2" userLabel="File's Owner" customClass="HBApplication"> <connections> <outlet property="delegate" destination="240" id="247"/> </connections>
View file
HandBrake-0.10.2.tar.bz2/macosx/HBApplication.h
Added
@@ -0,0 +1,11 @@ +/* HBApplication.h $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import <Cocoa/Cocoa.h> + +@interface HBApplication : NSApplication + +@end
View file
HandBrake-0.10.2.tar.bz2/macosx/HBApplication.m
Added
@@ -0,0 +1,64 @@ +/* HBApplication.m $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import "HBApplication.h" +#import "HBExceptionAlertController.h" +#import "HBUtilities.h" + +@implementation HBApplication + +static void CrashMyApplication() +{ + *(char *)0x08 = 1; +} + +- (NSAttributedString *)_formattedExceptionBacktrace:(NSArray *)backtrace +{ + NSMutableAttributedString *result = [[NSMutableAttributedString alloc] init]; + for (NSString *s in backtrace) + { + s = [s stringByAppendingString:@"\n"]; + NSAttributedString *attrS = [[NSAttributedString alloc] initWithString:s]; + [result appendAttributedString:attrS]; + [attrS release]; + } + [result addAttribute:NSFontAttributeName value:[NSFont fontWithName:@"Monaco" size:10] range:NSMakeRange(0, result.length)]; + return [result autorelease]; +} + +- (void)reportException:(NSException *)exception +{ + // NSApplication simply logs the exception to the console. We want to let the user know + // when it happens in order to possibly prevent subsequent random crashes that are difficult to debug + @try + { + @autoreleasepool + { + // Create a string based on the exception + NSString *exceptionMessage = [NSString stringWithFormat:@"%@\nReason: %@\nUser Info: %@", exception.name, exception.reason, exception.userInfo]; + // Always log to console for history + + [HBUtilities writeToActivityLog:"Exception raised:\n%s", exceptionMessage.UTF8String]; + [HBUtilities writeToActivityLog:"Backtrace:\n%s", exception.callStackSymbols.description.UTF8String]; + + HBExceptionAlertController *alertController = [[HBExceptionAlertController alloc] init]; + alertController.exceptionMessage = exceptionMessage; + alertController.exceptionBacktrace = [self _formattedExceptionBacktrace:exception.callStackSymbols]; + + NSInteger result = [alertController runModal]; + if (result == HBExceptionAlertControllerResultCrash) + { + CrashMyApplication(); + } + } + } + @catch (NSException *e) + { + // Suppress any exceptions raised in the handling + } +} + +@end
View file
HandBrake-0.10.2.tar.bz2/macosx/HBExceptionAlertController.h
Added
@@ -0,0 +1,25 @@ +/* HBExceptionAlertController.h $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import <Cocoa/Cocoa.h> + +typedef NS_ENUM(NSUInteger, HBExceptionAlertControllerResult) { + HBExceptionAlertControllerResultCrash, + HBExceptionAlertControllerResultContinue, +}; + +@interface HBExceptionAlertController : NSWindowController + +// Properties are used by bindings +@property (copy) NSString *exceptionMessage; +@property (copy) NSAttributedString *exceptionBacktrace; + +- (IBAction)btnCrashClicked:(id)sender; +- (IBAction)btnContinueClicked:(id)sender; + +- (NSInteger)runModal; + +@end
View file
HandBrake-0.10.2.tar.bz2/macosx/HBExceptionAlertController.m
Added
@@ -0,0 +1,33 @@ +/* HBExceptionAlertController.m $ + + This file is part of the HandBrake source code. + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License. */ + +#import "HBExceptionAlertController.h" + +@implementation HBExceptionAlertController + +- (instancetype)init +{ + return [self initWithWindowNibName:@"ExceptionAlert"]; +} + +- (NSInteger)runModal +{ + return [NSApp runModalForWindow:self.window]; +} + +- (IBAction)btnCrashClicked:(id)sender +{ + [self.window orderOut:nil]; + [NSApp stopModalWithCode:HBExceptionAlertControllerResultCrash]; +} + +- (IBAction)btnContinueClicked:(id)sender +{ + [self.window orderOut:nil]; + [NSApp stopModalWithCode:HBExceptionAlertControllerResultContinue]; +} + +@end
View file
HandBrake-0.10.1.tar.bz2/macosx/HBPresetsManager.m -> HandBrake-0.10.2.tar.bz2/macosx/HBPresetsManager.m
Changed
@@ -322,6 +322,7 @@ if ([obj isDefault]) { defaultAlreadySetted = YES; + self.defaultPreset = obj; } }];
View file
HandBrake-0.10.1.tar.bz2/macosx/HandBrake.xcodeproj/project.pbxproj -> HandBrake-0.10.2.tar.bz2/macosx/HandBrake.xcodeproj/project.pbxproj
Changed
@@ -155,6 +155,9 @@ A9E1468116BC2AD800C307BC /* pause-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467D16BC2AD800C307BC /* pause-p.pdf */; }; A9E1468216BC2AD800C307BC /* play-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467E16BC2AD800C307BC /* play-p.pdf */; }; A9E1468316BC2AD800C307BC /* prev-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467F16BC2AD800C307BC /* prev-p.pdf */; }; + A9F10FE01B131DA5004A9895 /* ExceptionAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9F10FDE1B131DA5004A9895 /* ExceptionAlert.xib */; }; + A9F10FE31B131DBA004A9895 /* HBApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F10FE21B131DBA004A9895 /* HBApplication.m */; }; + A9F10FE61B131DD8004A9895 /* HBExceptionAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F10FE51B131DD8004A9895 /* HBExceptionAlertController.m */; }; A9F2EB6F196F12C800066546 /* Audio.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9F2EB6D196F12C800066546 /* Audio.xib */; }; A9F472891976B7F30009EC65 /* HBSubtitlesDefaultsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F472871976B7F30009EC65 /* HBSubtitlesDefaultsController.m */; }; A9F4728D1976BAA70009EC65 /* HBSubtitlesDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F4728C1976BAA70009EC65 /* HBSubtitlesDefaults.m */; }; @@ -397,6 +400,11 @@ A9E1467D16BC2AD800C307BC /* pause-p.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "pause-p.pdf"; sourceTree = "<group>"; }; A9E1467E16BC2AD800C307BC /* play-p.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "play-p.pdf"; sourceTree = "<group>"; }; A9E1467F16BC2AD800C307BC /* prev-p.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "prev-p.pdf"; sourceTree = "<group>"; }; + A9F10FDF1B131DA5004A9895 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = ExceptionAlert.xib; sourceTree = "<group>"; }; + A9F10FE11B131DBA004A9895 /* HBApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBApplication.h; sourceTree = "<group>"; }; + A9F10FE21B131DBA004A9895 /* HBApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBApplication.m; sourceTree = "<group>"; }; + A9F10FE41B131DD8004A9895 /* HBExceptionAlertController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBExceptionAlertController.h; sourceTree = "<group>"; }; + A9F10FE51B131DD8004A9895 /* HBExceptionAlertController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBExceptionAlertController.m; sourceTree = "<group>"; }; A9F2EB6E196F12C800066546 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Audio.xib; sourceTree = "<group>"; }; A9F472861976B7F30009EC65 /* HBSubtitlesDefaultsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBSubtitlesDefaultsController.h; sourceTree = "<group>"; }; A9F472871976B7F30009EC65 /* HBSubtitlesDefaultsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBSubtitlesDefaultsController.m; sourceTree = "<group>"; }; @@ -627,6 +635,10 @@ 273F209E14ADBE670021BE6D /* HBOutputRedirect.m */, A98C29C21977B10600AF5DED /* HBLanguagesSelection.h */, A98C29C31977B10600AF5DED /* HBLanguagesSelection.m */, + A9F10FE11B131DBA004A9895 /* HBApplication.h */, + A9F10FE21B131DBA004A9895 /* HBApplication.m */, + A9F10FE41B131DD8004A9895 /* HBExceptionAlertController.h */, + A9F10FE51B131DD8004A9895 /* HBExceptionAlertController.m */, A9B34D711976844500871B7D /* UI Views */, 273F20BD14ADC09F0021BE6D /* main.mm */, ); @@ -728,6 +740,7 @@ children = ( 273F217C14ADDDA10021BE6D /* InfoPlist.strings */, 273F217E14ADDDA10021BE6D /* MainMenu.xib */, + A9F10FDE1B131DA5004A9895 /* ExceptionAlert.xib */, A9CF25EF1990D62C0023F727 /* Presets.xib */, A93E0ED51972958C00FD67FB /* Video.xib */, A9F2EB6D196F12C800066546 /* Audio.xib */, @@ -1058,6 +1071,7 @@ A9252C0C1A173D4800B8B7F8 /* RevealPressed@2x.png in Resources */, A9204DC71A16C5AB007CA74C /* DeletePressed@2x.png in Resources */, D2BCB11816F5152C0084604C /* presets@2x.png in Resources */, + A9F10FE01B131DA5004A9895 /* ExceptionAlert.xib in Resources */, A91C025F1A166BE300DEA6F3 /* EncodeWorking5@2x.png in Resources */, A91C025C1A166BE300DEA6F3 /* EncodeWorking2@2x.png in Resources */, A91C024D1A16516A00DEA6F3 /* JobSmall@2x.png in Resources */, @@ -1095,6 +1109,8 @@ files = ( A9F7102619A475EC00F61301 /* HBDockTile.m in Sources */, A98C29C41977B10600AF5DED /* HBLanguagesSelection.m in Sources */, + A9F10FE61B131DD8004A9895 /* HBExceptionAlertController.m in Sources */, + A9F10FE31B131DBA004A9895 /* HBApplication.m in Sources */, A9BB0F2719A0ECE40079F1C1 /* HBHUDButtonCell.m in Sources */, A932E273198834130047D13E /* HBAudioDefaults.m in Sources */, A9523937199A6AAE00588AEF /* HBFilters.m in Sources */, @@ -1257,6 +1273,14 @@ name = Subtitles.xib; sourceTree = "<group>"; }; + A9F10FDE1B131DA5004A9895 /* ExceptionAlert.xib */ = { + isa = PBXVariantGroup; + children = ( + A9F10FDF1B131DA5004A9895 /* English */, + ); + name = ExceptionAlert.xib; + sourceTree = "<group>"; + }; A9F2EB6D196F12C800066546 /* Audio.xib */ = { isa = PBXVariantGroup; children = (
View file
HandBrake-0.10.1.tar.bz2/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme -> HandBrake-0.10.2.tar.bz2/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme
Changed
@@ -55,14 +55,15 @@ </TestAction> <LaunchAction selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" launchStyle = "0" useCustomWorkingDirectory = "NO" buildConfiguration = "release" ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" allowLocationSimulation = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "273F203814ADBC200021BE6D" @@ -80,7 +81,8 @@ useCustomWorkingDirectory = "NO" buildConfiguration = "release" debugDocumentVersioning = "YES"> - <BuildableProductRunnable> + <BuildableProductRunnable + runnableDebuggingMode = "0"> <BuildableReference BuildableIdentifier = "primary" BlueprintIdentifier = "273F203814ADBC200021BE6D"
View file
HandBrake-0.10.1.tar.bz2/macosx/Info.plist.m4 -> HandBrake-0.10.2.tar.bz2/macosx/Info.plist.m4
Changed
@@ -55,7 +55,7 @@ <key>NSMainNibFile</key> <string>MainMenu</string> <key>NSPrincipalClass</key> - <string>NSApplication</string> + <string>HBApplication</string> <key>SUFeedURL</key> <string>__HB_url_appcast</string> </dict>
View file
HandBrake-0.10.1.tar.bz2/make/configure.py -> HandBrake-0.10.2.tar.bz2/make/configure.py
Changed
@@ -794,7 +794,7 @@ self.vmajor = 0 self.vminor = 10 - self.vpoint = 1 + self.vpoint = 2 def _action( self ): ## add architecture to URL only for Mac
View file
HandBrake-0.10.1.tar.bz2/version.txt -> HandBrake-0.10.2.tar.bz2/version.txt
Changed
@@ -1,11 +1,11 @@ -Path: 0.10.1 -URL: svn://svn.handbrake.fr/HandBrake/tags/0.10.1 -Relative URL: ^/tags/0.10.1 +Path: 0.10.2 +URL: svn://svn.handbrake.fr/HandBrake/tags/0.10.2 +Relative URL: ^/tags/0.10.2 Repository Root: svn://svn.handbrake.fr/HandBrake Repository UUID: b64f7644-9d1e-0410-96f1-a4d463321fa5 -Revision: 6980 +Revision: 7288 Node Kind: directory Last Changed Author: sr55 -Last Changed Rev: 6980 -Last Changed Date: 2015-03-08 14:53:24 +0100 (dim., 08 mars 2015) +Last Changed Rev: 7288 +Last Changed Date: 2015-06-09 21:11:42 +0200 (mar., 09 juin 2015)
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrake.ApplicationServices/Properties/AssemblyInfo.cs.tmpl
Changed
@@ -38,5 +38,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.10.1.$WCREV$")] +[assembly: AssemblyVersion("0.10.2.$WCREV$")] [assembly: NeutralResourcesLanguage("")]
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrake.ApplicationServices/Utilities/QueryGeneratorUtility.cs
Changed
@@ -415,7 +415,7 @@ query += " --nlmeans=\"strong\""; break; case DenoisePreset.Custom: - query += string.Format(" --denoise=\"{0}\"", task.CustomDenoise); + query += string.Format(" --nlmeans=\"{0}\"", task.CustomDenoise); break; default: query += string.Empty;
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrakeWPF/Installer/Installer.nsi -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrakeWPF/Installer/Installer.nsi
Changed
@@ -8,8 +8,8 @@ ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "HandBrake" -!define PRODUCT_VERSION "0.10.1" -!define PRODUCT_VERSION_NUMBER "0.10.1" +!define PRODUCT_VERSION "0.10.2" +!define PRODUCT_VERSION_NUMBER "0.10.2" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM"
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrakeWPF/Installer/Installer64.nsi -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrakeWPF/Installer/Installer64.nsi
Changed
@@ -8,8 +8,8 @@ ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "HandBrake" -!define PRODUCT_VERSION "0.10.1" -!define PRODUCT_VERSION_NUMBER "0.10.1" +!define PRODUCT_VERSION "0.10.2" +!define PRODUCT_VERSION_NUMBER "0.10.2" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Handbrake.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM"
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrakeWPF/Properties/AssemblyInfo.cs.tmpl
Changed
@@ -61,5 +61,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.10.1.$WCREV$")] +[assembly: AssemblyVersion("0.10.2.$WCREV$")] [assembly: NeutralResourcesLanguage("")] \ No newline at end of file
View file
HandBrake-0.10.1.tar.bz2/win/CS/HandBrakeWPF/ViewModels/X264ViewModel.cs -> HandBrake-0.10.2.tar.bz2/win/CS/HandBrakeWPF/ViewModels/X264ViewModel.cs
Changed
@@ -942,6 +942,12 @@ this.Task = task; this.Task.PropertyChanged += this.Task_PropertyChanged; this.AdvancedOptionsString = preset.Task.AdvancedEncoderOptions; + + if (task.ShowAdvancedTab && task.VideoEncoder == VideoEncoder.X264) + { + this.ShowX264AdvancedOptions = true; + this.NotifyOfPropertyChange(() => ShowX264AdvancedOptions); + } } /// <summary>
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.