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

Compare commits

..

23 Commits

Author SHA1 Message Date
Rolf Ahrenberg
d9f977e302 Updated HISTORY. 2010-12-27 10:30:43 +02:00
Rolf Ahrenberg
ebfc153940 Added support for LDFLAGS. 2010-12-14 19:25:09 +02:00
Rolf Ahrenberg
f3c52fab6e Tweaked translation files. 2010-12-08 10:47:24 +02:00
Rolf Ahrenberg
b682dbf0fe Updated translation files. 2010-12-04 19:06:15 +02:00
Rolf Ahrenberg
b4673bdece Fixed detection of replaying. 2010-10-29 21:16:01 +03:00
Rolf Ahrenberg
c3b0254b2e Added Makefile depencency for objects. 2010-10-11 23:27:30 +03:00
Rolf Ahrenberg
b8c7fdddb7 Updated for vdr-1.7.16. 2010-09-19 23:19:33 +03:00
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 820 additions and 164 deletions

26
HISTORY
View File

@@ -383,3 +383,29 @@ VDR Plugin 'femon' Revision History
- Removed error logging from unimplemented ioctl functions. - Removed error logging from unimplemented ioctl functions.
- Removed bitstream parsing from Receive() method. - Removed bitstream parsing from Receive() method.
- Added Chinese translation (Thanks to NanFeng). - 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).
2010-12-27: Version 1.7.9
- Updated for vdr-1.7.16.
- Added Makefile depencency for objects.
- Fixed detection of replaying.
- Added support for LDFLAGS.

View File

@@ -24,6 +24,7 @@ VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ p
CXX ?= g++ CXX ?= g++
CXXFLAGS ?= -fPIC -g -O2 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Woverloaded-virtual -Wno-parentheses CXXFLAGS ?= -fPIC -g -O2 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Woverloaded-virtual -Wno-parentheses
LDFLAGS ?= -Wl,--as-needed
### The directory environment: ### The directory environment:
@@ -31,6 +32,10 @@ VDRDIR = ../../..
LIBDIR = ../../lib LIBDIR = ../../lib
TMPDIR = /tmp TMPDIR = /tmp
### Make sure that necessary options are included:
-include $(VDRDIR)/Make.global
### Allow user defined options to overwrite defaults: ### Allow user defined options to overwrite defaults:
-include $(VDRDIR)/Make.config -include $(VDRDIR)/Make.config
@@ -59,7 +64,7 @@ all-redirect: all
### The object files (add further files here): ### 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: ### The main target:
@@ -67,7 +72,7 @@ all: libvdr-$(PLUGIN).so i18n
### Implicit rules: ### Implicit rules:
%.o: %.c %.o: %.c Makefile
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
### Dependencies: ### Dependencies:
@@ -91,7 +96,7 @@ I18Npot = $(PODIR)/$(PLUGIN).pot
msgfmt -c -o $@ $< msgfmt -c -o $@ $<
$(I18Npot): $(wildcard *.c) $(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) %.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q $@ $< msgmerge -U --no-wrap --no-location --backup=none -q $@ $<
@@ -107,7 +112,7 @@ i18n: $(I18Nmsgs) $(I18Npot)
### Targets: ### Targets:
libvdr-$(PLUGIN).so: $(OBJS) libvdr-$(PLUGIN).so: $(OBJS)
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@ $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
ifndef FEMON_DEBUG ifndef FEMON_DEBUG
@$(STRIP) $@ @$(STRIP) $@
endif endif

19
femon.c
View File

