Zum Hauptinhalt springen

3.6.2. Interpreting imageattr Attributes (Interpretation von imageattr-Attributen)

3.6.2. Interpreting imageattr Attributes (Interpretation von imageattr-Attributen)

[RFC6236] definiert "a=imageattr" als ein Beratungsfeld. Dies bedeutet, dass es die Videoformate, die der Sender verwenden kann, nicht absolut einschränkt, sondern eine Angabe der bevorzugten Werte gibt.

Diese Spezifikation schreibt ein spezifischeres Verhalten vor. Wenn ein MediaStreamTrack, der Video mit einer bestimmten Auflösung produziert (die "Track-Auflösung"), an einen RtpSender angehängt wird, der das Track-Video mit der gleichen oder niedrigeren Auflösung(en) kodiert (die "Encoder-Auflösungen"), und eine entfernte Beschreibung angewendet wird, die den Sender referenziert und gültige "a=imageattr recv"-Attribute enthält, MUSS er die folgenden Regeln befolgen, um sicherzustellen, dass der Sender keine Auflösung überträgt, die die in den Attributen angegebenen Größenkriterien überschreiten würde. Diese Regeln MÜSSEN befolgt werden, solange die Attribute in der entfernten Beschreibung vorhanden bleiben, einschließlich Fällen, in denen der Track seine Auflösung ändert oder durch einen anderen Track ersetzt wird.

Je nachdem, wie der RtpSender konfiguriert ist, kann er eine einzelne Kodierung mit einer bestimmten Auflösung produzieren oder, wenn Simulcast (Abschnitt 3.7) ausgehandelt wurde, mehrere Kodierungen, jede mit ihrer eigenen spezifischen Auflösung. Darüber hinaus kann je nach Konfiguration jede Kodierung die Flexibilität haben, die Auflösung bei Bedarf zu reduzieren, oder auf eine bestimmte Ausgabeauflösung festgelegt sein.

Für jede vom RtpSender erzeugte Kodierung wird der Satz von "a=imageattr recv"-Attributen im entsprechenden "m="-Abschnitt der entfernten Beschreibung verarbeitet, um zu bestimmen, was übertragen werden soll. Es werden nur Attribute berücksichtigt, die das für die Kodierung ausgewählte Medienformat referenzieren; jedes solche Attribut wird individuell bewertet, beginnend mit dem Attribut mit dem höchsten "q="-Wert. Wenn mehrere Attribute denselben "q="-Wert haben, werden sie in der Reihenfolge bewertet, in der sie in ihrem enthaltenden "m="-Abschnitt erscheinen. Beachten Sie, dass JSEP-Endpunkte höchstens ein "a=imageattr recv"-Attribut pro Medienformat enthalten, JSEP-Endpunkte aber Sitzungsbeschreibungen von Nicht-JSEP-Endpunkten mit "m="-Abschnitten empfangen können, die mehrere solcher Attribute enthalten.

Für jedes "a=imageattr recv"-Attribut werden die folgenden Regeln angewendet. Wenn diese Verarbeitung erfolgreich ist, wird die Kodierung entsprechend übertragen, und es werden keine weiteren Attribute für diese Kodierung berücksichtigt. Andernfalls wird das nächste Attribut in der oben genannten Reihenfolge bewertet. Wenn keines der bereitgestellten Attribute erfolgreich verarbeitet werden kann, DARF die Kodierung NICHT übertragen werden, und ein Fehler SOLLTE der Anwendung gemeldet werden.

  • Die Grenzen aus dem Attribut werden mit der Encoder-Auflösung verglichen. Es werden nur die unten genannten spezifischen Grenzen berücksichtigt; alle anderen Werte, wie das Bildverhältnis, MÜSSEN ignoriert werden. Bei der Betrachtung eines MediaStreamTrack, der gedrehtes Video produziert, MUSS die nicht gedrehte Auflösung für die Prüfungen verwendet werden. Dies ist unabhängig davon erforderlich, ob der Empfänger die Durchführung einer empfängerseitigen Rotation unterstützt (z. B. durch Koordination der Videoausrichtung (CVO) [TS26.114]), da es die Übereinstimmungslogik erheblich vereinfacht.

  • Wenn das Attribut einen "sar="-Wert (Sample-Seitenverhältnis) enthält, der auf etwas anderes als "1.0" gesetzt ist, was anzeigt, dass der Empfänger nicht-quadratische Pixel empfangen möchte, kann dies nicht erfüllt werden, und das Attribut DARF NICHT verwendet werden.

  • Wenn die Encoder-Auflösung die durch das Attribut zulässige Maximalgröße überschreitet und der Encoder seine Auflösung anpassen darf, SOLLTE der Encoder eine Herunterskalierung anwenden, um die Grenzen zu erfüllen. Die Herunterskalierung DARF das Bildverhältnis der Kodierung NICHT ändern, wobei triviale Unterschiede durch Rundung ignoriert werden. Wenn beispielsweise die Encoder-Auflösung 1280x720 beträgt und das Attribut ein Maximum von 640x480 angegeben hat, wäre die erwartete Ausgabeauflösung 640x360. Wenn keine Herunterskalierung angewendet werden kann, DARF das Attribut NICHT verwendet werden.

  • Wenn die Encoder-Auflösung kleiner als die durch das Attribut zulässige Minimalgröße ist, DARF das Attribut NICHT verwendet werden; der Encoder DARF KEINE Hochskalierung anwenden. JSEP-Implementierungen SOLLTEN diese Situation vermeiden, indem sie den Empfang beliebig kleiner Auflösungen ermöglichen, möglicherweise über einen Rückfall auf einen Software-Decoder.

  • Wenn die Encoder-Auflösung innerhalb der maximalen und minimalen Größen liegt, ist keine Aktion erforderlich.