Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f74c588
commit b12d20b
Showing
12 changed files
with
207 additions
and
222 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,29 @@ | ||
#ifndef AVFORMATDECODERBD_H | ||
#define AVFORMATDECODERBD_H | ||
|
||
// MythTV | ||
#include "avformatdecoder.h" | ||
|
||
class AvFormatDecoderBD : public AvFormatDecoder | ||
class MythBDDecoder : public AvFormatDecoder | ||
{ | ||
public: | ||
AvFormatDecoderBD(MythPlayer *parent, const ProgramInfo &pginfo, | ||
PlayerFlags flags); | ||
void Reset(bool reset_video_data, bool seek_reset, bool reset_file) override; // AvFormatDecoder | ||
void UpdateFramesPlayed(void) override; // AvFormatDecoder | ||
int ReadPacket(AVFormatContext *ctx, AVPacket* pkt, bool& storePacket) override; // AvFormatDecoder | ||
MythBDDecoder(MythPlayer *Parent, const ProgramInfo &PGInfo, PlayerFlags Flags); | ||
|
||
void Reset (bool ResetVideoData, bool SeekReset, bool ResetFile) override; | ||
void UpdateFramesPlayed (void) override; | ||
int ReadPacket (AVFormatContext *Ctx, AVPacket* Pkt, bool& StorePacket) override; | ||
|
||
protected: | ||
bool IsValidStream(int streamid) override; // AvFormatDecoder | ||
bool IsValidStream (int StreamId) override; | ||
|
||
private: | ||
bool DoRewindSeek(long long desiredFrame) override; // AvFormatDecoder | ||
void DoFastForwardSeek(long long desiredFrame, bool &needflush) override; // AvFormatDecoder | ||
void StreamChangeCheck(void) override; // AvFormatDecoder | ||
int GetSubtitleLanguage(uint subtitle_index, uint stream_index) override; // AvFormatDecoder | ||
int GetAudioLanguage(uint audio_index, uint stream_index) override; // AvFormatDecoder | ||
bool DoRewindSeek (long long DesiredFrame) override; | ||
void DoFastForwardSeek (long long DesiredFrame, bool &Needflush) override; | ||
void StreamChangeCheck (void) override; | ||
int GetSubtitleLanguage (uint SubtitleIndex, uint StreamIndex) override; | ||
int GetAudioLanguage (uint AudioIndex, uint StreamIndex) override; | ||
|
||
long long BDFindPosition(long long desiredFrame); | ||
long long BDFindPosition (long long DesiredFrame); | ||
}; | ||
|
||
#endif // AVFORMATDECODERBD_H | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,61 @@ | ||
// Qt | ||
#include <QPainter> | ||
|
||
// MythTV | ||
#include "mythuiimage.h" | ||
#include "mythpainter.h" | ||
|
||
#include "bdringbuffer.h" | ||
#include "bdoverlayscreen.h" | ||
|
||
#define LOC QString("BDScreen: ") | ||
|
||
BDOverlayScreen::BDOverlayScreen(MythPlayer *player, const QString &name) | ||
: MythScreenType((MythScreenType*)nullptr, name), | ||
m_player(player) | ||
MythBDOverlayScreen::MythBDOverlayScreen(MythPlayer *Player, const QString &Name) | ||
: MythScreenType(static_cast<MythScreenType*>(nullptr), Name), | ||
m_player(Player) | ||
{ | ||
} | ||
|
||
BDOverlayScreen::~BDOverlayScreen() | ||
MythBDOverlayScreen::~MythBDOverlayScreen() | ||
{ | ||
LOG(VB_PLAYBACK, LOG_DEBUG, LOC + "dtor"); | ||
} | ||
|
||
void BDOverlayScreen::DisplayBDOverlay(BDOverlay *overlay) | ||
void MythBDOverlayScreen::DisplayBDOverlay(MythBDOverlay *Overlay) | ||
{ | ||
if (!overlay || !m_player) | ||
if (!Overlay || !m_player) | ||
return; | ||
|
||
MythRect rect(overlay->m_x, overlay->m_y, | ||
overlay->m_image.width(), overlay->m_image.height()); | ||
MythRect rect(Overlay->m_x, Overlay->m_y, Overlay->m_image.width(), Overlay->m_image.height()); | ||
SetArea(rect); | ||
DeleteAllChildren(); | ||
|
||
MythVideoOutput *vo = m_player->GetVideoOutput(); | ||
if (!vo) | ||
return; | ||
|
||
QImage& img = overlay->m_image; | ||
QImage& img = Overlay->m_image; | ||
|
||
// add to screen | ||
QRect scaled = vo->GetImageRect(rect); | ||
if (scaled.size() != rect.size()) | ||
{ | ||
img = img.scaled(scaled.width(), scaled.height(), | ||
Qt::IgnoreAspectRatio, Qt::SmoothTransformation); | ||
} | ||
img = img.scaled(scaled.width(), scaled.height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); | ||
|
||
MythPainter *osd_painter = vo->GetOSDPainter(); | ||
MythImage* image = nullptr; | ||
if (osd_painter) | ||
image = osd_painter->GetFormatImage(); | ||
|
||
if (image) | ||
{ | ||
image->Assign(img); | ||
auto *uiimage = new MythUIImage(this, "bdoverlay"); | ||
if (uiimage) | ||
MythImage* image = osd_painter->GetFormatImage(); | ||
if (image) | ||
{ | ||
uiimage->SetImage(image); | ||
uiimage->SetArea(MythRect(scaled)); | ||
image->Assign(img); | ||
auto *uiimage = new MythUIImage(this, "bdoverlay"); | ||
if (uiimage) | ||
{ | ||
uiimage->SetImage(image); | ||
uiimage->SetArea(MythRect(scaled)); | ||
} | ||
image->DecrRef(); | ||
} | ||
image->DecrRef(); | ||
} | ||
|
||
SetRedraw(); | ||
|
||
delete overlay; | ||
delete Overlay; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,22 @@ | ||
#ifndef BDOVERLAYSCREEN_H | ||
#define BDOVERLAYSCREEN_H | ||
|
||
// MythTV | ||
#include "mythscreentype.h" | ||
#include "mythplayer.h" | ||
|
||
class BDOverlay; | ||
class MythBDOverlay; | ||
|
||
class BDOverlayScreen : public MythScreenType | ||
class MythBDOverlayScreen : public MythScreenType | ||
{ | ||
public: | ||
BDOverlayScreen(MythPlayer *player, const QString &name); | ||
~BDOverlayScreen() override; | ||
MythBDOverlayScreen(MythPlayer *Player, const QString &Name); | ||
~MythBDOverlayScreen() override; | ||
|
||
void DisplayBDOverlay(BDOverlay *overlay); | ||
void DisplayBDOverlay(MythBDOverlay *Overlay); | ||
|
||
private: | ||
MythPlayer *m_player {nullptr}; | ||
MythPlayer *m_player { nullptr }; | ||
}; | ||
|
||
#endif // BDOVERLAYSCREEN_H |
Oops, something went wrong.