SECTION 9.1
757
Multimedia
9.1.1 Viability
When playing multimedia content, the viewer application must often make deci-
sions such as which player software and which options (for example, volume and
duration) to use. In making these decisions, the viewer must determine the
via-
bility
of the objects used. If an object is considered non-viable, the media should
not be played. If the object is viable, the media should be played, though possibly
under less than optimum conditions.
There are several entries in the multimedia object dictionaries whose values have
an effect on viability. In particular, some of the object dictionaries define two en-
tries that divide options into one of two categories:
•
MH
(“must honor”):
The options specified by this entry must be honored; other-
wise, the containing object is considered non-viable.
•
BE
(“best effort”):
An attempt should be made to honor the options; however, if
they cannot be honored, the containing object is still considered viable.
MH
and
BE
are both dictionaries, and the same entries are defined for both of
them. In any dictionary where these entries are allowed, both entries may be
present, or only one, or neither. For example, the media play parameters dictio-
nary (see Table 9.14) allows the playback volume to be set by means of the
V
entry
in its
MH
and
BE
dictionaries (see Table 9.15). If the specified volume cannot be
honored, the object is considered non-viable if
V
is in the
MH
dictionary, and
playback should not occur. If
V
is in the
BE
dictionary (and not also in the
MH
dictionary), playback should still occur: the playing software attempts to honor
the specified option as best it can.
Using this mechanism, authors can specify minimum requirements (
MH
) and
preferred options (
BE
). They can also specify how entries that are added in the fu-
ture to the multimedia dictionaries are interpreted by old viewer applications. If
an entry that is unrecognized by the viewer is in the
MH
dictionary, the object is
considered non-viable. If an unrecognized entry is in a
BE
dictionary, the entry is
ignored and viability is unaffected. Unless otherwise stated, an object should be
considered non-viable if its
MH
dictionary contains an unrecognized key or an
unrecognized value for a recognized key.