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)
Karaoke video background rewritten completely using the ffmpeg-based …
…routines instead of hacking into the CDVDPlayer.
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).
Sure I can do it. FFMPegPlayer?
i leave the name at your discretion. but it's FFmpeg so don't make that mistake :)
windows fix is here: https://github.com/wsoltys/xbmc/commits/karaoke
thx for the Windows fix.
Hey guys, could you please take a look:
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 );
Do you think anything else would be necessary to expose?
@elupus, @davilla attention please
@gyunaev i am fairly certain class name and constructor has to match ;)
Will resubmit in an hour in another pull request.
You can force push to your branch and this PR will be auto updated. No need to open a.new one.
I don't want to deal with the rebases which I cannot figure out. Easier to fork it again and patch the new fork.
Fix black screen when stop playing a playlist
This was because we alway set the currentPlaylist when the play queue