mirror of
				https://github.com/rofafor/vdr-plugin-femon.git
				synced 2023-10-10 11:36:53 +00:00 
			
		
		
		
	Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 23a8a72c38 | ||
|  | f37f428670 | ||
|  | 3235c67256 | ||
|  | a21ed98163 | ||
|  | 0b38358442 | ||
|  | 9c085fea51 | ||
|  | dfc66b3d69 | ||
|  | 252bd0e479 | ||
|  | 7657d21d5e | ||
|  | 7b004e9427 | ||
|  | a08f9de9d3 | ||
|  | 513791d5f1 | 
							
								
								
									
										13
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -389,3 +389,16 @@ VDR Plugin 'femon' Revision History | ||||
| - 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). | ||||
|   | ||||
							
								
								
									
										8
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								Makefile
									
									
									
									
									
								
							| @@ -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
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								femon.c
									
									
									
									
									
								
							| @@ -14,11 +14,11 @@ | ||||
| #include "femonservice.h" | ||||
| #include "femontools.h" | ||||
|  | ||||
| #if defined(APIVERSNUM) && APIVERSNUM < 10712 | ||||
| #error "VDR-1.7.12 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.6"; | ||||
| 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); | ||||
|   | ||||
| @@ -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 { | ||||
|   | ||||
| @@ -17,6 +17,7 @@ cFemonConfig::cFemonConfig(void) | ||||
|   skin           = 0; | ||||
|   theme          = 0; | ||||
|   position       = 1; | ||||
|   downscale      = 0; | ||||
|   redlimit       = 33; | ||||
|   greenlimit     = 66; | ||||
|   updateinterval = 5; | ||||
|   | ||||
| @@ -28,6 +28,7 @@ public: | ||||
|   int skin; | ||||
|   int theme; | ||||
|   int position; | ||||
|   int downscale; | ||||
|   int redlimit; | ||||
|   int greenlimit; | ||||
|   int updateinterval; | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.4.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								femonclient/vdr-femonclient-0.0.4.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -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
									
								
							
							
						
						
									
										112
									
								
								femonlatm.c
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										27
									
								
								femonlatm.h
									
									
									
									
									
										Normal 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 | ||||
							
								
								
									
										41
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -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: | ||||
| @@ -597,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) { | ||||
| @@ -694,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; | ||||
|               } | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -18,6 +18,7 @@ cFemonReceiver::cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid) | ||||
|   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), | ||||
| @@ -144,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) { | ||||
| @@ -181,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) { | ||||
| @@ -194,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(); | ||||
|          } | ||||
| @@ -206,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) { | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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("---"); | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/de_DE.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/de_DE.po
									
									
									
									
									
								
							| @@ -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 "" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/es_ES.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/es_ES.po
									
									
									
									
									
								
							| @@ -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 "" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/et_EE.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/et_EE.po
									
									
									
									
									
								
							| @@ -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" | ||||
| @@ -87,6 +87,12 @@ msgstr "Positsioon" | ||||
| msgid "Define the position of OSD." | ||||
| 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 [%]" | ||||
|  | ||||
| @@ -258,6 +264,9 @@ msgstr "MPEG-2 Layer III" | ||||
| msgid "HE-AAC" | ||||
| msgstr "HE-AAC" | ||||
|  | ||||
| msgid "LATM" | ||||
| msgstr "LATM" | ||||
|  | ||||
| msgid "stereo" | ||||
| msgstr "stereo" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/fi_FI.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/fi_FI.po
									
									
									
									
									
								
							| @@ -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" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/fr_FR.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/fr_FR.po
									
									
									
									
									
								
							| @@ -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 "" | ||||
|  | ||||
|   | ||||
							
								
								
									
										42
									
								
								po/it_IT.po
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								po/it_IT.po
									
									
									
									
									
								
							| @@ -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" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/lt_LT.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/lt_LT.po
									
									
									
									
									
								
							| @@ -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: Valdemaras Pipiras\n" | ||||
| "Language-Team: <varas@ambernet.lt>\n" | ||||
| @@ -87,6 +87,12 @@ 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ą [%]" | ||||
|  | ||||
| @@ -258,6 +264,9 @@ msgstr "MPEG-2 Layer III" | ||||
| msgid "HE-AAC" | ||||
| msgstr "HE-AAC" | ||||
|  | ||||
| msgid "LATM" | ||||
| msgstr "LATM" | ||||
|  | ||||
| msgid "stereo" | ||||
| msgstr "stereo" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/ru_RU.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/ru_RU.po
									
									
									
									
									
								
							| @@ -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 "" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/zh_CN.po
									
									
									
									
									
								
							| @@ -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 "立体声" | ||||
|  | ||||
|   | ||||
							
								
								
									
										15
									
								
								po/zh_TW.po
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								po/zh_TW.po
									
									
									
									
									
								
							| @@ -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 "立體聲" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user