ASF-Mediensenken
Die ASF-Mediensenke ist die letzte Komponente in der Codierungspipeline, die es einer Anwendung ermöglicht, eine ASF-Datei zu schreiben.
Media Foundation bietet zwei Arten von ASF-Mediensenken:
- Die ASF-Dateisenke wird verwendet, um ASF-Mediendaten in einer Datei zu archivieren.
- Die ASF-Streamingsenke wird verwendet, um ASF-Inhalte in einen Bytestream zu schreiben, der über das Netzwerk gestreamt werden kann.
ASF-Mediensenken enthalten eine oder mehrere Streamsenken, die die zu schreibenden Daten für jeden Stream in der ASF-Ausgabedatei darstellt. Für Codierungsanwendungen, die unter Windows Vista ausgeführt werden, müssen Sie die Codierungstopologie manuell konfigurieren, indem Sie die ASF-Mediensenke erstellen und konfigurieren und dann der Topologie hinzufügen. Wenn Sie Windows 7 die schnellen Transcodierungsobjekte zum Erstellen der Topologie verwenden, haben Sie die Mediensenke nicht direkt erstellt, und die Anwendung aufruft keine Methoden für die Mediensenke oder eine der Streamsenken. Die schnellen Transcodierungsobjekte instanziieren die erforderlichen Mediensenken und fügen sie der Topologie hinzu, bevor sie einen Verweis auf die Aufruferanwendung zurückgeben. Für schnelle Transcodierungsobjekte gelten jedoch einige Einschränkungen, die je nach Codierungstyp gelten.
ASF-Mediensenkenobjektmodell
ASF-Mediensenken implementieren die BEFIMediaSink-Schnittstelle und machen die folgenden Schnittstellen verfügbar. Eine Anwendung kann einen Verweis auf diese Schnittstellen erhalten, indem sie QueryInterface für die ASF-Mediensenke aufruft, die sie zum Generieren von Ausgabebeispielen verwendet.
| Schnittstelle | BESCHREIBUNG |
|---|---|
| VERERBUNGMediaSink | Erforderlich für alle Mediensenken. |
| VEREERBUNGFinalizableMediaSink | Wird von der ASF-Dateisenke implementiert, die den generierten Medieninhalt in eine Datei schreibt. Sie können die Methoden auf dieser Schnittstelle verwenden, um Daten zu leeren und das ASF-Headerobjekt der endgültigen Ausgabedatei zu aktualisieren. |
| DEADClockStateSink | Empfängt Zustandsänderungsbenachrichtigungen von der Präsentationsuhr. |
| IMFASFContentInfo | Das ASF ContentInfo-Objekt ist ein WMContainer-Level-Objekt, das hauptsächlich INFORMATIONEN zum ASF-Headerobjekt speichert. Dies wird verwendet, um ASF-Mediensenken zu erstellen. |
| VERERBungsmetadaten | Wird verwendet, um die Metadaten für die ASF-Datei zu beschreiben. |
| ANBIETERMetadataProvider | Ruft eine Auflistung von Metadaten entweder für eine gesamte Präsentation oder für einen Stream in der Präsentation ab. |
ASF-Dateisenke
Die ASF-Dateisenke ist eine Implementierung von DURCHFMediaSink Media Foundation die eine Anwendung zum Archivieren von ASF-Mediendaten in einer Datei verwenden kann.
Sie müssen Methoden für die Dateisenke oder eine ihrer Streamsenken erstellen, konfigurieren und aufrufen, wenn Sie die Pipelineebenenobjekte verwenden, um eine neue ASF-Datei zu schreiben. Nach dem Konfigurieren der Dateisenke können Sie sie der Codierungspipeline hinzufügen.
Im Folgenden finden Sie die allgemeinen Schritte für die Verwendung der ASF-Dateisenke:
- Erstellen Sie die Dateisenke prozessin- oder out-of-process.
- Konfigurieren Sie die Dateisenke mit allen Datenströmen, Codierungseigenschaften und Metadateninformationen.
- Ordnen Sie die Dateisenke dem Ausgabetopologieknoten zu, indem Sie die Streamsenken aufzählen oder die Streamnummern mit in der Senke nachverfolgen.
Die folgenden Themen enthalten ausführliche Informationen zum Arbeiten mit der ASF-Dateisenke:
- Erstellen der ASF-Dateisenke
- Hinzufügen von Streaminformationen zur ASF-Dateisenke
- Festlegen von Eigenschaften in der Dateisenke
- Hinzufügen von Metadaten zur Dateisenke
- Das Leaky Bucket Buffer-Modell