@@ -7,18 +7,18 @@
#include <vdr/menu.h> #include <vdr/menu.h>
#include <vdr/remote.h> #include <vdr/remote.h>
#include <vdr/menu.h> #include <vdr/player.h>
#include "femoncfg.h" #include "femoncfg.h"
#include "femonreceiver.h" #include "femonreceiver.h"
#include "femonosd.h" #include "femonosd.h"
#include "femonservice.h" #include "femonservice.h"
#include "femontools.h" #include "femontools.h"
#if defined(APIVERSNUM) && APIVERSNUM < 10700 #if defined(APIVERSNUM) && APIVERSNUM < 10716
#error "VDR-1.7.0 API version or greater is required!" #error "VDR-1.7.16 API version or greater is required!"
#endif #endif
static const char VERSION[] = "1.7.5"; static const char VERSION[] = "1.7.9";
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)"); static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information"); static const char MAINMENUENTRY[] = trNOOP("Signal Information");
@@ -97,7 +97,7 @@ cOsdObject *cPluginFemon::MainMenuAction(void)
{ {
// Perform the action when selected from the main VDR menu. // Perform the action when selected from the main VDR menu.
debug("%s()\n", __PRETTY_FUNCTION__); debug("%s()\n", __PRETTY_FUNCTION__);
if (cReplayControl::NowReplaying() || (Channels.Count() <= 0)) if (cControl::Control() || (Channels.Count() <= 0))
Skins.Message(mtInfo, tr("Femon not available")); Skins.Message(mtInfo, tr("Femon not available"));
else else
return cFemonOsd::Instance(true); return cFemonOsd::Instance(true);
@@ -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, "Position")) femonConfig.position = atoi(Value);
else if (!strcasecmp(Name, "Skin")) femonConfig.skin = atoi(Value); else if (!strcasecmp(Name, "Skin")) femonConfig.skin = atoi(Value);
else if (!strcasecmp(Name, "Theme")) femonConfig.theme = 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, "RedLimit")) femonConfig.redlimit = atoi(Value);
else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value); else if (!strcasecmp(Name, "GreenLimit")) femonConfig.greenlimit = atoi(Value);
else if (!strcasecmp(Name, "UpdateInterval")) femonConfig.updateinterval = 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 (strcmp(Id,"FemonService-v1.0") == 0) {
if (Data) { if (Data) {
FemonService_v1_0 *data = (FemonService_v1_0*)Data; FemonService_v1_0 *data = (FemonService_v1_0*)Data;
if (!cDevice::ActualDevice())
return false;
int ndx = cDevice::ActualDevice()->CardIndex(); int ndx = cDevice::ActualDevice()->CardIndex();
data->fe_name = getFrontendName(ndx); data->fe_name = getFrontendName(ndx);
data->fe_status = getFrontendStatus(ndx); data->fe_status = getFrontendStatus(ndx);
@@ -193,7 +196,7 @@ cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int
return cString("Cannot open femon plugin while replaying"); return cString("Cannot open femon plugin while replaying");
} }
if (!cFemonOsd::Instance()) if (!cFemonOsd::Instance())
cRemote::CallPlugin("femon"); cRemote::CallPlugin(Name());
return cString("Opening femon plugin"); return cString("Opening femon plugin");
} }
else if (strcasecmp(Command, "QUIT") == 0) { else if (strcasecmp(Command, "QUIT") == 0) {
@@ -319,6 +322,9 @@ void cMenuFemonSetup::Setup(void)
Add(new cMenuEditBoolItem(tr("Position"), &data.position, trVDR("bottom"), trVDR("top"))); Add(new cMenuEditBoolItem(tr("Position"), &data.position, trVDR("bottom"), trVDR("top")));
help.Append(tr("Define the position of OSD.")); 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)); 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.")); 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("Skin", femonConfig.skin);
SetupStore("Theme", femonConfig.theme); SetupStore("Theme", femonConfig.theme);
SetupStore("Position", femonConfig.position); SetupStore("Position", femonConfig.position);
SetupStore("Downscale", femonConfig.downscale);
SetupStore("RedLimit", femonConfig.redlimit); SetupStore("RedLimit", femonConfig.redlimit);
SetupStore("GreenLimit", femonConfig.greenlimit); SetupStore("GreenLimit", femonConfig.greenlimit);
SetupStore("UpdateInterval", femonConfig.updateinterval); SetupStore("UpdateInterval", femonConfig.updateinterval);

View File

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

View File

@@ -17,13 +17,14 @@ cFemonConfig::cFemonConfig(void)
skin = 0; skin = 0;
theme = 0; theme = 0;
position = 1; position = 1;
downscale = 0;
redlimit = 33; redlimit = 33;
greenlimit = 66; greenlimit = 66;
updateinterval = 5; updateinterval = 5;
analyzestream = 1; analyzestream = 1;
calcinterval = 20; calcinterval = 20;
usesvdrp = 0; usesvdrp = 0;
svdrpport = 2001; svdrpport = 6419;
strncpy(svdrpip, "0.0.0.0", sizeof(svdrpip)); strncpy(svdrpip, "0.0.0.0", sizeof(svdrpip));
} }

View File

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

Binary file not shown.

View File

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

View File

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

View File

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

View File

