Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul frame props plugin #182

Merged
merged 12 commits into from
Sep 30, 2024
Merged

Overhaul frame props plugin #182

merged 12 commits into from
Sep 30, 2024

Conversation

LightArrowsEXE
Copy link
Member

@LightArrowsEXE LightArrowsEXE commented Sep 8, 2024

This PR adds the following:

  • Categorisation (see here)
  • Dynamically add tables if any props of the corresponding category are found
  • Add some special handling for props from common plugins/JET functions
  • Separate all the LUTs and the like to their own files for easier modifying and a better oversight
  • "Prettified" is default now. Switch instead asks if the user wants to see the raw data
  • General refactoring
  • Prop sorting (reserved props always up top)
  • Double-click to copy the value of the selected row
  • Strips prop keys/values in the prettify window
  • Handle lambdas in prop prettifier function for more specialised outputs

Screenshots:

image
image

Categories and props

The following categories were added, and these props get sorted into them automatically:

Video

For the most part clip-wide properties that shouldn't change (much) per frame

  • '_Matrix', '_Transfer', '_Primaries'
  • '_ChromaLocation', '_ColorRange'
  • '_DurationNum', '_DurationDen', '_AbsoluteTime'
  • '_SARNum', '_SARDen'
  • '_FieldBased' (still considering moving this or adding a check to see if it's progressive or TFF/BFF and assigning it based on that)
  • '_FrameNumber'
  • '_Alpha'
  • 'Name'
  • 'idx_filepath' (vssource)

Metrics

Generic metrics, such as from PlaneStats or SceneChange detection plugins

  • 'PlaneStats*', 'psm*', 'VFMPlaneStats*' (vs-zip, VIVTC)
  • '_SceneChangeNext', '_SceneChangePrev', 'SceneChange' (wwxd, scxvid)
  • 'MMetrics', 'VMetrics' (dmetrics)
  • 'dgi_*' (vssource's DGIndex)
  • 'AutoBalance*' (stgfunc)
  • 'pkt_*' (lvsfunc, possibly vstools in the future?)
  • 'psnr_', '_ssim', 'ciede2000' (VMAF)
  • '_SIMULACRA2' (ssimulacra2)

Field

Direct IVTC/deinterlacing-related props

  • '_Combed', '_Field'
  • 'VFM*', 'VDecimate*' (VIVTC)
  • 'TFM*', 'TDecimate*' (TIVTC)
  • 'wobbly_*' (lvsfunc, possibly vsdeinterlace in the future?)

Other

Anything else that doesn't get caught by the filters.

Prettified props:

The following props get prettified:

Basic

  • '_Combed' => 'Is Combed': 'Yes'/'No'
  • '_Field' => 'Frame Field Type': 'Bottom Field'/'Top Field'
  • '_SceneChangeNext' => 'Scene Cut': 'Curent Scene'/'End of Scene'
  • '_SceneChangePrev' => 'Scene Change': 'Current Scene'/'Start of Scene'
  • 'idx_filepath' => 'Path to File': {value} (displayed as posix path)

VIVTC/TIVTC/dmetrics

  • 'VFMMics'/'TFMMics' => 'VFM Mics'/'TFM Mics': 'x | y | z | a |b' (display 'N/A' if < 0)
  • 'VFMMatch'/'TFMMatch' => 'VFM Match'/'TFM Match': x (any value between p, c, n, b, and u)
  • 'VFMSceneChange' => 'VFM Scene Start/End': 'No'/'Yes'
  • 'VDecimateDrop => 'VDecimate Drop Frame': 'No'/'Yes'
  • 'VDecimateMaxBlockDiff' => 'VDecimate Max Block Diff': {value}
  • 'VDecimateTotalDiff' => 'VDecimate Absolute Total Diff': {value}
  • 'MMetrics' => 'DMetrics MMetrics': {value}
  • 'VMetrics' => 'DMetrics VMetrics': {value}

Packet Sizes

  • 'pkt_size' => 'Packet Size': {value} (display 'N/A' if < 0)
  • 'pkt_scene_avg_size' => 'Packet Scene Average Size': {value} (display 'N/A' if < 0)
  • 'pkt_scene_min_size' => 'Packet Scene Minimum Size': {value} (display 'N/A' if < 0)
  • 'pkt_scene_max_size' => 'Packet Scene Maximum Size': {value} (display 'N/A' if < 0)

Adding the rest later...

@Setsugennoao
Copy link
Member

i'd also make it possible to show VideoFrame at this point

@LightArrowsEXE
Copy link
Member Author

I really like that idea, but I'm not sure I'll do that as part of this PR.

@LightArrowsEXE
Copy link
Member Author

If there's no qualms about this PR besides the videoframe pop-out thing (which can easily be moved to a different PR), I'll be merging this in the following days.

@LightArrowsEXE LightArrowsEXE merged commit 71a8e05 into master Sep 30, 2024
2 checks passed
@LightArrowsEXE LightArrowsEXE deleted the props-plugin branch September 30, 2024 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants