mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
add tool to work around crappy coolstream driver initialization
This commit is contained in:
@@ -163,3 +163,16 @@ if BOXMODEL_RASPI
|
||||
neutrino_LDADD += \
|
||||
-L/opt/vc/lib/ -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt
|
||||
endif
|
||||
|
||||
if BOXTYPE_COOL
|
||||
if BOXMODEL_APOLLO
|
||||
else
|
||||
bin_PROGRAMS += uncoolinit
|
||||
uncoolinit_SOURCES = uncoolinit.cpp
|
||||
uncoolinit_LDADD = \
|
||||
@AVFORMAT_LIBS@ \
|
||||
@AVCODEC_LIBS@ \
|
||||
-lcoolstream-mt -lca-sc -lnxp \
|
||||
-lOpenThreads -lrt
|
||||
endif
|
||||
endif
|
||||
|
55
src/uncoolinit.cpp
Normal file
55
src/uncoolinit.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* (C) 2013 Stefan Seyfried, License: GPL v3+
|
||||
*
|
||||
* uncoolinit -- work around driver initalization bug on
|
||||
* (at least) Coolstream HD1 "first fifty edition".
|
||||
* When starting up with 720p, the HDMI output is pink-tinted
|
||||
* and without sound until switching resolution once.
|
||||
*
|
||||
* work around the issue by initializing the videodecoder in
|
||||
* 1080i mode.
|
||||
*
|
||||
* This is really just a workaround for crappy drivers, but
|
||||
* better than nothing :-)
|
||||
*/
|
||||
|
||||
#include <cs_api.h>
|
||||
#include <video_cs.h>
|
||||
#include <dmx_cs.h>
|
||||
|
||||
#include <cstdlib>
|
||||
#include <time.h>
|
||||
|
||||
cVideo *v = NULL;
|
||||
cDemux *d = NULL;
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
struct timespec s, e;
|
||||
clock_gettime(CLOCK_MONOTONIC, &s);
|
||||
printf("\nuncoolinit by seife -- working around crappy drivers since 2009!\n");
|
||||
/* initialize everything */
|
||||
cs_api_init();
|
||||
d = new cDemux(); /* dummy demux for getChannel() and getBuffer() */
|
||||
d->Open(DMX_VIDEO_CHANNEL); /* do we really need to open it? */
|
||||
|
||||
/* this enables output in 1080i mode */
|
||||
v = new cVideo(VIDEO_STD_1080I50, d->getChannel(), d->getBuffer());
|
||||
|
||||
/* should we slow down booting even more by showing a picture? */
|
||||
if (argc > 1) {
|
||||
v->ShowPicture(argv[1]);
|
||||
if (argc > 2)
|
||||
sleep(atoi(argv[2]));
|
||||
v->StopPicture();
|
||||
}
|
||||
|
||||
/* clean up after ourselves, or the drivers will be *very* unhappy */
|
||||
delete v;
|
||||
delete d;
|
||||
cs_api_exit();
|
||||
clock_gettime(CLOCK_MONOTONIC, &e);
|
||||
printf("uncoolinit ends, took %lld ms\n",
|
||||
(e.tv_sec*1000 + e.tv_nsec/1000000LL) - (s.tv_sec*1000 + s.tv_nsec/1000000LL));
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user