예제 #1
0
AkCaps CaptureDShow::capsFromMediaType(const AM_MEDIA_TYPE *mediaType) const
{
    if (!mediaType)
        return AkCaps();

    VIDEOINFOHEADER *videoInfoHeader =
            reinterpret_cast<VIDEOINFOHEADER *>(mediaType->pbFormat);
    QString fourcc = guidToStr->value(mediaType->subtype);

    if (fourcc.isEmpty())
        return AkCaps();

    AkCaps videoCaps;
    videoCaps.setMimeType("video/unknown");
    videoCaps.setProperty("fourcc", fourcc);
    videoCaps.setProperty("width", int(videoInfoHeader->bmiHeader.biWidth));
    videoCaps.setProperty("height", int(videoInfoHeader->bmiHeader.biHeight));
    AkFrac fps(TIME_BASE, videoInfoHeader->AvgTimePerFrame);
    videoCaps.setProperty("fps", fps.toString());

    return videoCaps;
}
예제 #2
0
AkCaps AndroidScreenDev::caps(int stream)
{
    if (this->d->m_curScreenNumber < 0
        || stream != 0)
        return AkCaps();

    auto screens = QGuiApplication::screens();
    auto screen = screens[this->d->m_curScreenNumber];

    if (!screen)
        return {};

    return AkVideoCaps(AkVideoCaps::Format_rgb24,
                       screen->size().width(),
                       screen->size().height(),
                       this->d->m_fps).toCaps();
}
예제 #3
0
AkCaps DesktopCaptureElement::caps(int stream) const
{
    if (this->m_curScreenNumber < 0
        || stream != 0)
        return AkCaps();

    QScreen *screen = QGuiApplication::screens()[this->m_curScreenNumber];

    if (!screen)
        return QString();

    AkVideoCaps caps;
    caps.isValid() = true;
    caps.format() = AkVideoCaps::Format_rgb24;
    caps.bpp() = AkVideoCaps::bitsPerPixel(caps.format());
    caps.width() = screen->size().width();
    caps.height() = screen->size().height();
    caps.fps() = this->m_fps;

    return caps.toCaps();
}
예제 #4
0
void AkPacket::resetCaps()
{
    this->setCaps(AkCaps());
}
예제 #5
0
AkCaps &AkCaps::operator =(const QString &other)
{
    return this->operator =(AkCaps(other));
}
예제 #6
0
AkCaps AbstractStream::caps() const
{
    return AkCaps();
}
예제 #7
0
AkCaps AkVideoCaps::toCaps() const
{
    return AkCaps(this->toString());
}
예제 #8
0
AkVideoCaps &AkVideoCaps::operator =(const QString &caps)
{
    return this->operator =(AkCaps(caps));
}