Comments (5)
The title provided in the Info
element is like a general title for the segment. Within the segment, more detailed tags may be provided via the Tags
element.
I don't really like the idea of overwriting one title with the other, so here are two possible solutions:
- Since the
Info
element would come first, if a title is present, create aMetadataRevision
and add the title to it. Push the revision to theMetadataLog
. Then, add the tags from theTags
element to a newMetadataRevision
, and push it to theMetadataLog
. In this way, both titles are accessible with a logical order (Info
element, thenTags
). - Use the same
MetadataRevision
for both theInfo
andTags
element tags, but use a hardcoded tag name ofSEGMENT_TITLE
(v.s., the regularTITLE
) for theInfo
element segment title.
I'm leaning towards 2 because it's easier for the end-user, but 1 has some perks too (the end-user doesn't need to look for two different tag names).
from symphonia.
@pdeljanov Sorry for late response. Holiday happened haha.
Hmm yeah i think solution 1 is the cleanest. Solution 2 was also something i had in mind because it's simpler but feels bit arbitrary to map it to a specific key for Symphonia.
Yeah my vote goes to solution 1.
from symphonia.
Hey thanks for the report. I do find it a bit odd how ffmpeg approaches the title tag, but regardless
In Symphonia, it seems the title from InfoElement is not properly used, removing #[allow(dead_code)] from https://github.com/pdeljanov/Symphonia/blob/master/symphonia-format-mkv/src/segment.rs#L272 reveals as much.
Even though it seems in the realm of MKV metadata usually only refers to the TagsElement, i would argue this title from the InfoElement could also be considered metadata, so we can store it in the metadata structure.
I think this would automatically prioritize the title of the TagsElement since it shows up later in the file and would probably overwrite the title entry by InfoElement, same behavior as ffmpeg.
Do you think this is a good way to approach it @pdeljanov ?
from symphonia.
i am personally fine with either way, as long as it is available as a Metadata tag in some way (and not some out-of-the-way function) and is documented what the difference with the normal TITLE
would be.
from symphonia.
Yeah, it'd be a bespoke tag for MKV. We can document it in the symphonia-format-mkv
crate, but it wouldn't be particularly obvious unless one looks there. In this regard, solution 1 is marginally better because we could just use the typical TITLE
tag name and assign the a StandardTagKey
to it.
@dedobbin, any thoughts?
from symphonia.
Related Issues (20)
- verify_timebase test failing on i386 architecture HOT 3
- License clarification (for the SUN Microsystems part) HOT 3
- [Feature request] make it easier to detect what a track / codec type is HOT 2
- style: `symphonia_format_mkv::ebml` prints a lot of `element with tag: A3` HOT 1
- `seek(SeekMode::Accurate, x)` can jump onto a position that is after the requested seek position HOT 14
- [Feature request] Proivde a way to transfer whole buffer from the SampleBuf HOT 2
- README claims support of AAC profiles other than AAC-LC using non-existent feature flags HOT 2
- [Doc request] Multi-value tags in metadata HOT 2
- Update benchmarks following v0.5.4 HOT 1
- Issue parsing AIFF files: "invalid chunk-id, expected 'FORM'" and "FourCC contains invalid characters: 02 87 04 06" HOT 3
- isomp4: `CodecType` and `extra_data` missing from `avc1` track HOT 1
- Log flood HOT 3
- mp3 Seeking has warnings in logs HOT 1
- Probe result fails for FLAC files above 96kHz
- Mkv/Webm seeking error HOT 5
- How to decode an async stream? HOT 2
- Mono MP3 audio is sped up when using symphonia-play
- Question about Converting Audio Samples to WAV Format and Retrieving Bits-Per-Sample HOT 1
- Probe: Actually return errors instead of logging them
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from symphonia.