MacGui: use the new deinterlate preset keys
This commit is contained in:
parent
b899bfa36a
commit
edb37c75b9
@ -568,231 +568,6 @@ Using this filter on such sources can result in smaller file sizes.</string>
|
||||
<binding destination="-2" name="value" keyPath="self.filters.denoiseCustomString" id="MUd-3J-rBA"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<matrix verticalHuggingPriority="750" allowsEmptySelection="NO" id="V5h-RE-c1g">
|
||||
<rect key="frame" x="310" y="104" width="83" height="42"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<string key="toolTip">Choose decomb or deinterlace filter options.
|
||||
The decomb filter selectively deinterlaces frames that appear to be interlaced.
|
||||
This will preserve quality in frames that are not interlaced.
|
||||
The classic deinterlace filter is applied to all frames.
|
||||
Frames that are not interlaced will suffer some quality degradation.</string>
|
||||
<animations/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
<size key="cellSize" width="83" height="20"/>
|
||||
<size key="intercellSpacing" width="4" height="2"/>
|
||||
<buttonCell key="prototype" type="radio" title="Radio" imagePosition="left" alignment="left" controlSize="small" inset="2" id="0e7-lW-GxD" customClass="HBHUDButtonCell">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<cells>
|
||||
<column>
|
||||
<buttonCell type="radio" title="Deinterlace" imagePosition="left" alignment="left" controlSize="small" state="on" tag="1" inset="2" id="OVg-jG-Uzq">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<buttonCell type="radio" title="Decomb" imagePosition="left" alignment="left" controlSize="small" inset="2" id="CCd-Kk-NlW">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
</column>
|
||||
</cells>
|
||||
<connections>
|
||||
<binding destination="-2" name="enabled" keyPath="self.filters" id="KA3-LF-11B">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNotNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="selectedIndex" keyPath="self.filters.useDecomb" id="dze-Gw-CZJ"/>
|
||||
</connections>
|
||||
</matrix>
|
||||
<box autoresizesSubviews="NO" title="Box" borderType="none" titlePosition="noTitle" id="Mmn-Ae-9Yn" userLabel="Decomb Box">
|
||||
<rect key="frame" x="233" y="43" width="207" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<view key="contentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="207" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" id="7iW-iI-CHT">
|
||||
<rect key="frame" x="11" y="38" width="61" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Decomb:" id="bkd-Rb-wwr">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="LZV-5c-GTF"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="EoC-qG-nlq">
|
||||
<rect key="frame" x="11" y="12" width="61" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Custom:" id="VaB-Av-TDu">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDecombSelected" id="kgj-zy-TW7">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="6zF-wn-AFg"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" id="kP2-Gv-DZV">
|
||||
<rect key="frame" x="75" y="33" width="114" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="5f8-gV-wzv">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<menu key="menu" title="OtherViews" id="hOC-Xe-RPE"/>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<accessibilityConnection property="title" destination="7iW-iI-CHT" id="PnI-bH-5TP"/>
|
||||
<binding destination="-2" name="enabled" keyPath="self.filters" id="1ZK-xB-Tcj">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNotNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="selectedValue" keyPath="self.filters.decomb" previousBinding="3Cu-Eh-e6g" id="ShC-Oj-9Cr">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">HBDecombTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="contentValues" keyPath="self.filters.decombSettings" id="3Cu-Eh-e6g"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" id="dNc-Lj-0eP">
|
||||
<rect key="frame" x="78" y="9" width="108" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<string key="toolTip">Custom decomb filter string format:
|
||||
Mode:SpatialMetric:MotionThresh:SpatialThresh:BlockThresh:BlockWidth:BlockHeight:MagnitudeThres:VarianceThres:LaplacianThresh:DilationThresh:ErosionThresh:NoiseThresh:MaxSearchDistance:PostProcessing:Parity</string>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="cDZ-Od-pI6">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<accessibility description="Custom decomb settings."/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDecombSelected" id="Ftt-V0-qz8">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="UZ0-eg-oV8" name="value" keyPath="values.self.filters.decombCustomString" id="lJH-aM-3yE"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
<animations/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.useDecomb" id="Qt8-ik-TyT">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</box>
|
||||
<box autoresizesSubviews="NO" title="Box" borderType="none" titlePosition="noTitle" id="N21-it-wjY" userLabel="Deinterlace Box">
|
||||
<rect key="frame" x="233" y="43" width="207" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<view key="contentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="207" height="62"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" id="xKf-yr-nCk">
|
||||
<rect key="frame" x="4" y="38" width="68" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Deinterlace:" id="VsK-mC-9Pj">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="PYk-vE-y5t"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="C83-aJ-v3x">
|
||||
<rect key="frame" x="23" y="12" width="49" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Custom:" id="n6U-tH-vo0">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDeinterlaceSelected" id="kHC-eH-FKE">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="OOp-ec-hRZ"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" id="xct-UB-bKm">
|
||||
<rect key="frame" x="75" y="33" width="114" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="CsF-zp-vt2">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<menu key="menu" title="OtherViews" id="PyP-FP-gGx"/>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<accessibilityConnection property="title" destination="xKf-yr-nCk" id="9ol-TG-r46"/>
|
||||
<binding destination="-2" name="enabled" keyPath="self.filters" id="M9v-44-EJq">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNotNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="selectedValue" keyPath="self.filters.deinterlace" previousBinding="41E-Fv-hq1" id="RN0-ZY-YXU">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">HBDeinterlaceTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="contentValues" keyPath="self.filters.deinterlaceSettings" id="41E-Fv-hq1"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" id="r64-vI-ymx">
|
||||
<rect key="frame" x="78" y="9" width="108" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="OKz-qW-7ai">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<accessibility description="Custom deinterlace filter string format: YadifMode:YadifParity:McdintMode:McdeintQp"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDeinterlaceSelected" id="h6M-Dy-tBR">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="value" keyPath="self.filters.deinterlaceCustomString" id="ej3-7F-ZV8"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<animations/>
|
||||
</view>
|
||||
<animations/>
|
||||
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
|
||||
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.useDecomb" id="ja4-Mj-2gB"/>
|
||||
</connections>
|
||||
</box>
|
||||
<textField verticalHuggingPriority="750" id="A6i-ft-02b">
|
||||
<rect key="frame" x="484" y="78" width="34" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
@ -924,7 +699,7 @@ Players will scale the image in order to achieve the specified aspect.</string>
|
||||
<rect key="frame" x="151" y="281" width="15" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="16" minValue="64" maxValue="59" doubleValue="59" id="NP7-P2-Qga">
|
||||
<stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="16" minValue="64" maxValue="59" doubleValue="64" id="NP7-P2-Qga">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</stepperCell>
|
||||
<connections>
|
||||
@ -1214,7 +989,7 @@ Players will scale the image in order to achieve the specified aspect.</string>
|
||||
<rect key="frame" x="240" y="281" width="15" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="16" minValue="64" maxValue="59" doubleValue="59" id="MwK-aS-Oaf">
|
||||
<stepperCell key="cell" controlSize="small" continuous="YES" alignment="left" increment="16" minValue="64" maxValue="59" doubleValue="64" id="MwK-aS-Oaf">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</stepperCell>
|
||||
<connections>
|
||||
@ -1258,6 +1033,128 @@ Players will scale the image in order to achieve the specified aspect.</string>
|
||||
<binding destination="-2" name="maxValue" keyPath="self.picture.maxHorizontalCrop" id="HGA-OB-h94"/>
|
||||
</connections>
|
||||
</stepper>
|
||||
<textField verticalHuggingPriority="750" id="xKf-yr-nCk">
|
||||
<rect key="frame" x="240" y="130" width="68" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Deinterlace:" id="VsK-mC-9Pj">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="PYk-vE-y5t"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="C83-aJ-v3x">
|
||||
<rect key="frame" x="259" y="79" width="49" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Custom:" id="n6U-tH-vo0">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDeinterlaceSelected" id="kHC-eH-FKE">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="OOp-ec-hRZ"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" id="xct-UB-bKm">
|
||||
<rect key="frame" x="311" y="125" width="114" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<string key="toolTip">Choose decomb or deinterlace filter options.
|
||||
The decomb filter selectively deinterlaces frames that appear to be interlaced.
|
||||
This will preserve quality in frames that are not interlaced.
|
||||
The classic deinterlace filter is applied to all frames.
|
||||
Frames that are not interlaced will suffer some quality degradation.</string>
|
||||
<animations/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="CsF-zp-vt2">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<menu key="menu" title="OtherViews" id="PyP-FP-gGx"/>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<accessibilityConnection property="title" destination="xKf-yr-nCk" id="9ol-TG-r46"/>
|
||||
<binding destination="-2" name="enabled" keyPath="self.filters" id="M9v-44-EJq">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNotNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="selectedValue" keyPath="self.filters.deinterlace" previousBinding="1XG-JZ-nFn" id="jo4-ky-6QP">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">HBDeinterlaceTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="contentValues" keyPath="self.filters.deinterlaceTypes" id="1XG-JZ-nFn"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" id="r64-vI-ymx">
|
||||
<rect key="frame" x="314" y="76" width="108" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="OKz-qW-7ai">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<accessibility description="Custom deinterlace filter string format: YadifMode:YadifParity:McdintMode:McdeintQp"/>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.customDeinterlaceSelected" id="h6M-Dy-tBR">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="value" keyPath="self.filters.deinterlaceCustomString" id="ej3-7F-ZV8"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" id="9Uz-PL-igg">
|
||||
<rect key="frame" x="248" y="104" width="61" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Preset:" id="zvZ-ZX-yKE">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.deinterlaceEnabled" id="9z5-2i-puG">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="textColor" keyPath="self.labelColor" id="58H-r8-xBi"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" id="6nG-zk-FMo">
|
||||
<rect key="frame" x="312" y="99" width="113" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<animations/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="at1-DR-WGs">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<menu key="menu" title="OtherViews" id="qey-Yo-9sX"/>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<accessibilityConnection property="title" destination="9Uz-PL-igg" id="EXp-0c-TdS"/>
|
||||
<binding destination="-2" name="hidden" keyPath="self.filters.deinterlaceEnabled" id="gBQ-b8-r6y">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="selectedValue" keyPath="self.filters.deinterlacePreset" previousBinding="ZVC-PA-ji4" id="4RE-n6-Oyz">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">HBDeinterlacePresetTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="-2" name="contentValues" keyPath="self.filters.deinterlacePresets" id="ZVC-PA-ji4"/>
|
||||
<outlet property="nextKeyView" destination="1XQ-md-5cQ" id="LJa-RO-dzf"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
</subviews>
|
||||
<animations/>
|
||||
<point key="canvasLocation" x="403.5" y="86.5"/>
|
||||
|
@ -13,6 +13,8 @@
|
||||
* Getters to get the possible values for the filters.
|
||||
*/
|
||||
+ (NSDictionary *)detelecinePresetsDict;
|
||||
|
||||
+ (NSDictionary *)deinterlaceTypesDict;
|
||||
+ (NSDictionary *)decombPresetsDict;
|
||||
+ (NSDictionary *)deinterlacePresetsDict;
|
||||
|
||||
@ -21,7 +23,8 @@
|
||||
+ (NSDictionary *)denoiseTypesDict;
|
||||
|
||||
- (BOOL)customDetelecineSelected;
|
||||
- (BOOL)customDecombSelected;
|
||||
|
||||
- (BOOL)deinterlaceEnabled;
|
||||
- (BOOL)customDeinterlaceSelected;
|
||||
|
||||
- (BOOL)denoiseEnabled;
|
||||
@ -31,8 +34,9 @@
|
||||
- (NSString *)deblockSummary;
|
||||
|
||||
@property (nonatomic, readonly) NSArray *detelecineSettings;
|
||||
@property (nonatomic, readonly) NSArray *deinterlaceSettings;
|
||||
@property (nonatomic, readonly) NSArray *decombSettings;
|
||||
|
||||
@property (nonatomic, readonly) NSArray *deinterlaceTypes;
|
||||
@property (nonatomic, readonly) NSArray *deinterlacePresets;
|
||||
|
||||
@property (nonatomic, readonly) NSArray *denoiseTypes;
|
||||
@property (nonatomic, readonly) NSArray *denoisePresets;
|
||||
@ -57,10 +61,10 @@
|
||||
@interface HBDetelecineTransformer : HBGenericDictionaryTransformer
|
||||
@end
|
||||
|
||||
@interface HBDecombTransformer : HBGenericDictionaryTransformer
|
||||
@interface HBDeinterlaceTransformer : HBGenericDictionaryTransformer
|
||||
@end
|
||||
|
||||
@interface HBDeinterlaceTransformer : HBGenericDictionaryTransformer
|
||||
@interface HBDeinterlacePresetTransformer : HBGenericDictionaryTransformer
|
||||
@end
|
||||
|
||||
@interface HBDenoisePresetTransformer : HBGenericDictionaryTransformer
|
||||
|
@ -79,24 +79,28 @@ static NSDictionary * filterParamsToNamesDict(hb_filter_param_t * (f)(int), int
|
||||
|
||||
@end
|
||||
|
||||
@implementation HBDecombTransformer
|
||||
@implementation HBDeinterlaceTransformer
|
||||
|
||||
- (instancetype)init
|
||||
{
|
||||
if (self = [super init])
|
||||
self.dict = [HBFilters decombPresetsDict];
|
||||
self.dict = [HBFilters deinterlaceTypesDict];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation HBDeinterlaceTransformer
|
||||
@implementation HBDeinterlacePresetTransformer
|
||||
|
||||
- (instancetype)init
|
||||
{
|
||||
if (self = [super init])
|
||||
self.dict = [HBFilters deinterlacePresetsDict];
|
||||
{
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:[HBFilters deinterlacePresetsDict]];
|
||||
[dict addEntriesFromDictionary:[HBFilters decombPresetsDict]];
|
||||
self.dict = [dict copy];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
@ -162,6 +166,8 @@ static NSDictionary * filterParamsToNamesDict(hb_filter_param_t * (f)(int), int
|
||||
@end
|
||||
|
||||
static NSDictionary *detelecinePresetsDict = nil;
|
||||
|
||||
static NSDictionary *deinterlaceTypesDict = nil;
|
||||
static NSDictionary *decombPresetsDict = nil;
|
||||
static NSDictionary *deinterlacePresetsDict = nil;
|
||||
|
||||
@ -182,6 +188,22 @@ static NSDictionary *denoiseTypesDict = nil;
|
||||
return detelecinePresetsDict;
|
||||
}
|
||||
|
||||
+ (NSDictionary *)deinterlaceTypesDict
|
||||
{
|
||||
if (!deinterlaceTypesDict)
|
||||
{
|
||||
deinterlaceTypesDict = @{NSLocalizedString(@"Off", nil): @"off",
|
||||
NSLocalizedString(@"Deinterlace", nil): @"deinterlace",
|
||||
NSLocalizedString(@"Decomb", nil): @"decomb"};;
|
||||
}
|
||||
return deinterlaceTypesDict;
|
||||
}
|
||||
|
||||
- (NSArray *)deinterlaceTypes
|
||||
{
|
||||
return @[@"Off", @"Deinterlace", @"Decomb"];
|
||||
}
|
||||
|
||||
+ (NSDictionary *)decombPresetsDict
|
||||
{
|
||||
if (!decombPresetsDict)
|
||||
@ -234,14 +256,16 @@ static NSDictionary *denoiseTypesDict = nil;
|
||||
return filterParamsToNamesArray(hb_filter_param_get_presets, HB_FILTER_DETELECINE);
|
||||
}
|
||||
|
||||
- (NSArray *)decombSettings
|
||||
- (NSArray *)deinterlacePresets
|
||||
{
|
||||
return filterParamsToNamesArray(hb_filter_param_get_presets, HB_FILTER_DECOMB);
|
||||
}
|
||||
|
||||
- (NSArray *)deinterlaceSettings
|
||||
{
|
||||
return filterParamsToNamesArray(hb_filter_param_get_presets, HB_FILTER_DEINTERLACE);
|
||||
if ([self.deinterlace isEqualToString:@"deinterlace"])
|
||||
{
|
||||
return filterParamsToNamesArray(hb_filter_param_get_presets, HB_FILTER_DEINTERLACE);
|
||||
}
|
||||
else
|
||||
{
|
||||
return filterParamsToNamesArray(hb_filter_param_get_presets, HB_FILTER_DECOMB);
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray *)denoiseTypes
|
||||
@ -264,14 +288,9 @@ static NSDictionary *denoiseTypesDict = nil;
|
||||
return [self.detelecine isEqualToString:@"custom"] ? YES : NO;
|
||||
}
|
||||
|
||||
- (BOOL)customDecombSelected
|
||||
{
|
||||
return [self.decomb isEqualToString:@"custom"] ? YES : NO;
|
||||
}
|
||||
|
||||
- (BOOL)customDeinterlaceSelected
|
||||
{
|
||||
return [self.deinterlace isEqualToString:@"custom"] ? YES : NO;
|
||||
return [self.deinterlacePreset isEqualToString:@"custom"] && [self deinterlaceEnabled];
|
||||
}
|
||||
|
||||
- (BOOL)denoiseEnabled
|
||||
@ -279,6 +298,11 @@ static NSDictionary *denoiseTypesDict = nil;
|
||||
return ![self.denoise isEqualToString:@"off"];
|
||||
}
|
||||
|
||||
- (BOOL)deinterlaceEnabled
|
||||
{
|
||||
return ![self.deinterlace isEqualToString:@"off"];
|
||||
}
|
||||
|
||||
- (BOOL)customDenoiseSelected
|
||||
{
|
||||
return [self.denoisePreset isEqualToString:@"custom"] && [self denoiseEnabled];
|
||||
@ -317,29 +341,25 @@ static NSDictionary *denoiseTypesDict = nil;
|
||||
[summary appendFormat:@" - Detelecine (%@)", [[[HBFilters detelecinePresetsDict] allKeysForObject:self.detelecine] firstObject]];
|
||||
}
|
||||
}
|
||||
|
||||
if (self.useDecomb && ![self.decomb isEqualToString:@"off"])
|
||||
{
|
||||
// Decomb
|
||||
if ([self.decomb isEqualToString:@"custom"])
|
||||
{
|
||||
[summary appendFormat:@" - Decomb (%@)", self.decombCustomString];
|
||||
}
|
||||
else
|
||||
{
|
||||
[summary appendFormat:@" - Decomb (%@)", [[[HBFilters decombPresetsDict] allKeysForObject:self.decomb] firstObject]];
|
||||
}
|
||||
}
|
||||
else if (![self.deinterlace isEqualToString:@"off"])
|
||||
{
|
||||
// Deinterlace
|
||||
if ([self.deinterlace isEqualToString:@"custom"])
|
||||
// Deinterlace or Decomb
|
||||
NSString *type = [[[HBFilters deinterlaceTypesDict] allKeysForObject:self.deinterlace] firstObject];
|
||||
|
||||
if ([self.deinterlacePreset isEqualToString:@"custom"])
|
||||
{
|
||||
[summary appendFormat:@" - Deinterlace (%@)", self.deinterlaceCustomString];
|
||||
[summary appendFormat:@" - %@ (%@)", type, self.deinterlaceCustomString];
|
||||
}
|
||||
else
|
||||
{
|
||||
[summary appendFormat:@" - Deinterlace (%@)", [[[HBFilters deinterlacePresetsDict] allKeysForObject:self.deinterlace] firstObject]];
|
||||
if ([self.deinterlace isEqualToString:@"decomb"])
|
||||
{
|
||||
[summary appendFormat:@" - %@ (%@)", type, [[[HBFilters decombPresetsDict] allKeysForObject:self.deinterlacePreset] firstObject]];
|
||||
}
|
||||
else if ([self.deinterlace isEqualToString:@"deinterlace"])
|
||||
{
|
||||
[summary appendFormat:@" - %@ (%@)", type, [[[HBFilters deinterlacePresetsDict] allKeysForObject:self.deinterlacePreset] firstObject]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,14 +19,10 @@ extern NSString * const HBFiltersChangedNotification;
|
||||
@property (nonatomic, readwrite, copy) NSString *detelecine;
|
||||
@property (nonatomic, readwrite, copy) NSString *detelecineCustomString;
|
||||
|
||||
@property (nonatomic, readwrite) BOOL useDecomb;
|
||||
|
||||
@property (nonatomic, readwrite, copy) NSString *deinterlace;
|
||||
@property (nonatomic, readwrite, copy) NSString *deinterlacePreset;
|
||||
@property (nonatomic, readwrite, copy) NSString *deinterlaceCustomString;
|
||||
|
||||
@property (nonatomic, readwrite, copy) NSString *decomb;
|
||||
@property (nonatomic, readwrite, copy) NSString *decombCustomString;
|
||||
|
||||
@property (nonatomic, readwrite, copy) NSString *denoise;
|
||||
@property (nonatomic, readwrite, copy) NSString *denoisePreset;
|
||||
@property (nonatomic, readwrite, copy) NSString *denoiseTune;
|
||||
|
@ -27,8 +27,7 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
_detelecineCustomString = @"";
|
||||
_deinterlace = @"off";
|
||||
_deinterlaceCustomString = @"";
|
||||
_decomb = @"off";
|
||||
_decombCustomString = @"";
|
||||
_deinterlacePreset = @"fast";
|
||||
_denoise = @"off";
|
||||
_denoiseCustomString = @"";
|
||||
_denoisePreset = @"medium";
|
||||
@ -89,9 +88,40 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
{
|
||||
_deinterlace = @"off";
|
||||
}
|
||||
[self validateDeinterlacePreset];
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)setDeinterlacePreset:(NSString *)deinterlacePreset
|
||||
{
|
||||
if (deinterlacePreset)
|
||||
{
|
||||
_deinterlacePreset = [deinterlacePreset copy];
|
||||
}
|
||||
else
|
||||
{
|
||||
_deinterlacePreset = @"fast";
|
||||
}
|
||||
|
||||
[self validateDeinterlacePreset];
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)validateDeinterlacePreset
|
||||
{
|
||||
int filter_id = HB_FILTER_DECOMB;
|
||||
if ([self.deinterlace isEqualToString:@"deinterlace"])
|
||||
{
|
||||
filter_id = HB_FILTER_DEINTERLACE;
|
||||
}
|
||||
|
||||
if (hb_validate_filter_preset(filter_id, self.deinterlacePreset.UTF8String, NULL) ||
|
||||
([self.deinterlacePreset isEqualToString:@"default"] && filter_id == HB_FILTER_DEINTERLACE))
|
||||
{
|
||||
_deinterlacePreset = @"fast";
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setDeinterlaceCustomString:(NSString *)deinterlaceCustomString
|
||||
{
|
||||
if (deinterlaceCustomString)
|
||||
@ -106,33 +136,6 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)setDecomb:(NSString *)decomb
|
||||
{
|
||||
if (decomb)
|
||||
{
|
||||
_decomb = [decomb copy];
|
||||
}
|
||||
else
|
||||
{
|
||||
_decomb = @"off";
|
||||
}
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)setDecombCustomString:(NSString *)decombCustomString
|
||||
{
|
||||
if (decombCustomString)
|
||||
{
|
||||
_decombCustomString = [decombCustomString copy];
|
||||
}
|
||||
else
|
||||
{
|
||||
_decombCustomString = @"";
|
||||
}
|
||||
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)setDenoise:(NSString *)denoise
|
||||
{
|
||||
if (denoise)
|
||||
@ -141,7 +144,7 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
}
|
||||
else
|
||||
{
|
||||
_denoise = @"";
|
||||
_denoise = @"off";
|
||||
}
|
||||
|
||||
[self postChangedNotification];
|
||||
@ -201,25 +204,18 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
- (void)setUseDecomb:(BOOL)useDecomb
|
||||
{
|
||||
_useDecomb = useDecomb;
|
||||
[self postChangedNotification];
|
||||
}
|
||||
|
||||
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
|
||||
{
|
||||
NSSet *retval = nil;
|
||||
|
||||
if ([key isEqualToString:@"summary"])
|
||||
{
|
||||
retval = [NSSet setWithObjects:@"detelecine", @"detelecineCustomString", @"useDecomb", @"deinterlace", @"deinterlaceCustomString", @"decomb", @"decombCustomString", @"denoise", @"denoisePreset", @"denoiseTune", @"denoiseCustomString", @"deblock", @"grayscale", nil];
|
||||
retval = [NSSet setWithObjects:@"detelecine", @"detelecineCustomString", @"deinterlace", @"deinterlacePreset", @"deinterlaceCustomString", @"denoise", @"denoisePreset", @"denoiseTune", @"denoiseCustomString", @"deblock", @"grayscale", nil];
|
||||
}
|
||||
if ([key isEqualToString:@"customDetelecineSelected"] ||
|
||||
[key isEqualToString:@"customDecombSelected"] ||
|
||||
[key isEqualToString:@"customDeinterlaceSelected"])
|
||||
{
|
||||
retval = [NSSet setWithObjects:@"detelecine", @"decomb", @"deinterlace", @"useDecomb", nil];
|
||||
retval = [NSSet setWithObjects:@"detelecine", @"deinterlace", nil];
|
||||
}
|
||||
if ([key isEqualToString:@"denoiseTunesAvailable"] ||
|
||||
[key isEqualToString:@"customDenoiseSelected"])
|
||||
@ -230,6 +226,15 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
{
|
||||
retval = [NSSet setWithObject:@"denoise"];
|
||||
}
|
||||
if ([key isEqualToString:@"deinterlaceEnabled"])
|
||||
{
|
||||
retval = [NSSet setWithObject:@"deinterlace"];
|
||||
}
|
||||
if ([key isEqualToString:@"customDeinterlaceSelected"] ||
|
||||
[key isEqualToString:@"deinterlacePresets"])
|
||||
{
|
||||
retval = [NSSet setWithObjects:@"deinterlace", @"deinterlacePreset", nil];
|
||||
}
|
||||
if ([key isEqualToString:@"deblockSummary"])
|
||||
{
|
||||
retval = [NSSet setWithObject:@"deblock"];
|
||||
@ -250,11 +255,9 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
copy->_detelecineCustomString = [_detelecineCustomString copy];
|
||||
|
||||
copy->_deinterlace = [_deinterlace copy];
|
||||
copy->_deinterlacePreset = [_deinterlacePreset copy];
|
||||
copy->_deinterlaceCustomString = [_deinterlaceCustomString copy];
|
||||
|
||||
copy->_decomb = [_decomb copy];
|
||||
copy->_decombCustomString = [_decombCustomString copy];
|
||||
|
||||
copy->_denoise = [_denoise copy];
|
||||
copy->_denoisePreset = [_denoisePreset copy];
|
||||
copy->_denoiseTune = [_denoiseTune copy];
|
||||
@ -262,8 +265,6 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
|
||||
copy->_deblock = _deblock;
|
||||
copy->_grayscale = _grayscale;
|
||||
|
||||
copy->_useDecomb = _useDecomb;
|
||||
}
|
||||
|
||||
return copy;
|
||||
@ -278,17 +279,15 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
[coder encodeInt:1 forKey:@"HBFiltersVersion"];
|
||||
[coder encodeInt:2 forKey:@"HBFiltersVersion"];
|
||||
|
||||
encodeObject(_detelecine);
|
||||
encodeObject(_detelecineCustomString);
|
||||
|
||||
encodeObject(_deinterlace);
|
||||
encodeObject(_deinterlacePreset);
|
||||
encodeObject(_deinterlaceCustomString);
|
||||
|
||||
encodeObject(_decomb);
|
||||
encodeObject(_decombCustomString);
|
||||
|
||||
encodeObject(_denoise);
|
||||
encodeObject(_denoisePreset);
|
||||
encodeObject(_denoiseTune);
|
||||
@ -296,8 +295,6 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
|
||||
encodeInt(_deblock);
|
||||
encodeBool(_grayscale);
|
||||
|
||||
encodeBool(_useDecomb);
|
||||
}
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)decoder
|
||||
@ -308,11 +305,9 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
decodeObject(_detelecineCustomString, NSString);
|
||||
|
||||
decodeObject(_deinterlace, NSString);
|
||||
decodeObject(_deinterlacePreset, NSString)
|
||||
decodeObject(_deinterlaceCustomString, NSString);
|
||||
|
||||
decodeObject(_decomb, NSString);
|
||||
decodeObject(_decombCustomString, NSString);
|
||||
|
||||
decodeObject(_denoise, NSString);
|
||||
decodeObject(_denoisePreset, NSString);
|
||||
decodeObject(_denoiseTune, NSString);
|
||||
@ -321,8 +316,6 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
decodeInt(_deblock);
|
||||
decodeBool(_grayscale);
|
||||
|
||||
decodeBool(_useDecomb);
|
||||
|
||||
_notificationsEnabled = YES;
|
||||
|
||||
return self;
|
||||
@ -332,14 +325,10 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
|
||||
- (void)writeToPreset:(NSMutableDictionary *)preset
|
||||
{
|
||||
preset[@"PictureDecombDeinterlace"] = @(self.useDecomb);
|
||||
|
||||
preset[@"PictureDeinterlace"] = self.deinterlace;
|
||||
preset[@"PictureDeinterlaceFilter"] = self.deinterlace;
|
||||
preset[@"PictureDeinterlacePreset"] = self.deinterlacePreset;
|
||||
preset[@"PictureDeinterlaceCustom"] = self.deinterlaceCustomString;
|
||||
|
||||
preset[@"PictureDecomb"] = self.decomb;
|
||||
preset[@"PictureDecombCustom"] = self.decombCustomString;
|
||||
|
||||
preset[@"PictureDetelecine"] = self.detelecine;
|
||||
preset[@"PictureDetelecineCustom"] = self.detelecineCustomString;
|
||||
|
||||
@ -359,16 +348,12 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
|
||||
// If the preset has an objectForKey:@"UsesPictureFilters", and handle the filters here
|
||||
if ([preset[@"UsesPictureFilters"] boolValue])
|
||||
{
|
||||
// We only allow *either* Decomb or Deinterlace. So check for the PictureDecombDeinterlace key.
|
||||
self.useDecomb = [preset[@"PictureDecombDeinterlace"] boolValue];
|
||||
|
||||
self.decomb = preset[@"PictureDecomb"];
|
||||
self.decombCustomString = preset[@"PictureDecombCustom"];
|
||||
|
||||
self.deinterlace = preset[@"PictureDeinterlace"];
|
||||
// Deinterlace
|
||||
self.deinterlace = preset[@"PictureDeinterlaceFilter"];
|
||||
self.deinterlacePreset = preset[@"PictureDeinterlacePreset"];
|
||||
self.deinterlaceCustomString = preset[@"PictureDeinterlaceCustom"];
|
||||
|
||||
//Detelecine
|
||||
// Detelecine
|
||||
self.detelecine = preset[@"PictureDetelecine"];
|
||||
self.detelecineCustomString = preset[@"PictureDetelecineCustom"];
|
||||
|
||||
|
@ -429,22 +429,17 @@
|
||||
hb_add_filter(job, filter, filter_str);
|
||||
}
|
||||
|
||||
if (self.filters.useDecomb && ![self.filters.decomb isEqualToString:@"off"])
|
||||
// Deinterlace
|
||||
if (![self.filters.deinterlace isEqualToString:@"off"])
|
||||
{
|
||||
// Decomb
|
||||
int filter_id = HB_FILTER_DECOMB;
|
||||
if ([self.filters.deinterlace isEqualToString:@"deinterlace"])
|
||||
{
|
||||
filter_id = HB_FILTER_DEINTERLACE;
|
||||
}
|
||||
|
||||
const char *filter_str = hb_generate_filter_settings(filter_id,
|
||||
self.filters.decomb.UTF8String,
|
||||
self.filters.decombCustomString.UTF8String);
|
||||
filter = hb_filter_init(filter_id);
|
||||
hb_add_filter(job, filter, filter_str);
|
||||
}
|
||||
else if (!self.filters.useDecomb && ![self.filters.deinterlace isEqualToString:@"off"])
|
||||
{
|
||||
// Deinterlace
|
||||
int filter_id = HB_FILTER_DEINTERLACE;
|
||||
const char *filter_str = hb_generate_filter_settings(filter_id,
|
||||
self.filters.deinterlace.UTF8String,
|
||||
self.filters.deinterlacePreset.UTF8String,
|
||||
self.filters.deinterlaceCustomString.UTF8String);
|
||||
filter = hb_filter_init(filter_id);
|
||||
hb_add_filter(job, filter, filter_str);
|
||||
|
@ -185,7 +185,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
[coder encodeInt:1 forKey:@"HBVideoVersion"];
|
||||
[coder encodeInt:1 forKey:@"HBJobVersion"];
|
||||
|
||||
encodeInt(_state);
|
||||
encodeObject(_name);
|
||||
@ -215,7 +215,7 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)decoder
|
||||
{
|
||||
int version = [decoder decodeIntForKey:@"HBVideoVersion"];
|
||||
int version = [decoder decodeIntForKey:@"HBJobVersion"];
|
||||
|
||||
if (version == 1 && (self = [super init]))
|
||||
{
|
||||
|
@ -76,8 +76,7 @@
|
||||
if (!theImage)
|
||||
{
|
||||
HBFilters *filters = self.job.filters;
|
||||
BOOL deinterlace = (![filters.deinterlace isEqualToString:@"off"] && !filters.useDecomb) ||
|
||||
(![filters.decomb isEqualToString:@"off"] && filters.useDecomb);
|
||||
BOOL deinterlace = (![filters.deinterlace isEqualToString:@"off"]);
|
||||
|
||||
theImage = (CGImageRef)[self.scanCore copyImageAtIndex:index
|
||||
forTitle:self.job.title
|
||||
|
Loading…
x
Reference in New Issue
Block a user