diff -Nru handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A01-vc1-numref.patch handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A01-vc1-numref.patch --- handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A01-vc1-numref.patch 2014-01-25 23:15:25.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A01-vc1-numref.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ -From 1ad55faa4d730f437bce612531132f00556d29fb Mon Sep 17 00:00:00 2001 -From: Michael Niedermayer -Date: Sun, 19 Jan 2014 17:13:51 +0100 -Subject: [PATCH] vc1: Always reset numref when parsing a new frame header. - -Fixes an issue where the B-frame coding mode switches from interlaced -fields to interlaced frames, causing incorrect decisions in the motion -compensation code and resulting in visual artifacts. - -CC: libav-stable@libav.org -Signed-off-by: Tim Walker ---- - libavcodec/vc1.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c -index acefce6..a7f2aab 100644 ---- a/libavcodec/vc1.c -+++ b/libavcodec/vc1.c -@@ -842,6 +842,7 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) - int mbmodetab, imvtab, icbptab, twomvbptab, fourmvbptab; /* useful only for debugging */ - int field_mode, fcm; - -+ v->numref = 0; - v->p_frame_skipped = 0; - if (v->second_field) { - v->s.pict_type = (v->fptype & 1) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I; -@@ -1011,8 +1012,6 @@ int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext* gb) - v->reffield = get_bits1(gb); - v->ref_field_type[0] = v->reffield ^ !v->cur_field_type; - } -- } else { -- v->numref = 0; - } - if (v->extended_mv) - v->mvrange = get_unary(gb, 0, 3); --- -1.8.3.4 (Apple Git-47) - diff -Nru handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A02-ac3dec-asymmetric-drc.patch handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A02-ac3dec-asymmetric-drc.patch --- handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A02-ac3dec-asymmetric-drc.patch 2014-01-26 00:56:20.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A02-ac3dec-asymmetric-drc.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -From e275318cecee53cf8ce13e4ab41df91c8c7fdcd4 Mon Sep 17 00:00:00 2001 -From: John Stebbins -Date: Mon, 13 Jan 2014 17:04:30 +0000 -Subject: [PATCH] ac3dec: Allow asymmetric application of DRC when drc_scale > - 1 - -Amplification of quiet sounds is enhanced. -Inspired by gbooker's A52Decoder. ---- - libavcodec/ac3dec.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c -index 87638e7..0416dbc 100644 ---- a/libavcodec/ac3dec.c -+++ b/libavcodec/ac3dec.c -@@ -772,8 +772,13 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) - i = !s->channel_mode; - do { - if (get_bits1(gbc)) { -- s->dynamic_range[i] = powf(dynamic_range_tab[get_bits(gbc, 8)], -- s->drc_scale); -+ /* Allow asymmetric application of DRC when drc_scale > 1. -+ Amplification of quiet sounds is enhanced */ -+ float range = dynamic_range_tab[get_bits(gbc, 8)]; -+ if (range > 1.0 || s->drc_scale <= 1.0) -+ s->dynamic_range[i] = powf(range, s->drc_scale); -+ else -+ s->dynamic_range[i] = range; - } else if (blk == 0) { - s->dynamic_range[i] = 1.0f; - } -@@ -1487,7 +1492,7 @@ static av_cold int ac3_decode_end(AVCodecContext *avctx) - #define OFFSET(x) offsetof(AC3DecodeContext, x) - #define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM) - static const AVOption options[] = { -- { "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 1.0, PAR }, -+ { "drc_scale", "percentage of dynamic range compression to apply", OFFSET(drc_scale), AV_OPT_TYPE_FLOAT, {.dbl = 1.0}, 0.0, 6.0, PAR }, - { NULL}, - }; - --- -1.8.3.4 (Apple Git-47) - diff -Nru handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A03-reget-buffer-pkt-pts.patch handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A03-reget-buffer-pkt-pts.patch --- handbrake-6036svnppa1~saucy1/contrib/ffmpeg/A03-reget-buffer-pkt-pts.patch 2014-02-10 16:44:52.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/contrib/ffmpeg/A03-reget-buffer-pkt-pts.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -From 091f3393401f7eb83fef4fb9cbb2e5ed2837b623 Mon Sep 17 00:00:00 2001 -From: John Stebbins -Date: Mon, 10 Feb 2014 08:52:07 -0700 -Subject: [PATCH] lavc: set AVFrame pkt_pts and reordered_opaque in - reget_buffer - ---- - libavcodec/utils.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/libavcodec/utils.c b/libavcodec/utils.c -index 46f339f..b2b11ef 100644 ---- a/libavcodec/utils.c -+++ b/libavcodec/utils.c -@@ -762,8 +762,11 @@ int ff_reget_buffer(AVCodecContext *avctx, AVFrame *frame) - if (!frame->data[0]) - return ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF); - -- if (av_frame_is_writable(frame)) -+ if (av_frame_is_writable(frame)) { -+ frame->pkt_pts = avctx->internal->pkt ? avctx->internal->pkt->pts : AV_NOPTS_VALUE; -+ frame->reordered_opaque = avctx->reordered_opaque; - return 0; -+ } - - av_frame_move_ref(&tmp, frame); - --- -1.8.5.3 - diff -Nru handbrake-6036svnppa1~saucy1/contrib/ffmpeg/module.defs handbrake-6039svnppa1~saucy1/contrib/ffmpeg/module.defs --- handbrake-6036svnppa1~saucy1/contrib/ffmpeg/module.defs 2014-01-25 23:15:25.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/contrib/ffmpeg/module.defs 2014-02-18 02:26:52.000000000 +0000 @@ -5,7 +5,7 @@ endif $(eval $(call import.CONTRIB.defs,FFMPEG)) -FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libav-v10_alpha2.tar.bz2 +FFMPEG.FETCH.url = http://download.handbrake.fr/handbrake/contrib/libav-v10_beta1.tar.bz2 FFMPEG.CONFIGURE.deps = FFMPEG.CONFIGURE.env = diff -Nru handbrake-6036svnppa1~saucy1/debian/changelog handbrake-6039svnppa1~saucy1/debian/changelog --- handbrake-6036svnppa1~saucy1/debian/changelog 2014-02-17 06:32:19.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/debian/changelog 2014-02-18 06:32:22.000000000 +0000 @@ -1,4 +1,4 @@ -handbrake (6036svnppa1~saucy1) saucy; urgency=low +handbrake (6039svnppa1~saucy1) saucy; urgency=low * Snapshot - See timeline at http://trac.handbrake.fr/timeline Binary files /tmp/2Rr4ja7MgT/handbrake-6036svnppa1~saucy1/download/libav-v10_beta1.tar.bz2 and /tmp/J0NCO4nsgL/handbrake-6039svnppa1~saucy1/download/libav-v10_beta1.tar.bz2 differ diff -Nru handbrake-6036svnppa1~saucy1/libhb/audio_resample.c handbrake-6039svnppa1~saucy1/libhb/audio_resample.c --- handbrake-6036svnppa1~saucy1/libhb/audio_resample.c 2014-01-25 23:19:41.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/libhb/audio_resample.c 2014-02-18 02:26:52.000000000 +0000 @@ -62,6 +62,7 @@ // set default input characteristics resample->in.sample_fmt = resample->out.sample_fmt; resample->in.channel_layout = resample->out.channel_layout; + resample->in.lfe_mix_level = HB_MIXLEV_ZERO; resample->in.center_mix_level = HB_MIXLEV_DEFAULT; resample->in.surround_mix_level = HB_MIXLEV_DEFAULT; @@ -90,10 +91,12 @@ void hb_audio_resample_set_mix_levels(hb_audio_resample_t *resample, double surround_mix_level, - double center_mix_level) + double center_mix_level, + double lfe_mix_level) { if (resample != NULL) { + resample->in.lfe_mix_level = lfe_mix_level; resample->in.center_mix_level = center_mix_level; resample->in.surround_mix_level = surround_mix_level; } @@ -126,6 +129,7 @@ (resample->resample_needed && (resample->resample.sample_fmt != resample->in.sample_fmt || resample->resample.channel_layout != resample->in.channel_layout || + resample->resample.lfe_mix_level != resample->in.lfe_mix_level || resample->resample.center_mix_level != resample->in.center_mix_level || resample->resample.surround_mix_level != resample->in.surround_mix_level)); @@ -159,6 +163,8 @@ resample->in.sample_fmt, 0); av_opt_set_int(resample->avresample, "in_channel_layout", resample->in.channel_layout, 0); + av_opt_set_double(resample->avresample, "lfe_mix_level", + resample->in.lfe_mix_level, 0); av_opt_set_double(resample->avresample, "center_mix_level", resample->in.center_mix_level, 0); av_opt_set_double(resample->avresample, "surround_mix_level", @@ -179,6 +185,7 @@ resample->resample.channel_layout = resample->in.channel_layout; resample->resample.channels = av_get_channel_layout_nb_channels(resample->in.channel_layout); + resample->resample.lfe_mix_level = resample->in.lfe_mix_level; resample->resample.center_mix_level = resample->in.center_mix_level; resample->resample.surround_mix_level = resample->in.surround_mix_level; } diff -Nru handbrake-6036svnppa1~saucy1/libhb/audio_resample.h handbrake-6039svnppa1~saucy1/libhb/audio_resample.h --- handbrake-6036svnppa1~saucy1/libhb/audio_resample.h 2014-01-25 23:19:41.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/libhb/audio_resample.h 2014-02-18 02:26:52.000000000 +0000 @@ -24,6 +24,8 @@ /* Default mix level for center and surround channels */ #define HB_MIXLEV_DEFAULT ((double)M_SQRT1_2) +/* Default mix level for LFE channel */ +#define HB_MIXLEV_ZERO ((double)0.0) typedef struct { @@ -36,6 +38,7 @@ struct { uint64_t channel_layout; + double lfe_mix_level; double center_mix_level; double surround_mix_level; enum AVSampleFormat sample_fmt; @@ -45,6 +48,7 @@ { int channels; uint64_t channel_layout; + double lfe_mix_level; double center_mix_level; double surround_mix_level; enum AVSampleFormat sample_fmt; @@ -81,7 +85,8 @@ void hb_audio_resample_set_mix_levels(hb_audio_resample_t *resample, double surround_mix_level, - double center_mix_level); + double center_mix_level, + double lfe_mix_level); void hb_audio_resample_set_sample_fmt(hb_audio_resample_t *resample, enum AVSampleFormat sample_fmt); diff -Nru handbrake-6036svnppa1~saucy1/libhb/deca52.c handbrake-6039svnppa1~saucy1/libhb/deca52.c --- handbrake-6036svnppa1~saucy1/libhb/deca52.c 2014-01-26 18:01:50.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/libhb/deca52.c 2014-02-18 02:26:52.000000000 +0000 @@ -391,7 +391,8 @@ { hb_audio_resample_set_mix_levels(pv->resample, (double)pv->state->slev, - (double)pv->state->clev); + (double)pv->state->clev, + HB_MIXLEV_ZERO); } if (hb_audio_resample_update(pv->resample)) { diff -Nru handbrake-6036svnppa1~saucy1/libhb/decavcodec.c handbrake-6039svnppa1~saucy1/libhb/decavcodec.c --- handbrake-6036svnppa1~saucy1/libhb/decavcodec.c 2014-02-02 16:29:44.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/libhb/decavcodec.c 2014-02-18 02:26:52.000000000 +0000 @@ -2176,6 +2176,29 @@ } else { + AVFrameSideData *side_data; + if ((side_data = + av_frame_get_side_data(pv->frame, + AV_FRAME_DATA_DOWNMIX_INFO)) != NULL) + { + double surround_mix_level, center_mix_level; + AVDownmixInfo *downmix_info = (AVDownmixInfo*)side_data->data; + if (audio->config.out.mixdown == HB_AMIXDOWN_DOLBY || + audio->config.out.mixdown == HB_AMIXDOWN_DOLBYPLII) + { + surround_mix_level = downmix_info->surround_mix_level_ltrt; + center_mix_level = downmix_info->center_mix_level_ltrt; + } + else + { + surround_mix_level = downmix_info->surround_mix_level; + center_mix_level = downmix_info->center_mix_level; + } + hb_audio_resample_set_mix_levels(pv->resample, + surround_mix_level, + center_mix_level, + downmix_info->lfe_mix_level); + } hb_audio_resample_set_channel_layout(pv->resample, pv->frame->channel_layout); hb_audio_resample_set_sample_fmt(pv->resample, diff -Nru handbrake-6036svnppa1~saucy1/libhb/hbffmpeg.h handbrake-6039svnppa1~saucy1/libhb/hbffmpeg.h --- handbrake-6036svnppa1~saucy1/libhb/hbffmpeg.h 2014-01-26 18:01:50.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/libhb/hbffmpeg.h 2014-02-18 02:26:52.000000000 +0000 @@ -14,6 +14,7 @@ #include "libavutil/mathematics.h" #include "libavutil/opt.h" #include "libavutil/avutil.h" +#include "libavutil/downmix_info.h" #include "libswscale/swscale.h" #include "libavresample/avresample.h" #include "common.h" diff -Nru handbrake-6036svnppa1~saucy1/version.txt handbrake-6039svnppa1~saucy1/version.txt --- handbrake-6036svnppa1~saucy1/version.txt 2014-02-17 06:32:18.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/version.txt 2014-02-18 06:32:22.000000000 +0000 @@ -2,9 +2,9 @@ URL: svn://svn.handbrake.fr/HandBrake/trunk Repository Root: svn://svn.handbrake.fr/HandBrake Repository UUID: b64f7644-9d1e-0410-96f1-a4d463321fa5 -Revision: 6036 +Revision: 6039 Node Kind: directory -Last Changed Author: sr55 -Last Changed Rev: 6036 -Last Changed Date: 2014-02-16 10:39:29 -0800 (Sun, 16 Feb 2014) +Last Changed Author: Rodeo +Last Changed Rev: 6039 +Last Changed Date: 2014-02-17 18:26:52 -0800 (Mon, 17 Feb 2014) diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/LibScan.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/LibScan.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/LibScan.cs 2014-02-02 20:34:09.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/LibScan.cs 2014-02-17 20:30:04.000000000 +0000 @@ -261,7 +261,17 @@ } EncodeJob encodeJob = InteropModelCreator.GetEncodeJob(job); - BitmapImage bitmapImage = this.instance.GetPreview(encodeJob, preview); + + BitmapImage bitmapImage = null; + try + { + bitmapImage = this.instance.GetPreview(encodeJob, preview); + } + catch (AccessViolationException e) + { + Console.WriteLine(e); + } + return bitmapImage; } diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs 2013-11-19 22:41:36.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrake.ApplicationServices/Services/QueueProcessor.cs 2014-02-17 20:30:04.000000000 +0000 @@ -220,7 +220,7 @@ /// public bool CheckForDestinationPathDuplicates(string destination) { - return this.queue.Any(job => job.Task != null && job.Task.Destination.Contains(destination.Replace("\\\\", "\\"))); + return this.queue.Any(job => job.Task != null && job.Task.Destination != null && job.Task.Destination.Contains(destination.Replace("\\\\", "\\"))); } /// diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs 2014-02-16 18:39:29.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs 2014-02-17 20:51:17.000000000 +0000 @@ -476,26 +476,26 @@ if (!string.IsNullOrEmpty(profile.X264Profile)) { - nativeJob.h264_profile = Marshal.StringToHGlobalAnsi(profile.X264Profile); - this.encodeAllocatedMemory.Add(nativeJob.h264_profile); + nativeJob.encoder_profile = Marshal.StringToHGlobalAnsi(profile.X264Profile); + this.encodeAllocatedMemory.Add(nativeJob.encoder_profile); } if (!string.IsNullOrEmpty(profile.X264Preset)) { - nativeJob.x264_preset = Marshal.StringToHGlobalAnsi(profile.X264Preset); - this.encodeAllocatedMemory.Add(nativeJob.x264_preset); + nativeJob.encoder_preset = Marshal.StringToHGlobalAnsi(profile.X264Preset); + this.encodeAllocatedMemory.Add(nativeJob.encoder_preset); } if (profile.X264Tunes != null && profile.X264Tunes.Count > 0) { - nativeJob.x264_tune = Marshal.StringToHGlobalAnsi(string.Join(",", profile.X264Tunes)); - this.encodeAllocatedMemory.Add(nativeJob.x264_tune); + nativeJob.encoder_tune = Marshal.StringToHGlobalAnsi(string.Join(",", profile.X264Tunes)); + this.encodeAllocatedMemory.Add(nativeJob.encoder_tune); } if (!string.IsNullOrEmpty(job.EncodingProfile.H264Level)) { - nativeJob.h264_level = Marshal.StringToHGlobalAnsi(job.EncodingProfile.H264Level); - this.encodeAllocatedMemory.Add(nativeJob.h264_level); + nativeJob.encoder_level = Marshal.StringToHGlobalAnsi(job.EncodingProfile.H264Level); + this.encodeAllocatedMemory.Add(nativeJob.encoder_level); } if (this.subtitleScan) @@ -504,7 +504,7 @@ nativeJob.pass = -1; nativeJob.indepth_scan = 1; - nativeJob.advanced_opts = IntPtr.Zero; + nativeJob.encoder_options = IntPtr.Zero; HBFunctions.hb_add(this.hbHandle, ref nativeJob); } @@ -528,14 +528,14 @@ } } - nativeJob.advanced_opts = Marshal.StringToHGlobalAnsi(firstPassAdvancedOptions); - this.encodeAllocatedMemory.Add(nativeJob.advanced_opts); + nativeJob.encoder_options = Marshal.StringToHGlobalAnsi(firstPassAdvancedOptions); + this.encodeAllocatedMemory.Add(nativeJob.encoder_options); HBFunctions.hb_add(this.hbHandle, ref nativeJob); // Second pass. Apply normal options. nativeJob.pass = 2; - nativeJob.advanced_opts = originalX264Options; + nativeJob.encoder_options = originalX264Options; HBFunctions.hb_add(this.hbHandle, ref nativeJob); } @@ -543,7 +543,7 @@ { // One pass job. nativeJob.pass = 0; - nativeJob.advanced_opts = originalX264Options; + nativeJob.encoder_options = originalX264Options; HBFunctions.hb_add(this.hbHandle, ref nativeJob); } diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/HbFunctions.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/HbFunctions.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/HbFunctions.cs 2014-02-13 14:57:05.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/HbFunctions.cs 2014-02-17 20:51:17.000000000 +0000 @@ -408,8 +408,8 @@ public static extern void hb_job_close(IntPtr job); ///void hb_job_set_advanced_opts( hb_job_t *job, const char *advanced_opts ); - [DllImport("hb.dll", EntryPoint = "hb_job_set_advanced_opts", CallingConvention = CallingConvention.Cdecl)] - public static extern void hb_job_set_advanced_opts(ref hb_job_s job, IntPtr advanced_opts); + [DllImport("hb.dll", EntryPoint = "hb_job_set_encoder_options", CallingConvention = CallingConvention.Cdecl)] + public static extern void hb_job_set_encoder_options(ref hb_job_s job, IntPtr advanced_opts); ///void hb_job_set_file( hb_job_t *job, const char *file ); [DllImport("hb.dll", EntryPoint = "hb_job_set_file", CallingConvention = CallingConvention.Cdecl)] diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs 2013-10-13 19:15:54.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs 2014-02-17 20:51:17.000000000 +0000 @@ -88,15 +88,15 @@ public int fastfirstpass; - public IntPtr x264_preset; + public IntPtr encoder_preset; - public IntPtr x264_tune; + public IntPtr encoder_tune; - public IntPtr advanced_opts; + public IntPtr encoder_options; - public IntPtr h264_profile; + public IntPtr encoder_profile; - public IntPtr h264_level; + public IntPtr encoder_level; /// int public int areBframes; diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs 2014-01-25 21:12:38.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.Designer.cs 2014-02-17 20:30:04.000000000 +0000 @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.18408 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -635,6 +635,15 @@ } } + /// + /// Looks up a localized string similar to You must first set the destination path for the output file before adding to the queue.. + /// + public static string Main_SetDestination { + get { + return ResourceManager.GetString("Main_SetDestination", resourceCulture); + } + } + /// /// Looks up a localized string similar to You must turn on automatic file naming AND set a default path in preferences before you can add to the queue.. /// diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.resx handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.resx --- handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.resx 2014-01-25 21:12:38.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/Properties/Resources.resx 2014-02-17 20:30:04.000000000 +0000 @@ -501,4 +501,7 @@ Unable to import the preset as it appears to be corrupted or from an older version of HandBrake. + + You must first set the destination path for the output file before adding to the queue. + \ No newline at end of file diff -Nru handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs --- handbrake-6036svnppa1~saucy1/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs 2014-02-16 18:39:29.000000000 +0000 +++ handbrake-6039svnppa1~saucy1/win/CS/HandBrakeWPF/ViewModels/MainViewModel.cs 2014-02-17 20:30:04.000000000 +0000 @@ -1135,7 +1135,14 @@ return; } + if (string.IsNullOrEmpty(this.CurrentTask.Destination)) + { + this.errorService.ShowMessageBox(Resources.Main_SetDestination, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error); + } + QueueTask task = new QueueTask(new EncodeTask(this.CurrentTask), HBConfigurationFactory.Create()); + + if (!this.queueProcessor.CheckForDestinationPathDuplicates(task.Task.Destination)) { this.queueProcessor.Add(task);