11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
21PROMEKI_NAMESPACE_BEGIN
24class MediaIOPortGroup;
75class MediaIOPort :
public ObjectBase {
76 PROMEKI_OBJECT(MediaIOPort, ObjectBase)
116 MediaIOPort(MediaIOPortGroup *group,
const String &name,
int index);
119 ~MediaIOPort()
override;
126 virtual Role role()
const = 0;
129 MediaIO *mediaIO()
const {
return _mediaIO; }
145 MediaIOAllocator::Ptr allocator()
const;
148 int index()
const {
return _index; }
151 const String &name()
const {
return _name; }
162 MediaIOPortGroup *group()
const {
return _group; }
172 const MediaDesc &mediaDesc()
const {
return _mediaDesc; }
175 void setMediaDesc(
const MediaDesc &val) { _mediaDesc = val; }
184 AudioDesc audioDesc()
const {
185 return _mediaDesc.audioList().isEmpty() ? AudioDesc() : _mediaDesc.audioList()[0];
193 const Metadata &metadata()
const {
return _mediaDesc.metadata(); }
196 MediaIO *_mediaIO =
nullptr;
197 MediaIOPortGroup *_group =
nullptr;
200 MediaDesc _mediaDesc;