Skip to content

Add cover art option in export settings#1797

Merged
ddennedy merged 6 commits intomasterfrom
attached_pic
Mar 20, 2026
Merged

Add cover art option in export settings#1797
ddennedy merged 6 commits intomasterfrom
attached_pic

Conversation

@bmatherly
Copy link
Member

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a “Cover Art” picker to the Encode dock UI and wires it into preset load/save so an image path can be persisted via the attached_pic consumer property.

Changes:

  • Add Cover Art label + path field + browse button to the Encode “Other” tab UI.
  • Load attached_pic into the new field when a preset is selected, and emit it back into collected properties during export.
  • Implement the browse button slot to select an image file and update the stored open path.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
src/docks/encodedock.ui Adds Cover Art UI controls (label, line edit, browse button) to the “Other” tab.
src/docks/encodedock.h Declares the new auto-connected slot for the Cover Art browse button.
src/docks/encodedock.cpp Clears/loads attached_pic, sets it during property collection, and implements the file picker slot.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@bmatherly
Copy link
Member Author

Here is a screenshot of the advanced export "Other" tab with the cover art selection added
image

Copy link
Member

@ddennedy ddennedy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hide the new UI element if MLT version is not sufficient at build time. Require at least 7.37.0 not future version 7.38.0. (If someone is building against an old git master of the never released version 7.37 that is their problem.)

Also, consider to add a new tab named "Metadata" that would contain this as well as other fields:
https://forum.shotcut.org/t/embedding-metadata-into-exports/14806

In the future it will have an option to embed chapter marks (similar behavior for selection as File > Export > Markers as Chapters)

@bmatherly
Copy link
Member Author

Hide the new UI element if MLT version is not sufficient at build time. Require at least 7.37.0

Done

Also, consider to add a new tab named "Metadata" that would contain this as well as other fields

Done. I also implemented the fields documented in the Documentation.

I also put the "Disable Subtitles" option in that tab.

image

Discussion:

  • What do you think about the "Cover Art" label? Should we all it something else?
  • I wonder if we should invert the "Disable Subtitles" option so that it is "Enable Subtitles" and checked by default.

@ddennedy
Copy link
Member

* What do you think about the "Cover Art" label? 

That's fine

* I wonder if we should invert the "Disable Subtitles" option so that it is "Enable Subtitles" and checked by default.

Disable is consistent with Disable video and Disable audio

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Metadata tab to Shotcut’s Export/Encode dock to let users set common container metadata and (when supported by libmlt) pick an image to embed as cover art.

Changes:

  • Adds a new “Metadata” tab to the export UI, including a cover art picker and fields for common tags (title/artist/comment/copyright/date/description/genre/language).
  • Loads/saves these values through MLT preset properties (meta.attr.*.markup, attached_pic, and alang) during preset load and export property collection.
  • Adds basic input validation for date (ISO-8601 YYYY-MM-DD) and language (3-letter code), and hides cover art controls on older libmlt versions.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
src/docks/encodedock.ui Adds the Metadata tab UI (cover art + metadata fields) and updates tab order / moves “Disable subtitles” into Metadata.
src/docks/encodedock.h Declares the new on_coverArtButton_clicked() slot.
src/docks/encodedock.cpp Implements metadata load/save, validators, libmlt-version UI gating, and the cover art file picker dialog.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bmatherly
Copy link
Member Author

I think this is OK to merge.

A couple of notes:
In the VLC Media Info tab, the date is only displayed as a year. I don't really know if this is normal. But it appears as a standard ISO date in FFProbe.

In the VLC Media Info tab, the copyright is not shown for MP4 files (it is shown for MP3 and MKV). I was able to add some custom fields using com.apple.date and some MOV info tags to make it appear. But the tricks make the code really ugly, and I do not think it is worth it.

@ddennedy ddennedy added this to the v26.4 milestone Mar 20, 2026
@ddennedy ddennedy merged commit 135d2d1 into master Mar 20, 2026
2 checks passed
@ddennedy ddennedy deleted the attached_pic branch March 20, 2026 04:36
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.

3 participants