std::vector<std::shared_ptr<MediaSink>>
                                     MediaElementImpl::getMediaSinks ()
{
  std::vector<std::shared_ptr<MediaSink>> sinks;

  sinks.push_back (getOrCreateAudioMediaSink() );
  sinks.push_back (getOrCreateVideoMediaSink() );

  return sinks;
}
std::vector < std::shared_ptr<MediaSink> > *
MediaElement::getMediaSinks()
{
  std::vector< std::shared_ptr<MediaSink> > *mediaSinks = new std::vector< std::shared_ptr<MediaSink> >();

  mediaSinks->push_back (getOrCreateAudioMediaSink() );
  mediaSinks->push_back (getOrCreateVideoMediaSink() );

  return mediaSinks;
}
std::vector < std::shared_ptr<MediaSink> > *
MediaElement::getMediaSinksByMediaType (const MediaType::type mediaType)
{
  std::vector< std::shared_ptr<MediaSink> > *mediaSinks = new std::vector< std::shared_ptr<MediaSink> >();

  if (mediaType == MediaType::type::AUDIO)
    mediaSinks->push_back (getOrCreateAudioMediaSink() );
  else if (mediaType == MediaType::type::VIDEO)
    mediaSinks->push_back (getOrCreateVideoMediaSink() );

  return mediaSinks;
}
std::vector<std::shared_ptr<MediaSink>>
                                     MediaElementImpl::getMediaSinks (std::shared_ptr<MediaType> mediaType)
{
  std::vector<std::shared_ptr<MediaSink>> sinks;

  if (mediaType->getValue() == MediaType::AUDIO) {
    sinks.push_back (getOrCreateAudioMediaSink() );
  } else if (mediaType->getValue() == MediaType::VIDEO) {
    sinks.push_back (getOrCreateVideoMediaSink() );
  }

  return sinks;
}