1
0
mirror of https://github.com/rofafor/vdr-plugin-femon.git synced 2023-10-10 11:36:53 +00:00

Compare commits

...

16 Commits

Author SHA1 Message Date
Rolf Ahrenberg
23a8a72c38 Modified LATM parser. 2010-06-23 20:12:35 +03:00
Rolf Ahrenberg
f37f428670 Added preliminary support for LATM. 2010-06-23 12:16:17 +03:00
Rolf Ahrenberg
3235c67256 Fixed a crash in femon service (Thanks to Wolfgang Astleitner). 2010-05-31 16:55:19 +03:00
Rolf Ahrenberg
a21ed98163 Updated Italian translation (Thanks to Diego Pierotto). 2010-03-31 14:44:39 +03:00
Rolf Ahrenberg
0b38358442 Fixed a typo. 2010-03-09 15:31:18 +02:00
Rolf Ahrenberg
9c085fea51 Fixed device switching. 2010-03-06 22:01:42 +02:00
Rolf Ahrenberg
dfc66b3d69 Updated the femonclient plugin. 2010-03-04 22:54:45 +02:00
Rolf Ahrenberg
252bd0e479 Added parsing for a missing setup option. 2010-03-04 22:49:19 +02:00
Rolf Ahrenberg
7657d21d5e Updated CXXFLAGS. 2010-03-04 12:58:25 +02:00
Rolf Ahrenberg
7b004e9427 Updated Estonian translation (Thanks to Arthur Konovalov). 2010-03-04 12:55:18 +02:00
Rolf Ahrenberg
a08f9de9d3 Updated for vdr-1.7.13. 2010-02-28 21:42:06 +02:00
Rolf Ahrenberg
513791d5f1 Added a setup option to downscale the OSD size. 2010-02-25 20:33:20 +02:00
Rolf Ahrenberg
60386835dd Updated for vdr-1.7.12. 2010-02-01 13:48:28 +02:00
Rolf Ahrenberg
38f4d3d9b8 Added Lithuanian translation (Thanks to Valdemaras Pipiras). 2009-12-14 16:47:16 +02:00
Rolf Ahrenberg
078f0552fc Fixed a typo. 2009-11-25 16:03:41 +02:00
Rolf Ahrenberg
1fd7c90c3b Updated Estonian translation (Thanks to Arthur Konovalov).
Updated version number.
2009-11-23 15:11:37 +02:00
26 changed files with 779 additions and 141 deletions

19
HISTORY
View File

@@ -383,3 +383,22 @@ VDR Plugin 'femon' Revision History
- Removed error logging from unimplemented ioctl functions.
- Removed bitstream parsing from Receive() method.
- Added Chinese translation (Thanks to NanFeng).
2010-02-01: Version 1.7.6
- Updated for vdr-1.7.12.
- Updated Estonian translation (Thanks to Arthur Konovalov).
- Added Lithuanian translation (Thanks to Valdemaras Pipiras).
2010-03-05: Version 1.7.7
- Updated for vdr-1.7.13.
- Added a setup option to downscale the OSD size.
- Updated Estonian translation (Thanks to Arthur Konovalov).
2010-06-23: Version 1.7.8
- Fixed device switching.
- Added preliminary support for LATM.
- Updated Italian translation (Thanks to Diego Pierotto).
- Fixed a crash in femon service (Thanks to Wolfgang Astleitner).

View File

@@ -31,6 +31,10 @@ VDRDIR = ../../..
LIBDIR = ../../lib
TMPDIR = /tmp
### Make sure that necessary options are included:
-include $(VDRDIR)/Make.global
### Allow user defined options to overwrite defaults:
-include $(VDRDIR)/Make.config
@@ -59,7 +63,7 @@ all-redirect: all
### The object files (add further files here):
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femontools.o femonmpeg.o femonac3.o femonaac.o femonh264.o femonsymbol.o
OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femontools.o femonmpeg.o femonac3.o femonaac.o femonlatm.o femonh264.o femonsymbol.o
### The main target:
@@ -91,7 +95,7 @@ I18Npot = $(PODIR)/$(PLUGIN).pot
msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='Rolf Ahrenberg' -o $@ $^
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --msgid-bugs-address='<see README>' -o $@ $^
%.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $<

13
femon.c
View File

