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

Feature: realtime player #18

Closed
14 of 20 tasks
pozitronik opened this issue Jul 11, 2023 · 7 comments
Closed
14 of 20 tasks

Feature: realtime player #18

pozitronik opened this issue Jul 11, 2023 · 7 comments
Assignees
Labels
feature New feature or request GUI
Milestone

Comments

@pozitronik
Copy link
Owner

pozitronik commented Jul 11, 2023

In GUI mode do a realtime player: get frames and the sound from the target, do in-memory frames swap (may be with some buffering) or any other possible operation, and play the result. Also add quality presets: to improve processing speed, frames can be shrunken before processing, and restored in size after.
Also it may be possible to enable frame drop: render as many frames as possible, and just drop any other.

  • when wrong path is passed as source, gui produces an unhandled error
  • GUI won't start without a provided target
  • add quality control to change processing image scale on the fly. Also show last/median frame processing time
  • use pygame.display to show rendered frame as fast, as possible
  • implement pygame display resize stuff
  • Do not resize display on input frame change, resize the frame instead
  • combine with WebCam module, there's no need to multiply entities
  • fix/check behavior with image target
  • add a pause button to stop player only (continue background buffering) there's no need due the current design
  • add frame rotation controls
  • fix issue with long processing restart on position change
  • move bootstrap_frames() to a background thread, to not to block program. Get frames right from target, if they are not bootstrapped.
  • Remember and restore previous windows positions on the screen
  • Add "stay on top" control/option
  • Move frames extracting to the separate thread (make another queue). The experiment was unsuccessful: there's no profit to buffer all frames, because the next required frame index is unknown, while playing. The feature is postponed.
  • fix the issue with broken frame navigation while playing
  • need to try to implement new control to edit frame processors set and order
  • show gui progressbar on long operations (buffering, extracting, etc)
  • sound
  • documentation

Known issues:

  • The PygameFramePlayer may not refresh when showing frame while playing (e.g. shows two frames at same time)
@pozitronik pozitronik added the feature New feature or request label Jul 11, 2023
@pozitronik pozitronik self-assigned this Jul 11, 2023
@pozitronik pozitronik added the GUI label Jul 15, 2023
@pozitronik pozitronik added this to the R02 milestone Aug 19, 2023
@pozitronik
Copy link
Owner Author

This task requires #66

@pozitronik
Copy link
Owner Author

pozitronik commented Oct 14, 2023

Done as a part of WebCam module. Now i need to implement it in the GUI module.

@pozitronik
Copy link
Owner Author

todo: when wrong path is passed as source, gui produces an unhandled error

pozitronik added a commit that referenced this issue Oct 18, 2023
Seems to be unused
pozitronik added a commit that referenced this issue Oct 18, 2023
Move WebCam module to own namespace and split into classes
pozitronik added a commit that referenced this issue Oct 18, 2023
Live preview basic implementation
pozitronik added a commit that referenced this issue Oct 18, 2023
Fixes for live preview
@pozitronik
Copy link
Owner Author

todo: GUI won't start without a provided target

@pozitronik
Copy link
Owner Author

todo: add quality control to change processing image scale on the fly. Also show last/median frame processing time.

pozitronik added a commit that referenced this issue Oct 19, 2023
Stub code for lilve preview feature
pozitronik added a commit that referenced this issue Oct 19, 2023
Multithreading stub code for live preview feature
pozitronik added a commit that referenced this issue Oct 19, 2023
Start to split GUI code to view-model
pozitronik added a commit that referenced this issue Oct 19, 2023
Move variables from the view to the model
pozitronik added a commit that referenced this issue Oct 19, 2023
Move variables from the view to the model.
Begin to implement event handlers approach in the view.
pozitronik added a commit that referenced this issue Oct 19, 2023
Move controls to an own namespace
pozitronik added a commit that referenced this issue Oct 19, 2023
The own canvas control
pozitronik added a commit that referenced this issue Oct 19, 2023
Split code
pozitronik added a commit that referenced this issue Oct 19, 2023
Add a method to show raw frame
pozitronik added a commit that referenced this issue Oct 19, 2023
NavigateSlider control
pozitronik added a commit that referenced this issue Oct 19, 2023
Modify show_frame() to use it as a resize method too.
Add save_to_file() and adjust_size() methods
pozitronik added a commit that referenced this issue Oct 19, 2023
Change GUI call signature
pozitronik added a commit that referenced this issue Oct 19, 2023
add the position property
pozitronik added a commit that referenced this issue Oct 19, 2023
Clear form code from model logic code
pozitronik added a commit that referenced this issue Nov 7, 2023
fix: draw a frame only if a frame present
pozitronik added a commit that referenced this issue Nov 7, 2023
Change adjust_size() logic to make it more understandable
pozitronik added a commit that referenced this issue Nov 7, 2023
fix resolution() method
pozitronik added a commit that referenced this issue Nov 7, 2023
FrameTimeLine redesigned to make its usage more clear
pozitronik added a commit that referenced this issue Nov 7, 2023
unused code
pozitronik added a commit that referenced this issue Nov 7, 2023
Move player surface object to the player model -> decreasing code complexity
pozitronik added a commit that referenced this issue Nov 7, 2023
Full rework of progress bars
pozitronik added a commit that referenced this issue Nov 7, 2023
Remove obsolete code
pozitronik added a commit that referenced this issue Nov 7, 2023
Remove obsolete code
pozitronik added a commit that referenced this issue Nov 7, 2023
Do not bring player window to front every time
pozitronik added a commit that referenced this issue Nov 7, 2023
has_frame() shortcut
pozitronik added a commit that referenced this issue Nov 7, 2023
todos added
pozitronik added a commit that referenced this issue Nov 7, 2023
Remove buffering progress bar on buffering stop
pozitronik added a commit that referenced this issue Nov 7, 2023
test fixed
pozitronik added a commit that referenced this issue Nov 7, 2023
unused classes removed
pozitronik added a commit that referenced this issue Nov 7, 2023
Type annotations fixed
pozitronik added a commit that referenced this issue Nov 7, 2023
adjust_size() fixed
pozitronik added a commit that referenced this issue Nov 7, 2023
Add pygame to CI
pozitronik added a commit that referenced this issue Nov 7, 2023
Ignore mypy platform issues
pozitronik added a commit that referenced this issue Nov 7, 2023
Add CI debug
pozitronik added a commit that referenced this issue Nov 7, 2023
Ignore for now
pozitronik added a commit that referenced this issue Nov 7, 2023
CI debug
pozitronik added a commit that referenced this issue Nov 7, 2023
unused
pozitronik added a commit that referenced this issue Nov 7, 2023
Always create path to a file
pozitronik added a commit that referenced this issue Nov 7, 2023
replace suggest_temp_dir() method with the improved one from the master branch
pozitronik added a commit that referenced this issue Nov 7, 2023
use helper method
pozitronik added a commit that referenced this issue Nov 7, 2023
Add paths normalization
pozitronik added a commit that referenced this issue Nov 7, 2023
Add GUIForm model to documenter
@pozitronik pozitronik unpinned this issue Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request GUI
Projects
None yet
Development

No branches or pull requests

1 participant