INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: HEIC Image Tags  (Read 501 times)

Matthew1968

  • Recent member
  • *
  • Posts: 10
HEIC Image Tags
« on: April 07, 2025, 03:16:59 pm »

Hello all,

I've found that MC won't update tags for heic files. These files are straight off an iPhone 3rd gen SE, nothing complicated. When I click Library Tools -> Update Tags (from Library), it simply reports that this failed, and indeed the tags are not in the file.

I've tried this in both MC29 and now MC33.

Update Tags works just fine for JPEGs. If I use MC to convert the HEIC file to JPEG format, tag updates works just fine. All other aspects of HEIC image handling (opening, reading phote date/time from the HEIC file) seem OK.

I've searched t'web for clues, nothing helpful that I've seen. Most results for MC seems to simply be the release notes suggesting HEIC image format is properly supported.

Anyone else having similar problems?

Thanks in advance!
Logged

Yaobing

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 11002
  • Dogs of the world unite!
Re: HEIC Image Tags
« Reply #1 on: April 08, 2025, 10:51:51 am »

Tag saving for heic/heif files was added in build 33.0.17:

Quote
33.0.17 (8/29/2024)

4. NEW: Metadata will be saved to XMP block in HEIF/HEIC images.

Which tag(s) did you try to edit?
Logged
Yaobing Deng, JRiver Media Center

Yaobing

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 11002
  • Dogs of the world unite!
Re: HEIC Image Tags
« Reply #2 on: April 08, 2025, 11:19:43 am »

Was your image write-protected?
Logged
Yaobing Deng, JRiver Media Center

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #3 on: April 08, 2025, 12:17:03 pm »

Tag saving for heic/heif files was added in build 33.0.17:

Which tag(s) did you try to edit?

Hello,

The tags I've tried to edit are Album, Places, and People.

I should have added that I'm on 33.0.71!
Logged

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #4 on: April 08, 2025, 12:19:06 pm »

Was your image write-protected?

No, it's not write protected! (that would have been embarassing!)
Logged

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #5 on: April 08, 2025, 12:28:10 pm »

Tag saving for heic/heif files was added in build 33.0.17:

Which tag(s) did you try to edit?

I've turned on logging, and the following is showing up in the log file:

Code: [Select]

0388134: 8744: Database: CTagSaveInfo::GetSupportsTag: tagging of file D:\UserFiles\2025.03.28 16.14.12.heic is not supported.  local 1, cue file 0, media type Image DBLocation 3

Logged

Yaobing

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 11002
  • Dogs of the world unite!
Re: HEIC Image Tags
« Reply #6 on: April 08, 2025, 03:49:51 pm »

I figured it out. There is indeed a problem.,

For now, you have a work-around:

Tools > Options > General > Importing & Tagging, set the following two options accordingly:

Sidecar tagging mode: Save in sidecar if internal tagging is not supported

Write to external sidecar files for media types: here you have four types - audio, video, data, image. Make sure Image is selected, along with any other types you choose.
Logged
Yaobing Deng, JRiver Media Center

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #7 on: April 09, 2025, 01:32:25 am »

I figured it out. There is indeed a problem.,

For now, you have a work-around:

Tools > Options > General > Importing & Tagging, set the following two options accordingly:

Sidecar tagging mode: Save in sidecar if internal tagging is not supported

Write to external sidecar files for media types: here you have four types - audio, video, data, image. Make sure Image is selected, along with any other types you choose.

Oh wow! I had no idea that external sidecars could be done for arbitrary file types!! I've seen them before for some video formats, but didn't know it could be turned on like this. That's an excellent work around and works just fine for what I need. Thank you very much  :)
Logged

Yaobing

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 11002
  • Dogs of the world unite!
Re: HEIC Image Tags
« Reply #8 on: April 09, 2025, 10:29:58 am »

You are welcome!
Logged
Yaobing Deng, JRiver Media Center

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #9 on: April 09, 2025, 01:21:46 pm »

I figured it out. There is indeed a problem.,

For now, you have a work-around:

Tools > Options > General > Importing & Tagging, set the following two options accordingly:

Sidecar tagging mode: Save in sidecar if internal tagging is not supported

Write to external sidecar files for media types: here you have four types - audio, video, data, image. Make sure Image is selected, along with any other types you choose.

Hmmm, strange things happening.

