]> git.vomp.tv Git - vompclient-marten.git/blob - video.cc
PES Packet object: dynamic sizing
[vompclient-marten.git] / video.cc
1 /*
2     Copyright 2004-2005 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #include "video.h"
22
23 Video* Video::instance = NULL;
24
25 Video::Video()
26 {
27   if (instance) return;
28   instance = this;
29   initted = 0;
30
31   fdVideo = 0;
32
33   format = 0;
34   connection = 0;
35   aspectRatio = 0;
36   mode = 0;
37   tvsize = 0;
38
39   screenWidth = 0;
40   screenHeight = 0;
41 }
42
43 Video::~Video()
44 {
45   instance = NULL;
46 }
47
48 Video* Video::getInstance()
49 {
50   return instance;
51 }
52
53 hmsf Video::framesToHMSF(ULONG frames)
54 {
55   hmsf ret;
56
57   if (format == NTSC)
58   {
59     ret.hours = frames / 108000;
60     frames %= 108000;
61     ret.minutes = frames / 1800;
62     frames %= 1800;
63     ret.seconds = frames / 30;
64     ret.frames = frames % 30;
65   }
66   else
67   {
68     ret.hours = frames / 90000;
69     frames %= 90000;
70     ret.minutes = frames / 1500;
71     frames %= 1500;
72     ret.seconds = frames / 25;
73     ret.frames = frames % 25;
74   }
75   return ret;
76 }
77
78 UINT Video::getFPS()
79 {
80   if (format == NTSC) return 30;
81   else return 25;
82 }