mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Added preliminary support for LATM.
This commit is contained in:
parent
3235c67256
commit
f37f428670
3
HISTORY
3
HISTORY
@ -396,8 +396,9 @@ VDR Plugin 'femon' Revision History
|
|||||||
- Added a setup option to downscale the OSD size.
|
- Added a setup option to downscale the OSD size.
|
||||||
- Updated Estonian translation (Thanks to Arthur Konovalov).
|
- Updated Estonian translation (Thanks to Arthur Konovalov).
|
||||||
|
|
||||||
2010-xx-xx: Version 1.7.8
|
2010-06-23: Version 1.7.8
|
||||||
|
|
||||||
- Fixed device switching.
|
- Fixed device switching.
|
||||||
|
- Added preliminary support for LATM.
|
||||||
- Updated Italian translation (Thanks to Diego Pierotto).
|
- Updated Italian translation (Thanks to Diego Pierotto).
|
||||||
- Fixed a crash in femon service (Thanks to Wolfgang Astleitner).
|
- Fixed a crash in femon service (Thanks to Wolfgang Astleitner).
|
||||||
|
4
Makefile
4
Makefile
@ -63,7 +63,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:
|
||||||
|
|
||||||
@ -95,7 +95,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 $@ $<
|
||||||
|
@ -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 {
|
||||||
|
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;
|
||||||
|
|
||||||
|
if (bs.getBit() == 1) // id: MPEG-1=1, extension to lower sampling frequences=0
|
||||||
|
return false;
|
||||||
|
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
|
||||||
|
|
||||||
|
m_AudioHandler->SetAudioCodec(AUDIO_CODEC_LATM);
|
||||||
|
|
||||||
|
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
|
@ -18,6 +18,7 @@ cFemonReceiver::cFemonReceiver(int Vtype, int Vpid, int Apid, int Dpid)
|
|||||||
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),
|
||||||
@ -144,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) {
|
||||||
@ -181,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) {
|
||||||
@ -194,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();
|
||||||
}
|
}
|
||||||
@ -206,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) {
|
||||||
|
@ -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;
|
||||||
|
@ -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("---");
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Christian Wieninger\n"
|
"Last-Translator: Christian Wieninger\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -266,6 +266,9 @@ msgstr ""
|
|||||||
msgid "HE-AAC"
|
msgid "HE-AAC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LATM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "stereo"
|
msgid "stereo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Luis Palacios\n"
|
"Last-Translator: Luis Palacios\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,9 @@ msgstr ""
|
|||||||
msgid "HE-AAC"
|
msgid "HE-AAC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LATM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "stereo"
|
msgid "stereo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Arthur Konovalov\n"
|
"Last-Translator: Arthur Konovalov\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,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"
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Rolf Ahrenberg\n"
|
"Last-Translator: Rolf Ahrenberg\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,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"
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2008-01-26 09:59+0100\n"
|
"PO-Revision-Date: 2008-01-26 09:59+0100\n"
|
||||||
"Last-Translator: NIVAL Michaël <mnival@club-internet.fr>\n"
|
"Last-Translator: NIVAL Michaël <mnival@club-internet.fr>\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,9 @@ msgstr ""
|
|||||||
msgid "HE-AAC"
|
msgid "HE-AAC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LATM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "stereo"
|
msgid "stereo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
10
po/it_IT.po
10
po/it_IT.po
@ -6,9 +6,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2010-03-29 00:24+0100\n"
|
"PO-Revision-Date: 2010-03-29 00:24+0100\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: <vdr@linuxtv.org>\n"
|
||||||
@ -268,6 +268,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"
|
||||||
|
|
||||||
@ -381,4 +384,3 @@ msgstr "Mbit/s"
|
|||||||
|
|
||||||
msgid "kbit/s"
|
msgid "kbit/s"
|
||||||
msgstr "kbit/s"
|
msgstr "kbit/s"
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Valdemaras Pipiras\n"
|
"Last-Translator: Valdemaras Pipiras\n"
|
||||||
"Language-Team: <varas@ambernet.lt>\n"
|
"Language-Team: <varas@ambernet.lt>\n"
|
||||||
@ -264,6 +264,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"
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||||
"Last-Translator: Vyacheslav Dikonov\n"
|
"Last-Translator: Vyacheslav Dikonov\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,9 @@ msgstr ""
|
|||||||
msgid "HE-AAC"
|
msgid "HE-AAC"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "LATM"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "stereo"
|
msgid "stereo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
|
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
|
||||||
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
|
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,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 "立体声"
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: femon 1.7.7\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: 2010-02-25 20:31+0200\n"
|
"POT-Creation-Date: 2010-06-23 12:14+0300\n"
|
||||||
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
|
"PO-Revision-Date: 2009-09-21 21:36+0800\n"
|
||||||
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
|
"Last-Translator: NanFeng <nfgx@21cn.com>\n"
|
||||||
"Language-Team: <vdr@linuxtv.org>\n"
|
"Language-Team: <vdr@linuxtv.org>\n"
|
||||||
@ -264,6 +264,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 "立體聲"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user