@@ -14,11 +14,11 @@
#include "femonservice.h"
#include "femontools.h"
#if defined(APIVERSNUM) && APIVERSNUM < 10700
#error "VDR-1.7.0 API version or greater is required!"
#if defined(APIVERSNUM) && APIVERSNUM < 10713
#error "VDR-1.7.13 API version or greater is required!"
#endif
static const char VERSION[] = "1.7.5";
static const char VERSION[] = "1.7.8";
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
@@ -112,6 +112,7 @@ bool cPluginFemon::SetupParse(const char *Name, const char *Value)
else if (!strcasecmp(Name, "Position")) femonConfig.position = atoi(Value);
else if (!strcasecmp(Name, "Skin")) femonConfig.skin = atoi(Value);
else if (!strcasecmp(Name, "Theme")) femonConfig.theme = atoi(Value);
else if (!strcasecmp(Name, "Downscale")) femonConfig.downscale = atoi(Value);
else if (!strcasecmp(Name, "RedLimit")) femonConfig.redlimit = atoi(Value);
else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value);
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = atoi(Value);
@@ -132,6 +133,8 @@ bool cPluginFemon::Service(const char *Id, void *Data)
if (strcmp(Id,"FemonService-v1.0") == 0) {
if (Data) {
FemonService_v1_0 *data = (FemonService_v1_0*)Data;
if (!cDevice::ActualDevice())
return false;
int ndx = cDevice::ActualDevice()->CardIndex();
data->fe_name = getFrontendName(ndx);
data->fe_status = getFrontendStatus(ndx);
@@ -319,6 +322,9 @@ void cMenuFemonSetup::Setup(void)
Add(new cMenuEditBoolItem(tr("Position"), &data.position, trVDR("bottom"), trVDR("top")));
help.Append(tr("Define the position of OSD."));
Add(new cMenuEditIntItem(tr("Downscale OSD size [%]"), &data.downscale, 0, 20));
help.Append(tr("Define the downscale ratio for OSD size."));
Add(new cMenuEditIntItem(tr("Red limit [%]"), &data.redlimit, 1, 50));
help.Append(tr("Define a limit for red bar, which is used to indicate a bad signal."));
@@ -360,6 +366,7 @@ void cMenuFemonSetup::Store(void)
SetupStore("Skin", femonConfig.skin);
SetupStore("Theme", femonConfig.theme);
SetupStore("Position", femonConfig.position);
SetupStore("Downscale", femonConfig.downscale);
SetupStore("RedLimit", femonConfig.redlimit);
SetupStore("GreenLimit", femonConfig.greenlimit);
SetupStore("UpdateInterval", femonConfig.updateinterval);

View File

@@ -17,7 +17,8 @@ enum eAudioCodec {
AUDIO_CODEC_MPEG2_I,
AUDIO_CODEC_MPEG2_II,
AUDIO_CODEC_MPEG2_III,
AUDIO_CODEC_HEAAC
AUDIO_CODEC_HEAAC,
AUDIO_CODEC_LATM
};
enum eAudioChannelMode {

View File

@@ -17,6 +17,7 @@ cFemonConfig::cFemonConfig(void)
skin = 0;
theme = 0;
position = 1;
downscale = 0;
redlimit = 33;
greenlimit = 66;
updateinterval = 5;

View File

@@ -28,6 +28,7 @@ public:
int skin;
int theme;
int position;
int downscale;
int redlimit;
int greenlimit;
int updateinterval;

Binary file not shown.

View File

@@ -142,7 +142,7 @@ bool cFemonH264::processVideo(const uint8_t *buf, int len)
case NAL_SEI:
if (!sei_found) {
//debug("H.264: Found NAL SEI at offset %d/%d\n", iny(buf - start), len);
//debug("H.264: Found NAL SEI at offset %d/%d\n", int(buf - start), len);
int nal_len = nalUnescape(nal_data, buf + 4, int(end - buf - 4));
consumed = parseSEI(nal_data, nal_len);
if (consumed > 0)

112
femonlatm.c Normal file
View File

@@ -0,0 +1,112 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
*/
#include "femontools.h"
#include "femonlatm.h"
unsigned int cFemonLATM::s_Bitrates[3][16] =
{
{0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, -1}, // MPEG-2 Layer I
{0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1}, // MPEG-2 Layer II/III
{0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1} // MPEG-2 Layer II/III
};
unsigned int cFemonLATM::s_Samplerates[4] =
{
22050, 24000, 16000, -1
};
cFemonLATM::cFemonLATM(cFemonAudioIf *audiohandler)
: m_AudioHandler(audiohandler)
{
}
cFemonLATM::~cFemonLATM()
{
}
bool cFemonLATM::processAudio(const uint8_t *buf, int len)
{
cBitStream bs(buf, len * 8);
if (!m_AudioHandler)
return false;
// skip PES header
if (!PesLongEnough(len))
return false;
bs.skipBits(8 * PesPayloadOffset(buf));
// MPEG audio detection
if (bs.getBits(12) != 0x56E) // syncword
return false;
m_AudioHandler->SetAudioCodec(AUDIO_CODEC_LATM);
if (bs.getBit() == 0) // id: MPEG-1=1, extension to lower sampling frequencies=0
return true; // @todo: lower sampling frequencies support
int layer = 3 - bs.getBits(2); // layer: I=11, II=10, III=01
bs.skipBit(); // protection bit
int bit_rate_index = bs.getBits(4); // bitrate index
int sampling_frequency = bs.getBits(2); // sampling frequency
bs.skipBit(); // padding bit
bs.skipBit(); // private pid
int mode = bs.getBits(2); // mode
switch (mode) {
case 0:
m_AudioHandler->SetAudioChannel(AUDIO_CHANNEL_MODE_STEREO);
break;
case 1:
m_AudioHandler->SetAudioChannel(AUDIO_CHANNEL_MODE_JOINT_STEREO);
break;
case 2:
m_AudioHandler->SetAudioChannel(AUDIO_CHANNEL_MODE_DUAL);
break;
case 3:
m_AudioHandler->SetAudioChannel(AUDIO_CHANNEL_MODE_SINGLE);
break;
default:
m_AudioHandler->SetAudioChannel(AUDIO_CHANNEL_MODE_INVALID);
break;
}
if (layer == 3) {
m_AudioHandler->SetAudioBitrate(AUDIO_BITRATE_FREE);
}
else {
switch (bit_rate_index) {
case 0:
m_AudioHandler->SetAudioBitrate(AUDIO_BITRATE_FREE);
break;
case 0xF:
m_AudioHandler->SetAudioBitrate(AUDIO_BITRATE_RESERVED);
break;
default:
m_AudioHandler->SetAudioBitrate(1000 * s_Bitrates[layer][bit_rate_index]);
break;
}
}
switch (sampling_frequency) {
case 3:
m_AudioHandler->SetAudioSamplingFrequency(AUDIO_SAMPLING_FREQUENCY_RESERVED);
break;
default:
m_AudioHandler->SetAudioSamplingFrequency(s_Samplerates[sampling_frequency]);
break;
}
return true;
}

27
femonlatm.h Normal file
View File

@@ -0,0 +1,27 @@
/*
* Frontend Status Monitor plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
*/
#ifndef __FEMONLATM_H
#define __FEMONLATM_H
#include "femonaudio.h"
class cFemonLATM {
private:
cFemonAudioIf *m_AudioHandler;
static unsigned int s_Bitrates[3][16];
static unsigned int s_Samplerates[4];
public:
cFemonLATM(cFemonAudioIf *audiohandler);
virtual ~cFemonLATM();
bool processAudio(const uint8_t *buf, int len);
};
#endif //__FEMONLATM_H

View File

@@ -179,8 +179,10 @@ cFemonOsd::cFemonOsd()
m_UNCValid(false),
m_FrontendStatusValid(false),
m_DisplayMode(femonConfig.displaymode),
m_OsdWidth(cOsd::OsdWidth()),
m_OsdHeight(cOsd::OsdHeight()),
m_OsdWidth(cOsd::OsdWidth() * (100 - femonConfig.downscale) / 100),
m_OsdHeight(cOsd::OsdHeight() * (100 - femonConfig.downscale) / 100),
m_OsdLeft(cOsd::OsdLeft() + (cOsd::OsdWidth() * femonConfig.downscale / 200)),
m_OsdTop(cOsd::OsdTop() + (cOsd::OsdHeight() * femonConfig.downscale / 200)),
m_InputTime(0),
m_Sleep(),
m_Mutex()
@@ -364,6 +366,7 @@ void cFemonOsd::DrawInfoWindow(void)
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
if (m_Osd && channel) {
cDvbTransponderParameters dtp(channel->Parameters());
switch (m_DisplayMode) {
case eFemonModeTransponder:
OSDDRAWINFOTITLEBAR(tr("Transponder Information"));
@@ -393,13 +396,13 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Srate"), *cString::sprintf("%d", channel->Srate()));
OSDDRAWINFORIGHT(trVDR("Polarization"), *cString::sprintf("%c", toupper(channel->Polarization())));
OSDDRAWINFORIGHT(trVDR("Polarization"), *cString::sprintf("%c", toupper(dtp.Polarization())));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(channel->Inversion()));
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(channel->CoderateH()));
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(dtp.Inversion()));
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(dtp.CoderateH()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("System"), *getSystem(channel->System()));
OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(channel->RollOff()));
OSDDRAWINFOLEFT( trVDR("System"), *getSystem(dtp.System()));
OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(dtp.RollOff()));
break;
case cSource::stCable:
@@ -409,26 +412,26 @@ void cFemonOsd::DrawInfoWindow(void)
OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Srate"), *cString::sprintf("%d", channel->Srate()));
OSDDRAWINFORIGHT(trVDR("Modulation"), *getModulation(channel->Modulation()));
OSDDRAWINFORIGHT(trVDR("Modulation"), *getModulation(dtp.Modulation()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(channel->Inversion()));
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(channel->CoderateH()));
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(dtp.Inversion()));
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(dtp.CoderateH()));
break;
case cSource::stTerr:
OSDDRAWINFOLINE(*cString::sprintf("DVB-T #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency()));
OSDDRAWINFORIGHT(trVDR("Transmission"), *getTransmission(channel->Transmission()));
OSDDRAWINFORIGHT(trVDR("Transmission"), *getTransmission(dtp.Transmission()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Bandwidth"), *getBandwidth(channel->Bandwidth()));
OSDDRAWINFORIGHT(trVDR("Modulation"), *getModulation(channel->Modulation()));
OSDDRAWINFOLEFT( trVDR("Bandwidth"), *getBandwidth(dtp.Bandwidth()));
OSDDRAWINFORIGHT(trVDR("Modulation"), *getModulation(dtp.Modulation()));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(channel->Inversion()));
OSDDRAWINFORIGHT(tr ("Coderate"), *cString::sprintf("%s (H) %s (L)", *getCoderate(channel->CoderateH()), *getCoderate(channel->CoderateL())));
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(dtp.Inversion()));
OSDDRAWINFORIGHT(tr ("Coderate"), *cString::sprintf("%s (H) %s (L)", *getCoderate(dtp.CoderateH()), *getCoderate(dtp.CoderateL())));
offset += OSDROWHEIGHT;
OSDDRAWINFOLEFT( trVDR("Hierarchy"), *getHierarchy(channel->Hierarchy()));
OSDDRAWINFORIGHT(trVDR("Guard"), *getGuard(channel->Guard()));
OSDDRAWINFOLEFT( trVDR("Hierarchy"), *getHierarchy(dtp.Hierarchy()));
OSDDRAWINFORIGHT(trVDR("Guard"), *getGuard(dtp.Guard()));
break;
default:
@@ -575,8 +578,6 @@ void cFemonOsd::Action(void)
void cFemonOsd::Show(void)
{
debug("%s()\n", __PRETTY_FUNCTION__);
int apid[2] = {0, 0};
int dpid[2] = {0, 0};
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
cString dev = cString::sprintf(FRONTEND_DEVICE, cDevice::ActualDevice()->CardIndex(), 0);
m_Frontend = open(dev, O_RDONLY | O_NONBLOCK);
@@ -599,7 +600,7 @@ void cFemonOsd::Show(void)
return;
}
m_Osd = cOsdProvider::NewOsd(cOsd::OsdLeft(), cOsd::OsdTop());
m_Osd = cOsdProvider::NewOsd(m_OsdLeft, m_OsdTop);
if (m_Osd) {
tArea Areas1[] = { { 0, 0, OSDWIDTH - 1, OSDHEIGHT - 1, 8 } };
if (Setup.AntiAlias && m_Osd->CanHandleAreas(Areas1, sizeof(Areas1) / sizeof(tArea)) == oeOk) {
@@ -621,9 +622,7 @@ void cFemonOsd::Show(void)
if (femonConfig.analyzestream) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vtype(), channel->Vpid(), apid, dpid);
m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0));
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
}
}
@@ -634,8 +633,6 @@ void cFemonOsd::Show(void)
void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
{
debug("%s(%d,%d)\n", __PRETTY_FUNCTION__, device->DeviceNumber(), channelNumber);
int apid[2] = {0, 0};
int dpid[2] = {0, 0};
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
if (!device->IsPrimaryDevice() || !channelNumber || cDevice::PrimaryDevice()->CurrentChannel() != channelNumber)
return;
@@ -668,9 +665,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
if (femonConfig.analyzestream) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vtype(), channel->Vpid(), apid, dpid);
m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0));
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
}
}
@@ -679,8 +674,6 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks)
{
debug("%s()\n", __PRETTY_FUNCTION__);
int apid[2] = {0, 0};
int dpid[2] = {0, 0};
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
if (m_Receiver) {
m_Receiver->Deactivate();
@@ -689,9 +682,7 @@ void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks)
if (femonConfig.analyzestream) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vtype(), channel->Vpid(), apid, dpid);
m_Receiver = new cFemonReceiver(channel->Vtype(), channel->Vpid(), channel->Apid(IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0), channel->Dpid(IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0));
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
}
}
@@ -706,7 +697,7 @@ bool cFemonOsd::DeviceSwitch(int direction)
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
if (channel) {
for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
if (direction) {
if (direction >= 0) {
if (++device >= cDevice::NumDevices())
device = 0;
}
@@ -721,7 +712,7 @@ bool cFemonOsd::DeviceSwitch(int direction)
cDevice::GetDevice(device)->SwitchChannel(channel, true);
if (cDevice::GetDevice(device) == cDevice::PrimaryDevice())
cDevice::GetDevice(device)->ForceTransferMode();
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->GetChannelID(), channel->Vpid(), channel->Apids(), channel->Dpids(), channel->Spids()));
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel));
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number());
return (true);
}

