Skip to content

[Updated] Karaoke video background player #1126

Closed
wants to merge 1 commit into from

3 participants

@gyunaev
gyunaev commented Jul 7, 2012

Updated the pull request based on the latest master, so hopefully no rebase needed.

The existing version is based on a CDVDPlayer hack and since merging with AudioEngine it just crashes if enabled. And it has been broken for the last few months or so, hence the replacement. A new background video player is based on ffmpeg. It is quite simple because we don't care about sound or the frame rate synchronization, but it does the job.

For Windows/Mac you'll need to add new files xbmc/music/karaoke/karaokevideobackground.cpp / h into the build system, otherwise it won't link. For Linux it is already added.

Please let me know of any compilation errors on non-Linux platform (should be none on Linux)

Oldnemesis Karaoke video background rewritten completely using the ffmpeg-based …
…routines instead of hacking into the CDVDPlayer.
6dfa8a3
@ghost
ghost commented Jul 7, 2012

nice. but there is so much untapped potential in such a simple player, e.g. video previews, video thumbs. can you factor it a bit (introduce this player as a general class, use the general class for karaoke).

@gyunaev
gyunaev commented Jul 7, 2012

Sure I can do it. FFMPegPlayer?

@ghost
ghost commented Jul 7, 2012

i leave the name at your discretion. but it's FFmpeg so don't make that mistake :)

@wsoltys
Team Kodi member
wsoltys commented Jul 7, 2012
@gyunaev
gyunaev commented Jul 7, 2012

thx for the Windows fix.

@gyunaev
gyunaev commented Jul 7, 2012

Hey guys, could you please take a look:

class FFmpegVideoDecoder
{
public:
FFmpegVideoPlayer();
~FFmpegVideoPlayer();

bool open( const CStdString& filename );

unsigned int getTotalFrames() const;
unsigned int getFpsDen() const;
unsigned int getFpsNum() const;
unsigned int getWidth() const;
unsigned int getHeight() const;

const AVFormatContext * getAVFormatContext() const;
const AVCodecContext * getAVCodecContext() const;
const AVCodec * getAVCodec() const;

CStdString getErrorMsg() const;

bool renderFrame( unsigned int frame, CBaseTexture * texture );
bool renderTime( int64_t time, CBaseTexture * texture );

void close();
}

Do you think anything else would be necessary to expose?

@ghost
ghost commented Jul 8, 2012

@elupus, @davilla attention please

@gyunaev i am fairly certain class name and constructor has to match ;)

@gyunaev
gyunaev commented Jul 9, 2012

Will resubmit in an hour in another pull request.

@gyunaev gyunaev closed this Jul 9, 2012
@MartijnKaijser
Team Kodi member

You can force push to your branch and this PR will be auto updated. No need to open a.new one.

@gyunaev
gyunaev commented Jul 9, 2012

I don't want to deal with the rebases which I cannot figure out. Easier to fork it again and patch the new fork.

@tru tru added a commit to RasPlex/plex-home-theatre that referenced this pull request Apr 24, 2014
@tru tru Fix black screen when stop playing a playlist
This was because we alway set the currentPlaylist when the play queue
was refreshed.

Fixes #1126
44cc12f
@tru tru added a commit to RasPlex/plex-home-theatre that referenced this pull request Apr 24, 2014
@tru tru Fix black screen when stop playing a playlist
This was because we alway set the currentPlaylist when the play queue
was refreshed.

Fixes #1126
a64bb8c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.