@@ -14,6 +14,7 @@
#include "femonh264.h" #include "femonh264.h"
#include "femonmpeg.h" #include "femonmpeg.h"
#include "femonaac.h" #include "femonaac.h"
#include "femonlatm.h"
#include "femonac3.h" #include "femonac3.h"
#include "femonaudio.h" #include "femonaudio.h"
#include "femonvideo.h" #include "femonvideo.h"
@@ -28,6 +29,7 @@ private:
cFemonH264 m_DetectH264; cFemonH264 m_DetectH264;
cFemonMPEG m_DetectMPEG; cFemonMPEG m_DetectMPEG;
cFemonAAC m_DetectAAC; cFemonAAC m_DetectAAC;
cFemonLATM m_DetectLATM;
cFemonAC3 m_DetectAC3; cFemonAC3 m_DetectAC3;
cRingBufferLinear m_VideoBuffer; cRingBufferLinear m_VideoBuffer;
@@ -106,7 +108,7 @@ public:
m_AC3Info.lfe = onoff; } m_AC3Info.lfe = onoff; }
public: 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(); virtual ~cFemonReceiver();
void Deactivate(void); void Deactivate(void);

View File

@@ -65,9 +65,9 @@ static cString getCA(int value)
return cString::sprintf("%X", 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) { while (map && map->userValue != -1) {
if (map->driverValue == Value) if (map->driverValue == Value)
return map->userString ? trVDR(map->userString) : "---"; 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_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_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_HEAAC: return cString::sprintf("%s", tr("HE-AAC"));
case AUDIO_CODEC_LATM: return cString::sprintf("%s", tr("LATM"));
default: break; default: break;
} }
return cString::sprintf("---"); return cString::sprintf("---");

View File

