int getHorizontalSize() { return horizontal_size; }
int getVerticalSize() { return vertical_size; }
- int getAspectRatio(int *tparx,int *tpary) {
+ UCHAR getAspectRatio(int *tparx,int *tpary) {
*tparx=parx; *tpary=pary;return aspect_ratio; }
int getFrameRate() { return frame_rate; }
int getBitRate() { return bit_rate; }
ULLONG getVideoPTS() { return video_pts; }
ULLONG getAudioPTS() { return audio_pts; }
- enum AspectRatio
+ enum AspectRatio : UCHAR
{
ASPECT_1_1 = 1,
ASPECT_4_3 = 2,
logger->log("PlayerLiveTV", Log::DEBUG, "Callback from demuxer");
int parx,pary;
- int dxCurrentAspect = demuxer->getAspectRatio(&parx, &pary);
+ UCHAR dxCurrentAspect = demuxer->getAspectRatio(&parx, &pary);
if (dxCurrentAspect == Demuxer::ASPECT_4_3)
{
if (video->getTVsize() == Video::ASPECT16X9)
StreamChunk s = streamChunks.front();
streamChunks.pop();
// logger->log("PlayerLiveTV", Log::DEBUG, "About to call demuxer with %p %lu", s.data, s.len);
- /* int a =*/ demuxer->put((UCHAR*)s.data, s.len);
+ /* int a =*/ demuxer->put(static_cast<UCHAR*>(s.data), s.len);
// logger->log("PlayerLiveTV", Log::DEBUG, "put %i to demuxer", a);
free(s.data);
if (pendingAudioPlay && (demuxer->getHorizontalSize() || !video->independentAVStartUp())) //Horizontal Size is zero, if not parsed
{
// logger->log("PlayerLiveTV", Log::DEBUG, "chunk mark3");
++preBufferCount;
- ULONG percentDone = (ULONG)(preBufferCount / (float)preBufferAmount * 100);
+ ULONG percentDone = (preBufferCount * 100) / preBufferAmount;
logger->log("PlayerLiveTV", Log::DEBUG, "Prebuffering %lu%%", percentDone);
Message* m = new Message();
// ----------------------------------- Called from outside, one offs or info funcs
PlayerVideoRec::PlayerVideoRec(MessageQueue* tmessageQueue, void* tmessageReceiver, OSDReceiver* tosdReceiver)
-: vfeed(this), afeed(this), tfeed(this), messageQueue(tmessageQueue),
- messageReceiver(tmessageReceiver), osdReceiver(tosdReceiver)
+: vfeed(this), afeed(this), tfeed(this),
+ osdReceiver(tosdReceiver), messageQueue(tmessageQueue), messageReceiver(tmessageReceiver)
{
audio = Audio::getInstance();
video = Video::getInstance();
}
int parx,pary;
- int dxCurrentAspect = demuxer->getAspectRatio(&parx,&pary);
+ UCHAR dxCurrentAspect = demuxer->getAspectRatio(&parx,&pary);
if (dxCurrentAspect == Demuxer::ASPECT_4_3)
{
logger->log("Player", Log::DEBUG, "Demuxer said video is 4:3 aspect, switching TV");
baseFrameNumber = iframeNumber;
- frameTimeOffset =(int) ((double)(abs((int)iframeNumber - (int)currentfeedFrameNumber) * 1000) / (fps * (double)ifactor));
+ frameTimeOffset = static_cast<int>((abs(static_cast<long>(iframeNumber - currentfeedFrameNumber)) * 1000) / (fps * ifactor));
logger->log("Player", Log::DEBUG, "XXX Got frame");
// logger->log("Player", Log::ERR, "FFN: %d CFN: %d dirfac %d time %lld ifac %d fps %g",
// firstFrameNumber, currentFrameNumber,dir_fac,cur_time,ifactor,fps);
if (cur_time!=0) {
- currentFrameNumber=firstFrameNumber+(int)(((double)(dir_fac*((long long)cur_time)*((int)ifactor))*fps/90000.));
+ currentFrameNumber=firstFrameNumber+(int)(((double)(dir_fac*((long long)cur_time)*((int)ifactor))*fps/90000.)); // old
}
}
// logger->log("Player", Log::ERR, "FFN: %d CFN: %d dirfac %d time %lld ifac %d fps %g",
// firstFrameNumber, currentFrameNumber,dir_fac,cur_time,ifactor,fps);
if (cur_time!=0) {
- currentFrameNumber=firstFrameNumber+(int)(((double)(dir_fac*((long long)cur_time)*((int)ifactor))*fps/90000.));
+ currentFrameNumber=firstFrameNumber+(int)(((double)(dir_fac*((long long)cur_time)*((int)ifactor))*fps/90000.)); // old
}
}
// scan has got to the end of what we knew to be there before we started scanning
baseFrameNumber = iframeNumber;
- frameTimeOffset =(int) ((double)(abs((int)iframeNumber - (int)currentFrameNumber) * 1000) / (fps * (double)ifactor));
+ frameTimeOffset = static_cast<int>((abs(static_cast<long>(iframeNumber - currentFrameNumber)) * 1000) / (fps * ifactor));
+
+// logger->log("Player", Log::DEBUG, "Frame Time Offset: %i", frameTimeOffset);
+
#ifndef WIN32
gettimeofday(&clock0, NULL);
#else
void restartAtFrame(ULONG newFrame);
void restartAtFramePI(ULONG newFrame);
- bool subtitlesShowing{};
+ VFeed vfeed;
+ AFeed afeed;
+ TFeed tfeed;
OSDReceiver* osdReceiver;
+ MessageQueue* messageQueue;
+ void* messageReceiver;
Log* logger;
Audio* audio;
Video* video;
Demuxer* demuxer;
DVBSubtitles* subtitles;
VDR* vdr;
- VFeed vfeed;
- AFeed afeed;
- TFeed tfeed;
+
TeletextDecoderVBIEBU *teletext;
- MessageQueue* messageQueue;
- void* messageReceiver;
bool initted{};
bool startup;
bool videoStartup{};
-
+ bool subtitlesShowing{};
bool is_pesrecording{true};
+
double fps;
std::mutex stateMutex;
VDR_ResponsePacket* vresp = RequestResponse(&vrp);
if (vresp->noResponse()) { delete vresp; return 0; }
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
delete vresp;
return toReturn;
VDR_ResponsePacket* vresp = RequestResponse(&vrp);
if (vresp->noResponse()) { delete vresp; return 0; }
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
delete vresp;
return toReturn;
if (vresp->noResponse()) { delete vresp; return NULL; }
char* toReturn = NULL;
- int success = (int)vresp->extractULONG();
+ int success = static_cast<int>(vresp->extractULONG());
if (success == 1)
{
toReturn = vresp->extractString();
chan->number = vresp->extractULONG();
chan->type = vresp->extractULONG();
chan->name = vresp->extractString();
- chan->vstreamtype = vresp->extractULONG();
+ chan->vstreamtype = static_cast<UCHAR>(vresp->extractULONG());
if (chan->type == type && ((chan->vstreamtype==0x1b && h264support)|| (chan->vstreamtype!=0x1b &&mpeg2support)) )
{
return 0;
}
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
logger->log("VDR", Log::DEBUG, "VDR said %lu to start streaming request", toReturn);
delete vresp;
VDR_ResponsePacket* vresp = RequestResponse(&vrp);
if (vresp->noResponse()) { delete vresp; return 0; }
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
delete vresp;
return toReturn;
VDR_ResponsePacket* vresp = RequestResponse(&vrp);
if (vresp->noResponse()) { delete vresp; return 0; }
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
delete vresp;
return toReturn;
// }
channel->vpid = vresp->extractULONG();
- channel->vstreamtype = vresp->extractULONG();
+ channel->vstreamtype = static_cast<UCHAR>(vresp->extractULONG());
channel->numAPids = vresp->extractULONG();
for (ULONG i = 0; i < channel->numAPids; i++)
VDR_ResponsePacket* vresp = RequestResponse(&vrp);
if (vresp->noResponse()) { delete vresp; return 0; }
- int toReturn = (int)vresp->extractULONG();
+ int toReturn = static_cast<int>(vresp->extractULONG());
delete vresp;
return toReturn;