diff options
author | jbrjake <[email protected]> | 2007-07-27 14:55:58 +0000 |
---|---|---|
committer | jbrjake <[email protected]> | 2007-07-27 14:55:58 +0000 |
commit | 5a4a250000ce8735639503aac2ee29def935865d (patch) | |
tree | d7efc0e7e44e06e80ba67827e137c970ac02743e /macosx | |
parent | 50c3c15c88172bb00dd787e39ce66eb11480717d (diff) |
This huge patch from huevos_rancheros ports a number of video filters from mencoder to HandBrake: yadif+mcdeint, hqdn3d, pp7, and pullup+softskip+harddup. What this means is that HB now has stateless inverse telecine, temporal denoising, and motion-adaptive deinterlacing!
HandBrake is growing up =)
Thank you, huevos_rancheros!
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@749 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'macosx')
-rw-r--r-- | macosx/Controller.mm | 23 | ||||
-rw-r--r-- | macosx/HandBrake.xcodeproj/project.pbxproj | 24 |
2 files changed, 47 insertions, 0 deletions
diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 7bf9b50d5..fb8d0ad8d 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -1317,7 +1317,30 @@ list = hb_get_titles( fHandle ); job->arate = hb_audio_rates[[fAudRatePopUp indexOfSelectedItem]].rate; job->abitrate = [[fAudBitratePopUp selectedItem] tag]; + + /* TODO: Filter settings */ + job->filters = hb_list_init(); +#if 1 + /* Run old deinterlacer if deinterlacing specified */ + if( job->deinterlace ) + { + hb_filter_deinterlace.settings = "-1"; + hb_list_add( job->filters, &hb_filter_deinterlace ); + } +#else + /* Choose your own filters! Here's some examples... */ + hb_filter_detelecine.settings = "1:1:4:4:0:0"; + hb_list_add( job->filters, &hb_filter_detelecine ); + + hb_filter_deinterlace.settings = "3:-1:2:10"; + hb_list_add( job->filters, &hb_filter_deinterlace ); + + hb_filter_deblock.settings = "4:2"; + hb_list_add( job->filters, &hb_filter_deblock ); + hb_filter_denoise.settings = "3:2:3:3"; + hb_list_add( job->filters, &hb_filter_denoise ); +#endif } diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj index fc250f584..a8f017a44 100644 --- a/macosx/HandBrake.xcodeproj/project.pbxproj +++ b/macosx/HandBrake.xcodeproj/project.pbxproj @@ -125,6 +125,14 @@ A29E058B0BE12889000533F5 /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = A29E057F0BE1283E000533F5 /* Growl.framework */; }; EAA526930C3B25D200944FF2 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = EAA526920C3B25D200944FF2 /* stream.c */; }; EAA526940C3B25D200944FF2 /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = EAA526920C3B25D200944FF2 /* stream.c */; }; + FC8519500C59A02C0073812C /* denoise.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194C0C59A02C0073812C /* denoise.c */; }; + FC8519510C59A02C0073812C /* deinterlace.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194D0C59A02C0073812C /* deinterlace.c */; }; + FC8519520C59A02C0073812C /* deblock.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194E0C59A02C0073812C /* deblock.c */; }; + FC8519530C59A02C0073812C /* detelecine.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194F0C59A02C0073812C /* detelecine.c */; }; + FC8519540C59A02C0073812C /* denoise.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194C0C59A02C0073812C /* denoise.c */; }; + FC8519550C59A02C0073812C /* deinterlace.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194D0C59A02C0073812C /* deinterlace.c */; }; + FC8519560C59A02C0073812C /* deblock.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194E0C59A02C0073812C /* deblock.c */; }; + FC8519570C59A02C0073812C /* detelecine.c in Sources */ = {isa = PBXBuildFile; fileRef = FC85194F0C59A02C0073812C /* detelecine.c */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -251,6 +259,10 @@ A273E0950C57C19500493A45 /* muxmkv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = muxmkv.c; path = ../libhb/muxmkv.c; sourceTree = SOURCE_ROOT; }; A29E057F0BE1283E000533F5 /* Growl.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Growl.framework; sourceTree = "<group>"; }; EAA526920C3B25D200944FF2 /* stream.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = stream.c; path = ../libhb/stream.c; sourceTree = SOURCE_ROOT; }; + FC85194C0C59A02C0073812C /* denoise.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = denoise.c; path = ../libhb/denoise.c; sourceTree = SOURCE_ROOT; }; + FC85194D0C59A02C0073812C /* deinterlace.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deinterlace.c; path = ../libhb/deinterlace.c; sourceTree = SOURCE_ROOT; }; + FC85194E0C59A02C0073812C /* deblock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = deblock.c; path = ../libhb/deblock.c; sourceTree = SOURCE_ROOT; }; + FC85194F0C59A02C0073812C /* detelecine.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = detelecine.c; path = ../libhb/detelecine.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -378,6 +390,10 @@ 0DFA5C840B8DD3B60020BC09 /* encfaac.c */, 0DFA5C850B8DD3B60020BC09 /* enclame.c */, 0DFA5C860B8DD3B60020BC09 /* encvorbis.c */, + FC85194C0C59A02C0073812C /* denoise.c */, + FC85194D0C59A02C0073812C /* deinterlace.c */, + FC85194E0C59A02C0073812C /* deblock.c */, + FC85194F0C59A02C0073812C /* detelecine.c */, 0DFA5C870B8DD3B60020BC09 /* encx264.c */, 0DFA5C880B8DD3B60020BC09 /* encxvid.c */, 0DFA5C890B8DD3B60020BC09 /* fifo.c */, @@ -681,6 +697,10 @@ 5558B56A0BE3BADF00E15E27 /* decdca.c in Sources */, EAA526940C3B25D200944FF2 /* stream.c in Sources */, A273E09B0C57C1CD00493A45 /* muxmkv.c in Sources */, + FC8519540C59A02C0073812C /* denoise.c in Sources */, + FC8519550C59A02C0073812C /* deinterlace.c in Sources */, + FC8519560C59A02C0073812C /* deblock.c in Sources */, + FC8519570C59A02C0073812C /* detelecine.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -720,6 +740,10 @@ 5558B5690BE3BADF00E15E27 /* decdca.c in Sources */, EAA526930C3B25D200944FF2 /* stream.c in Sources */, A273E09A0C57C1CC00493A45 /* muxmkv.c in Sources */, + FC8519500C59A02C0073812C /* denoise.c in Sources */, + FC8519510C59A02C0073812C /* deinterlace.c in Sources */, + FC8519520C59A02C0073812C /* deblock.c in Sources */, + FC8519530C59A02C0073812C /* detelecine.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; |