Difference between revisions of "Filter Wizard"
m (→Add/Remove/Reorder Layout) |
m (→Layout) |
||
Line 78: | Line 78: | ||
** '''Default''': 1 | ** '''Default''': 1 | ||
=== Layout === | === Layout === | ||
+ | <pre><nowiki> | ||
+ | Screen: | ||
+ | |----------------------------------------------| | ||
+ | | Filters->Crop | | ||
+ | | | | ||
+ | | Top: |----------------|^ | | ||
+ | | |----------------|v | | ||
+ | | | | ||
+ | | Bottom: |----------------|^ | | ||
+ | | |----------------|v | | ||
+ | | | | ||
+ | | Left: |----------------|^ | | ||
+ | | |----------------|v | | ||
+ | | | | ||
+ | | Right: |----------------|^ | | ||
+ | | |----------------|v | | ||
+ | |----------------------------------------------| | ||
+ | | <parameter descriptions> | | ||
+ | | | | ||
+ | |----------------------------------------------| | ||
+ | | Cancel | | Done | | ||
+ | |----------------------------------------------| | ||
+ | </nowiki></pre> | ||
+ | |||
== kerneldeint GUI == | == kerneldeint GUI == | ||
=== Inputs === | === Inputs === |
Revision as of 01:44, 20 February 2007
This is a feature request for a Filter Wizard or GUI for selecting and applying filters to recordings.
Contents
Background
The functionality to apply filters to recordings already exists in the transcoders profiles, but currently this method is not very user friendly (its just an argument string). Filters can also be applied in the same way on a per channel basis during recording or playback. There is some discussion on the developer mailing list of adding a GUI for filters in the future, but nothing recent. Section 10.4 in the user manual describes the currently available filters.
Developer Threads
Proposed Solution
Add/Remove/Reorder GUI
This would be similar to the Recording Profiles setup screen that would contain a list of applied filters and an (add new filter) item at the bottom. Pressing the arrow key or the menu key would bring up a menu with the options to move the selected filter up in the list (to be applied earlier in the chain), down in the list, or to remove it. Selecting (add new filter) would bring up a new screen with a list of the available filters. Each of these items would then bring up a wizard to walk the user through inputing the required parameters of the filter. Initially, as a test, instead of bringing up the wizard, the selected filter can be added to the chain with the default values.
Add/Remove/Reorder Layout
Screen: Popup Menu: |----------------------------------------------| |---------------| | Filter Chain | | |-----------| | | |------------------------------------------| | | | Move Up | | | | User Filter 1 | | | |-----------| | | | ... | | | |-----------| | | | User Filter N | | | | Move Down | | | | (Add New Filter) | | | |-----------| | | | | | | |-----------| | | | | | | | Remove | | | | | | | |-----------| | | | | | |---------------| | | | | | | | | | | | | | | | | | | | | | | | | | |------------------------------------------| | |----------------------------------------------|
Filter Selection Layout
Screen: |----------------------------------------------| | Filters | | |------------------------------------------| | | | Adjust | | | | Bobdeint | | | | Crop | | | | Denoise3d | | | | Forceyuv422p | | | | Forceyv12 | | | | Invert | | | | Kerneldeint | | | | Onefield | | | | Quickdnr | | | | | | | | | | | | | | | | | | | |------------------------------------------| | |----------------------------------------------|
crop GUI
Inputs
- Top:
- Description: (16 x value) rows of pixels on the top are set to black.
- Default: 1
- Type: Integer
- Bottom:
- Description: (16 x value) rows of pixels on the bottom are set to black.
- Type: Integer
- Default: 1
- Left
- Description: (16 x value) rows of pixels on the left are set to black.
- Type: Integer
- Default: 1
- Right
- Description: (16 x value) rows of pixels on the right are set to black.
- Type: Integer
- Default: 1
Layout
Screen: |----------------------------------------------| | Filters->Crop | | | | Top: |----------------|^ | | |----------------|v | | | | Bottom: |----------------|^ | | |----------------|v | | | | Left: |----------------|^ | | |----------------|v | | | | Right: |----------------|^ | | |----------------|v | |----------------------------------------------| | <parameter descriptions> | | | |----------------------------------------------| | Cancel | | Done | |----------------------------------------------|
kerneldeint GUI
Inputs
- Filter Threshold:
- Description: Adjacent lines differing by more than the threshold value are filtered.
- Type: Integer
- Default: 12
- Skip Chroma:
- Description: If non-zero then filter only luminance.
- Type: Integer
- Default: 0
Layout
denoise3d GUI
Inputs
- Luma Spatial Filter Strength:
- Type: Float
- Default: nil
- Chroma Spatial Filter Strength:
- Type: Float
- Default: nil
- Luma Temporal Filter Strength:
- Type: Float
- Default: nil
Layout
quickdnr GUI
Inputs
- Luma Threshold 1:
- Type: Integer
- Range: 0 - 255
- Default: nil
- Luma Threshold 2:
- Type: Integer
- Range: 0 - 255
- Default: nil
- Chroma Threshold 1:
- Type: Integer
- Range: 0 - 255
- Default: nil
- Chroma Threshold 2:
- Type: Integer
- Range: 0 - 255
- Default: nil
Layout
onefield GUI
Inputs
- Field:
- Description: If set to bottom the bottom field will be kept instead of the top.
- Type: String
Layout
adjust GUI
This filter is automatically applied to bttv recordings if not already specified in the filter chain. A single -1 parameter disables the filter.
Inputs
- Luma Minimum Input Value:
- Type: Integer
- Default: 16
- Luma Maximum Input Value:
- Type: Integer
- Default: 253
- Luma Gamma Correction:
- Type: Float
- Default: 1
- Chroma Minimum Input Value:
- Type: Integer
- Default: 2
- Chroma Maximum Input Value:
- Type: Integer
- Default: 253
- Chroma Gamma Correction:
- Type: Float
- Default: 1
Layout
Issues
Parameter Storage
Currently all the filter parameters for a given trascoding profile or channel are stored as strings in the database. The transoder profile filter strings are stored in the codecparams table and the channel filter strings are stored in the channel table as either videofilters or outputfilters. Concatenating all of the filter parameters into a single string like is currently done will not be well suited for a GUI. While it would be possible to parse the filter strings in their current form into a list structure in memory, a cleaner approach would probably be to store the filter parameters in a more accessible way in the database.
Input Validation
Some filters may need to be applied in a specific order to work correctly. The current system of applying filters allows the user to create any chain an assumes they know what they are doing. Should the new interface restrict the user to orderings that make sense? If the only valid position for forceyuv422p is at the beginning of the chain then should the interface force it to the top?