View File

@@ -50,6 +50,8 @@ private:
int m_DisplayMode;
int m_OsdWidth;
int m_OsdHeight;
int m_OsdLeft;
int m_OsdTop;
cFont *m_Font;
cTimeMs m_InputTime;
cCondWait m_Sleep;

View File

@@ -10,15 +10,15 @@
#include "femoncfg.h"
#include "femonreceiver.h"
cFemonReceiver::cFemonReceiver(tChannelID ChannelID, int Ca, int Vtype, int Vpid, int Apid[], int Dpid[])
: cReceiver(ChannelID, -1, Vpid, Apid, Dpid, NULL),
cThread("femon receiver"),
cFemonReceiver::cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid)
: cThread("femon receiver"),
m_Mutex(),
m_Sleep(),
m_Active(false),
m_DetectH264(this),
m_DetectMPEG(this, this),
m_DetectAAC(this),
m_DetectLATM(this),
m_DetectAC3(this),
m_VideoBuffer(KILOBYTE(512), TS_SIZE, false, "Femon video"),
m_VideoType(Vtype),
@@ -27,18 +27,22 @@ cFemonReceiver::cFemonReceiver(tChannelID ChannelID, int Ca, int Vtype, int Vpid
m_VideoBitrate(0.0),
m_VideoValid(false),
m_AudioBuffer(KILOBYTE(256), TS_SIZE, false, "Femon audio"),
m_AudioPid(Apid[0]),
m_AudioPid(Apid),
m_AudioPacketCount(0),
m_AudioBitrate(0.0),
m_AudioValid(false),
m_AC3Buffer(KILOBYTE(256), TS_SIZE, false, "Femon AC3"),
m_AC3Pid(Dpid[0]),
m_AC3Pid(Dpid),
m_AC3PacketCount(0),
m_AC3Bitrate(0),
m_AC3Valid(false)
{
debug("%s()\n", __PRETTY_FUNCTION__);
AddPid(m_VideoPid);
AddPid(m_AudioPid);
AddPid(m_AC3Pid);
m_VideoBuffer.SetTimeouts(0, 100);
m_AudioBuffer.SetTimeouts(0, 100);
m_AC3Buffer.SetTimeouts(0, 100);
@@ -141,7 +145,7 @@ void cFemonReceiver::Action(void)
while (Data = m_VideoBuffer.Get(Length)) {
if (!m_Active || (Length < TS_SIZE))
break;
Length = TS_SIZE;
Length = TS_SIZE;
if (*Data != TS_SYNC_BYTE) {
for (int i = 1; i < Length; ++i) {
if (Data[i] == TS_SYNC_BYTE) {
@@ -178,7 +182,7 @@ void cFemonReceiver::Action(void)
while (Data = m_AudioBuffer.Get(Length)) {
if (!m_Active || (Length < TS_SIZE))
break;
Length = TS_SIZE;
Length = TS_SIZE;
if (*Data != TS_SYNC_BYTE) {
for (int i = 1; i < Length; ++i) {
if (Data[i] == TS_SYNC_BYTE) {
@@ -191,7 +195,7 @@ void cFemonReceiver::Action(void)
}
processed = true;
if (const uint8_t *p = m_AudioAssembler.GetPes(len)) {
if (m_DetectAAC.processAudio(p, len) || m_DetectMPEG.processAudio(p, len))
if (m_DetectAAC.processAudio(p, len) || m_DetectLATM.processAudio(p, len) || m_DetectMPEG.processAudio(p, len))
m_AudioValid = true;
m_AudioAssembler.Reset();
}
@@ -203,7 +207,7 @@ void cFemonReceiver::Action(void)
while (Data = m_AC3Buffer.Get(Length)) {
if (!m_Active || (Length < TS_SIZE))
break;
Length = TS_SIZE;
Length = TS_SIZE;
if (*Data != TS_SYNC_BYTE) {
for (int i = 1; i < Length; ++i) {
if (Data[i] == TS_SYNC_BYTE) {

View File

@@ -14,6 +14,7 @@
#include "femonh264.h"
#include "femonmpeg.h"
#include "femonaac.h"
#include "femonlatm.h"
#include "femonac3.h"
#include "femonaudio.h"
#include "femonvideo.h"
@@ -28,6 +29,7 @@ private:
cFemonH264 m_DetectH264;
cFemonMPEG m_DetectMPEG;
cFemonAAC m_DetectAAC;
cFemonLATM m_DetectLATM;
cFemonAC3 m_DetectAC3;
cRingBufferLinear m_VideoBuffer;
@@ -106,7 +108,7 @@ public:
m_AC3Info.lfe = onoff; }
public:
cFemonReceiver(tChannelID ChannelID, int Ca, int Vtype, int Vpid, int Apid[], int Dpid[]);
cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid);
virtual ~cFemonReceiver();
void Deactivate(void);

View File

@@ -65,9 +65,9 @@ static cString getCA(int value)
return cString::sprintf("%X", value);
}
static const char *getUserString(int Value, const tChannelParameterMap *Map)
static const char *getUserString(int Value, const tDvbParameterMap *Map)
{
const tChannelParameterMap *map = Map;
const tDvbParameterMap *map = Map;
while (map && map->userValue != -1) {
if (map->driverValue == Value)
return map->userString ? trVDR(map->userString) : "---";
@@ -294,6 +294,7 @@ cString getAudioCodec(int value)
case AUDIO_CODEC_MPEG2_II: return cString::sprintf("%s", tr("MPEG-2 Layer II"));
case AUDIO_CODEC_MPEG2_III: return cString::sprintf("%s", tr("MPEG-2 Layer III"));
case AUDIO_CODEC_HEAAC: return cString::sprintf("%s", tr("HE-AAC"));
case AUDIO_CODEC_LATM: return cString::sprintf("%s", tr("LATM"));
default: break;
}
return cString::sprintf("---");

View File

@@ -7,9 +7,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Christian Wieninger\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -89,6 +89,12 @@ msgstr "Position"
msgid "Define the position of OSD."
msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "Grenze Rot [%]"
@@ -260,6 +266,9 @@ msgstr ""
msgid "HE-AAC"
msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo"
msgstr ""

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Luis Palacios\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "Posici
msgid "Define the position of OSD."
msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "L<>mite de rojo [%s]"
@@ -258,6 +264,9 @@ msgstr ""
msgid "HE-AAC"
msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo"
msgstr ""

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Arthur Konovalov\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -22,7 +22,7 @@ msgid "Signal Information"
msgstr "Signaaliinfo"
msgid "Femon not available"
msgstr ""
msgstr "Femon ei ole k<>ttesaadav"
msgid "basic"
msgstr "standard"
@@ -37,7 +37,7 @@ msgid "AC-3"
msgstr "AC-3"
msgid "Classic"
msgstr "Klassikaline"
msgstr "Classic"
msgid "Elchi"
msgstr "Elchi"
@@ -64,79 +64,85 @@ msgid "SilverGreen"
msgstr "SilverGreen"
msgid "Hide main menu entry"
msgstr "Peida valik peamen<65><6E>s"
msgstr "Peita valik peamen<65><6E>s"
msgid "Define whether the main menu entry is hidden."
msgstr ""
msgstr "Valiku peamen<65><6E>s peitmise m<><6D>ritlemine."
msgid "Default display mode"
msgstr "Vaikimisi displei moodus"
msgstr "Vaikemoodus"
msgid "Define the default display mode at startup."
msgstr ""
msgstr "K<EFBFBD>ivitamisel vaikemooduse m<><6D>ritlemine."
msgid "Define the used OSD skin."
msgstr ""
msgstr "Kasutatava ekraanikesta m<><6D>ritlemine."
msgid "Define the used OSD theme."
msgstr ""
msgstr "Kasutatava teema m<><6D>ritlemine."
msgid "Position"
msgstr "Positsioon"
msgid "Define the position of OSD."
msgstr ""
msgstr "Ekraaniinfo positsiooni m<><6D>ritlemine."
msgid "Downscale OSD size [%]"
msgstr "Ekraanimen<65><6E> v<>hendamine [%]"
msgid "Define the downscale ratio for OSD size."
msgstr "Ekraanimen<65><6E> suuruse v<>hendamise m<><6D>ritlemine"
msgid "Red limit [%]"
msgstr "Punase limiit [%]"
msgid "Define a limit for red bar, which is used to indicate a bad signal."
msgstr ""
msgstr "Seaded punasele limiidile. Iseloomustab kehva signaali."
msgid "Green limit [%]"
msgstr "Rohelise limiit [%]"
msgid "Define a limit for green bar, which is used to indicate a good signal."
msgstr ""
msgstr "Seaded rohelisele limiidile. Iseloomustab head signaali."
msgid "OSD update interval [0.1s]"
msgstr "Uuendusintervall [0,1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr ""
msgstr "Ekraaniinfo uuendamise intervalli m<><6D>ritlemine. V<>iksem intervall- suurem CPU koormus."
msgid "Analyze stream"
msgstr "Voo anal<61><6C>s"
msgid "Define whether the DVB stream is analyzed and bitrates calculated."
msgstr ""
msgstr "DVB voo bitikiiruse rehkendamise m<><6D>ritlemine."
msgid "Calculation interval [0.1s]"
msgstr "Kalkulatsiooni intervall [0,1s]"
msgstr "Arvutamise intervall [0,1s]"
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr ""
msgstr "Arvutamise intervalli m<><6D>ritlemine. Suurem intervall annab stabiilsemaid tulemusi."
msgid "Use SVDRP service"
msgstr ""
msgstr "SVDRP teenus"
msgid "Define whether the SVDRP service is used in client/server setups."
msgstr ""
msgstr "SVDRP teenuse klient/server seadete m<><6D>ritlemine."
msgid "SVDRP service port"
msgstr ""
msgstr "SVDRP port"
msgid "Define the port number of SVDRP service."
msgstr ""
msgstr "SVDRP teenuse pordi m<><6D>ritlemine."
msgid "SVDRP service IP"
msgstr ""
msgstr "SVDRP IP"
msgid "Define the IP address of SVDRP service."
msgstr ""
msgstr "SVDRP teenuse IP aadressi m<><6D>ritlemine."
msgid "Help"
msgstr ""
msgstr "Abi"
msgid "Video"
msgstr "Video"
@@ -169,13 +175,13 @@ msgid "Coderate"
msgstr "Coderate"
msgid "Stream Information"
msgstr "Voo info"
msgstr "Vooinfo"
msgid "Video Stream"
msgstr "Videovoog"
msgid "Codec"
msgstr ""
msgstr "Koodek"
msgid "Bitrate"
msgstr "Bitikiirus"
@@ -196,7 +202,7 @@ msgid "Audio Stream"
msgstr "Audiovoog"
msgid "Channel Mode"
msgstr ""
msgstr "Kanalimoodus"
msgid "Sampling Frequency"
msgstr "S<>mplimissagedus"
@@ -229,64 +235,67 @@ msgid "Fixed"
msgstr "Fikseeritud"
msgid "Analog"
msgstr ""
msgstr "Analoog"
msgid "MPEG-2"
msgstr ""
msgstr "MPEG-2"
msgid "H.264"
msgstr ""
msgstr "H.264"
msgid "MPEG-1 Layer I"
msgstr ""
msgstr "MPEG-1 Layet I"
msgid "MPEG-1 Layer II"
msgstr ""
msgstr "MPEG-1 Layer II"
msgid "MPEG-1 Layer III"
msgstr ""
msgstr "MPEG-1 Layer III"
msgid "MPEG-2 Layer I"
msgstr ""
msgstr "MPEG-2 Layer I"
msgid "MPEG-2 Layer II"
msgstr ""
msgstr "MPEG-2 Layer II"
msgid "MPEG-2 Layer III"
msgstr ""
msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr ""
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr ""
msgstr "stereo"
msgid "joint Stereo"
msgstr ""
msgstr "joint stereo"
msgid "dual"
msgstr ""
msgstr "duaalne"
msgid "mono"
msgstr ""
msgstr "mono"
msgid "interlaced"
msgstr ""
msgstr "<EFBFBD>lerealaotus"
msgid "progressive"
msgstr ""
msgstr "progressiivne"
msgid "reserved"
msgstr "reserveeritud"
msgstr "reserv."
msgid "extended"
msgstr ""
msgstr "laiendatud"
msgid "unknown"
msgstr "tundmatu"
msgid "component"
msgstr ""
msgstr "komponentne"
msgid "PAL"
msgstr "PAL"
@@ -295,10 +304,10 @@ msgid "NTSC"
msgstr "NTSC"
msgid "SECAM"
msgstr ""
msgstr "SECAM"
msgid "MAC"
msgstr ""
msgstr "MAC"
msgid "Hz"
msgstr "Hz"
@@ -331,10 +340,10 @@ msgid "Karaoke"
msgstr "Karaoke"
msgid "Ch1"
msgstr "Kan. 1"
msgstr "Kan.1"
msgid "Ch2"
msgstr "Kan. 2"
msgstr "Kan.2"
msgid "C"
msgstr "C"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Rolf Ahrenberg\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "Sijainti"
msgid "Define the position of OSD."
msgstr "Määrittele näytön sijainti."
msgid "Downscale OSD size [%]"
msgstr "Pienennä näytön kokoa [%]"
msgid "Define the downscale ratio for OSD size."
msgstr "Määrittele näytön pienennyssuhde."
msgid "Red limit [%]"
msgstr "Punaisen taso [%]"
@@ -258,6 +264,9 @@ msgstr "MPEG-2 kerros III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "stereo"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2008-01-26 09:59+0100\n"
"Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "Position"
msgid "Define the position of OSD."
msgstr "D<>finit la position de l'OSD."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "Limite du rouge (%)"
@@ -258,6 +264,9 @@ msgstr ""
msgid "HE-AAC"
msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo"
msgstr ""

View File

@@ -6,15 +6,18 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"PO-Revision-Date: 2008-11-10 23:37+0100\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2010-03-29 00:24+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: <vdr@linuxtv.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Italian\n"
"X-Poedit-Country: ITALY\n"
"X-Poedit-SourceCharset: utf-8\n"
msgid "DVB Signal Information Monitor (OSD)"
msgstr "Mostra info segnale DVB (OSD)"
@@ -68,13 +71,13 @@ msgid "Hide main menu entry"
msgstr "Nascondi voce menu principale"
msgid "Define whether the main menu entry is hidden."
msgstr "Definisci se la voce del menu principale <EFBFBD> nascosta."
msgstr "Definisci se la voce del menu principale è nascosta."
msgid "Default display mode"
msgstr "Modalit<EFBFBD> visualizz. predefinita"
msgstr "Modalità visualizz. predefinita"
msgid "Define the default display mode at startup."
msgstr "Definisci la modalit<EFBFBD> di visualizz. predefinita all'avvio."
msgstr "Definisci la modalità di visualizz. predefinita all'avvio."
msgid "Define the used OSD skin."
msgstr "Definisci lo stile interfaccia OSD utilizzato."
@@ -88,6 +91,12 @@ msgstr "Posizione"
msgid "Define the position of OSD."
msgstr "Definisci la posizione dell'OSD."
msgid "Downscale OSD size [%]"
msgstr "Riduci dimensione OSD [%]"
msgid "Define the downscale ratio for OSD size."
msgstr "Definisci il rapporto di riduzione della dimensione OSD."
msgid "Red limit [%]"
msgstr "Limite rosso [%]"
@@ -104,19 +113,19 @@ msgid "OSD update interval [0.1s]"
msgstr "Intervallo agg. OSD [0.1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr "Definisci un intervallo per gli agg. OSD. Pi<EFBFBD> piccolo <EFBFBD> l'intervallo maggiore sar<EFBFBD> l'uso di CPU."
msgstr "Definisci un intervallo per gli agg. OSD. Più piccolo è l'intervallo maggiore sarà l'uso di CPU."
msgid "Analyze stream"
msgstr "Analizza flusso"
msgid "Define whether the DVB stream is analyzed and bitrates calculated."
msgstr "Definisci se il flusso DVB <EFBFBD> analizzato e i bitrate calcolati."
msgstr "Definisci se il flusso DVB è analizzato e i bitrate calcolati."
msgid "Calculation interval [0.1s]"
msgstr "Intervallo di calcolo [0.1s]"
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr "Definisci un intervallo di calcolo. L'intervallo pi<EFBFBD> grande genera valori pi<EFBFBD> stabili."
msgstr "Definisci un intervallo di calcolo. L'intervallo più grande genera valori più stabili."
msgid "Use SVDRP service"
msgstr "Utilizza servizio SVDRP"
@@ -197,7 +206,7 @@ msgid "Audio Stream"
msgstr "Flusso audio"
msgid "Channel Mode"
msgstr "Modalit<EFBFBD> canale"
msgstr "Modalità canale"
msgid "Sampling Frequency"
msgstr "Frequenza campionamento"
@@ -206,10 +215,10 @@ msgid "AC-3 Stream"
msgstr "Flusso AC-3"
msgid "Bit Stream Mode"
msgstr "Modalit<EFBFBD> bitstream"
msgstr "Modalità bitstream"
msgid "Audio Coding Mode"
msgstr "Modalit<EFBFBD> codifica audio"
msgstr "Modalità codifica audio"
msgid "Center Mix Level"
msgstr "Livello sonoro centrale"
@@ -218,7 +227,7 @@ msgid "Surround Mix Level"
msgstr "Livello sonoro surround"
msgid "Dolby Surround Mode"
msgstr "Modalit<EFBFBD> Dolby Surround"
msgstr "Modalità Dolby Surround"
msgid "Low Frequency Effects"
msgstr "Effetti bassa frequenza"
@@ -259,6 +268,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "stereo"

382
po/lt_LT.po Normal file
View File

@@ -0,0 +1,382 @@
# VDR plugin language source file.
# Copyright (C) 2007 Rolf Ahrenberg
# This file is distributed under the same license as the femon package.
# Valdemaras Pipiras
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Valdemaras Pipiras\n"
"Language-Team: <varas@ambernet.lt>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "DVB Signal Information Monitor (OSD)"
msgstr "DVB signalo informacijos stebėjimas (OSD)"
msgid "Signal Information"
msgstr "Signalo informacija"
msgid "Femon not available"
msgstr "Femon įskiepas nepasiekiamas"
msgid "basic"
msgstr "Standartinis"
msgid "transponder"
msgstr "Siųstuvas"
msgid "stream"
msgstr "Srautas"
msgid "AC-3"
msgstr "AC-3"
msgid "Classic"
msgstr "Klasikinis"
msgid "Elchi"
msgstr "Elchi"
msgid "ST:TNG"
msgstr "ST:TNG"
msgid "DeepBlue"
msgstr "DeepBlue"
msgid "Moronimo"
msgstr "Moronimo"
msgid "Enigma"
msgstr "Enigma"
msgid "EgalsTry"
msgstr "EgalsTry"
msgid "Duotone"
msgstr "Duotone"
msgid "SilverGreen"
msgstr "SilverGreen"
msgid "Hide main menu entry"
msgstr "Paslėpti pagrindinio meniu įrašus"
msgid "Define whether the main menu entry is hidden."
msgstr "Nustatyti pagrindinio meniu įrašų paslėpimą."
msgid "Default display mode"
msgstr "Numatytasis rodymo būdas"
msgid "Define the default display mode at startup."
msgstr "Nustatyti numatytąjį rodymo būdą paleidžiant."
msgid "Define the used OSD skin."
msgstr "Nustatyti naudojamą ekrano apvalkalą."
msgid "Define the used OSD theme."
msgstr "Nustatyti naudojamą ekrano temą."
msgid "Position"
msgstr "Pozicija"
msgid "Define the position of OSD."
msgstr "Nustatyti ekrano užsklandos poziciją."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "Raudonoji ribą [%]"
msgid "Define a limit for red bar, which is used to indicate a bad signal."
msgstr "Nustatyti raudonos juostos ribą, kuri naudojama blogo signalo indikacijai."
msgid "Green limit [%]"
msgstr "Žalioji riba [%]"
msgid "Define a limit for green bar, which is used to indicate a good signal."
msgstr "Nustatyti žalios juostos ribą, kuri naudojama gero signalo indikacijai."
msgid "OSD update interval [0.1s]"
msgstr "Ekrano užsklandos atnaujinimo intervalas [0.1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load."
msgstr "Nustatyti ekrano užsklandos atnaujinimo intervalą. Mažesnis intervalas labiau apkrauna centrinį procesorių (CPU)."
msgid "Analyze stream"
msgstr "Analizuoti srautą"
msgid "Define whether the DVB stream is analyzed and bitrates calculated."
msgstr "Nurodyti ar DVB srautas turi būti analizuojamas bei jo kokybė išskaičiuojama."
msgid "Calculation interval [0.1s]"
msgstr "Apskaitos intervalos [0.1s]"
msgid "Define an interval for calculation. The bigger interval generates more stable values."
msgstr "Nustatyti apskaitos intervalą. Kuo didesnis intervalas, tuo tikslesni duomenys."
msgid "Use SVDRP service"
msgstr "Naudoti SVDRP paslaugą"
msgid "Define whether the SVDRP service is used in client/server setups."
msgstr "Nurodyti ar SVDRP paslauga naudojama kliento/serverio nustatymuose."
msgid "SVDRP service port"
msgstr "SVDRP įrenginio portas"
msgid "Define the port number of SVDRP service."
msgstr "Nustatyti SVDRP įrenginio prievadą."
msgid "SVDRP service IP"
msgstr "SVDRP įrenginio IP"
msgid "Define the IP address of SVDRP service."
msgstr "Nustatyti SVDRP įrenginio IP adresą."
msgid "Help"
msgstr "Pagalba"
msgid "Video"
msgstr "Video"
msgid "Audio"
msgstr "Audio"
msgid "Transponder Information"
msgstr "Siųstuvo informacija"
msgid "Apid"
msgstr "Apid"
msgid "Dpid"
msgstr "Dpid"
msgid "Spid"
msgstr "Spid"
msgid "Nid"
msgstr "Nid"
msgid "Tid"
msgstr "Tid"
msgid "Rid"
msgstr "Rid"
msgid "Coderate"
msgstr "Kodavimo dažnis"
msgid "Stream Information"
msgstr "Srauto informacija"
msgid "Video Stream"
msgstr "Video srautas"
msgid "Codec"
msgstr "Kodekas"
msgid "Bitrate"
msgstr "Kokybė"
msgid "Aspect Ratio"
msgstr "Proporcijos"
msgid "Frame Rate"
msgstr "Kadrų dažnis"
msgid "Video Format"
msgstr "Video formatas"
msgid "Resolution"
msgstr "Rezoliucija"
msgid "Audio Stream"
msgstr "Audio srautas"
msgid "Channel Mode"
msgstr "kanalo būsena"
msgid "Sampling Frequency"
msgstr "Parodomasis dažnis"
msgid "AC-3 Stream"
msgstr "AC-3 srautas"
msgid "Bit Stream Mode"
msgstr "Bitstream būsena"
msgid "Audio Coding Mode"
msgstr "Audio kodavimas"
msgid "Center Mix Level"
msgstr "Centerinis Mix lygis"
msgid "Surround Mix Level"
msgstr "Surround Mix lygis"
msgid "Dolby Surround Mode"
msgstr "Dolby Surround būklė"
msgid "Low Frequency Effects"
msgstr "Žemo dažnio efektai"
msgid "Dialogue Normalization"
msgstr "Dialogo normalizacija"
msgid "Fixed"
msgstr "Fest"
msgid "Analog"
msgstr "Analog"
msgid "MPEG-2"
msgstr "MPEG-2"
msgid "H.264"
msgstr "H.264"
msgid "MPEG-1 Layer I"
msgstr "MPEG-1 Layer I"
msgid "MPEG-1 Layer II"
msgstr "MPEG-1 Layer II"
msgid "MPEG-1 Layer III"
msgstr "MPEG-1 Layer III"
msgid "MPEG-2 Layer I"
msgstr "MPEG-2 Layer I"
msgid "MPEG-2 Layer II"
msgstr "MPEG-2 Layer II"
msgid "MPEG-2 Layer III"
msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "stereo"
msgid "joint Stereo"
msgstr "jungtinis stereo"
msgid "dual"
msgstr "dvigubas"
msgid "mono"
msgstr "mono"
msgid "interlaced"
msgstr "persipynęs (interlaced)"
msgid "progressive"
msgstr "progresyvinis"
msgid "reserved"
msgstr "belegt"
msgid "extended"
msgstr "išplėstas"
msgid "unknown"
msgstr "nežinomas"
msgid "component"
msgstr "komponentas"
msgid "PAL"
msgstr "PAL"
msgid "NTSC"
msgstr "NTSC"
msgid "SECAM"
msgstr "SECAM"
msgid "MAC"
msgstr "MAC"
msgid "Hz"
msgstr "Hz"
msgid "Complete Main (CM)"
msgstr "Pilnai pagrindinis (CM)"
msgid "Music and Effects (ME)"
msgstr "Muzika ir efektai (ME)"
msgid "Visually Impaired (VI)"
msgstr " (VI)"
msgid "Hearing Impaired (HI)"
msgstr " (HI)"
msgid "Dialogue (D)"
msgstr "Dialogas (D)"
msgid "Commentary (C)"
msgstr "Komentavimas (C)"
msgid "Emergency (E)"
msgstr "Avarinis (E)"
msgid "Voice Over (VO)"
msgstr "Voice over (VO)"
msgid "Karaoke"
msgstr "Karaoke"
msgid "Ch1"
msgstr "Kan1"
msgid "Ch2"
msgstr "Kan2"
msgid "C"
msgstr "C"
msgid "L"
msgstr "L"
msgid "R"
msgstr "R"
msgid "S"
msgstr "S"
msgid "SL"
msgstr "SL"
msgid "SR"
msgstr "SR"
msgid "dB"
msgstr "dB"
msgid "not indicated"
msgstr "nerasta"
msgid "MHz"
msgstr "MHz"
msgid "free"
msgstr "frei"
msgid "Mbit/s"
msgstr "Mbit/s"
msgid "kbit/s"
msgstr "kbit/s"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
"Last-Translator: Vyacheslav Dikonov\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "
msgid "Define the position of OSD."
msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> (%)"
@@ -258,6 +264,9 @@ msgstr ""
msgid "HE-AAC"
msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo"
msgstr ""

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "位置"
msgid "Define the position of OSD."
msgstr "确定菜单的位置."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "红限制[ ]"
@@ -258,6 +264,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "立体声"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: femon 1.7.3\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n"
"Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: <vdr@linuxtv.org>\n"
@@ -87,6 +87,12 @@ msgstr "位置"
msgid "Define the position of OSD."
msgstr "確定菜單的位置."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]"
msgstr "紅限制[ ]"
@@ -258,6 +264,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC"
msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo"
msgstr "立體聲"