@@ -7,12 +7,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Christian Wieninger\n" "Last-Translator: Christian Wieninger\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -89,6 +90,12 @@ msgstr "Position"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "" msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]" msgid "Red limit [%]"
msgstr "Grenze Rot [%]" msgstr "Grenze Rot [%]"
@@ -260,6 +267,9 @@ msgstr ""
msgid "HE-AAC" msgid "HE-AAC"
msgstr "" msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo" msgid "stereo"
msgstr "" msgstr ""

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Luis Palacios\n" "Last-Translator: Luis Palacios\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n"
"Language: es\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "Posici
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "" msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]" msgid "Red limit [%]"
msgstr "L<>mite de rojo [%s]" msgstr "L<>mite de rojo [%s]"
@@ -258,6 +265,9 @@ msgstr ""
msgid "HE-AAC" msgid "HE-AAC"
msgstr "" msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo" msgid "stereo"
msgstr "" msgstr ""

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Arthur Konovalov\n" "Last-Translator: Arthur Konovalov\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Estonian <vdr@linuxtv.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-13\n" "Content-Type: text/plain; charset=ISO-8859-13\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -22,7 +23,7 @@ msgid "Signal Information"
msgstr "Signaaliinfo" msgstr "Signaaliinfo"
msgid "Femon not available" msgid "Femon not available"
msgstr "" msgstr "Femon ei ole k<>ttesaadav"
msgid "basic" msgid "basic"
msgstr "standard" msgstr "standard"
@@ -37,7 +38,7 @@ msgid "AC-3"
msgstr "AC-3" msgstr "AC-3"
msgid "Classic" msgid "Classic"
msgstr "Klassikaline" msgstr "Classic"
msgid "Elchi" msgid "Elchi"
msgstr "Elchi" msgstr "Elchi"
@@ -64,79 +65,85 @@ msgid "SilverGreen"
msgstr "SilverGreen" msgstr "SilverGreen"
msgid "Hide main menu entry" 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." msgid "Define whether the main menu entry is hidden."
msgstr "" msgstr "Valiku peamen<65><6E>s peitmise m<><6D>ritlemine."
msgid "Default display mode" msgid "Default display mode"
msgstr "Vaikimisi displei moodus" msgstr "Vaikemoodus"
msgid "Define the default display mode at startup." msgid "Define the default display mode at startup."
msgstr "" msgstr "K<EFBFBD>ivitamisel vaikemooduse m<><6D>ritlemine."
msgid "Define the used OSD skin." msgid "Define the used OSD skin."
msgstr "" msgstr "Kasutatava ekraanikesta m<><6D>ritlemine."
msgid "Define the used OSD theme." msgid "Define the used OSD theme."
msgstr "" msgstr "Kasutatava teema m<><6D>ritlemine."
msgid "Position" msgid "Position"
msgstr "Positsioon" msgstr "Positsioon"
msgid "Define the position of OSD." 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 [%]" msgid "Red limit [%]"
msgstr "Punase limiit [%]" msgstr "Punase limiit [%]"
msgid "Define a limit for red bar, which is used to indicate a bad signal." 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 [%]" msgid "Green limit [%]"
msgstr "Rohelise limiit [%]" msgstr "Rohelise limiit [%]"
msgid "Define a limit for green bar, which is used to indicate a good signal." 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]" msgid "OSD update interval [0.1s]"
msgstr "Uuendusintervall [0,1s]" msgstr "Uuendusintervall [0,1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." 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" msgid "Analyze stream"
msgstr "Voo anal<61><6C>s" msgstr "Voo anal<61><6C>s"
msgid "Define whether the DVB stream is analyzed and bitrates calculated." 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]" 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." 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" msgid "Use SVDRP service"
msgstr "" msgstr "SVDRP teenus"
msgid "Define whether the SVDRP service is used in client/server setups." 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" msgid "SVDRP service port"
msgstr "" msgstr "SVDRP port"
msgid "Define the port number of SVDRP service." msgid "Define the port number of SVDRP service."
msgstr "" msgstr "SVDRP teenuse pordi m<><6D>ritlemine."
msgid "SVDRP service IP" msgid "SVDRP service IP"
msgstr "" msgstr "SVDRP IP"
msgid "Define the IP address of SVDRP service." msgid "Define the IP address of SVDRP service."
msgstr "" msgstr "SVDRP teenuse IP aadressi m<><6D>ritlemine."
msgid "Help" msgid "Help"
msgstr "" msgstr "Abi"
msgid "Video" msgid "Video"
msgstr "Video" msgstr "Video"
@@ -169,13 +176,13 @@ msgid "Coderate"
msgstr "Coderate" msgstr "Coderate"
msgid "Stream Information" msgid "Stream Information"
msgstr "Voo info" msgstr "Vooinfo"
msgid "Video Stream" msgid "Video Stream"
msgstr "Videovoog" msgstr "Videovoog"
msgid "Codec" msgid "Codec"
msgstr "" msgstr "Koodek"
msgid "Bitrate" msgid "Bitrate"
msgstr "Bitikiirus" msgstr "Bitikiirus"
@@ -196,7 +203,7 @@ msgid "Audio Stream"
msgstr "Audiovoog" msgstr "Audiovoog"
msgid "Channel Mode" msgid "Channel Mode"
msgstr "" msgstr "Kanalimoodus"
msgid "Sampling Frequency" msgid "Sampling Frequency"
msgstr "S<>mplimissagedus" msgstr "S<>mplimissagedus"
@@ -229,64 +236,67 @@ msgid "Fixed"
msgstr "Fikseeritud" msgstr "Fikseeritud"
msgid "Analog" msgid "Analog"
msgstr "" msgstr "Analoog"
msgid "MPEG-2" msgid "MPEG-2"
msgstr "" msgstr "MPEG-2"
msgid "H.264" msgid "H.264"
msgstr "" msgstr "H.264"
msgid "MPEG-1 Layer I" msgid "MPEG-1 Layer I"
msgstr "" msgstr "MPEG-1 Layet I"
msgid "MPEG-1 Layer II" msgid "MPEG-1 Layer II"
msgstr "" msgstr "MPEG-1 Layer II"
msgid "MPEG-1 Layer III" msgid "MPEG-1 Layer III"
msgstr "" msgstr "MPEG-1 Layer III"
msgid "MPEG-2 Layer I" msgid "MPEG-2 Layer I"
msgstr "" msgstr "MPEG-2 Layer I"
msgid "MPEG-2 Layer II" msgid "MPEG-2 Layer II"
msgstr "" msgstr "MPEG-2 Layer II"
msgid "MPEG-2 Layer III" msgid "MPEG-2 Layer III"
msgstr "" msgstr "MPEG-2 Layer III"
msgid "HE-AAC" msgid "HE-AAC"
msgstr "" msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo" msgid "stereo"
msgstr "" msgstr "stereo"
msgid "joint Stereo" msgid "joint Stereo"
msgstr "" msgstr "joint stereo"
msgid "dual" msgid "dual"
msgstr "" msgstr "duaalne"
msgid "mono" msgid "mono"
msgstr "" msgstr "mono"
msgid "interlaced" msgid "interlaced"
msgstr "" msgstr "<EFBFBD>lerealaotus"
msgid "progressive" msgid "progressive"
msgstr "" msgstr "progressiivne"
msgid "reserved" msgid "reserved"
msgstr "reserveeritud" msgstr "reserv."
msgid "extended" msgid "extended"
msgstr "" msgstr "laiendatud"
msgid "unknown" msgid "unknown"
msgstr "tundmatu" msgstr "tundmatu"
msgid "component" msgid "component"
msgstr "" msgstr "komponentne"
msgid "PAL" msgid "PAL"
msgstr "PAL" msgstr "PAL"
@@ -295,10 +305,10 @@ msgid "NTSC"
msgstr "NTSC" msgstr "NTSC"
msgid "SECAM" msgid "SECAM"
msgstr "" msgstr "SECAM"
msgid "MAC" msgid "MAC"
msgstr "" msgstr "MAC"
msgid "Hz" msgid "Hz"
msgstr "Hz" msgstr "Hz"
@@ -331,10 +341,10 @@ msgid "Karaoke"
msgstr "Karaoke" msgstr "Karaoke"
msgid "Ch1" msgid "Ch1"
msgstr "Kan. 1" msgstr "Kan.1"
msgid "Ch2" msgid "Ch2"
msgstr "Kan. 2" msgstr "Kan.2"
msgid "C" msgid "C"
msgstr "C" msgstr "C"

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Rolf Ahrenberg\n" "Last-Translator: Rolf Ahrenberg\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"
"Language: fi\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "Sijainti"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "Määrittele näytön sijainti." 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 [%]" msgid "Red limit [%]"
msgstr "Punaisen taso [%]" msgstr "Punaisen taso [%]"
@@ -258,6 +265,9 @@ msgstr "MPEG-2 kerros III"
msgid "HE-AAC" msgid "HE-AAC"
msgstr "HE-AAC" msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo" msgid "stereo"
msgstr "stereo" msgstr "stereo"

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2008-01-26 09:59+0100\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n" "Last-Translator: NIVAL Micha<68>l <mnival@club-internet.fr>\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: French <vdr@linuxtv.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "Position"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "D<>finit la position de l'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 [%]" msgid "Red limit [%]"
msgstr "Limite du rouge (%)" msgstr "Limite du rouge (%)"
@@ -258,6 +265,9 @@ msgstr ""
msgid "HE-AAC" msgid "HE-AAC"
msgstr "" msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo" msgid "stereo"
msgstr "" msgstr ""

