root/src/metadataparser.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "metadataparser.h"
#include "nwutils.h"
#include "N0Slib.h"

MetaDataParser::MetaDataParser()
{
}


MetaData::MetaData() : duration(-1)
{
}

void MetaData::describe(nw::Describer* de) {
    NwUtils::describe(*de, "duration", this->duration);
    de->describeArray("chapters", "chapter", this->chapters.size());
    for (int i=0; de->enterNextElement(i); ++i) {
        MetaDataChapter c = this->chapters[i];
        NwUtils::describe(*de, "start", c.start);
        NwUtils::describe(*de, "end", c.end);
        NwUtils::describe(*de, "title", c.title);
    }
}

QString MetaData::toJson() {
    std::stringstream ss;
    nw::JsonWriter jw(ss);
    this->describe(&jw);
    jw.close();
    return QString(ss.str().c_str());
}

std::pair<int, int> MetaData::resolution() const {
    foreach (MetaDataTrack track, this->tracks) {
        if (track.type == video) {
            return std::pair<int,int>(track.track.video.resolutionX, track.track.video.resolutionY);
        }
    }
    return std::pair<int,int>(-1,-1);
}