summaryrefslogtreecommitdiff
path: root/Media.h
blob: fde49d374f07baf91d35dcdb154ef691c21ab90f (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#ifndef MEDIA_H
#define MEDIA_H

#include <Poco/DOM/DOMParser.h>
#include <Poco/DOM/Document.h>
#include <Poco/DOM/NamedNodeMap.h>
#include <Poco/DOM/NodeIterator.h>
#include <Poco/DOM/NodeFilter.h>
#include <Poco/DOM/NodeList.h>
#include <Poco/DOM/AutoPtr.h>
#include <Poco/Exception.h>
#include <Poco/Timestamp.h>
#include <Poco/String.h>

#include <vector>
#include <iostream>

#ifdef SKINDESIGNER

#include <libskindesignerapi/osdelements.h>

#endif

#include <memory>

#include "XmlObject.h" // Base class: model::XmlObject
#include "Stream.h"


using Poco::XML::DOMParser;
using Poco::XML::Document;
using Poco::XML::NodeIterator;
using Poco::XML::NodeFilter;
using Poco::XML::Node;
using Poco::XML::AutoPtr;
using Poco::Exception;

namespace plexclient {

    class Media : XmlObject {
    public:
        Media() { };

        Media(Poco::XML::Node *pNode);

    public:
        std::string m_sVideoResolution;
        int m_iId;
        long m_lDuration;
        int m_iBitrate;
        int m_iWidth;
        int m_iHeight;
        std::string m_sAspectRatio;
        int m_iAudioChannels;
        std::string m_sAudioCodec;
        std::string m_sVideoCodec;
        std::string m_sContainer;
        std::string m_VideoFrameRate;

        std::string m_sPartKey;
        int m_iPartId;
        long m_lPartDuration;
        std::string m_sPartFile;
        long m_lPartSize;
        std::string m_sPartContainer;

        std::vector<Stream> m_vStreams;

#ifdef SKINDESIGNER

        void AddTokens(std::shared_ptr<skindesignerapi::cOsdElement> grid);

#endif
    };

}

#endif // MEDIA_H