View File

@@ -6,15 +6,19 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2008-11-10 23:37+0100\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"
"Language: it\n"
"MIME-Version: 1.0\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" "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)" msgid "DVB Signal Information Monitor (OSD)"
msgstr "Mostra info segnale DVB (OSD)" msgstr "Mostra info segnale DVB (OSD)"
@@ -68,13 +72,13 @@ msgid "Hide main menu entry"
msgstr "Nascondi voce menu principale" msgstr "Nascondi voce menu principale"
msgid "Define whether the main menu entry is hidden." 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" msgid "Default display mode"
msgstr "Modalit<EFBFBD> visualizz. predefinita" msgstr "Modalità visualizz. predefinita"
msgid "Define the default display mode at startup." 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." msgid "Define the used OSD skin."
msgstr "Definisci lo stile interfaccia OSD utilizzato." msgstr "Definisci lo stile interfaccia OSD utilizzato."
@@ -88,6 +92,12 @@ msgstr "Posizione"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "Definisci la posizione dell'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 [%]" msgid "Red limit [%]"
msgstr "Limite rosso [%]" msgstr "Limite rosso [%]"
@@ -104,19 +114,19 @@ msgid "OSD update interval [0.1s]"
msgstr "Intervallo agg. OSD [0.1s]" msgstr "Intervallo agg. OSD [0.1s]"
msgid "Define an interval for OSD updates. The smaller interval generates higher CPU load." 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" msgid "Analyze stream"
msgstr "Analizza flusso" msgstr "Analizza flusso"
msgid "Define whether the DVB stream is analyzed and bitrates calculated." 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]" msgid "Calculation interval [0.1s]"
msgstr "Intervallo di calcolo [0.1s]" msgstr "Intervallo di calcolo [0.1s]"
msgid "Define an interval for calculation. The bigger interval generates more stable values." 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" msgid "Use SVDRP service"
msgstr "Utilizza servizio SVDRP" msgstr "Utilizza servizio SVDRP"
@@ -197,7 +207,7 @@ msgid "Audio Stream"
msgstr "Flusso audio" msgstr "Flusso audio"
msgid "Channel Mode" msgid "Channel Mode"
msgstr "Modalit<EFBFBD> canale" msgstr "Modalità canale"
msgid "Sampling Frequency" msgid "Sampling Frequency"
msgstr "Frequenza campionamento" msgstr "Frequenza campionamento"
@@ -206,10 +216,10 @@ msgid "AC-3 Stream"
msgstr "Flusso AC-3" msgstr "Flusso AC-3"
msgid "Bit Stream Mode" msgid "Bit Stream Mode"
msgstr "Modalit<EFBFBD> bitstream" msgstr "Modalità bitstream"
msgid "Audio Coding Mode" msgid "Audio Coding Mode"
msgstr "Modalit<EFBFBD> codifica audio" msgstr "Modalità codifica audio"
msgid "Center Mix Level" msgid "Center Mix Level"
msgstr "Livello sonoro centrale" msgstr "Livello sonoro centrale"
@@ -218,7 +228,7 @@ msgid "Surround Mix Level"
msgstr "Livello sonoro surround" msgstr "Livello sonoro surround"
msgid "Dolby Surround Mode" msgid "Dolby Surround Mode"
msgstr "Modalit<EFBFBD> Dolby Surround" msgstr "Modalità Dolby Surround"
msgid "Low Frequency Effects" msgid "Low Frequency Effects"
msgstr "Effetti bassa frequenza" msgstr "Effetti bassa frequenza"
@@ -259,6 +269,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC" msgid "HE-AAC"
msgstr "HE-AAC" msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo" msgid "stereo"
msgstr "stereo" msgstr "stereo"

