[PATCH v3 3/5] stream_pvr: add AAC and AC-3 audio encoding control options

Reza Arbab <[email protected]>
Newsgroups gmane.comp.video.mplayer.devel
Message-ID <[email protected]>
Use alayer=4 for AAC or alayer=5 for AC-3.

These are in fact the only two values supported by hdpvr.

Signed-off-by: Reza Arbab <[email protected]>
---
 DOCS/man/cs/mplayer.1    |  2 +-
 DOCS/man/de/mplayer.1    |  2 +-
 DOCS/man/en/mplayer.1    |  2 +-
 DOCS/man/es/mplayer.1    |  2 +-
 DOCS/man/fr/mplayer.1    |  2 +-
 DOCS/man/hu/mplayer.1    |  2 +-
 DOCS/man/it/mplayer.1    |  2 +-
 DOCS/man/ru/mplayer.1    |  2 +-
 DOCS/man/zh_CN/mplayer.1 |  2 +-
 cfg-common.h             |  2 +-
 stream/stream_pvr.c      | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
 11 files changed, 83 insertions(+), 10 deletions(-)

diff --git a/DOCS/man/cs/mplayer.1 b/DOCS/man/cs/mplayer.1
index a7d75e6..825d8f2 100644
--- a/DOCS/man/cs/mplayer.1
+++ b/DOCS/man/cs/mplayer.1
@@ -1487,7 +1487,7 @@ Nastavuje poměr stran vstupu:
 .IPs arate=<32000\-48000>
 Nastavuje vzorkovací kmitočet enkódovaného zvuku (výchozí: 48000 Hz, dostupné: 32000, 44100
 a 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Nastavuje kódování zvuku (MPEG audio layer)(výchozí: 2).
 .IPs abitrate=<32\-448>
 Nastavuje datový tok zvuku v kbps (výchozí: 384 kbps).
diff --git a/DOCS/man/de/mplayer.1 b/DOCS/man/de/mplayer.1
index f2c66bf..ca9cf32 100644
--- a/DOCS/man/de/mplayer.1
+++ b/DOCS/man/de/mplayer.1
@@ -1821,7 +1821,7 @@ Gib den Aspekt der Eingabe an:
 .IPs arate=<32000\-48000>
 Gib die Audio-Rate für die Encodierung an (Standard: 48000 Hz, verfügbar:
 32000, 44100 und 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Gib die Encodierung des MPEG-Audio-Layers an (Standard: 2).
 .IPs abitrate=<32\-448>
 Gib die Bitrate für die Audioencodierung in kbps an (Standard: 384).
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 25c701b..36d82ca 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -1912,7 +1912,7 @@ Specify input aspect ratio:
 .IPs arate=<32000\-48000>
 Specify encoding audio rate (default: 48000 Hz, available: 32000, 44100
 and 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Specify MPEG audio layer encoding (default: 2).
 .IPs abitrate=<32\-448>
 Specify audio encoding bitrate in kbps (default: 384).
diff --git a/DOCS/man/es/mplayer.1 b/DOCS/man/es/mplayer.1
index cb01588..129ed82 100644
--- a/DOCS/man/es/mplayer.1
+++ b/DOCS/man/es/mplayer.1
@@ -1689,7 +1689,7 @@ Especifica el ratio de la entrada:
 .IPs arate=<32000\-48000>
 Especifica el ratio de codificación del audio (por defecto: 48000 Hz,
 disponibles: 32000, 44100 y 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Especifica la capa de codificación MPEG para el audio (por defecto: 2).
 .IPs abitrate=<32\-448>
 Especifica el bitrate de codificación del audio (por defecto: 384).
diff --git a/DOCS/man/fr/mplayer.1 b/DOCS/man/fr/mplayer.1
index d33966b..1da12b5 100644
--- a/DOCS/man/fr/mplayer.1
+++ b/DOCS/man/fr/mplayer.1
@@ -1673,7 +1673,7 @@ Spécifie un format visuel pour l'entrée vidéo\ :
 .IPs arate=<32000\-48000>
 Spécifie le taux d'échantillonnage de l'encodeur audio (la valeur par défaut
 est de 48000 Hz, et sont disponibles 32000, 44100 et 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Spécifie le niveau d'encodage MPEG audio (par défaut\ : 2).
 .IPs abitrate=<32\-448>
 Spécifie le taux binaire d'encodage audio en kbps (par défaut\ : 384).
diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1
index 58222e5..9b8e0bd 100644
--- a/DOCS/man/hu/mplayer.1
+++ b/DOCS/man/hu/mplayer.1
@@ -1693,7 +1693,7 @@ Megadja a bemenet képarányát:
 .IPs arate=<32000\-48000>
 Megadja az audió kódolási rátáját (alapértelmezett: 48000 Hz, használható: 32000, 44100
 és 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Megadja az MPEG audió réteg kódolását (alapértelmezett: 2).
 .IPs abitrate=<32\-448>
 Megadja az audió kódolási bitrátáját kbps-ben (alapértelmezett: 384).
diff --git a/DOCS/man/it/mplayer.1 b/DOCS/man/it/mplayer.1
index ce3ec0b..3e13651 100644
--- a/DOCS/man/it/mplayer.1
+++ b/DOCS/man/it/mplayer.1
@@ -1943,7 +1943,7 @@ Specifica il rapporto di aspetto:
 .IPs arate=<32000\-48000>
 Specifica la frequenza audio di codifica (default: 48000 Hz, disponibili:
 32000, 44100 e 48000 Hz).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Specifica lo strato (layer) di codifica audio (default: 2).
 .IPs abitrate=<32\-448>
 Specifica la frequenza di codifica audio in kpbs (default: 384).
diff --git a/DOCS/man/ru/mplayer.1 b/DOCS/man/ru/mplayer.1
index 5699305..3fcb41c 100644
--- a/DOCS/man/ru/mplayer.1
+++ b/DOCS/man/ru/mplayer.1
@@ -1554,7 +1554,7 @@ Hauppauge WinTV PVR\-150/250/350/500 и все карты, основанные
 .IPs arate=<32000\-48000>
 Указывает частоту дискретизации звука (по умолчанию: 48000 Гц, доступны: 32000, 44100
 и 48000 Гц).
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 Указывает слой кодирования MPEG[MPEG layer](по умолчанию: 2).
 .IPs abitrate=<32\-448>
 Указывает битпоток кодируемого звука в кбит/с (по умолчанию: 384).
diff --git a/DOCS/man/zh_CN/mplayer.1 b/DOCS/man/zh_CN/mplayer.1
index d7e4d6d..6597c87 100644
--- a/DOCS/man/zh_CN/mplayer.1
+++ b/DOCS/man/zh_CN/mplayer.1
@@ -1912,7 +1912,7 @@ Hauppauge WinTV PVR\-150/250/350/500 和所有基于 IVTV 的卡\
 .IPs arate=<32000\-48000>
 指定编码音频的码率(默认值:48000 Hz,可用值:32000、\
 44100 和 48000 Hz)。
-.IPs alayer=<1\-3>
+.IPs alayer=<1\-5>
 指定 MPEG 音频编码层级(默认值:2)。
 .IPs abitrate=<32\-448>
 指定音频编码比特率(以 kbps 为单位)(默认值:384)。
diff --git a/cfg-common.h b/cfg-common.h
index 58748ff..3a422cf 100644
--- a/cfg-common.h
+++ b/cfg-common.h
@@ -141,7 +141,7 @@ const m_option_t tvopts_conf[]={
 const m_option_t pvropts_conf[]={
     {"aspect", &pvr_param_aspect_ratio, CONF_TYPE_INT, 0, 1, 4, NULL},
     {"arate", &pvr_param_sample_rate, CONF_TYPE_INT, 0, 32000, 48000, NULL},
-    {"alayer", &pvr_param_audio_layer, CONF_TYPE_INT, 0, 1, 2, NULL},
+    {"alayer", &pvr_param_audio_layer, CONF_TYPE_INT, 0, 1, 5, NULL},
     {"abitrate", &pvr_param_audio_bitrate, CONF_TYPE_INT, 0, 32, 448, NULL},
     {"amode", &pvr_param_audio_mode, CONF_TYPE_STRING, 0, 0, 0, NULL},
     {"vbitrate", &pvr_param_bitrate, CONF_TYPE_INT, 0, 0, 0, NULL},
diff --git a/stream/stream_pvr.c b/stream/stream_pvr.c
index ecce2c5..cbf4f17 100644
--- a/stream/stream_pvr.c
+++ b/stream/stream_pvr.c
@@ -811,6 +811,10 @@ parse_encoder_options (struct pvr_t *pvr)
     pvr->layer = V4L2_MPEG_AUDIO_ENCODING_LAYER_2;
   else if (pvr_param_audio_layer == 3)
     pvr->layer = V4L2_MPEG_AUDIO_ENCODING_LAYER_3;
+  else if (pvr_param_audio_layer == 4)
+    pvr->layer = V4L2_MPEG_AUDIO_ENCODING_AAC;
+  else if (pvr_param_audio_layer == 5)
+    pvr->layer = V4L2_MPEG_AUDIO_ENCODING_AC3;
 
   /* -pvr abitrate=x */
   if (pvr_param_audio_bitrate != 0)
@@ -967,6 +971,75 @@ parse_encoder_options (struct pvr_t *pvr)
         break;
       }
     }
+
+    else if (pvr->layer == V4L2_MPEG_AUDIO_ENCODING_AAC)
+      pvr->audio_rate = pvr_param_audio_bitrate;
+
+    else if (pvr->layer == V4L2_MPEG_AUDIO_ENCODING_AC3)
+    {
+      switch (pvr_param_audio_bitrate)
+      {
+      case 32:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_32K;
+        break;
+      case 40:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_40K;
+        break;
+      case 48:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_48K;
+        break;
+      case 56:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_56K;
+        break;
+      case 64:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_64K;
+        break;
+      case 80:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_80K;
+        break;
+      case 96:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_96K;
+        break;
+      case 112:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_112K;
+        break;
+      case 128:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_128K;
+        break;
+      case 160:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_160K;
+        break;
+      case 192:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_192K;
+        break;
+      case 224:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_224K;
+        break;
+      case 256:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_256K;
+        break;
+      case 320:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_320K;
+        break;
+      case 384:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_384K;
+        break;
+      case 448:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_448K;
+        break;
+      case 512:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_512K;
+        break;
+      case 576:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_576K;
+        break;
+      case 640:
+        pvr->audio_rate = V4L2_MPEG_AUDIO_AC3_BITRATE_640K;
+        break;
+      default:
+        break;
+      }
+    }
   }
 
   /* -pvr amode=x */
-- 
2.5.0

_______________________________________________
MPlayer-dev-eng mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.