Development/Summer of Code/2022/Picard

From MusicBrainz Wiki
Jump to navigationJump to search

MusicBrainz Picard


Add options for cover art processing

Proposed Mentors: outsidecontext / zas
Languages/skills: Python / Image processing
Estimated Project Length: 350 hours

Picard should allow to post process cover art images provided by the providers. For this there could be provider independent options to restrict image sizes, resize images if it exceeds a maximum allowed size or automatic format conversion.

This project would entail the following components:

  1. Evaluate the suggested components for image processing and choose the best fit
  2. Add the necessary options UI to allow the user to configure the image processing
  3. Implement the image processing for resizing and format selection
  4. Implement a image post processing plugin hook to allow plugins to do additional image manipulations

Related ticket Add cover art image processing

Allow Picard to be run as single instance application

Proposed Mentors: zas / outsidecontext
Languages/skills: Python
Estimated Project Length: 350 hours

Currently launching Picard always opens a separate instance of Picard. This has the implication that opening a file with Picard on Windows or Linux will always launch a new Picard with only this file loaded. It would be preferable to allow opening the file in an existing instance.

In addition such a setup would allow us to better handle crashes of the main Picard process.

This project would entail the following components:

  1. Research for the best cross platform solution to handle single instance applications
  2. Implement a launcher, that opens a new Picard process if none exists.
  3. If a Picard process is already running, the launcher would pass all arguments to the existing process and raise the application window
  4. Handle crashes of the launched main process and show relevant crash details to the user
  5. Test the implementation on Windows and Linux.

Related ticket Option to open new command line requests in an existing instance, Display and log crash details