From 8ce895e00021b3dc47b0d429cd79076fe081d8c8 Mon Sep 17 00:00:00 2001 From: tomcrane Date: Wed, 23 Sep 2026 11:44:27 +0100 Subject: [PATCH] Avoid explicit requirement of .0 on whole numbers of seconds --- recipe/0002-mvm-audio/recipe.md | 2 +- recipe/0002-mvm-audio/v4/recipe.md | 2 +- recipe/0003-mvm-video/recipe.md | 2 +- recipe/0003-mvm-video/v4/recipe.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/recipe/0002-mvm-audio/recipe.md b/recipe/0002-mvm-audio/recipe.md index 624573e31..3c19e2ee1 100644 --- a/recipe/0002-mvm-audio/recipe.md +++ b/recipe/0002-mvm-audio/recipe.md @@ -4,7 +4,7 @@ The simplest viable manifest for audio content. This pattern presents a single a ## Implementation Notes -The implementation is identical to the [image example][0001], except that the content is audio and the canvas has the `duration` property instead of the `height` and `width` properties. The value of the `duration` property [must be a floating point number](https://iiif.io/api/presentation/3.0/#duration). If the duration value you have is an integer, it therefore needs to be written with at least a decimal point and a trailing zero: `1985.0` rather than `1985`. +The implementation is identical to the [image example][0001], except that the content is audio and the canvas has the `duration` property instead of the `height` and `width` properties. The value of the `duration` property [must be a positive number](https://iiif.io/api/presentation/3.0/#duration) of seconds, such as `1985` or `1985.024`. ## Example diff --git a/recipe/0002-mvm-audio/v4/recipe.md b/recipe/0002-mvm-audio/v4/recipe.md index 05ba5fff3..8873979b3 100644 --- a/recipe/0002-mvm-audio/v4/recipe.md +++ b/recipe/0002-mvm-audio/v4/recipe.md @@ -6,7 +6,7 @@ The simplest viable manifest for audio content. This pattern presents a single a This illustrates the mandatory structure and properties of a manifest, with the simplest possible audio content. -Audio resources are contained inside a [Timeline](https://iiif.io/api/presentation/4.0/#timeline), which is required to have a `duration` property with the time, in seconds, of the audio resource to be included in the timeline. The value of the `duration` property [must be a floating point number](https://iiif.io/api/presentation/4.0/model/#duration). If the duration value you have is an integer, it needs to be written with at least a decimal point and a trailing zero: `1985.0` rather than `1985`. +Audio resources are contained inside a [Timeline](https://iiif.io/api/presentation/4.0/#timeline), which is required to have a `duration` property with the time, in seconds, of the audio resource to be included in the timeline. The value of the `duration` property [must be a positive number](https://iiif.io/api/presentation/4.0/model/#duration), such as `1985` or `1985.024`. The `items` property of the Canvas is a list of annotation pages. In this case there is only one. The `items` property of the annotation page is a list of annotations. Again, in this case there is only one. This annotation links the audio resource and the timeline. The `body` of the annotation is an audio file, the url of which is the `id` property of the body. The duration of the audio file, in seconds, is given and here matches the timeline's `duration` property exactly. Matching is not required, but mismatches will change how much of the audio is heard and may change what happens after the audio finishes playing. The `target` property tells us both that the audio file is associated with the entirety of the container and that the container is a timeline, and the `motivation` property of "painting" tells us that the audio file is the content of the container. diff --git a/recipe/0003-mvm-video/recipe.md b/recipe/0003-mvm-video/recipe.md index c3d3dd349..6a2adf2b8 100644 --- a/recipe/0003-mvm-video/recipe.md +++ b/recipe/0003-mvm-video/recipe.md @@ -4,7 +4,7 @@ The simplest viable manifest for video content. This pattern presents a single v ## Implementation Notes -The implementation is identical to the [image example][0001], except that the content is video and the canvas has the `duration` property additional to the `height` and `width` properties. The value of the `duration` property [must be a floating point number](https://iiif.io/api/presentation/3.0/#duration). If the duration value you have is an integer, it therefore needs to be written with at least a decimal point and a trailing zero: `1985.0` rather than `1985`. +The implementation is identical to the [image example][0001], except that the content is video and the canvas has the `duration` property additional to the `height` and `width` properties. The value of the `duration` property [must be a positive number](https://iiif.io/api/presentation/3.0/#duration) of seconds, such as `572` or `572.034`. ## Example diff --git a/recipe/0003-mvm-video/v4/recipe.md b/recipe/0003-mvm-video/v4/recipe.md index 0577d6371..bf385c6af 100644 --- a/recipe/0003-mvm-video/v4/recipe.md +++ b/recipe/0003-mvm-video/v4/recipe.md @@ -8,7 +8,7 @@ This illustrates the mandatory structure and properties of a manifest, with the The implementation is substantively identical to the [image example][0001-4], except that the content is video and the Canvas has the `duration` property additional to the `height` and `width` properties. See [Simplest Manifest - Image][0001-4] for enumeration and brief description of required properties. -The value of the `duration` property [must be a floating point number](https://iiif.io/api/presentation/4.0/model/#duration). If the duration value you have is an integer, it therefore needs to be written with at least a decimal point and a trailing zero: `1985.0` rather than `1985`. +The value of the `duration` property [must be a positive number](https://iiif.io/api/presentation/4.0/model/#duration) of seconds, such as `572` or `572.034`. The duration of the video file, in seconds, is given and here matches the Canvas's `duration` property exactly. Matching is not required, but mismatches will change how much of the video is presented and may change what happens after the video finishes playing. Likewise, the pixel dimensions of the video file match the dimensionless coordinate space units. Matching is also not required here, but mismatches may change the visual display.