KhronosGroup / glTF-Validator

Tool to validate glTF assets.
Apache License 2.0
372 stars 63 forks source link

Different MIME type reported for embedded buffers #204

Closed javagl closed 5 months ago

javagl commented 1 year ago

The validation report contains a section about the "resources", including the data URIs and their MIME type. The (embedded) Triangle sample model https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/Triangle/glTF-Embedded/Triangle.gltf uses application/octet-stream as its MIME type. The report says that the MIME type was application/gltf-buffer. While both of them are valid, I wonder why the validator does not say what the real (declared) MIME type was.

lexaknyazev commented 5 months ago

The resources section is a flat list of all referenced resources. The purpose of the mimeType property there is to provide unambiguous types for pipeline tools.

Besides, application/octet-stream is valid for Data URIs purely for historical reasons. The effective media type of glTF binary buffers is still application/gltf-buffer.

javagl commented 5 months ago

I just was suprised when I saw this. One could probably make a case for the validator to report the "turth" (i.e. the declared MIME type - if it's valid, then it is what it is). But it's probably not important: The schema does not make any claims about what the mimeType is, and there is no compelling reason to introduce such a claim here.

(Going a few steps further: I know that there already are tools that rely on details of the current report format that are not specified. For example, people are checking the animations (count) to see whether there are animations. (And I think this was called hasAnimations initially. Similarly, hasTextures might become textures (count) one day...). But I couldn't imagine in which case the different MIME type could have a negative effect...).