11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
22PROMEKI_NAMESPACE_BEGIN
25class MediaIOPortGroup;
61class MediaIOSink :
public MediaIOPort {
62 PROMEKI_OBJECT(MediaIOSink, MediaIOPort)
76 MediaIOSink(MediaIOPortGroup *group,
int index,
const String &name = String());
79 ~MediaIOSink()
override;
82 Role role()
const override {
return MediaIOPort::Sink; }
94 Error setExpectedDesc(
const MediaDesc &desc);
97 const MediaDesc &expectedDesc()
const {
return _expectedMediaDesc; }
105 Error setExpectedAudioDesc(
const AudioDesc &desc);
108 const AudioDesc &expectedAudioDesc()
const {
return _expectedAudioDesc; }
111 Error setExpectedMetadata(
const Metadata &meta);
114 const Metadata &expectedMetadata()
const {
return _expectedMetadata; }
132 Error proposeInput(
const MediaDesc &offered, MediaDesc *preferred)
const;
143 int writeDepth()
const {
return _writeDepth; }
146 void setWriteDepth(
int n);
157 int pendingWrites()
const;
167 int writesAccepted()
const;
201 MediaIORequest writeFrame(
const Frame &frame);
206 PROMEKI_SIGNAL(frameWanted);
222 PROMEKI_SIGNAL(writeError, Error);
226 FrameCount _writeFrameCount;
227 MediaDesc _expectedMediaDesc;
228 AudioDesc _expectedAudioDesc;
229 Metadata _expectedMetadata;