summaryrefslogtreecommitdiffstats
path: root/macosx/HBCore.m
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/HBCore.m')
-rw-r--r--macosx/HBCore.m64
1 files changed, 63 insertions, 1 deletions
diff --git a/macosx/HBCore.m b/macosx/HBCore.m
index 84fc15cd5..fb46f20de 100644
--- a/macosx/HBCore.m
+++ b/macosx/HBCore.m
@@ -5,7 +5,7 @@
It may be used under the terms of the GNU General Public License. */
#import "HBCore.h"
-#import "HBTitle.h"
+#import "HBJob.h"
#import "HBDVDDetector.h"
#import "HBUtilities.h"
@@ -231,6 +231,68 @@ NSString *HBCoreMuxingNotification = @"HBCoreMuxingNotification";
#pragma mark - Encodes
+- (void)encodeJob:(HBJob *)job
+{
+ hb_job_t *hb_job = job.hb_job;
+
+ [HBUtilities writeToActivityLog: "processNewQueueEncode number of passes expected is: %d", (job.video.twoPass + 1)];
+ hb_job_set_file(hb_job, job.destURL.fileSystemRepresentation);
+
+ // If scanning we need to do some extra setup of the job.
+ if (hb_job->indepth_scan == 1)
+ {
+ char *encoder_preset_tmp = hb_job->encoder_preset != NULL ? strdup(hb_job->encoder_preset) : NULL;
+ char *encoder_tune_tmp = hb_job->encoder_tune != NULL ? strdup(hb_job->encoder_tune) : NULL;
+ char *encoder_options_tmp = hb_job->encoder_options != NULL ? strdup(hb_job->encoder_options) : NULL;
+ char *encoder_profile_tmp = hb_job->encoder_profile != NULL ? strdup(hb_job->encoder_profile) : NULL;
+ char *encoder_level_tmp = hb_job->encoder_level != NULL ? strdup(hb_job->encoder_level) : NULL;
+ /*
+ * When subtitle scan is enabled do a fast pre-scan job
+ * which will determine which subtitles to enable, if any.
+ */
+ hb_job_set_encoder_preset (hb_job, NULL);
+ hb_job_set_encoder_tune (hb_job, NULL);
+ hb_job_set_encoder_options(hb_job, NULL);
+ hb_job_set_encoder_profile(hb_job, NULL);
+ hb_job_set_encoder_level (hb_job, NULL);
+ hb_job->pass = -1;
+ hb_add(self.hb_handle, hb_job);
+ /*
+ * reset the advanced settings
+ */
+ hb_job_set_encoder_preset (hb_job, encoder_preset_tmp);
+ hb_job_set_encoder_tune (hb_job, encoder_tune_tmp);
+ hb_job_set_encoder_options(hb_job, encoder_options_tmp);
+ hb_job_set_encoder_profile(hb_job, encoder_profile_tmp);
+ hb_job_set_encoder_level (hb_job, encoder_level_tmp);
+ free(encoder_preset_tmp);
+ free(encoder_tune_tmp);
+ free(encoder_options_tmp);
+ free(encoder_profile_tmp);
+ free(encoder_level_tmp);
+ }
+
+ if (job.video.twoPass)
+ {
+ hb_job->indepth_scan = 0;
+ hb_job->pass = 1;
+ hb_add(self.hb_handle, hb_job);
+ hb_job->pass = 2;
+ hb_add(self.hb_handle, hb_job);
+ }
+ else
+ {
+ hb_job->indepth_scan = 0;
+ hb_job->pass = 0;
+ hb_add(self.hb_handle, hb_job);
+ }
+
+ // Free the job
+ hb_job_close(&hb_job);
+
+ [self start];
+}
+
- (void)start
{
// Start the timer to handle libhb state changes