mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
-add show Cryptsysteme
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@339 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
@@ -1200,6 +1200,7 @@ streaminfo.aratio Verhältnis
|
|||||||
streaminfo.aratio_unknown Verhältnis: unbekannt
|
streaminfo.aratio_unknown Verhältnis: unbekannt
|
||||||
streaminfo.audiotype Audiotyp
|
streaminfo.audiotype Audiotyp
|
||||||
streaminfo.audiotype_unknown Audiotyp: unbekannt
|
streaminfo.audiotype_unknown Audiotyp: unbekannt
|
||||||
|
streaminfo.average_bitrate Durchschnitt
|
||||||
streaminfo.bitrate Bitrate
|
streaminfo.bitrate Bitrate
|
||||||
streaminfo.framerate Bildrate
|
streaminfo.framerate Bildrate
|
||||||
streaminfo.framerate_unknown Bildrate: unbekannt
|
streaminfo.framerate_unknown Bildrate: unbekannt
|
||||||
|
@@ -756,6 +756,7 @@ streaminfo.aratio Aspect Ratio
|
|||||||
streaminfo.aratio_unknown Aspect Ratio: unknown
|
streaminfo.aratio_unknown Aspect Ratio: unknown
|
||||||
streaminfo.audiotype Audiotype
|
streaminfo.audiotype Audiotype
|
||||||
streaminfo.audiotype_unknown Audiotype: unknown
|
streaminfo.audiotype_unknown Audiotype: unknown
|
||||||
|
streaminfo.average_bitrate Average
|
||||||
streaminfo.bitrate Bitrate
|
streaminfo.bitrate Bitrate
|
||||||
streaminfo.framerate Framerate
|
streaminfo.framerate Framerate
|
||||||
streaminfo.framerate_unknown Framerate: unknown
|
streaminfo.framerate_unknown Framerate: unknown
|
||||||
|
@@ -1811,7 +1811,6 @@ void CInfoViewer::paint_ca_icons(int caid, char * icon)
|
|||||||
static char * gray = (char *) "white";
|
static char * gray = (char *) "white";
|
||||||
//static char * green = (char *) "green";
|
//static char * green = (char *) "green";
|
||||||
static char * white = (char *) "yellow";
|
static char * white = (char *) "yellow";
|
||||||
extern int pmt_caids[10];
|
|
||||||
|
|
||||||
void CInfoViewer::showIcon_CA_Status (int notfirst)
|
void CInfoViewer::showIcon_CA_Status (int notfirst)
|
||||||
{
|
{
|
||||||
@@ -1822,12 +1821,13 @@ void CInfoViewer::showIcon_CA_Status (int notfirst)
|
|||||||
int acaid = 0;
|
int acaid = 0;
|
||||||
int py = BoxEndY - InfoHeightY_Info;
|
int py = BoxEndY - InfoHeightY_Info;
|
||||||
#endif
|
#endif
|
||||||
|
extern int pmt_caids[4][11];
|
||||||
int i;
|
int i;
|
||||||
int caids[] = { 0x1700, 0x0100, 0x0500, 0x1800, 0xB00, 0xD00, 0x900, 0x2600, 0x4a00, 0x0E00 };
|
int caids[] = { 0x1700, 0x0100, 0x0500, 0x1800, 0xB00, 0xD00, 0x900, 0x2600, 0x4a00, 0x0E00 };
|
||||||
|
|
||||||
if (!notfirst) {
|
if (!notfirst) {
|
||||||
for (i=0; i < (int)(sizeof(caids)/sizeof(int)); i++) {
|
for (i=0; i < (int)(sizeof(caids)/sizeof(int)); i++) {
|
||||||
paint_ca_icons(caids[i], (char *) (pmt_caids[i] ? white : gray));
|
paint_ca_icons(caids[i], (char *) (pmt_caids[0][i] ? white : gray));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -49,7 +49,7 @@
|
|||||||
#include <audio_cs.h>
|
#include <audio_cs.h>
|
||||||
#include <dmx_cs.h>
|
#include <dmx_cs.h>
|
||||||
#include <zapit/satconfig.h>
|
#include <zapit/satconfig.h>
|
||||||
|
#include <string>
|
||||||
extern CFrontend * frontend;
|
extern CFrontend * frontend;
|
||||||
extern cVideo * videoDecoder;
|
extern cVideo * videoDecoder;
|
||||||
extern cAudio * audioDecoder;
|
extern cAudio * audioDecoder;
|
||||||
@@ -143,14 +143,12 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
|||||||
|
|
||||||
neutrino_msg_t msg;
|
neutrino_msg_t msg;
|
||||||
uint64_t maxb, minb, lastb, tmp_rate;
|
uint64_t maxb, minb, lastb, tmp_rate;
|
||||||
int cnt = 0,i=0;
|
int cnt = 0;
|
||||||
uint16_t ssig, ssnr;
|
uint16_t ssig, ssnr;
|
||||||
uint32_t ber;
|
uint32_t ber;
|
||||||
char tmp_str[150];
|
char tmp_str[150];
|
||||||
int offset_tmp = 0;
|
|
||||||
int offset = g_Font[font_info]->getRenderWidth(g_Locale->getText (LOCALE_STREAMINFO_BITRATE));
|
int offset = g_Font[font_info]->getRenderWidth(g_Locale->getText (LOCALE_STREAMINFO_BITRATE));
|
||||||
int sw = g_Font[font_info]->getRenderWidth ("99999.999");
|
int sw = g_Font[font_info]->getRenderWidth ("99999.999");
|
||||||
int mm = g_Font[font_info]->getRenderWidth ("Max");//max min lenght
|
|
||||||
maxb = minb = lastb = tmp_rate = 0;
|
maxb = minb = lastb = tmp_rate = 0;
|
||||||
ts_setup ();
|
ts_setup ();
|
||||||
while (1) {
|
while (1) {
|
||||||
@@ -174,7 +172,6 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
|||||||
cnt++;
|
cnt++;
|
||||||
int dheight = g_Font[font_info]->getHeight ();
|
int dheight = g_Font[font_info]->getHeight ();
|
||||||
int dx1 = x + 10;
|
int dx1 = x + 10;
|
||||||
// int dy = y+ height - dheight - 5;
|
|
||||||
if (ret && (lastb != bit_s)) {
|
if (ret && (lastb != bit_s)) {
|
||||||
lastb = bit_s;
|
lastb = bit_s;
|
||||||
|
|
||||||
@@ -182,30 +179,14 @@ int CStreamInfo2::doSignalStrengthLoop ()
|
|||||||
rate.max_short_average = maxb = bit_s;
|
rate.max_short_average = maxb = bit_s;
|
||||||
if ((cnt > 10) && ((minb == 0) || (minb > bit_s)))
|
if ((cnt > 10) && ((minb == 0) || (minb > bit_s)))
|
||||||
rate.min_short_average = minb = bit_s;
|
rate.min_short_average = minb = bit_s;
|
||||||
|
sprintf(tmp_str, "%s:",g_Locale->getText(LOCALE_STREAMINFO_BITRATE));
|
||||||
|
g_Font[font_info]->RenderString(dx1 , average_bitrate_pos, offset+10, tmp_str, COL_MENUCONTENTDARK, 0, true);
|
||||||
|
sprintf(currate, "%5llu.%02llu", rate.short_average / 1000ULL, rate.short_average % 1000ULL);
|
||||||
|
frameBuffer->paintBoxRel (dx1 + offset + 10 , average_bitrate_pos -dheight, sw, dheight, COL_MENUHEAD_PLUS_0);
|
||||||
|
g_Font[font_info]->RenderString (dx1 + offset + 15, average_bitrate_pos, sw - 10, currate, COL_MENUCONTENTDARK);
|
||||||
|
sprintf(tmp_str, "(%s)",g_Locale->getText(LOCALE_STREAMINFO_AVERAGE_BITRATE));
|
||||||
|
g_Font[font_info]->RenderString (dx1 + offset+sw + 15, average_bitrate_pos, sw *2, tmp_str, COL_MENUCONTENTDARK);
|
||||||
|
|
||||||
for(i = 0; i < 3; i++){
|
|
||||||
switch (i) {
|
|
||||||
case 0:
|
|
||||||
tmp_rate = rate.short_average;
|
|
||||||
sprintf(tmp_str, "%s", g_Locale->getText(LOCALE_STREAMINFO_BITRATE));
|
|
||||||
offset_tmp = 0;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
tmp_rate = minb;
|
|
||||||
sprintf(tmp_str, "%s", "Min");
|
|
||||||
offset_tmp = offset+5;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
tmp_rate = maxb;
|
|
||||||
sprintf(tmp_str, "%s", "Max");
|
|
||||||
offset_tmp = offset+5+mm;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
g_Font[font_info]->RenderString (dx1+offset_tmp+((sw)*i), yypos+(dheight*4), offset, tmp_str, COL_MENUCONTENTDARK, 0, true);
|
|
||||||
sprintf(currate, "%5llu.%03llu", tmp_rate / 1000ULL, tmp_rate % 1000ULL);
|
|
||||||
frameBuffer->paintBoxRel (dx1+offset+5+((sw+mm)*i), yypos+(dheight*3), sw, dheight, COL_MENUHEAD_PLUS_0);
|
|
||||||
g_Font[font_info]->RenderString (dx1+offset+10+((sw+mm)*i), yypos+(dheight*4), sw - 10, currate, COL_MENUCONTENTDARK);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(snrscale && sigscale)
|
if(snrscale && sigscale)
|
||||||
showSNR ();
|
showSNR ();
|
||||||
@@ -324,8 +305,9 @@ void CStreamInfo2::paint_signal_fe_box(int _x, int _y, int w, int h)
|
|||||||
else {
|
else {
|
||||||
maxmin_x = _x + 40 + xd * 3 + (fontW*4);
|
maxmin_x = _x + 40 + xd * 3 + (fontW*4);
|
||||||
}
|
}
|
||||||
g_Font[font_small]->RenderString(maxmin_x, y1 + sheight , 50, "max", COL_MENUCONTENTDARK, 0, true);
|
g_Font[font_small]->RenderString(maxmin_x, y1 + sheight + 5, 50, "max", COL_MENUCONTENTDARK, 0, true);
|
||||||
g_Font[font_small]->RenderString(maxmin_x, y1 + (sheight * 3), 50, "min", COL_MENUCONTENTDARK, 0, true);
|
g_Font[font_small]->RenderString(maxmin_x, y1 + (sheight * 2) +5, 50, "now", COL_MENUCONTENTDARK, 0, true);
|
||||||
|
g_Font[font_small]->RenderString(maxmin_x, y1 + (sheight * 3) +5, 50, "min", COL_MENUCONTENTDARK, 0, true);
|
||||||
|
|
||||||
|
|
||||||
sigBox_pos = 0;
|
sigBox_pos = 0;
|
||||||
@@ -535,6 +517,8 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos)
|
|||||||
strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_FRAMERATE_UNKNOWN), sizeof (buf));
|
strncpy (buf, g_Locale->getText (LOCALE_STREAMINFO_FRAMERATE_UNKNOWN), sizeof (buf));
|
||||||
}
|
}
|
||||||
g_Font[font_info]->RenderString (xpos+spaceoffset, ypos, width*2/3 - 10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
g_Font[font_info]->RenderString (xpos+spaceoffset, ypos, width*2/3 - 10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
||||||
|
// place for average bitrate
|
||||||
|
average_bitrate_pos = ypos += iheight;
|
||||||
|
|
||||||
//AUDIOTYPE
|
//AUDIOTYPE
|
||||||
ypos += iheight;
|
ypos += iheight;
|
||||||
@@ -612,6 +596,7 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos)
|
|||||||
g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, width*2/3-10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, width*2/3-10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
||||||
scaling = 20000;
|
scaling = 20000;
|
||||||
}
|
}
|
||||||
|
|
||||||
// paint labels
|
// paint labels
|
||||||
int fontW = g_Font[font_small]->getWidth();
|
int fontW = g_Font[font_small]->getWidth();
|
||||||
spaceoffset = 7 * fontW;
|
spaceoffset = 7 * fontW;
|
||||||
@@ -683,8 +668,207 @@ void CStreamInfo2::paint_techinfo(int xpos, int ypos)
|
|||||||
g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, width*2/3-10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
g_Font[font_small]->RenderString(xpos+spaceoffset, ypos, width*2/3-10, buf, COL_MENUCONTENTDARK, 0, true); // UTF-8
|
||||||
|
|
||||||
yypos = ypos;
|
yypos = ypos;
|
||||||
|
paintCASystem(xpos,ypos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CStreamInfo2::paintCASystem(int xpos, int ypos)
|
||||||
|
{
|
||||||
|
extern int pmt_caids[4][11];
|
||||||
|
unsigned short i,j;
|
||||||
|
bool ecm_pid_ok = true;
|
||||||
|
std::string casys[11]={"Irdeto:","Betacrypt:","Seca:","Viaccess:","Nagra:","Conax: ","Cryptoworks:","Videoguard:","EBU:","XCrypt:","PowerVU:"};
|
||||||
|
bool caids[11] ={ false, false, false, false, false, false, false, false, false, false, false };
|
||||||
|
char tmp[100] = {0};
|
||||||
|
int array[11] = {0};
|
||||||
|
for(i = 0; i < 11; i++){
|
||||||
|
array[i]=0;
|
||||||
|
array[i] = g_Font[font_info]->getRenderWidth( casys[i].c_str() );
|
||||||
|
}
|
||||||
|
|
||||||
|
for(j=0;j<4;j++){
|
||||||
|
for(i=0;i<11;i++){
|
||||||
|
if(pmt_caids[j][i] > 0 && i == 0){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 1){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 2){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 3){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 4){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 5){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 6){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 7){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 8){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 9){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
else if(pmt_caids[j][i] > 0 && i == 10){
|
||||||
|
for( int k = 0; k < 4;k++){
|
||||||
|
if(pmt_caids[j][i] == pmt_caids[k][i] && ( j != k)){
|
||||||
|
pmt_caids[j][i]=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(pmt_caids[j][i] > 0 )
|
||||||
|
{
|
||||||
|
snprintf(tmp,sizeof(tmp)," 0x%04X",pmt_caids[j][i]);
|
||||||
|
casys[i] += tmp;
|
||||||
|
}
|
||||||
|
caids[i] = true;
|
||||||
|
}
|
||||||
|
ecm_pid_ok = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int spaceoffset = 0 ;
|
||||||
|
|
||||||
|
for(i=0 ; i<11; i++){
|
||||||
|
if(caids[i] == true)
|
||||||
|
if(spaceoffset < array[i])
|
||||||
|
spaceoffset = array[i];
|
||||||
|
}
|
||||||
|
spaceoffset+=4;
|
||||||
|
ypos += iheight*2 +4;
|
||||||
|
bool cryptsysteme = true;
|
||||||
|
for(int ca_id = 0;ca_id < 11;ca_id++){
|
||||||
|
if(caids[ca_id] == true){
|
||||||
|
if(cryptsysteme){
|
||||||
|
ypos += iheight;
|
||||||
|
g_Font[font_info]->RenderString(xpos , ypos, width*2/3-10, "Cryptsysteme:" , COL_MENUCONTENTDARK, 0, false);
|
||||||
|
cryptsysteme = false;
|
||||||
|
}
|
||||||
|
ypos += sheight;
|
||||||
|
int width_txt = 0, index = 0;
|
||||||
|
const char *tok = " ";
|
||||||
|
std::string::size_type last_pos = casys[ca_id].find_first_not_of(tok, 0);
|
||||||
|
std::string::size_type pos = casys[ca_id].find_first_of(tok, last_pos);
|
||||||
|
while (std::string::npos != pos || std::string::npos != last_pos){
|
||||||
|
g_Font[font_small]->RenderString(xpos + width_txt, ypos, width*2/3-10, casys[ca_id].substr(last_pos, pos - last_pos).c_str() , COL_MENUCONTENTDARK, 0, false);
|
||||||
|
if(index == 0)
|
||||||
|
width_txt = spaceoffset;
|
||||||
|
else
|
||||||
|
width_txt += g_Font[font_small]->getRenderWidth(casys[ca_id].substr(last_pos, pos - last_pos).c_str())+10;
|
||||||
|
index++;
|
||||||
|
last_pos = casys[ca_id].find_first_not_of(tok, pos);
|
||||||
|
pos = casys[ca_id].find_first_of(tok, last_pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
int CStreamInfo2Handler::exec(CMenuTarget* parent, const std::string &/*actionkey*/)
|
int CStreamInfo2Handler::exec(CMenuTarget* parent, const std::string &/*actionkey*/)
|
||||||
{
|
{
|
||||||
int res = menu_return::RETURN_EXIT_ALL;
|
int res = menu_return::RETURN_EXIT_ALL;
|
||||||
|
@@ -61,6 +61,7 @@ class CStreamInfo2 : public CMenuTarget
|
|||||||
int sig_text_sig_x;
|
int sig_text_sig_x;
|
||||||
int sig_text_snr_x;
|
int sig_text_snr_x;
|
||||||
int sig_text_rate_x;
|
int sig_text_rate_x;
|
||||||
|
int average_bitrate_pos;
|
||||||
unsigned int scaling;
|
unsigned int scaling;
|
||||||
struct feSignal {
|
struct feSignal {
|
||||||
unsigned long ber, old_ber, max_ber, min_ber;
|
unsigned long ber, old_ber, max_ber, min_ber;
|
||||||
@@ -87,6 +88,7 @@ class CStreamInfo2 : public CMenuTarget
|
|||||||
void paint(int mode);
|
void paint(int mode);
|
||||||
void paint_pig(int x, int y, int w, int h);
|
void paint_pig(int x, int y, int w, int h);
|
||||||
void paint_techinfo(int x, int y);
|
void paint_techinfo(int x, int y);
|
||||||
|
void paintCASystem(int xpos, int ypos);
|
||||||
void paint_signal_fe_box(int x, int y, int w, int h);
|
void paint_signal_fe_box(int x, int y, int w, int h);
|
||||||
void paint_signal_fe(struct bitrate rate, struct feSignal s);
|
void paint_signal_fe(struct bitrate rate, struct feSignal s);
|
||||||
int y_signal_fe(unsigned long value, unsigned long max_range, int max_y);
|
int y_signal_fe(unsigned long value, unsigned long max_range, int max_y);
|
||||||
@@ -95,7 +97,6 @@ class CStreamInfo2 : public CMenuTarget
|
|||||||
CProgressBar *snrscale;
|
CProgressBar *snrscale;
|
||||||
int lastsig, lastsnr;
|
int lastsig, lastsnr;
|
||||||
void showSNR ();
|
void showSNR ();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
CStreamInfo2();
|
CStreamInfo2();
|
||||||
|
@@ -993,6 +993,7 @@ typedef enum {
|
|||||||
LOCALE_STREAMINFO_ARATIO_UNKNOWN,
|
LOCALE_STREAMINFO_ARATIO_UNKNOWN,
|
||||||
LOCALE_STREAMINFO_AUDIOTYPE,
|
LOCALE_STREAMINFO_AUDIOTYPE,
|
||||||
LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN,
|
LOCALE_STREAMINFO_AUDIOTYPE_UNKNOWN,
|
||||||
|
LOCALE_STREAMINFO_AVERAGE_BITRATE,
|
||||||
LOCALE_STREAMINFO_BITRATE,
|
LOCALE_STREAMINFO_BITRATE,
|
||||||
LOCALE_STREAMINFO_FRAMERATE,
|
LOCALE_STREAMINFO_FRAMERATE,
|
||||||
LOCALE_STREAMINFO_FRAMERATE_UNKNOWN,
|
LOCALE_STREAMINFO_FRAMERATE_UNKNOWN,
|
||||||
|
@@ -993,6 +993,7 @@ const char *locale_real_names[] = {
|
|||||||
"streaminfo.aratio_unknown",
|
"streaminfo.aratio_unknown",
|
||||||
"streaminfo.audiotype",
|
"streaminfo.audiotype",
|
||||||
"streaminfo.audiotype_unknown",
|
"streaminfo.audiotype_unknown",
|
||||||
|
"streaminfo.average_bitrate",
|
||||||
"streaminfo.bitrate",
|
"streaminfo.bitrate",
|
||||||
"streaminfo.framerate",
|
"streaminfo.framerate",
|
||||||
"streaminfo.framerate_unknown",
|
"streaminfo.framerate_unknown",
|
||||||
|
@@ -346,7 +346,7 @@ unsigned short parse_ES_info(const unsigned char * const buffer, CZapitChannel *
|
|||||||
}
|
}
|
||||||
|
|
||||||
int curpmtpid;
|
int curpmtpid;
|
||||||
int pmt_caids[10] = {0,0,0,0,0,0,0,0,0,0};
|
int pmt_caids[4][11] = {{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0}};
|
||||||
|
|
||||||
int parse_pmt(CZapitChannel * const channel)
|
int parse_pmt(CZapitChannel * const channel)
|
||||||
{
|
{
|
||||||
@@ -358,10 +358,11 @@ int parse_pmt(CZapitChannel * const channel)
|
|||||||
unsigned char buffer[PMT_SIZE];
|
unsigned char buffer[PMT_SIZE];
|
||||||
|
|
||||||
/* current position in buffer */
|
/* current position in buffer */
|
||||||
unsigned short i;
|
unsigned short i,j;
|
||||||
|
for(j=0;j<4;j++){
|
||||||
for(i=0;i<10;i++)
|
for(i=0;i<10;i++)
|
||||||
pmt_caids[i] = 0;
|
pmt_caids[j][i] = 0;
|
||||||
|
}
|
||||||
/* length of elementary stream description */
|
/* length of elementary stream description */
|
||||||
unsigned short ES_info_length;
|
unsigned short ES_info_length;
|
||||||
|
|
||||||
@@ -419,6 +420,7 @@ int parse_pmt(CZapitChannel * const channel)
|
|||||||
|
|
||||||
dpmtlen=0;
|
dpmtlen=0;
|
||||||
pos=10;
|
pos=10;
|
||||||
|
short int ci0 = 0, ci1 = 0, ci2 = 0, ci3 = 0, ci4 = 0, ci5 = 0, ci6 = 0, ci7 = 0, ci8 = 0, ci9 = 0, ci10 = 0;
|
||||||
if(!scan_runs) {
|
if(!scan_runs) {
|
||||||
while(pos+2<pmtlen) {
|
while(pos+2<pmtlen) {
|
||||||
dpmtlen=((buffer[pos] & 0x0f) << 8) | buffer[pos+1];
|
dpmtlen=((buffer[pos] & 0x0f) << 8) | buffer[pos+1];
|
||||||
@@ -427,26 +429,27 @@ int parse_pmt(CZapitChannel * const channel)
|
|||||||
if ( ia < pmtlen - 4 )
|
if ( ia < pmtlen - 4 )
|
||||||
if(buffer[ia]==0x09 && buffer[ia+1]>0) {
|
if(buffer[ia]==0x09 && buffer[ia+1]>0) {
|
||||||
switch(buffer[ia+2]) {
|
switch(buffer[ia+2]) {
|
||||||
case 0x06: pmt_caids[0] = 1;
|
case 0x06: pmt_caids[ci0++][0] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
case 0x17: pmt_caids[0] = 1;
|
|
||||||
break;
|
break;
|
||||||
case 0x01: pmt_caids[1] = 1;
|
case 0x17: pmt_caids[ci1++][1] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x05: pmt_caids[2] = 1;
|
case 0x01: pmt_caids[ci2++][2] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x18: pmt_caids[3] = 1;
|
case 0x05: pmt_caids[ci3++][3] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x0B: pmt_caids[4] = 1;
|
case 0x18: pmt_caids[ci4++][4] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x0D: pmt_caids[5] = 1;
|
case 0x0B: pmt_caids[ci5++][5] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x09: pmt_caids[6] = 1;
|
case 0x0D: pmt_caids[ci6++][6] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x26: pmt_caids[7] = 1;
|
case 0x09: pmt_caids[ci7++][7] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x4a: pmt_caids[8] = 1;
|
case 0x26: pmt_caids[ci8++][8] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
case 0x0E: pmt_caids[9] = 1;
|
case 0x4a: pmt_caids[ci9++][9] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
|
break;
|
||||||
|
case 0x0E: pmt_caids[ci10++][10] = (buffer[ia+4] & 0x1f) << 8 | buffer[ia+5];
|
||||||
break;
|
break;
|
||||||
} //switch
|
} //switch
|
||||||
} // if
|
} // if
|
||||||
|
Reference in New Issue
Block a user