With the options set as you've indicated, I do not get a .xml sidecar file. Instead, it appears to be writing tags to the heic file itself. But, not all tags. It's putting in "Album" and "Person" Ok, but missing out "Places" (the file definitely has "Places" set in the library)!

I'm wondering if the lack of "Places" has anything to do with this page: https://wiki.jriver.com/index.php/Photo_Tagging , which states "MC saves IPTC tags, except for Places, to any JPEG it tags.". Mediatcenter puts "Places" in MJMD tags in JPEGs.

Here's the accompanying log activity:

Code: [Select]
0030306: 18628: Database: CTagSaveInfo::SaveTag: Start
0030307: 18628: Database: CTagSaveInfo::SaveTag: Tagging D:\UserFiles\2025.03.28 08.09.26.heic
0030307: 18628: Import: JRAnalyzer::Open: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Filename: D:\UserFiles\2025.03.28 08.09.26.heic
0030307: 18628: Import: JRAnalyzer::AddFile: Start
0030307: 18628: Import: JRAnalyzer::AddFile: Filename: D:\UserFiles\2025.03.28 08.09.26.heic
0030354: 18628: Import: JRAnalyzer::AddFileImage: Start
0030354: 18628: Import: JRAnalyzer::AddFileImage: Finish (0 ms)
0030354: 18628: Import: JRAnalyzer::AddFile: Finish (47 ms)
0030354: 18628: Import: JRAnalyzer::AddFile: Finish (47 ms)
0030354: 18628: Import: JRAnalyzer::Open: Finish (47 ms)
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description[1], prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description[1], val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path description[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag description[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title[1], prefix dc, val 2025.03.28 08.09.26
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title[1], val 2025.03.28 08.09.26
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path title[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag title[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights, prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights, val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights[1], prefix dc, val
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights[1], val
0030475: 18628: Import: CXMP::Analyze: schema http://purl.org/dc/elements/1.1/ path rights[1]/?xml:lang, prefix dc, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://purl.org/dc/elements/1.1/ tag rights[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event, prefix Iptc4xmpExt, val
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event, val
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event[1], prefix Iptc4xmpExt, val [Album Name]
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event[1], val [Album Name]
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path Event[1]/?xml:lang, prefix Iptc4xmpExt, val x-default
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag Event[1]/?xml:lang, val x-default
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path PersonInImage, prefix Iptc4xmpExt, val
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag PersonInImage, val
0030475: 18628: Import: CXMP::Analyze: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ path PersonInImage[1], prefix Iptc4xmpExt, val [Persons Name Redacted]
0030475: 18628: Import: CXMP::ReadTag: schema http://iptc.org/std/Iptc4xmpExt/2008-02-29/ tag PersonInImage[1], val [Persons Name Redacted]
0030475: 18628: Import: CXMP::Analyze: schema http://ns.adobe.com/photoshop/1.0/ path DateCreated, prefix photoshop, val 2025-03-28
0030475: 18628: Import: CXMP::ReadTag: schema http://ns.adobe.com/photoshop/1.0/ tag DateCreated, val 2025-03-28
0030475: 18628: Import: CXMP::ReadRegionsTag: Start
0030475: 18628: Import: CXMP::ReadRegionsTag: RegisterNamespace returned 1 actual prefix: mwg-rs:
0030475: 18628: Import: CXMP::ReadRegionsTag: Paths: Regions/mwg-rs:AppliedToDimensions
0030475: 18628: Import: CXMP::ReadRegionsTag: GetNamespaceURI returned 1 for stDim namespace, the URI is http://ns.adobe.com/xap/1.0/sType/Dimensions#
0030475: 18628: Import: CXMP::ReadRegionsTag: W=, H=, U=
0030475: 18628: Import: CXMP::ReadRegionsTag: Paths: Regions/mwg-rs:RegionList
0030475: 18628: Import: CXMP::ReadRegionsTag: Num of regions 0
0030475: 18628: Import: CXMP::ReadRegionsTag: GetNamespaceURI returned 0 for stArea namespace, the URI is
0030475: 18628: Import: CXMP::ReadRegionsTag: RegisterNamespace returned 1 for kXMP_NS_XMP_Area_JR namespace URI, the registered prefix is stArea:
0030475: 18628: Import: CXMP::ReadRegionsTag: Serialized
0030475: 18628: Import: CXMP::ReadRegionsTag: After reloading the serialized string is equal
0030476: 18628: Import: CXMP::ReadRegionsTag: Finish (0 ms)
0030476: 18628: Import: CXMP::Analyze: DumpObject
0030476: 18628: Import: CXMP::Analyze: Dumping XMPMeta object "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x0)
0030476: 18628: Import: CXMP::Analyze: dc:
0030476: 18628: Import: CXMP::Analyze: http://purl.org/dc/elements/1.1/
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 80000000
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  schema
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:description
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  isLangAlt
0030476: 18628: Import: CXMP::Analyze:  isAlt
0030476: 18628: Import: CXMP::Analyze:  isOrdered
0030476: 18628: Import: CXMP::Analyze:  isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze:  = "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  hasLang
0030476: 18628: Import: CXMP::Analyze:  hasQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: ?
0030476: 18628: Import: CXMP::Analyze: xml:lang
0030476: 18628: Import: CXMP::Analyze:  = "
0030476: 18628: Import: CXMP::Analyze: x-default
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 20
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  isQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:title
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  isLangAlt
0030476: 18628: Import: CXMP::Analyze:  isAlt
0030476: 18628: Import: CXMP::Analyze:  isOrdered
0030476: 18628: Import: CXMP::Analyze:  isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze:  = "
0030476: 18628: Import: CXMP::Analyze: 2025.03.28 08.09.26
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  hasLang
0030476: 18628: Import: CXMP::Analyze:  hasQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: ?
0030476: 18628: Import: CXMP::Analyze: xml:lang
0030476: 18628: Import: CXMP::Analyze:  = "
0030476: 18628: Import: CXMP::Analyze: x-default
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 20
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  isQual
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: dc:rights
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 1E00
0030476: 18628: Import: CXMP::Analyze:  :
0030476: 18628: Import: CXMP::Analyze:  isLangAlt
0030476: 18628: Import: CXMP::Analyze:  isAlt
0030476: 18628: Import: CXMP::Analyze:  isOrdered
0030476: 18628: Import: CXMP::Analyze:  isArray
0030476: 18628: Import: CXMP::Analyze: )
0030476: 18628: Import: CXMP::Analyze: [
0030476: 18628: Import: CXMP::Analyze: 1
0030476: 18628: Import: CXMP::Analyze: ]
0030476: 18628: Import: CXMP::Analyze:  = "
0030476: 18628: Import: CXMP::Analyze: "
0030476: 18628: Import: CXMP::Analyze: (0x
0030476: 18628: Import: CXMP::Analyze: 50
0030476: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  hasLang
0030477: 18628: Import: CXMP::Analyze:  hasQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: ?
0030477: 18628: Import: CXMP::Analyze: xml:lang
0030477: 18628: Import: CXMP::Analyze:  = "
0030477: 18628: Import: CXMP::Analyze: x-default
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 20
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  isQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:
0030477: 18628: Import: CXMP::Analyze: http://iptc.org/std/Iptc4xmpExt/2008-02-29/
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 80000000
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  schema
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:Event
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 1E00
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  isLangAlt
0030477: 18628: Import: CXMP::Analyze:  isAlt
0030477: 18628: Import: CXMP::Analyze:  isOrdered
0030477: 18628: Import: CXMP::Analyze:  isArray
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: [
0030477: 18628: Import: CXMP::Analyze: 1
0030477: 18628: Import: CXMP::Analyze: ]
0030477: 18628: Import: CXMP::Analyze:  = "
0030477: 18628: Import: CXMP::Analyze: [Album Name]
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 50
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  hasLang
0030477: 18628: Import: CXMP::Analyze:  hasQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: ?
0030477: 18628: Import: CXMP::Analyze: xml:lang
0030477: 18628: Import: CXMP::Analyze:  = "
0030477: 18628: Import: CXMP::Analyze: x-default
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 20
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  isQual
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: Iptc4xmpExt:PersonInImage
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 200
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  isArray
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: [
0030477: 18628: Import: CXMP::Analyze: 1
0030477: 18628: Import: CXMP::Analyze: ]
0030477: 18628: Import: CXMP::Analyze:  = "
0030477: 18628: Import: CXMP::Analyze: [Persons Name Redacted]
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::Analyze: photoshop:
0030477: 18628: Import: CXMP::Analyze: http://ns.adobe.com/photoshop/1.0/
0030477: 18628: Import: CXMP::Analyze: (0x
0030477: 18628: Import: CXMP::Analyze: 80000000
0030477: 18628: Import: CXMP::Analyze:  :
0030477: 18628: Import: CXMP::Analyze:  schema
0030477: 18628: Import: CXMP::Analyze: )
0030477: 18628: Import: CXMP::Analyze: photoshop:DateCreated
0030477: 18628: Import: CXMP::Analyze:  = "
0030477: 18628: Import: CXMP::Analyze: 2025-03-28
0030477: 18628: Import: CXMP::Analyze: "
0030477: 18628: Import: CXMP::ReadTags: Start
0030477: 18628: Import: CXMP::ReadTags: description: , lang x-default
0030477: 18628: Import: CXMP::ReadTags: description: 1, , lang x-default
0030477: 18628: Import: CXMP::ReadTags: title: 2025.03.28 08.09.26, lang x-default
0030477: 18628: Import: CXMP::ReadTags: title: 1, 2025.03.28 08.09.26, lang x-default
0030477: 18628: Import: CXMP::ReadTags: rights: , lang x-default
0030477: 18628: Import: CXMP::ReadTags: rights: 1, , lang x-default
0030477: 18628: Import: CXMP::ReadTags: DateCreated: 2025-03-28
0030477: 18628: Import: CXMP::ReadTags: Finish (0 ms)
0030478: 18628: General: CXMP::SetXMPPropertyValue: Start
0030478: 18628: General: CXMP::SetXMPPropertyValue: value: 2025-03-28
0030478: 18628: General: CXMP::SetXMPPropertyValue: Finish (0 ms)
0030478: 18628: Import: CXMP::SaveRegionsTag: Start
0030478: 18628: Import: CXMP::SaveRegionsTag: RegisterNamespace returned 1 actual prefix: mwg-rs:
0030478: 18628: Import: CXMP::SaveRegionsTag: Finish (0 ms)


And looking at the actual content of the heic file, there's this tacked on to the end:

Code: [Select]
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:Iptc4xmpExt="http://iptc.org/std/Iptc4xmpExt/2008-02-29/"
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
         <dc:description>
            <rdf:Alt>
               <rdf:li xml:lang="x-default"/>
            </rdf:Alt>
         </dc:description>
         <dc:title>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">2025.03.28 08.09.26</rdf:li>
            </rdf:Alt>
         </dc:title>
         <dc:rights>
            <rdf:Alt>
               <rdf:li xml:lang="x-default"/>
            </rdf:Alt>
         </dc:rights>
         <Iptc4xmpExt:Event>
            <rdf:Alt>
               <rdf:li xml:lang="x-default">[Album Name]</rdf:li>
            </rdf:Alt>
         </Iptc4xmpExt:Event>
         <Iptc4xmpExt:PersonInImage>
            <rdf:Bag>
               <rdf:li>[Person's Name Redacted]</rdf:li>
            </rdf:Bag>
         </Iptc4xmpExt:PersonInImage>
         <photoshop:DateCreated>2025-03-28</photoshop:DateCreated>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta>

It's interesting that the Album name is showing up in a field called "Event" in this xmpmeta data. That's a bit puzzling, because XMP stands for "Extensible Metadata Platform", meaning that any field imaginable could be added to it. But that's not (yet?) been exploited by Mediacenter.
Logged

Matthew1968

  • Recent member
  • *
  • Posts: 10
Re: HEIC Image Tags
« Reply #10 on: April 09, 2025, 02:44:01 pm »

You are welcome!

I've now opted for turning on Sidecar Tagging Mode: Save in both sidecar and internal tags (if supported). That gets me an external XML file, and that's achieving everything I need.

It'd be interesting to know if "that's it, end of the road" so far as internal arbitrary tags in heic files is concerned. It looks like it ought to be possible for it to put MJMD tags inside a heic file, just like it does with jpegs. That would solve everything. But I don't know for sure.

Thanks again for the help - it's pointed me towards a workable solutions, which is great :)
Logged

Yaobing

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 11002
  • Dogs of the world unite!
Re: HEIC Image Tags
« Reply #11 on: April 10, 2025, 10:36:07 am »

Regarding Places tag, we are treating it as a collection of information from other tags, Country, State/Provice, City, Sublocation etc.

Those individual tags are saved in XMP block and therefore there is no need to save Places separately. It is therefore a good idea you edit Country, City etc. instead of editing Places directly.
Logged
Yaobing Deng, JRiver Media Center
Pages: [1]   Go Up