Skip to content

Commit

Permalink
Merge branch 'master' into new-logging
Browse files Browse the repository at this point in the history
  • Loading branch information
Beirdo committed Jun 4, 2011
2 parents 3fb63e8 + 491cc4a commit 24d5d89
Show file tree
Hide file tree
Showing 12 changed files with 156 additions and 29 deletions.
1 change: 1 addition & 0 deletions mythtv/libs/libmythtv/audioplayer.h
Expand Up @@ -44,6 +44,7 @@ class MTV_PUBLIC AudioPlayer
int GetCodec(void) { return m_codec; }
int GetNumChannels(void) { return m_channels; }
int GetOrigChannels(void) { return m_orig_channels; }
int GetSampleRate(void) { return m_samplerate; }
uint GetVolume(void);
uint AdjustVolume(int change);
float GetStretchFactor(void) { return m_stretchfactor; }
Expand Down
1 change: 1 addition & 0 deletions mythtv/libs/libmythtv/bdringbuffer.cpp
Expand Up @@ -273,6 +273,7 @@ void BDRingBuffer::ProgressUpdate(void)

bool BDRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
{
safefilename = lfilename;
filename = lfilename;

VERBOSE(VB_IMPORTANT, LOC + QString("Opened BDRingBuffer device at %1")
Expand Down
1 change: 1 addition & 0 deletions mythtv/libs/libmythtv/dvdringbuffer.cpp
Expand Up @@ -303,6 +303,7 @@ bool DVDRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
if (m_dvdnav)
CloseDVD();

safefilename = lfilename;
filename = lfilename;
QByteArray fname = filename.toLocal8Bit();

Expand Down
1 change: 1 addition & 0 deletions mythtv/libs/libmythtv/fileringbuffer.cpp
Expand Up @@ -45,6 +45,7 @@ FileRingBuffer::FileRingBuffer(const QString &lfilename,
bool write, bool readahead, int timeout_ms)
{
startreadahead = readahead;
safefilename = lfilename;
filename = lfilename;

if (write)
Expand Down
21 changes: 21 additions & 0 deletions mythtv/libs/libmythtv/mythplayer.cpp
Expand Up @@ -4317,6 +4317,27 @@ int MythPlayer::GetStatusbarPos(void) const
return((int)spos);
}

void MythPlayer::GetPlaybackData(InfoMap &infoMap)
{
QString samplerate = RingBuffer::BitrateToString(audio.GetSampleRate());
infoMap.insert("samplerate", samplerate);
infoMap.insert("filename", player_ctx->buffer->GetSafeFilename());
infoMap.insert("decoderrate", player_ctx->buffer->GetDecoderRate());
infoMap.insert("storagerate", player_ctx->buffer->GetStorageRate());
infoMap.insert("bufferavail", player_ctx->buffer->GetAvailableBuffer());
infoMap.insert("avsync",
QString::number((float)avsync_avg / (float)frame_interval, 'f', 2));
if (videoOutput)
{
QString frames = QString("%1/%2").arg(videoOutput->ValidVideoFrames())
.arg(videoOutput->FreeVideoFrames());
infoMap.insert("videoframes", frames);
}
if (decoder)
infoMap["videodecoder"] = decoder->GetCodecDecoderName();
GetCodecDescription(infoMap);
}

int MythPlayer::GetSecondsBehind(void) const
{
if (!player_ctx->recorder)
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmythtv/mythplayer.h
Expand Up @@ -144,7 +144,7 @@ class MTV_PUBLIC MythPlayer
QSize GetVideoSize(void) const { return video_disp_dim; }
float GetVideoAspect(void) const { return video_aspect; }
float GetFrameRate(void) const { return video_frame_rate; }

void GetPlaybackData(InfoMap &infoMap);
bool IsAudioNeeded(void) { return !using_null_videoout && player_ctx->IsAudioNeeded(); }
uint GetVolume(void) { return audio.GetVolume(); }
int GetSecondsBehind(void) const;
Expand Down
2 changes: 1 addition & 1 deletion mythtv/libs/libmythtv/ringbuffer.cpp
Expand Up @@ -172,7 +172,7 @@ RingBuffer::RingBuffer(void) :
readpos(0), writepos(0),
internalreadpos(0), ignorereadpos(-1),
rbrpos(0), rbwpos(0),
stopreads(false),
stopreads(false), safefilename(QString()),
filename(), subtitlefilename(),
tfw(NULL), fd2(-1),
writemode(false), remotefile(NULL),
Expand Down
4 changes: 3 additions & 1 deletion mythtv/libs/libmythtv/ringbuffer.h
Expand Up @@ -49,6 +49,7 @@ class MTV_PUBLIC RingBuffer : protected QThread
void EnableBitrateMonitor(bool enable) { bitrateMonitorEnabled = enable; }

// Gets
QString GetSafeFilename(void) { return safefilename; }
QString GetFilename(void) const;
QString GetSubtitleFilename(void) const;
/// Returns value of stopreads
Expand All @@ -69,6 +70,7 @@ class MTV_PUBLIC RingBuffer : protected QThread
virtual bool IsOpen(void) const = 0;
virtual bool IsStreamed(void) { return LiveMode(); }
virtual int BestBufferSize(void) { return 32768; }
static QString BitrateToString(uint64_t rate);

// DVD and bluray methods
bool IsDisc(void) const { return IsDVD() || IsBD(); }
Expand Down Expand Up @@ -154,7 +156,6 @@ class MTV_PUBLIC RingBuffer : protected QThread
void ResetReadAhead(long long newinternal);
void KillReadAheadThread(void);

static QString BitrateToString(uint64_t rate);
uint64_t UpdateDecoderRate(uint64_t latest = 0);
uint64_t UpdateStorageRate(uint64_t latest = 0);

Expand All @@ -175,6 +176,7 @@ class MTV_PUBLIC RingBuffer : protected QThread

mutable QReadWriteLock rwlock;

QString safefilename; // unprotected (for debugging)
QString filename; // protected by rwlock
QString subtitlefilename; // protected by rwlock

Expand Down
1 change: 1 addition & 0 deletions mythtv/libs/libmythtv/streamingringbuffer.cpp
Expand Up @@ -31,6 +31,7 @@ bool StreamingRingBuffer::OpenFile(const QString &lfilename, uint retry_ms)
{
av_register_all();

safefilename = lfilename;
filename = lfilename;
VERBOSE(VB_GENERAL, LOC + QString("Trying %1").arg(filename));

Expand Down
20 changes: 10 additions & 10 deletions mythtv/libs/libmythtv/tv_play.cpp
Expand Up @@ -6900,6 +6900,7 @@ void TV::ToggleOSD(PlayerContext *ctx, bool includeStatusOSD)

void TV::ToggleOSDDebug(PlayerContext *ctx)
{
bool show = false;
OSD *osd = GetOSDLock(ctx);
if (osd && osd->IsWindowVisible("osd_debug"))
{
Expand All @@ -6909,27 +6910,26 @@ void TV::ToggleOSDDebug(PlayerContext *ctx)
else if (osd)
{
ctx->buffer->EnableBitrateMonitor(true);
InfoMap infoMap;
infoMap.insert("filename", ctx->buffer->GetFilename());
osd->ResetWindow("osd_debug");
osd->SetText("osd_debug", infoMap, kOSDTimeout_None);

show = true;
QMutexLocker locker(&timerIdLock);
if (!updateOSDDebugTimerId)
updateOSDDebugTimerId = StartTimer(250, __LINE__);
}
ReturnOSDLock(ctx, osd);
if (show)
UpdateOSDDebug(ctx);
}

void TV::UpdateOSDDebug(const PlayerContext *ctx)
{
InfoMap infoMap;
infoMap.insert("decoderrate", ctx->buffer->GetDecoderRate());
infoMap.insert("storagerate", ctx->buffer->GetStorageRate());
infoMap.insert("bufferavail", ctx->buffer->GetAvailableBuffer());
OSD *osd = GetOSDLock(ctx);
if (osd)
if (osd && ctx->player)
{
InfoMap infoMap;
ctx->player->GetPlaybackData(infoMap);
osd->ResetWindow("osd_debug");
osd->SetText("osd_debug", infoMap, kOSDTimeout_None);
}
ReturnOSDLock(ctx, osd);
}

Expand Down
14 changes: 3 additions & 11 deletions mythtv/libs/libmythui/mythuitype.cpp
Expand Up @@ -580,9 +580,8 @@ void MythUIType::AdjustMinArea(int delta_x, int delta_y)
m_MinArea.setX(m_Area.x());
m_MinArea.setY(m_Area.y());

QSize minsize = QSize(m_MinSize.x(), m_MinSize.y());
QSize bound(m_MinArea.width(), m_MinArea.height());
bound = bound.expandedTo(minsize);
bound = bound.expandedTo(GetMinSize());

m_MinArea.setWidth(bound.width());
m_MinArea.setHeight(bound.height());
Expand Down Expand Up @@ -657,9 +656,8 @@ void MythUIType::SetMinAreaParent(MythRect actual_area, MythRect allowed_area,
allowed_area = allowed_area.united(area);
}

QSize minsize = QSize(m_MinSize.x(), m_MinSize.y());
QSize bound(actual_area.width(), actual_area.height());
bound = bound.expandedTo(minsize);
bound = bound.expandedTo(GetMinSize());

m_MinArea.setWidth(bound.width());
m_MinArea.setHeight(bound.height());
Expand Down Expand Up @@ -687,15 +685,9 @@ void MythUIType::SetMinArea(const QSize &size)
* The MinArea will have the same origin as the normal Area,
* but can have a smaller size.
*/
QSize minsize = QSize(m_MinSize.x() + 1, m_MinSize.y() + 1);

QSize bounded(size);

if (bounded.isNull())
bounded = minsize;
else
bounded = bounded.expandedTo(minsize);

bounded = bounded.expandedTo(GetMinSize());
bounded = bounded.boundedTo(m_Area.size());

if (bounded == m_MinArea.size())
Expand Down
117 changes: 112 additions & 5 deletions mythtv/themes/default-wide/osd.xml
Expand Up @@ -6,20 +6,23 @@
<pixelsize>16</pixelsize>
<color>#FFFFFF</color>
</fontdef>
<area>50,50,800,105</area>
<fontdef name="file" from="medium">
<color>#CCCCFF</color>
</fontdef>
<area>50,50,1180,105</area>
<shape name="background">
<area>0,0,100%,100%</area>
<fill color="#000000" alpha="200" />
</shape>
<textarea name="file">
<font>medium</font>
<font>file</font>
<area>5,5,180,25</area>
<align>right,vcenter</align>
<value>Filename :</value>
</textarea>
<textarea name="filename">
<font>medium</font>
<area>190,5,605,25</area>
<font>file</font>
<area>190,5,980,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="storage">
Expand All @@ -30,7 +33,7 @@
</textarea>
<textarea name="storagerate">
<font>medium</font>
<area>190,30,605,25</area>
<area>190,30,200,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="decoder">
Expand All @@ -55,6 +58,110 @@
<area>190,80,605,25</area>
<align>left,vcenter</align>
</textarea>

<textarea name="video">
<font>medium</font>
<area>250,30,150,25</area>
<align>right,vcenter</align>
<value>Video :</value>
</textarea>
<textarea name="videowidth">
<font>medium</font>
<area>405,30,250,25</area>
<align>left,vcenter</align>
<template>%VIDEOWIDTH%x%VIDEOHEIGHT%@%VIDEOFRAMERATE%fps</template>
</textarea>
<textarea name="vidcodec">
<font>medium</font>
<area>250,55,150,25</area>
<align>right,vcenter</align>
<value>Codec :</value>
</textarea>
<textarea name="videocodec">
<font>medium</font>
<area>405,55,150,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="viddec">
<font>medium</font>
<area>250,80,150,25</area>
<align>right,vcenter</align>
<value>Decoder :</value>
</textarea>
<textarea name="videodecoder">
<font>medium</font>
<area>405,80,150,25</area>
<align>left,vcenter</align>
</textarea>

<textarea name="sync">
<font>medium</font>
<area>650,30,150,25</area>
<align>right,vcenter</align>
<value>A/V Sync :</value>
</textarea>
<textarea name="avsync">
<font>medium</font>
<area>805,30,150,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="fps">
<font>medium</font>
<area>600,55,200,25</area>
<align>right,vcenter</align>
<value>FPS :</value>
</textarea>
<textarea name="framerate">
<font>medium</font>
<area>805,55,250,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="frames">
<font>medium</font>
<area>600,80,200,25</area>
<align>right,vcenter</align>
<value>Frames decoded/free :</value>
</textarea>
<textarea name="videoframes">
<font>medium</font>
<area>805,80,250,25</area>
<align>left,vcenter</align>
</textarea>

<textarea name="audio">
<font>medium</font>
<area>865,30,150,25</area>
<align>right,vcenter</align>
<value>Audio :</value>
</textarea>
<textarea name="audiocodec">
<font>medium</font>
<area>1020,30,250,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="channels">
<font>medium</font>
<area>865,55,150,25</area>
<align>right,vcenter</align>
<value>Channels :</value>
</textarea>
<textarea name="audiochannels">
<font>medium</font>
<area>1020,55,150,25</area>
<align>left,vcenter</align>
</textarea>
<textarea name="audiorate">
<font>medium</font>
<area>865,80,150,25</area>
<align>right,vcenter</align>
<value>Sample rate :</value>
</textarea>
<textarea name="samplerate">
<font>medium</font>
<area>1020,80,150,25</area>
<align>left,vcenter</align>
</textarea>

</window>

<window name="osd_message">
Expand Down

0 comments on commit 24d5d89

Please sign in to comment.