383
po/lt_LT.po Normal file
View File

@@ -0,0 +1,383 @@
# 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-10-10 10:10+0300\n"
"PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n"
"Language: 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,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2007-08-12 23:22+0300\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: Vyacheslav Dikonov\n" "Last-Translator: Vyacheslav Dikonov\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Russian <vdr@linuxtv.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-5\n" "Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "" msgstr ""
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]" 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><> (%)" 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 +265,9 @@ msgstr ""
msgid "HE-AAC" msgid "HE-AAC"
msgstr "" msgstr ""
msgid "LATM"
msgstr ""
msgid "stereo" msgid "stereo"
msgstr "" msgstr ""

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2009-09-21 21:36+0800\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n" "Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Chinese (simplified) <vdr@linuxtv.org>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "位置"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "确定菜单的位置." msgstr "确定菜单的位置."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]" msgid "Red limit [%]"
msgstr "红限制[ ]" msgstr "红限制[ ]"
@@ -258,6 +265,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC" msgid "HE-AAC"
msgstr "HE-AAC" msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo" msgid "stereo"
msgstr "立体声" msgstr "立体声"

View File

@@ -5,12 +5,13 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: femon 1.7.3\n" "Project-Id-Version: femon 1.7.8\n"
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2009-08-29 20:57+0300\n" "POT-Creation-Date: 2010-10-10 10:10+0300\n"
"PO-Revision-Date: 2009-09-21 21:36+0800\n" "PO-Revision-Date: 2010-10-10 10:10+0300\n"
"Last-Translator: NanFeng <nfgx@21cn.com>\n" "Last-Translator: NanFeng <nfgx@21cn.com>\n"
"Language-Team: <vdr@linuxtv.org>\n" "Language-Team: Chinese (traditional) <vdr@linuxtv.org>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@@ -87,6 +88,12 @@ msgstr "位置"
msgid "Define the position of OSD." msgid "Define the position of OSD."
msgstr "確定菜單的位置." msgstr "確定菜單的位置."
msgid "Downscale OSD size [%]"
msgstr ""
msgid "Define the downscale ratio for OSD size."
msgstr ""
msgid "Red limit [%]" msgid "Red limit [%]"
msgstr "紅限制[ ]" msgstr "紅限制[ ]"
@@ -258,6 +265,9 @@ msgstr "MPEG-2 Layer III"
msgid "HE-AAC" msgid "HE-AAC"
msgstr "HE-AAC" msgstr "HE-AAC"
msgid "LATM"
msgstr "LATM"
msgid "stereo" msgid "stereo"
msgstr "立體聲" msgstr "立體聲"