aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/mplayer.120
-rw-r--r--DOCS/man/fr/mplayer.124
-rw-r--r--DOCS/man/hu/mplayer.169
-rw-r--r--DOCS/man/ru/mplayer.11021
-rw-r--r--DOCS/xml/hu/bugs.xml81
-rw-r--r--DOCS/xml/hu/containers.xml524
-rw-r--r--DOCS/xml/pl/encoding-guide.xml4960
-rw-r--r--DOCS/xml/zh_CN/documentation.xml2
-rw-r--r--DOCS/xml/zh_CN/mencoder.xml2
-rw-r--r--Makefile4
-rw-r--r--common.mak35
-rwxr-xr-xconfigure68
-rw-r--r--help/help_mp-es.h53
-rw-r--r--help/help_mp-ru.h1521
-rw-r--r--libmpdemux/demux_audio.c2
-rw-r--r--libswscale/swscale_template.c5
-rw-r--r--libvo/gl_common.c8
-rw-r--r--libvo/vo_dxr3.c3
-rw-r--r--libvo/vo_gl.c17
-rw-r--r--libvo/vo_gl2.c3
-rw-r--r--libvo/vo_png.c4
-rw-r--r--libvo/vo_x11.c106
-rw-r--r--libvo/vo_xmga.c3
-rw-r--r--libvo/vo_xover.c2
-rw-r--r--libvo/vo_xv.c65
-rw-r--r--libvo/vo_xvidix.c3
-rw-r--r--libvo/vo_xvmc.c30
-rw-r--r--libvo/w32_common.c16
-rw-r--r--libvo/x11_common.c82
-rw-r--r--libvo/x11_common.h18
-rw-r--r--stream/cache2.c44
31 files changed, 4734 insertions, 4061 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index d50c7db692..fa214e2b52 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -10048,34 +10048,38 @@ exhaustive search (very slow, and no better than umh)
radius of exhaustive or multi-hexagon motion search (default: 16)
.
.TP
-.B subq=<1\-9>
+.B subq=<0\-9>
Adjust subpel refinement quality.
This parameter controls quality versus speed tradeoffs involved in the motion
estimation decision process.
subq=5 can compress up to 10% better than subq=1.
.PD 0
.RSs
-.IPs 1
+.IPs 0
Runs fullpixel precision motion estimation on all candidate
macroblock types.
-Then selects the best type.
-Then refines the motion of that type to fast quarterpixel precision (fastest).
+Then selects the best type with SAD metric (faster than subq=1, not recommended
+unless you're looking for ultra-fast encoding).
+.IPs 1
+Does as 0, then refines the motion of that type to fast quarterpixel precision
+(fast).
.IPs 2
Runs halfpixel precision motion estimation on all candidate macroblock types.
-Then selects the best type.
+Then selects the best type with SATD metric.
Then refines the motion of that type to fast quarterpixel precision.
.IPs 3
As 2, but uses a slower quarterpixel refinement.
.IPs 4
Runs fast quarterpixel precision motion estimation on all candidate
macroblock types.
-Then selects the best type.
+Then selects the best type with SATD metric.
Then finishes the quarterpixel refinement for that type.
.IPs 5
Runs best quality quarterpixel precision motion estimation on all
candidate macroblock types, before selecting the best type.
-Also refines the two motion vectors used in bidirectional macroblocks,
-rather than reusing vectors from the forward and backward searches.
+Also refines the two motion vectors used in bidirectional macroblocks with
+SATD metric, rather than reusing vectors from the forward and backward
+searches.
.IPs 6
Enables rate-distortion optimization of macroblock types in
I- and P-frames (default).
diff --git a/DOCS/man/fr/mplayer.1 b/DOCS/man/fr/mplayer.1
index 40f342be46..58bedeb1f2 100644
--- a/DOCS/man/fr/mplayer.1
+++ b/DOCS/man/fr/mplayer.1
@@ -1,4 +1,4 @@
-.\" synced with r27895
+.\" synced with r27906
.\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2008 MPlayer Team
.\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
@@ -10594,24 +10594,27 @@ rayon de de la recherche exhaustive et multi-hexagonale de mouvement
(par dИfaut\ 16)
.
.TP
-.B subq=<1\-9>
+.B subq=<0\-9>
Ajuste la qualitИ d'affinement de subpel.
Ce paramХtre contrТle le compromis qualitИ/\:vitesse liИ aux dИcisions du
processus d'estimation du mouvement.
subq=5 peut augmenter jusqu'Ю 10% le taux de compression par rapport Ю subq=1.
.PD 0
.RSs
-.IPs 1
+.IPs 0
Effectue une recherche de mouvement d'une prИcision fullpixel (c-Ю-d qu'elle
capture les mouvements d'une trame Ю la suivante avec une prИcision d'un pixel)
sur tous les types de macro-blocs candidats.
-SИlectionne ensuite le meilleur type.
-Puis affine rapidement avec une prИcision qu'un quart de pixel le mouvement de
-ce type (le plus rapide).
+SИlectionne ensuite le meilleur type avec la mИtrique SAD (plus rapide que
+subq=1, mais non recommandИ Ю moins que vous cherchiez Ю rИaliser un encodage
+ultra-rapide).
+.IPs 1
+Comme 0, affine ensuite rapidement avec une prИcision qu'un quart de pixel le
+mouvement de ce type (rapide).
.IPs 2
Effectue une recherche de mouvement d'une prИcision demi pixel sur tous les
types de macro-blocs candidats.
-SИlectionne ensuite le meilleur type.
+SИlectionne ensuite le meilleur type avec la mИtrique SATD.
Puis affine rapidement avec une prИcision qu'un quart de pixel le mouvement de
ce type.
.IPs 3
@@ -10619,13 +10622,14 @@ Comme 2, mais utilise un affinage plus lent qu'un quart de pixel.
.IPs 4
Effectue une rapide recherche de mouvement d'une prИcision d'un quart de
pixel (quarterpixel) sur tous les types de macro-blocs candidats.
-Puis termine l'affinement quarterpixel pour ce type
+Puis sИlectionne le meilleur type avec la mИtrique SATD.
+Termine ensuite l'affinement quarterpixel pour ce type.
.IPs 5
Effectue la recherche de mouvement de la meilleure qualitИ sur tous les
types de macro-blocs candidats, avant de choisir le meilleur type.
Affine aussi les deux vecteurs de mouvement utilisИs par les macro-blocs
-bi-directionnels, au lieu de rИ-utiliser les vecteurs des recherches
-avant et arriХre.
+bi-directionnels avec la mИtrique SATD, au lieu de rИ-utiliser les vecteurs
+des recherches avant et arriХre.
.IPs 6
Active la sИlection des macro-blocs en fonction de leur taux de distortion,
pour les trames-I et P (par dИfaut).
diff --git a/DOCS/man/hu/mplayer.1 b/DOCS/man/hu/mplayer.1
index 97d8661750..368fd62f29 100644
--- a/DOCS/man/hu/mplayer.1
+++ b/DOCS/man/hu/mplayer.1
@@ -1,4 +1,4 @@
-.\" Synced with r27691
+.\" Synced with r27906
.\" MPlayer (C) 2000-2008 MPlayer Team
.\" Ezt a man oldalt Gabucino, Diego Biurrun Иs Jonas Jermann kИszМti/kИszМtette
.\" KarbantartС: Gabrov
@@ -33,7 +33,7 @@
.\" NИv
.\" --------------------------------------------------------------------------
.
-.TH MPlayer 1 "2008. 10. 05." "MPlayer Project" "A film lejАtszС"
+.TH MPlayer 1 "2008. 11. 16." "MPlayer Project" "A film lejАtszС"
.
.SH NиV
mplayer \- film lejАtszС
@@ -107,7 +107,7 @@ cue://fАjl[:sАv]
.
.br
.B mplayer
-[fАjl|mms[t]|http|http_proxy|rt[s]p|ftp|udp|unsv|smb]://
+[fАjl|mms[t]|http|http_proxy|rt[s]p|ftp|udp|unsv|icyx|noicyx|smb]://
[felhasznАlС:jelszС@]URL[:port] [opciСk]
.
.br
@@ -2661,6 +2661,12 @@ amitУl pl.\& az OSD nem tud helyesen megjelenni.
A mixer hangerУ vАltoztatАsАnak lИptИkИt АllМtja be a teljes tartomАny
szАzalИkАban (alapИrtelmezett: 3).
.
+.TP
+.B \-volume <-1\-100> (lАsd mИg \-af volume)
+BeАllМtja a kezdУ hangerУt a keverУben, akАr hardveres, akАr szoftveres (ha a
+\-softvol-lal egyЭtt hasznАlod).
+A -1-es ИrtИk (alapИrtelmezett) nem vАltoztat a hangerУn.
+.
.
.
.SH "AUDIс KIMENETI VEZиRLуK (CSAK MPLAYER)"
@@ -3219,12 +3225,12 @@ Nem minden videС kimeneti vezИrlУ tАmogatja.
.
.TP
.B \-screenh <pixel>
-A fЭggУleges kИpernyУ felbontАs megadАsa az olyan videС kimeneti vezИrlУnek,
+A kИpernyУ magassАgАnak megadАsa az olyan videС kimeneti vezИrlУnek,
ami nem tudja a kИpernyУ felbontАsАt, mint az fbdev, x11 Иs TV-out.
.
.TP
.B \-screenw <pixel>
-A vМzszintes kИpernyУ felbontАs megadАsa az olyan videС kimeneti vezИrlУnek,
+A kИpernyУ szИlessИgИnek megadАsa az olyan videС kimeneti vezИrlУnek,
ami nem tudja a kИpernyУ felbontАsАt, mint az fbdev, x11 Иs TV-out.
.
.TP
@@ -10064,18 +10070,20 @@ alapos keresИs (nagyon lassЗ Иs nem jobb, mint az umh)
az alapos vagy tЖbbszЖrЖs-hatszЖg mozgАs keresИs sugara (alapИrtelmezett: 16)
.
.TP
-.B subq=<1\-7>
+.B subq=<0\-9>
A subpel finomМtАsi minУsИgИnek beАllМtАsa.
Ez a paramИter szabАlyozza a minУsИg kontra sebessИg arАnyt a
mozgАs becslИsi dЖntИsek folyamatАban.
A subq=5 akАr 10%-kal gyorsabb lehet, mint a subq=1.
.PD 0
.RSs
-.IPs 1
+.IPs 0
Teljes pixeles pontossАgЗ mozgАs becslИst vИgez minden rИsztvevУ
makroblokk tМpuson.
-EzutАn kivАlasztja a legjobb tМpust.
-Majd finomМtja azt a tМpusЗ mozgАst egy gyors negyedpixeles pontossАghoz (leggyorsabb).
+EzutАn SAD metrikАval kivАlasztja a legjobb tМpust (gyorsabb, mint a subq=1, de nem
+javasolt, csak ha nagyon gyors kСdolАst akarsz).
+.IPs 1
+Ugyan az, mint a 0, majd finomМtja a mozgАst gyors negyedpixeles precizМtАssal (gyors).
.IPs 2
FИlpixeles pontossАgЗ mozgАs becslИst vИgez minden rИszvevУ makroblokk
tМpuson.
@@ -10086,18 +10094,25 @@ Mint az 2, de lassabb negyedpixeles finomМtАst vИgez.
.IPs 4
Gyors negyedpixeles pontossАgЗ mozgАs becslИst futtat le minden rИsztvevУ
makroblokk tМpuson.
-Majd kivАlasztja a legjobb tМpust.
+Majd SATD metrikАval kivАlasztja a legjobb tМpust.
EzutАn befejezi a negyedpixeles finomМtАst azon a tМpuson.
.IPs 5
Legjobb minУsИgШ negyedpixel pontossАgЗ mozgАs becslИst futtat le
minden rИsztvevУ makroblokk tМpuson, mielУtt kivАlaszanА a legjobb
-tМpust. (alapИrtelmezett)
+tМpust.
+FinomМtja a kИt, bidirekcionАlis makroblokkban hasznАlt mozgАs vektort is
+SATD metrikАval a kИtirАnyЗ keresИssel megtalАlt vektorok Зjra felhasznАlАsa helyett.
.IPs 6
EngedИlyezi a rАta-torzМtАs optimalizАlАsАt a makroblokk tМpusokra
-az I- Иs P-kockАknАl.
+az I- Иs P-kockАknАl (alapИrtelmezett).
.IPs 7
-EngedИlyezi a rАta-torzМtАs optimalizАlАsАt az intra mСdokra Иs a mozgАs
-vektorokra. (legjobb)
+EngedИlyezi a rАta-torzМtАs optimalizАlАsАt a makroblokk tМpusokra minden kockАnАl.
+.IPs 8
+EngedИlyezi a rАta-torzМtАs optimalizАlАsАt a mozgАs vektorokra Иs a
+belsУ jСslС mСdokra az I- Иs P-kockАknАl.
+.IPs 9
+EngedИlyezi a rАta-torzМtАs optimalizАlАsАt a mozgАs vektorokra Иs a
+belsУ jСslС mСdokra minden kockАnАl (legjobb).
.RE
.PD 1
.RS
@@ -10119,18 +10134,7 @@ Ezen opciС nИlkЭl az egИsz makroblokknak ugyan azt a referencia kockАt kell hasz
frameref>1 szЭksИges.
.
.TP
-.B (no)brdo
-EngedИlyezi a rАta-torzМtС optimalizАlАst a B-kockАk makroblokk tМpusain.
-subq>=6 szЭksИges.
-.
-.TP
-.B (no)bime
-FinomМtja a kИtirАnyЗ makroblokkokban hasznАlt kИt mozgАsvektort,
-az elУre Иs visszafelИ tЖrtИnУ keresИsbУl szАrmazС vektorok ЗjrafelhasznАlАsa helyett.
-Ennek az opciСnakl nincs hatАsa B-kockАk nИlkЭl.
-.
-.TP
-.B trellis=<0\-2>
+.B trellis=<0\-2> (csak cabac)
rАta-torzМtС optimАlis kvantАlАs
.PD 0
.RSs
@@ -10144,6 +10148,19 @@ minden mСd dЖntИsnИl engedИlyezi (lassЗ, subq>=6 szЭksИges)
.PD 1
.
.TP
+.B psy-rd=rd[,trell]
+BeАllМtja a pszichovizuАlis optimalizАciС erУssИgИt.
+.PD 0
+.RSs
+.IPs rd=<0.0\-10.0>
+psy optimalizАciС erУssИge (subq>=6 kell hozzА) (alapИrtelmezett: 1.0)
+.IPs trell=<0.0\-10.0>
+trellis (trellis kell hozzА, kМsИrleti) (alapИrtelmezett: 0.0)
+.RE
+.PD 1
+.
+.
+.TP
.B deadzone_inter=<0\-32>
BeАllМtja az inter luma kvantАlАs holtterИt a nem-rАcsos kvantАlАshoz
(alapИrtelmezett: 21).
diff --git a/DOCS/man/ru/mplayer.1 b/DOCS/man/ru/mplayer.1
index 12cb21f5b9..5450a54677 100644
--- a/DOCS/man/ru/mplayer.1
+++ b/DOCS/man/ru/mplayer.1
@@ -2,7 +2,7 @@
.\" This man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
.\" Translated by Vladimir Voroshilov <voroshil@gmail.com>
.\" Encoding: koi8-r
-.\" synced with r25189
+.\" synced with r26763
.
.\" --------------------------------------------------------------------------
.\" Определения макросов
@@ -33,7 +33,7 @@
.\" Заголовок
.\" --------------------------------------------------------------------------
.
-.TH MPlayer 1 "2007-06-01" "Проект MPlayer" "Медиапроигрыватель"
+.TH MPlayer 1 "2008-01-01" "Проект MPlayer" "Медиапроигрыватель"
.
.SH НАЗВАНИЕ
mplayer \- медиапроигрыватель
@@ -153,13 +153,14 @@ tivo://адрес/[list|llist|fsid]
Он проигрывает большинство MPEG/\:VOB, AVI, ASF/\:WMA/\:WMV, RM, QT/\:MOV/\:MP4, Ogg/\:OGM,
MKV, VIVO, FLI, NuppelVideo, yuv4mpeg, FILM и RoQ файлов, поддерживаемых большим количеством
встроенных и бинарных кодеков.
-Вы также можете смотреть Video CD, SVCD, DVD, 3ivx, DivX 3/4/5 и даже WMV фильмы.
+Вы также можете смотреть VCD, SVCD, DVD, 3ivx, DivX 3/4/5, WMV и
+даже H.264 фильмы.
.PP
MPlayer поддерживает множество драйверов вывода видео и аудио.
Он работает с X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB,
Quartz, Mac OS X CoreVideo, вы также можете использовать GGI, SDL (и все его драйверы),
-VESA (на любой VESA-совместимой карте, даже без X11), некоторые низкоуровневые
-аппаратно-зависимые драйвера (для Matrox, 3dfx b ATI) и некоторые платформы аппаратного
+VESA (на любой VESA\-совместимой карте, даже без X11), некоторые низкоуровневые
+аппаратно\-зависимые драйвера (для Matrox, 3dfx b ATI) и некоторые платформы аппаратного
декодирования MPEG, такие как Siemens DVB, Hauppauge PVR (IVTV), DXR2 и DXR3/\:Hollywood+.
Большинство из них поддерживает аппаратное или программное масштабирование, так что вы можете
насладиться просмотром фильмов в полноэкранном режиме.
@@ -176,7 +177,7 @@ DVD субтитры (SPU streams, VOBsub и Closed Captions).
(MPlayer Media Encoder, Кодировщик Фильмов MPlayer) это простой кодировщик фильмов, разработанный
для кодирования фильмов, проигрываемых MPlayer'ом (смотри выше) в другие форматы,
поддерживаемые MPlayer'ом (смотрите ниже).
-Он кодирует в MPEG-4 (DivX/Xvid), любой из libavcodec кодеков и
+Он кодирует в MPEG\-4 (DivX/Xvid), любой из libavcodec кодеков и
PCM/\:MP3/\:VBRMP3 звук в 1, 2 или 3 прохода.
Кроме того, он имеет возможности копирования потоков, мощную систему фильтров (обрезка,
растяжение, зеркальное отражение, постобработка, поворот, масштабирование, шум, RGB/\:YUV преобразование)
@@ -243,18 +244,18 @@ MPlayer имеет полностью настраиваемый, основанный на командах, слой управления,
Подстраивает баланс, усиливая левый/\:правый канал.
.IPs "m\ \ \ \ "
Выключает звук.
-.IPs "_ (только MPEG-TS, AVI и libavformat)"
+.IPs "_ (только MPEG\-TS, AVI и libavformat)"
Циклически переключает доступные видео дорожки.
.IPs "# (только DVD, MPEG, Matroska, AVI и libavformat)"
Циклически переключает доступные аудио дорожки.
-.IPs "TAB (только MPEG-TS и libavformat)"
+.IPs "TAB (только MPEG\-TS и libavformat)"
Циклически переключает доступные программы.
.IPs "f\ \ \ \ "
Включает полноэкранный режим (смотрите также \-fs).
.IPs "T\ \ \ \ "
Включает режим `поверх всех окон` (также смотрите \-ontop).
.IPs "w и e"
-Уменьшает/\:увеличивает диапазон pan-and-scan.
+Уменьшает/\:увеличивает диапазон pan\-and\-scan.
.IPs "o\ \ \ \ "
Изменяет режим OSD: нет / положение / положение + время / положение + время + общее время.
.IPs "d\ \ \ \ "
@@ -284,6 +285,8 @@ MPlayer имеет полностью настраиваемый, основанный на командах, слой управления,
Перейти к началу предыдущего/следующего эпизода.
.IPs "D (только \-vo xvmc, \-vf yadif, \-vf kerndeint)"
Активирует/деактивирует деинтерлейсер.
+.IPs "A"
+Циклически меняет доступные углы DVD.
.RE
.PD 1
.PP
@@ -464,7 +467,7 @@ mplayer \-ao pcm:file=%`expr length "$NAME"`%"$NAME" test.avi
'~/\:.mplayer/\:config'.
Конфигурационный файл для MEncoder называется 'mencoder.conf' и находится в системном каталоге
(например /etc/\:mplayer или /usr/\:local/\:etc/\:mplayer), пользовательский \-
- '~/\:.mplayer/\:mencoder.conf.
+ '~/\:.mplayer/\:mencoder.conf'.
Опции в пользовательском файле перекрывают системные, а опции командной строки перекрывают
заданные в конфигурационных файлах.
Синтаксис конфигурационного файла: 'option=<значение>', все символы после '#' считаются
@@ -510,9 +513,9 @@ ovc=lavc=1
oac=lavc=1
passlogfile=pass1stats.log
noautoexpand=1
-subfont-autoscale=3
-subfont-osd-scale=6
-subfont-text-scale=4
+subfont\-autoscale=3
+subfont\-osd\-scale=6
+subfont\-text\-scale=4
subalign=2
subpos=96
spuaa=20
@@ -525,24 +528,49 @@ spuaa=20
.SH "ПРОФИЛИ"
Для облегчения работы с различными конфигурациями в конфигурационном файле могут быть
указаны несколько профилей.
-Профиль начинается с имени, заключенного в квадратные скобки, например '[my-profile]'.
+Профиль начинается с имени, заключенного в квадратные скобки, например '[my\-profile]'.
Все последующие опции будут считаться частью профиля.
Описание (отображаемое при помощи \-profile help) может быть задано опцией profile\-desc.
Для окончания профиля укажите имя другого профиля или используйте имя профиля 'default',
чтобы продолжить описание обычных опций.
.fi
.PP
+.I "ПРИМЕР ПРОФИЛЯ MPLAYER:"
+.sp 1
+.nf
+
+[protocol.dvd]
+profile\-desc="профиль для dvd:// потоков"
+vf=pp=hb/vb/dr/al/fd
+alang=en
+
+[protocol.dvdnav]
+profile\-desc="профиль для dvdnav:// потоков"
+profile=protocol.dvd
+mouse\-movements=yes
+
+[extension.flv]
+profile\-desc="профиль для .flv файлов"
+flip=yes
+
+[vo.pnm]
+outdir=/tmp
+
+[ao.alsa]
+device=spdif
+.fi
+.PP
.I "ПРИМЕР ПРОФИЛЯ MENCODER:"
.sp 1
.nf
[mpeg4]
-profile-desc="MPEG4 encoding"
+profile\-desc="кодирование MPEG4"
ovc=lacv=yes
lavcopts=vcodec=mpeg4:vbitrate=1200
[mpeg4\-hq]
-profile-desc="HQ MPEG4 encoding"
+profile\-desc="кодирование HQ MPEG4"
profile=mpeg4
lavcopts=mbd=2:trell=yes:v4mv=yes
.fi
@@ -578,6 +606,11 @@ lavcopts=mbd=2:trell=yes:v4mv=yes
Переменная окружения MPLAYER_CHARSET может помочь если выводится мусор в первых строках.
.
.TP
+.B \-msgcolor
+Включает цветной консольный вывод на терминалах, поддерживающих
+цвета ANSI.
+.
+.TP
.B \-msglevel <all=<уровень>:<модуль>=<уровень>:...>
Управляет подробность вывода непосредственно для каждого модуля.
Значение, указанное для модуля 'all', изменяет подробность вывода для всех модулей, которым
@@ -619,9 +652,35 @@ lavcopts=mbd=2:trell=yes:v4mv=yes
.PD 1
.
.TP
+.B \-msgmodule
+Добавляет имя модуля перед каждым консольным сообщением.
+.
+.TP
+.B \-noconfig <опции>
+Не использовать указанные конфигурационные файлы.
+.br
+.I ЗАМЕЧАНИЕ:
+Если в командной строке заданы параметры \-include или
+\-use\-filedir\-conf, они будут учтены.
+.sp 1
+Доступные опции:
+.PD 0
+.RSs
+.IPs "all\ \ "
+все конфигурационные файлы
+.IPs "gui (только GUI)"
+конфигурационный файл GUI
+.IPs system
+системный конфигурационный файл
+.IPs "user\ "
+пользовательский конфигурационный файл
+.RE
+.PD 1
+.
+.TP
.B "\-quiet\ "
Делает консольный вывод менее подробным; в частности, прячет статусную строку
-т.е.\& A: 0.7 V: 0.6 A-V: 0.068 ...).
+т.е.\& A: 0.7 V: 0.6 A\-V: 0.068 ...).
Может быть полезно на медленных или неполноценных терминалах, которые некорректно обрабатывают
возврат каретки (т.е.\& \\r).
.
@@ -762,11 +821,11 @@ http://www.mplayerhq.hu/\:DOCS/\:HTML/\:ru/\:edl.html.
Принуждает использовать фиксированную систему видео для многих файлов
(одна (де)инициализация для всех файлов).
Таким образом для всех файлов будет открыто только одно окно.
-На данный момент следующие драйвера поддерживают fixed-vo: gl, gl2, mga, svga, x11,
+На данный момент следующие драйвера поддерживают fixed\-vo: gl, gl2, mga, svga, x11,
xmga, xv, xvidix и dfbmga.
.
.TP
-.B \-framedrop (смотрите также \-hardframedrop)
+.B \-framedrop (смотрите также \-hardframedrop, экспериментальное без \-nocorrect\-pts)
Указывает пропускать отображение некоторых кадров для управления A/V синхронизацией на
медленных системах. Видео фильтры не применяются для таких кадров. Для В-кадров
не выполняется даже декодирование.
@@ -782,9 +841,38 @@ xmga, xv, xvidix и dfbmga.
Показывает краткую информацию об опциях.
.
.TP
-.B \-hardframedrop
+.B \-hardframedrop (экспериментальное без \-nocorrect\-pts)
Более интенсивный пропуск кадров (нарушает декодирование).
Ведет к искажению изображения!
+Обратите внимание, что, особенно, декодер libmpeg2 может
+рухнуть с данной опцией, так что попробуйте использовать
+"\-vc ffmpeg12,".
+.
+.TP
+.B \-heartbeat\-cmd
+Команда, которая выполняется каждые 30 секунд во время
+воспроизведения с помощью system(), т.е.\& используя оболочку
+командной строки.
+.sp 1
+.I ЗАМЕЧАНИЕ:
+MPlayer использует эту команду без каких\-либо проверок, проверка её
+безопасности лежит под Вашей ответственностью (в частности, убедитесь,
+что используются полные пути, если "." присутствует в вашем пути,
+например, как в Windows).
+.sp 1
+Её можно применять для "неправильного" отключения хранителей
+экрана, не поддерживающих должное X API (также смотрите
+\-stop\-xscreensaver).
+Если Вы считаете это слишком сложным, попросите автора хранителя
+экрана добавить поддержку соответствующих X API.
+.sp 1
+.I ПРИМЕР для xscreensaver:
+mplayer \-heartbeat\-cmd "xscreensaver\-command \-deactivate" file
+.sp 1
+.I ПРИМЕР для GNOME screensaver:
+mplayer \-heartbeat\-cmd "gnome\-screensaver\-command \-p" file
+.RE
+.PD 1
.
.TP
.B \-identify
@@ -793,7 +881,9 @@ xmga, xv, xvidix и dfbmga.
Также печатает более подробную информацию о субтитрах, языках и идентификаторах
аудио дорожек. В некоторых случаях вы можете получить больше информации, используя
\-msglevel identify=6.
-Для DVD, например, это отобразит длину каждого заголовка и ID диска.
+Для DVD, например, это отобразит разделы и длину каждого заголовка,
+а также ID диска.
+Используйте совместно с \-frames 0 для подавления всего вывода.
Скрипт TOOLS/\:midentify.sh подавляет остальной вывод MPlayer и (успешно) экранирует
имена файлов.
.
@@ -819,15 +909,15 @@ xmga, xv, xvidix и dfbmga.
Указывает файл конфигурации системы ввода, отличный от установленного по умолчанию
~/\:.mplayer/\:input.conf.
~/\:.mplayer/\:<имя_файла> подразумевается, если не указан полный путь.
-.IPs ar-delay
+.IPs ar\-delay
Задержка в миллисекундах перед началом автоповтора (0 для отключения).
-.IPs ar-rate
+.IPs ar\-rate
Количество клавиш в секунду, генерируемых при автоповторе.
.IPs keylist
Выводит все клавиши, которые можно назначить командам.
.IPs cmdlist
выводит все команды, которые можно назначить клавишам.
-.IPs js-dev
+.IPs js\-dev
Указывает какое устройство использовать в качестве джойстика (по умолчанию: /dev/\:input/\:js0).
.IPs file=<имя_файла>
Указывает читать команды из файла. Используется для работы с FIFO.
@@ -938,14 +1028,16 @@ mozplayerxp полагается на эту опцию).
.RSs
.IPs ${NAME}
Заменяется на значение свойства NAME.
-.IPs $(NAME:TEXT)
+.IPs ?(NAME:TEXT)
Заменяется на TEXT только если доступно свойство NAME.
+.IPs ?(!NAME:TEXT)
+Заменяется на TEXT только если не доступно свойство NAME.
.RE
.
.TP
.B \-playlist <имя_файла>
Воспроизводит файлы в соответствии со списком (ASX, Winamp, SMIL, или
-по-одному-файлу-в-строке формата).
+по\-одному\-файлу\-в\-строке формата).
.br
.I ЗАМЕЧАНИЕ:
Опция считается элементом, так что все последующие опции будут применяться только к
@@ -1009,26 +1101,26 @@ FIXME: Это требует тщательного разъяснения и описания.
.B \-a52drc <уровень>
.\" нужен ли перевод DRC ?
Выбирает уровень Dynamic Range Compression[Сжатие Динамического Диапазона] для
-аудио потоков AC-3. <уровень> \- это вещественное число от 0 до 1, где 0 означает
+аудио потоков AC\-3. <уровень> \- это вещественное число от 0 до 1, где 0 означает
отсутствие сжатия, а 1 (по умолчанию) означает полное сжатие (делает громкие звуки
более тихими и наоборот).
-Эта опция действует, только если AC-3 поток содержит необходимую информацию
+Эта опция действует, только если AC\-3 поток содержит необходимую информацию
сжатия диапазона.
.
.TP
.B \-aid <ID> (смотрите также \-alang)
Выбирает аудио канал (MPEG: 0\-31, AVI/\:OGM: 1\-99, ASF/\:RM: 0\-127,
-VOB(AC-3): 128\-159, VOB(LPCM): 160\-191, MPEG-TS 17\-8190).
+VOB(AC\-3): 128\-159, VOB(LPCM): 160\-191, MPEG\-TS 17\-8190).
MPlayer выводит все доступные аудио ID, когда запущен в режиме
подробного вывода сообщений (\-v).
-При воспроизведении MPEG-TS потока, MPlayer/\:MEncoder будет использовать
+При воспроизведении MPEG\-TS потока, MPlayer/\:MEncoder будет использовать
первую программу (если существует) с выбранным аудио потоком.
.
.TP
.B \-alang <код языка[,код языка,...]> (смотрите также \-aid)
Указывает список используемых языков в порядке приоритетности.
Различные форматы файлов используют различные коды языков.
-DVD используют ISO 639\-1 двухбуквенные коды, Matroska, MPEG-TS и NUT используют ISO 639\-2
+DVD используют ISO 639\-1 двухбуквенные коды, Matroska, MPEG\-TS и NUT используют ISO 639\-2
трехбуквенные коды языков, в то время как OGM использует идентификаторы в свободной форме.
MPlayer выводит доступные языки, когда запущен в режиме вывода подробных сообщений (\-v).
.sp 1
@@ -1113,19 +1205,19 @@ libmpdemux/\:demuxer.h.
.br
2: полная коррекция и проверка данных
.REss
-.IPs generic-dev=<значение>
+.IPs generic\-dev=<значение>
Указывает использовать указанное SCSI устройство.
-.IPs sector-size=<значение>
+.IPs sector\-size=<значение>
Устанавливает атомарный размер чтения.
.IPs overlap=<значение>
Принудительно устанавливает минимальный поиск перекрытия в <значение>
секторов.
-.IPs toc-bias
+.IPs toc\-bias
Указывает предполагать, что смещение начала дорожки 1, указанной в TOC,
адресуется как LBA 0.
Это требуется для некоторых устройств Toshiba, чтобы стали правильными
границы дорожек.
-.IPs toc-offset=<значение>
+.IPs toc\-offset=<значение>
Добавляет <значение> секторов к значению, выдаваемому при адресации дорожек.
Может быть отрицательным.
.IPs (no)skip
@@ -1134,21 +1226,21 @@ libmpdemux/\:demuxer.h.
.
.TP
.B \-cdrom\-device <путь к устройству>
-Указывает устройство CD-ROM (по умолчанию: /dev/\:cdrom).
+Указывает устройство CD\-ROM (по умолчанию: /dev/\:cdrom).
.
.TP
.B \-channels <число> (смотрите также \-af channels)
Запрашивает количество каналов воспроизведения (по умолчанию: 2).
MPlayer просит декодер декодировать звук в указанное количество каналов.
Выполнение задачи ложится на плечи декодера.
-Обычно это требуется только при воспроизведении видео с AC-3 звуком (например DVD).
+Обычно это требуется только при воспроизведении видео с AC\-3 звуком (например DVD).
В этом случае liba52 выполняет декодирование как обычно и корректно сводит
звук в запрошенное количество каналов.
Для прямого управления количеством выходных каналов независимо от количества декодируемых,
используйте фильтр channels.
.br
.I ЗАМЕЧАНИЕ:
-Эта опция учитывается кодеками (только AC-3), фильтрами (surround) и драйверами вывода
+Эта опция учитывается кодеками (только AC\-3), фильтрами (surround) и драйверами вывода
звука (как минимум OSS).
.sp 1
Доступные опции:
@@ -1211,7 +1303,7 @@ libmpdemux/\:demuxer.h.
.
.TP
.B \-dumpaudio (только MPlayer)
-Сохраняет сырой сжатый аудио поток в ./stream.dump (полезно с MPEG/\:AC-3,
+Сохраняет сырой сжатый аудио поток в ./stream.dump (полезно с MPEG/\:AC\-3,
в большинстве остальных случаев полученный файл проигрываться не будет).
Если вы укажете в командной строке более одной опции из \-dumpaudio, \-dumpvideo,
\-dumpstream, будет использоваться только последняя.
@@ -1254,11 +1346,9 @@ libmpdemux/\:demuxer.h.
.
.TP
.B \-dvd\-device <путь к устройству> (только DVD)
-Указывает устройство DVD (по умолчанию: /dev/\:dvd).
+Указывает устройство DVD или имя файла .iso (по умолчанию: /dev/\:dvd).
Вы также можете указать каталог, содержащий файлы, предварительно скопированные
непосредственно с DVD (например, с помощью vobcopy).
-Заметьте, что для копирования роликов DVD, как правило, лучше использовать \-dumpstream
-(смотрите примеры).
.
.TP
.B \-dvd\-speed <множитель или скорость в КБ/с> (только DVD)
@@ -1371,7 +1461,7 @@ MPlayer не запрещает загрузку индексного файла, созданного по другому AVI фильму
.
.TP
.B \-mc <секунд/кадр>
-Максимальная величина корректировки A-V синхронизации на один кадр (в секундах)
+Максимальная величина корректировки A\-V синхронизации на один кадр (в секундах)
.
.TP
.B \-mf <опция1:опция2:...>
@@ -1400,7 +1490,7 @@ fps результата (по умолчанию: 25)
.TP
.B \-nobps (только AVI)
Указывает не использовать среднее значение байт/\:секунду для
-A-V синхронизации. Помогает для некоторых AVI файлов с испорченным заголовком.
+A\-V синхронизации. Помогает для некоторых AVI файлов с испорченным заголовком.
.
.TP
.B \-noextbased
@@ -1426,10 +1516,11 @@ A-V синхронизации. Помогает для некоторых AVI файлов с испорченным заголовком.
.
.TP
.B \-psprobe <байтовая позиция>
-При воспроизведении MPEG-PS потока, эта опция позволяет указать
-количество байт, которые MPlayer должен просканировать для
-определения используемого видео кодека.
-Она требуется для воспроизведения EVO файлов, содержащих H.264 потоки.
+При воспроизведении MPEG\-PS или MPEG\-PES потоков, эта опция
+позволяет указать количество байт, которые MPlayer должен
+просканировать для определения используемого видео кодека.
+Она требуется для воспроизведения EVO или VDR файлов, содержащих
+H.264 потоки.
.
.TP
.B \-pvr <опция1:опция2:...> (только PVR)
@@ -1481,11 +1572,11 @@ cbr: Постоянный битпоток
.IPs fmt=<значение>
Выбирает MPEG формат для кодирования:
.RSss
-ps: MPEG-2 Программный поток (по умолчанию)
+ps: MPEG\-2 Программный поток (по умолчанию)
.br
-ts: MPEG-2 Транспортный поток
+ts: MPEG\-2 Транспортный поток
.br
-mpeg1: MPEG-1 системный поток
+mpeg1: MPEG\-1 системный поток
.br
vcd: Video CD совместимый поток
.br
@@ -1507,7 +1598,7 @@ dvd: DVD совместимый
Для запуска подсистемы захвата,
используйте 'radio://<частота или канал>/capture'.
Если не указано ключевое слово capture, вы можете слушать радио только
-при помоши line-in кабеля. Использование capture для прослушивания не
+при помощи line\-in кабеля. Использование capture для прослушивания не
рекомендуется в связи с проблемами синхронизации, которые
делают прослушивание некомфортным.
.sp 1
@@ -1516,17 +1607,17 @@ dvd: DVD совместимый
.IPs device=<значение>
Используемое устройство радио (по умолчанию: /dev/radio0 для Linux и /dev/tuner0 для *BSD).
.IPs driver=<значение>
-Используемый радио драйвер (пл-умолчанию: v4l2 если доступно, иначе v4l).
+Используемый радио драйвер (по умолчанию: v4l2 если доступно, иначе v4l).
В данный момент поддерживаются драйверы v4l и v4l2.
.IPs volume=<0..100>
Уровень звука для радио (по умолчанию: 100)
.IPs "freq_min=<значение> (только *BSD BT848)"
-Минимальная допустимая частота (по-молчанию: 87.50)
+Минимальная допустимая частота (по\-молчанию: 87.50)
.IPs "freq_max=<значение> (только *BSD BT848)"
Максимальная допустимая частота (по умолчанию: 108.00)
.IPs channels=<частота>\-<название>,<частота>\-<название>,...
Устанавливает список каналов.
-Используйте _ вместо пробелов в именах (или играйтесь с экранированием ;-).
+Используйте _ вместо пробелов в именах (или играйтесь с экранированием ;\-).
Имена каналов будут выводиться при помощи OSD, и для управления с пульта
будут доступны команды radio_step_channel и radio_set_channel (смотрите LIRC).
Если эта опция указана, то число в URL будет означать позицию канала в списке.
@@ -1555,8 +1646,8 @@ radio://1, radio://104.4, radio_set_channel 1
.B \-rawaudio <опция1:опция2:...>
Эта опция позволяет проигрывать сырые аудио файлы.
Вам придется также указать \-demuxer rawaudio.
-Ее еще можно использовать для воспроизведения аудио CD, отличных от 44кГц 16-бит стерео.
-Для воспроизведения сырых AC-3 потоков используйте \-rawaudio format=0x2000 \-demuxer rawaudio.
+Ее еще можно использовать для воспроизведения аудио CD, отличных от 44кГц 16\-бит стерео.
+Для воспроизведения сырых AC\-3 потоков используйте \-rawaudio format=0x2000 \-demuxer rawaudio.
.sp 1
Доступные опции:
.sp 1
@@ -1683,16 +1774,16 @@ RTP пакеты на нужный интерфейс. Если невозможно установить соединение
.TP
.B \-tskeepbroken
Указывает MPlayer не отбрасывать TS пакеты в потоке, определенные как испорченные.
-Иногда требуется для воспроизведения испорченных MPEG-TS файлов.
+Иногда требуется для воспроизведения испорченных MPEG\-TS файлов.
.
.TP
.B \-tsprobe <байтовая позиция>
-При воспроизведении MPEG-TS потока, эта опция позволяет указать, в пределах какого
+При воспроизведении MPEG\-TS потока, эта опция позволяет указать, в пределах какого
количества байт в потоке MPlayer должен искать желаемые аудио и видео ID.
.
.TP
.B \-tsprog <1\-65534>
-При воспроизведении MPEG-TS потока, этой опцией можно указать какую
+При воспроизведении MPEG\-TS потока, этой опцией можно указать какую
программу (если присутствует) вы хотите воспроизвести.
Может использоваться с \-vid и \-aid.
.
@@ -1703,7 +1794,7 @@ RTP пакеты на нужный интерфейс. Если невозможно установить соединение
или даже 'tv://<название_канала> (смотрите ниже опцию channels для подробностей о
параметре название_канала) в качестве URL.
Вы также можете использовать 'tv:///<ид_входа>', чтобы запустить просмотр видео с
-композитного или S-Video входа (подробности смотрите в описании опции input).
+композитного или S\-Video входа (подробности смотрите в описании опции input).
.sp 1
Доступные опции:
.RSs
@@ -1753,14 +1844,14 @@ TV стандарт зависит от карты захвата.
.IPs channel=<значение>
Переключает тюнер на <значение> канал.
.IPs chanlist=<значение>
-Доступны: europe-east, europe-west, us-bcast, us-cable, другие
+Доступны: europe\-east, europe\-west, us\-bcast, us\-cable, другие
.IPs channels=<канал>\-<название>,<канал>\-<название>,...
Устанавливает названия для каналов.
.I ЗАМЕЧАНИЕ:
Если <канал> является числом, большим 1000, то он будет трактоваться как
частота, а не название канала из таблицы частот.
.br
-Используйте _ вместо пробелов в названиях (или поиграйте с экранированием ;-).
+Используйте _ вместо пробелов в названиях (или поиграйте с экранированием ;\-).
Названия каналов будут выводиться при помощи OSD, и станут доступными
команды tv_step_channel, tv_set_channel и tv_last_channel, полезные для
управления с пульта (смотрите LIRC).
@@ -1864,17 +1955,17 @@ tv://1, tv://TV1, tv_set_channel 1, tv_set_channel TV1
Указывает код языка телетекста (по умолчанию: 0), который будет
использоваться в качестве основного языка до тех пор,
пока не будет получен пакет 28.
-Полезна, когда в телетексте используется кодировка, отличная от латинницы, а
-языковые коды по какой-то причине не передаются посредством пакета 28.
+Полезна, когда в телетексте используется кодировка, отличная от латиницы, а
+языковые коды по какой\-то причине не передаются посредством пакета 28.
Список поддерживаемых языков можно получить, установив значение этой опции в \-1.
.IPs "hidden_video_renderer (только dshow)"
Завершает цепочку фильтром video renderer вместо Null renderer (по умолчанию: отключено).
-Должна помочь, если видео застываетб а звук \- нет.
+Должна помочь, если видео застывает, а звук \- нет.
.I ЗАМЕЧАНИЕ:
Может не работать совместно с комбинацией \-vo directx и \-vf crop.
.IPs "hidden_vp_renderer (только dshow)"
Завершает цепочку коннектора VideoPort фильтром video renderer
-вместо удаления завершаюшего фильтра из графа (по умолчанию: отключено).
+вместо удаления завершающего фильтра из графа (по умолчанию: отключено).
Полезно когда ваша карта имеет VideoPort коннектор и видео дергается.
.I ЗАМЕЧАНИЕ:
Может не работать совместно с комбинацией \-vo directx и \-vf crop.
@@ -1890,8 +1981,8 @@ tv://1, tv://TV1, tv_set_channel 1, tv_set_channel TV1
.
.TP
.B \-tvscan <option1:option2:...> (только TV и MPlayer)
-Настраивает сканнер TV каналов.
-MPlayer также выведет значение для опции "-tv channels=",
+Настраивает сканер TV каналов.
+MPlayer также выведет значение для опции "\-tv channels=",
включая уже существующие и только что найденные каналы.
.sp 1
Доступные подопции:
@@ -1920,8 +2011,8 @@ MPlayer также выведет значение для опции "-tv channels=",
.
.TP
.B \-vid <ID>
-Выбирает видео канал (MPG: 0\-15, ASF: 0\-255, MPEG-TS: 17\-8190).
-При воспроизведении потока MPEG-TS, MPlayer/\:MEncoder будет использовать
+Выбирает видео канал (MPG: 0\-15, ASF: 0\-255, MPEG\-TS: 17\-8190).
+При воспроизведении потока MPEG\-TS, MPlayer/\:MEncoder будет использовать
первую программу (если присутствует) с указанным видео потоком.
.
.TP
@@ -1940,6 +2031,10 @@ FIXME: Описать это.
Включает рендеринг субтитров SSA/ASS.
С этой опцией для внешних субтитров SSA/ASS и дорожек Matroska будет использоваться
libass. Смотрите также \-embeddedfonts.
+.br
+.I ЗАМЕЧАНИЕ:
+Когда программа скомпилирована с поддержкой fontconfig, \-ass включает
+\-fontconfig, если оный явно не выключен с \-nofontconfig.
.
.TP
.B \-ass\-border\-color <значение>
@@ -1962,33 +2057,37 @@ libass. Смотрите также \-embeddedfonts.
.
.TP
.B \-ass\-force\-style <[Стиль.]Параметр=Значение[,...]>
-Переопределяет некоторые параметры стиля.
+Переопределяет некоторые параметры стиля или скрипта.
.sp
.I ПРИМЕР:
.PD 0
.RSs
\-ass\-force\-style FontName=Arial,Default.Bold=1
+.br
+\-ass\-force\-style PlayResY=768
.RE
.PD 1
.
.TP
.B \-ass\-hinting <тип>
Устанавливает тип хинтинга.
+<тип> может быть:
.PD 0
.RSs
-.IPs <тип>
-0: Хинтинг отсутствует.
-.br
-1: FreeType autohinter, легкий режим.
-.br
-2: FreeType autohinter, обычный режим.
-.br
-3: Родной hinter шрифта.
-.br
-0\-3 + 4: То же, но хинтинг будет задействован, только если OSD выведен при
+.IPs 0
+хинтинг отсутствует
+.IPs 1
+автоматический хинтер FreeType, легкий режим
+.IPs 2
+автоматический хинтер FreeType, обычный режим
+.IPs 3
+родной хинтер шрифта
+.IPs "0\-3 + 4"
+То же, но хинтинг будет задействован, только если OSD выведен при
экранном разрешении и, поэтому, не будет масштабироваться.
-.br
-Значением по умолчанию является 7 (использовать родной hinter для
+.RE
+.RSs
+Значением по умолчанию является 7 (использовать родной хинтер для
OSD при отсутствии масштабирования, отключить хинтинг в противном случае).
.RE
.PD 1
@@ -2103,7 +2202,7 @@ SubViewer (SRT).
.I ПРИМЕР:
.PD 0
.RSs
-\-font ~/\:.mplayer/\:arial-14/\:font.desc
+\-font ~/\:.mplayer/\:arial\-14/\:font.desc
.br
\-font ~/\:.mplayer/\:arialuni.ttf
.br
@@ -2114,6 +2213,10 @@ SubViewer (SRT).
.TP
.B \-fontconfig (только fontconfig)
Задействует использование шрифтов, управляемых fontconfig.
+.br
+.I ЗАМЕЧАНИЕ:
+\-ass автоматически включает данную опцию, если иное явно не
+указано с помощью \-nofontconfig.
.
.TP
.B \-forcedsubsonly
@@ -2316,7 +2419,7 @@ VOB субтитры, это специальные ASCII субтитры для людей с ослабленным слухом,
.B \-subcp enca:<язык>:<кодировка при сбое> (только ENCA)
Вы можете указать ваш язык, используя двухбуквенный код языка,
чтобы дать ENCA возможность определить кодовую страницу автоматически.
-Если не уверены, введите что-нибудь и смотрите вывод с \-v, чтобы определить
+Если не уверены, введите что\-нибудь и смотрите вывод с \-v, чтобы определить
список доступных языков. <кодировка при сбое> указывает кодировку, используемую,
когда не срабатывает автоопределение.
.sp 1
@@ -2426,8 +2529,15 @@ OSD и очищать ее (по умолчанию: ^[[A\\r^[[K).
Указывает MPlayer обрабатывать файл субтитров как unicode.
.
.TP
+.B \-unrarexec <путь к исполняемому файлу unrar> (не поддерживается на MingW)
+Указать путь к исполняемому файлу unrar, чтобы MPlayer мог
+использовать его для доступа к VOBsub файлам, сжатыми rar
+(по умолчанию: не установлено, поэтому данная функция отключена).
+Путь должен включать имя исполняемого файла, например,\& /usr/local/bin/unrar.
+.
+.TP
.B "\-utf8 \ \ "
-Указывает MPlayer обрабатывать файл субтитров как UTF-8.
+Указывает MPlayer обрабатывать файл субтитров как UTF\-8.
.
.TP
.B \-vobsub <VOBsub файл без расширения>
@@ -2546,18 +2656,18 @@ OSD и очищать ее (по умолчанию: ^[[A\\r^[[K).
Драйвер вывода звука OSS
.PD 0
.RSs
-.IPs <dsp-устройство>
+.IPs <dsp\-устройство>
Устанавливает устройство вывода звука (по умолчанию: /dev/\:dsp).
-.IPs <mixer-устройство>
+.IPs <mixer\-устройство>
Устанавливает устройство микширования звука (по умолчанию: /dev/\:mixer).
-.IPs <mixer-канал>
+.IPs <mixer\-канал>
Устанавливает канал микшера звука (по умолчанию: pcm).
.RE
.PD 1
.
.TP
.B sdl (только SDL)
-Драйвер вывода звука высокоуровневой платформенно-мезависимой библиотеки
+Драйвер вывода звука высокоуровневой платформо\-независимой библиотеки
SDL (Simple Directmedia Layer)
.PD 0
.RSs
@@ -2672,7 +2782,7 @@ OSD и очищать ее (по умолчанию: ^[[A\\r^[[K).
.
.TP
.B mpegpes (только DVB)
-Драйвер вывода звука для DVB карт, записывающий вывод в MPEG-PES файл,
+Драйвер вывода звука для DVB карт, записывающий вывод в MPEG\-PES файл,
если не установлено DVB карт.
.PD 0
.RSs
@@ -2767,11 +2877,11 @@ OSD и очищать ее (по умолчанию: ^[[A\\r^[[K).
.B \-dxr2 <опция1:опция2:...>
Эта опция используется для управления драйвером dxr2.
.RSs
-.IPs ar-mode=<значение>
-пропорции (0 = normal, 1 = pan-and-scan, 2 = letterbox (по умолчанию))
-.IPs iec958-encoded
+.IPs ar\-mode=<значение>
+пропорции (0 = normal, 1 = pan\-and\-scan, 2 = letterbox (по умолчанию))
+.IPs iec958\-encoded
устанавливает режим вывода iec958 в encoded.
-.IPs iec958-decoded
+.IPs iec958\-decoded
устанавливает режим вывода iec958 в decoded (по умолчанию).
.IPs macrovision=<значение>
режим macrovision (0 = выключено (по умолчанию), 1 = agc, 2 = agc 2 colorstripe,
@@ -2802,9 +2912,9 @@ OSD и очищать ее (по умолчанию: ^[[A\\r^[[K).
отключает чересстрочный TV вывод
.IPs norm=<значение>
TV стандарт (nсsc (по умолчанию), pal, pal60, palm, paln, palnc)
-.IPs square-pixel
+.IPs square\-pixel
устанавливает режим пиксела в square
-.IPs ccir601-pixel
+.IPs ccir601\-pixel
устанавливает режим пиксела в ccir601
.RE
.RS
@@ -2812,36 +2922,36 @@ TV стандарт (nсsc (по умолчанию), pal, pal60, palm, paln, palnc)
.I оверлей
.RE
.RSs
-.IPs cr-left=<0\-500>
+.IPs cr\-left=<0\-500>
Устанавливает левую границу обрезания (по умолчанию: 50).
-.IPs cr-right=<0\-500>
+.IPs cr\-right=<0\-500>
Устанавливает правую границу обрезания (по умолчанию: 300).
-.IPs cr-top=<0\-500>
+.IPs cr\-top=<0\-500>
Устанавливает верхнюю границу обрезания (по умолчанию: 0).
-.IPs cr-bottom=<0\-500>
+.IPs cr\-bottom=<0\-500>
Устанавливает нижнюю границу обрезания (по умолчанию: 0).
-.IPs ck-[r|g|b]=<0\-255>
+.IPs ck\-[r|g|b]=<0\-255>
Устанавливает величину красной(r), зеленой(g), синей (b) компоненты ключевого цвета оверлея.
-.IPs ck-[r|g|b]min=<0\-255>
+.IPs ck\-[r|g|b]min=<0\-255>
Минимальное значение для соответствующей компоненты ключевого цвета
-.IPs ck-[r|g|b]max=<0\-255>
+.IPs ck\-[r|g|b]max=<0\-255>
Максимальное значение для соответствующей компоненты ключевого цвета
-.IPs ignore-cache
+.IPs ignore\-cache
Игнорирует кешированные установки оверлея.
-.IPs update-cache
+.IPs update\-cache
Обновляет кешированные установки оверлея.
-.IPs ol-osd
+.IPs ol\-osd
Включает оверлейный OSD.
-.IPs nool-osd
+.IPs nool\-osd
Отключает оверлейный OSD (по умолчанию).
-.IPs ol[h|w|x|y]-cor=<\-20\-20>
+.IPs ol[h|w|x|y]\-cor=<\-20\-20>
Настраивает размер (высоту(h),ширину(w)) и положение (x,y) оверлея
в случает, когда он не точно соответствует окну (по умолчанию: 0).
.IPs overlay
Активирует оверлей (по умолчанию).
.IPs nooverlay
Активирует TV выход.
-.IPs overlay-ratio=<1\-2500>
+.IPs overlay\-ratio=<1\-2500>
Настраивает оверлей (по умолчанию: 1000).
.RE
.
@@ -2941,7 +3051,7 @@ gl, gl2, directx и tdfxfb.
.TP
.B \-guiwid <ID окна> (смотрите также \-wid) (только GUI)
Опция указывает GUI использовать также X11 окно и прицепить себя к нижней
-части видео окна, что полезно для внедрения мини-GUI в браузер
+части видео окна, что полезно для внедрения мини\-GUI в браузер
(с плагином MPlayer).
.
.TP
@@ -3014,7 +3124,7 @@ quartz, ggi и gl2.
.
.TP
.B \-panscan <0.0\-1.0>
-Задействует функциональность pan-and-scan (обрезая стороны в соответствии
+Задействует функциональность pan\-and\-scan (обрезая стороны в соответствии
с пропорциями, чтобы, например 16:9, фильм поместился на 4:3 экране
без черных полос). Диапазон указывает какая часть изображения обрезается.
Работает только с xv, xmga, mga, gl, gl2, quartz, macosx и xvidix драйверами.
@@ -3026,7 +3136,7 @@ quartz, ggi и gl2.
.
.TP
.B \-panscanrange <\-19.0\-99.0> (экспериментальное)
-Изменяет диапазон pan-and-scan функциональности (по умолчанию: 1).
+Изменяет диапазон pan\-and\-scan функциональности (по умолчанию: 1).
Положительные значения означают множитель диапазона по умолчанию.
Отрицательные значения означают, что можно увеличивать изображение
до \-panscanrange+1 раз.
@@ -3094,7 +3204,7 @@ quartz, ggi и gl2.
.
.TP
.B \-zrbw (только \-vo zr)
-Показывает черно-белое изображение.
+Показывает черно\-белое изображение.
Для оптимальной производительности может комбинироваться с '\-lavdopts gray'.
.
.TP
@@ -3103,7 +3213,7 @@ quartz, ggi и gl2.
этой опции включает режим cinerama.
В режиме cinerama фильм распределяется по нескольким TV (или проекторам) для
создания большей картинки.
-Опции, указанные после n-ой \-zrcrop применяются к n-ой MJPEG карте,
+Опции, указанные после n\-ой \-zrcrop применяются к n\-ой MJPEG карте,
для каждой карты нужно указать, как минимум, \-zrdev в дополнении к \-zrcrop.
Для примера смотрите вывод \-zrhelp и раздел Zr документации.
.
@@ -3122,7 +3232,7 @@ quartz, ggi и gl2.
.TP
.B \-zrhdec <1|2|4> (только \-vo zr)
Горизонтальное прореживание: Запрашивает драйвер отправлять только
-каждый 2-ю или 4-ю строку/\:пиксел исходного изображения MJPEG карте и
+каждый 2\-ю или 4\-ю строку/\:пиксел исходного изображения MJPEG карте и
использовать модуль масштабирования MJPEG карты для растягивания изображения до
исходного размера.
.
@@ -3144,7 +3254,7 @@ quartz, ggi и gl2.
.TP
.B \-zrvdec <1|2|4> (только \-vo zr)
Вертикальное прореживание: Запрашивает драйвер отправлять только
-каждую 2-ю или 4-ю строку/\:пиксел исходного изображения MJPEG карте и
+каждую 2\-ю или 4\-ю строку/\:пиксел исходного изображения MJPEG карте и
использовать модуль масштабирования MJPEG карты для растягивания изображения до
исходного размера.
.
@@ -3199,6 +3309,8 @@ quartz, ggi и gl2.
[xv common] в начале.
.PD 0
.RSs
+.IPs adaptor=<число>
+Выбирает указанный XVideo адаптер (смотрите вывод xvinfo).
.IPs port=<число>
Выбирает указанный XVideo порт.
.IPs ck=<cur|use|set>
@@ -3212,7 +3324,7 @@ quartz, ggi и gl2.
.IPs set
То же, что и предыдущее, но также устанавливает указанный цветовой ключ.
.RE
-.IPs ck-method=<man|bg|auto>
+.IPs ck\-method=<man|bg|auto>
Устанавливает метод отрисовки цветового ключа (по умолчанию: man).
.RSss
.IPs man
@@ -3245,9 +3357,11 @@ quartz, ggi и gl2.
.TP
.B xvmc (только X11 с \-vc ffmpeg12mc)
Драйвер, использующий расширение XvMC (X Video Motion Compensation)
-XFree86 4.x для ускорения декодирования MPEG-1/2 и VCR2.
+XFree86 4.x для ускорения декодирования MPEG\-1/2 и VCR2.
.PD 0
.RSs
+.IPs adaptor=<число>
+Выбирает указанный XVideo адаптер (смотрите вывод xvinfo).
.IPs port=<число>
Выбирает указанный XVideo порт.
.IPs (no)benchmark
@@ -3271,7 +3385,7 @@ XFree86 4.x для ускорения декодирования MPEG-1/2 и VCR2.
(не рекомендуется в Linux) (по умолчанию: nosleep).
.IPs ck=cur|use|set
То же, что и \-vo xv:ck (смотрите \-vo xv).
-.IPs ck-method=man|bg|auto
+.IPs ck\-method=man|bg|auto
То же, что и \-vo xv:ck-method (смотрите \-vo xv).
.RE
.PD 1
@@ -3283,7 +3397,7 @@ XFree86 4.x для ускорения декодирования MPEG-1/2 и VCR2.
.
.TP
.B sdl (только SDL)
-Драйвер вывода видео с помощью высокоуровневой, платформенно-независимой
+Драйвер вывода видео с помощью высокоуровневой, платформенно\-независимой
библиотеки SDL (Simple Directmedia Layer).
Поскольку SDL использует свой собственный слой X11, X11 опции MPlayer
не будут иметь никакого эффекта на SDL.
@@ -3325,7 +3439,7 @@ X11 фронтенд для VIDIX
.
.TP
.B "cvidix\ "
-Универсальный и платформенно-независимый VIDIX фронтенд, с картами nVidia может работать
+Универсальный и платформенно\-независимый VIDIX фронтенд, с картами nVidia может работать
даже в текстовой консоли.
.PD 0
.RSs
@@ -3463,14 +3577,14 @@ OpenGL драйвер вывода видео, простая версия.
это
.B значительно
увеличивает скорость.
-Код выполняет очень малое количество проверок, так что, если что-то не
+Код выполняет очень малое количество проверок, так что, если что\-то не
работает, это может быть вызвано отсутствием поддержки в вашей
карте/OpenGL реализации, даже если вы не получаете никаких сообщений об
ошибках. Используйте glxinfo или аналогичный инструмент, чтобы увидеть
поддерживаемые расширения OpenGL.
.PD 0
.RSs
-.IPs (no)scaled-osd
+.IPs (no)scaled\-osd
Изменяет реакцию OSD на изменение размера окна (по умолчанию: отключено).
.\" FIXME is translation correct ?
.\" When enabled behaves more like the other video output drivers,
@@ -3483,13 +3597,14 @@ OpenGL драйвер вывода видео, простая версия.
использует границы в полноэкранном режиме.
Не работает корректно с ass субтитрами (смотрите \-ass), в качестве
альтернативы вы можете отрисовывать их без OpenGL, используя \-vf ass.
-.IPs osdcolor=<0xRRGGBB>
-Цвет для OSD (по умолчанию: 0xffffff, соответствует белому цвету).
+.IPs osdcolor=<0xAARRGGBB>
+Цвет для OSD (по умолчанию: 0x00ffffff, соответствует непрозрачному белому
+цвету).
.IPs rectangle=<0,1,2>
Выбирает использование прямоугольных текстур, что экономит видеопамять, но
зачастую работает медленнее (по умолчанию: 0).
.RSss
-0: Указывает использовать текстуры power-of-two (по умолчанию).
+0: Указывает использовать текстуры power\-of\-two (по умолчанию).
.br
1: Указывает использовать расширение GL_ARB_texture_rectangle.
.br
@@ -3513,7 +3628,7 @@ OpenGL драйвер вывода видео, простая версия.
.br
.\" FIXME register combiners - блоки объединения регистров
1: Используются блоки объединения регистров
-Используется nVidia-специфичное расширение (GL_NV_register_combiners).
+Используется nVidia\-специфичное расширение (GL_NV_register_combiners).
Требуются, как минимум, три текстуры.
Предоставляет возможность управления насыщенностью и цветностью.
Это быстрый, но не точный метод.
@@ -3540,8 +3655,8 @@ OpenGL драйвер вывода видео, простая версия.
цветностью, и гаммой.
Гамма может быть независимо установлена для красного, зеленого и синего цветов.
.br
-5: Используется ATI-специфичный метод (для старых карт).
-при этом используется ATI-специфичное расширение
+5: Используется ATI\-специфичный метод (для старых карт).
+при этом используется ATI\-специфичное расширение
(GL_ATI_fragment_shader \- не GL_ARB_fragment_shader!).
Необходимы, как минимум, три текстуры.
Предоставляет возможность управления насыщенностью и цветностью.
@@ -3563,13 +3678,22 @@ OpenGL драйвер вывода видео, простая версия.
.RSss
0: Используется простая линейная фильтрация (по умолчанию).
.br
-1: Используется B-сплайновая фильтрация (повышенное качество).
+1: Используется B\-сплайновая фильтрация (повышенное качество).
Требует одну дополнительную текстуру.
Старые карты не смогут обработать с ее помощью цветовую составляющую, как минимум,
в полноэкранном режиме.
.br
2: Используется кубическая фильтрация по горизонтали, линейная по вертикали.
Работает на несколько большем наборе карт, чем метод 1.
+.br
+3: Аналогично 1, но без использования текстуры поиска.
+Может быть быстрее для некоторых карт.
+.br
+4: Используется экспериментальная нерезкая маска с матрицей 3x3 и
+относительной резкостью 0.5.
+.br
+5: Используется экспериментальная нерезкая маска с матрицей 5x5 и
+относительной резкостью 0.5.
.RE
.IPs cscale=<n>
Выбирает функцию для масштабирования цветовой составляющей.
@@ -3601,7 +3725,7 @@ OpenGL драйвер вывода видео, простая версия.
.IPs (no)manyfmts
Включает поддержку большего количества форматов цветов (RGB и BGR) (по умолчанию: включено).
Требует OpenGL версии >= 1.2.
-.IPs slice-height=<0\-...>
+.IPs slice\-height=<0\-...>
Количество строк, копируемых в текстуру одним целым (по умолчанию: 0).
0 для всего изображения.
.br
@@ -3621,7 +3745,7 @@ OpenGL драйвер вывода видео, простая версия.
для отключения OSD используйте вместо нее \-osdlevel 0.
.IPs (no)aspect
Включает или выключает масштабирование с сохранением пропорций и поддержку
-pan-and-scan (по умолчанию: включено).
+pan\-and\-scan (по умолчанию: включено).
Отключение может немного увеличить скорость.
.REss
.RE
@@ -3629,15 +3753,17 @@ pan-and-scan (по умолчанию: включено).
.
.TP
.B "gl2\ \ \ \ "
-OpenGL драйвер вывода, второе поколение.
-Поддерживает OSD и видео с размером больше допустимого для текстуры.
+Модификация драйвера видео вывода OpenGL.
+Поддерживает видео с размером больше допустимого для текстуры, но у
+неё нет многих передовых возможностей и оптимизаций драйвера gl,
+и маловероятно её дальнейшее усовершенствование.
.PD 0
.RSs
.IPs (no)glfinish
То же, что и для gl (по умолчанию: включено)
.IPs yuv=<n>
Указывает тип преобразования YUV в RGB.
-Если установлено во что-либо, отличное от 0, то OSD выводиться не будет и
+Если установлено во что\-либо, отличное от 0, то OSD выводиться не будет и
регулировки яркости, контрастности и гаммы будут доступны только через
глобальные настройки X сервера.
В остальном значения те же, что и для \-vo gl.
@@ -3740,7 +3866,7 @@ MPEG фильмов, потребуется ее установить, если во время просмотра чересстрочного
Задействует использование специального слоя [sub picture layer] для отображения
OSD (по умолчанию: отключено).
.IPs (no)crtc2
-Включает TV-выход на второй "голове" (по умолчанию: включено).
+Включает TV\-выход на второй "голове" (по умолчанию: включено).
Качество вывода удивительное, т.к. это полностью чересстрочное
изображение с правильной синхронизацией каждого четного/\:нечетного поля.
.IPs tvnorm=pal|ntsc|auto
@@ -3846,14 +3972,14 @@ Hollywood Plus).
.br
1: Автоопределение использования PAL/\:NTSC.
.br
-2: Автоопределение использования PAL/\:PAL-60.
+2: Автоопределение использования PAL/\:PAL\-60.
.br
3: PAL
.br
-4: PAL-60
+4: PAL\-60
.br
5: NTSC
-.REss
+.RE
.IPs <0\-3>
Указывает номер используемого устройства, если у вас установлено более одной
em8300 карты.
@@ -3862,16 +3988,16 @@ em8300 карты.
.
.TP
.B ivtv (только IVTV)
-Драйвер вывода через TV-Выход карт MPEG декодирования, основанных на для чипах
+Драйвер вывода через TV\-Выход карт MPEG декодирования, основанных на для чипах
Conexant CX23415 (iCompression iTVC15) или Conexant CX23416 (iCompression
-iTVC16), (Hauppauge WinTV PVR-150/250/350/500).
+iTVC16), (Hauppauge WinTV PVR\-150/250/350/500).
Смотрите также видео фильтр lavc.
.PD 0
.RSs
-.IPs device
+.IPs <device>
Явно указывает имя устройства используемого MPEG декодера (по умолчанию: /dev/video16).
-.IPs output
-Увно указывает используемый для видеосигнала TV-Выход.
+.IPs <output>
+Увно указывает используемый для видеосигнала TV\-Выход.
.RE
.PD 1
.
@@ -3882,22 +4008,23 @@ iTVC16), (Hauppauge WinTV PVR-150/250/350/500).
Смотрите также видео фильтр lavc.
.PD 0
.RSs
-.IPs device
+.IPs <device>
Явно указывает имя устройства используемого MPEG декодера (по умолчанию: /dev/video16).
-.IPs output
-Явно указывает используемый для видеосигнала TV-Выход.
+.IPs <output>
+Явно указывает используемый для видеосигнала TV\-Выход.
.RE
.PD 1
.
.TP
.B mpegpes (только DVB)
-Драйвер вывода видео DVB карт, записывающий вывод в MPEG-PES файл, если
+Драйвер вывода видео DVB карт, записывающий вывод в MPEG\-PES файл, если
нет установленных DVB карт.
.PD 0
.RSs
.IPs card=<1\-4>
Указывает номер используемого устройства, если у вас более одной карты
(поддерживается только V3 API, такое как в драйверах 1.x.y серии).
+Если не указан, MPlayer будет использовать первую доступную карту.
.IPs <файл>
Файл для вывода (по умолчанию: ./grab.mpg)
.RE
@@ -3964,7 +4091,7 @@ iTVC16), (Hauppauge WinTV PVR-150/250/350/500).
.B "gif89a\ "
Выводит кадры в один анимированный GIF в текущем каталоге.
Поддерживается только формат RGB с глубиной цвета 24 бит, результат также
-будет преобразован в 256-цветный.
+будет преобразован в 256\-цветный.
.PD 0
.RSs
.IPs <fps>
@@ -4063,7 +4190,7 @@ PGMYUV похож на PGM, но дополнительно содержит U и V компоненты,
.B "tga\ \ \ \ "
Выводит каждый кадр в файл Targa в текущем каталоге.
В качестве имени файла выступает номер кадра с лидирующими нулями.
-Назначение этого драйвера \- сохранить кадры без потери качества,
+Назначение этого драйвера \- сохранить кадры без потери качества,
не используя сторонних библиотек.
Он поддерживает BGR[A] формат с глубиной цвета 15, 24 или 32.
Вы можете выбрать специфичный формат с помощью видео фильтра format.
@@ -4101,7 +4228,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
.IPs "\-ac mad,"
Сначала пробуется libmad, если не получилось \- остальные.
.IPs "\-ac hwac3,a52,"
-Пробуется AC-3 транзит, программный AC4, затем \- остальные.
+Пробуется AC\-3 транзит, программный AC4, затем \- остальные.
.IPs "\-ac hwdts,"
Пробуется аппаратный DTS транзит, если не получилось \- остальные.
.IPs "\-ac \-ffmp3,"
@@ -4202,7 +4329,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
.
.TP
.B "\-flip \ "
-Зеркально отражает изображение сверху-вниз.
+Зеркально отражает изображение сверху\-вниз.
.
.TP
.B \-lavdopts <опция1:опция2:...> (КОД ОТЛАДКИ)
@@ -4248,7 +4375,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
.br
256 (mpeg4): еще один баг qpel (определяется автоматически по fourcc/\:верси)
.br
-512 (mpeg4): баг direct-qpel-blocksize (определяется автоматически по fourcc/\:версии)
+512 (mpeg4): баг direct\-qpel\-blocksize (определяется автоматически по fourcc/\:версии)
.br
1024 (mpeg4): баг заполнения кромки (определяется автоматически по fourcc/\:версии)
.REss
@@ -4266,7 +4393,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
.br
8: тип макроблока (MB)
.br
-16: поблочный[per-block] параметр квантования (QP)
+16: поблочный[per\-block] параметр квантования (QP)
.br
32: вектор движения
.br
@@ -4314,7 +4441,7 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
.br
4: очень агрессивная
.REss
-.IPs "fast (только MPEG-2, MPEG-4 и H.264)"
+.IPs "fast (только MPEG\-2, MPEG\-4 и H.264)"
.\" FIXME is translation correct?
.\" Enable optimizations which do not comply to the specification and might
.\" potentially cause problems, like simpler dequantization, assuming use
@@ -4347,14 +4474,14 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
Если указано <w>, кодирование в меньшем разрешении будет использоваться только в том случаем,
если ширина видео больше или равна <w>.
.RE
-.IPs "sb=<количество> (только MPEG-2)"
+.IPs "sb=<количество> (только MPEG\-2)"
Пропускает указанное количество строк макроблоков в нижней части.
-.IPs "st=<количество> (только MPEG-2)"
+.IPs "st=<количество> (только MPEG\-2)"
Пропускает указанное количество строк макроблоков в верхней части.
.IPs "skiploopfilter=<skipvalue> (только H.264)"
Пропускает фильтр loop (он же deblocking) во время декодирования H.264.
Поскольку фильтрованный кадр предполагается использовать в качестве ссылки
-для декодирования зависимых кадров, то качество, например у MPEG-2, будет хуже, чем если бы
+для декодирования зависимых кадров, то качество, например у MPEG\-2, будет хуже, чем если бы
deblocking не производился вовсе. Но, как минимум для HDTV с высоким битпотоком, это дает
значительное повышение производительности без видимой потери качества.
.sp 1
@@ -4369,13 +4496,13 @@ nonref: пропускать кадры, на которые нет ссылок (т.е.\& не использующиеся для де
.\" FIXME is translation correct? the error cannot "build up"
других кадров, ошибка просто невозможна).
.br
-bidir: Пропускать B-кадры.
+bidir: Пропускать B\-кадры.
.br
nonkey: Пропускать все кадры, кроме ключевых.
.br
all: Пропускать все кадры.
.REss
-.IPs "skipidct=<skipvalue> (только MPEG-1/2)"
+.IPs "skipidct=<skipvalue> (только MPEG\-1/2)"
Пропускает этап IDCT.
Это значительно ухудшает качество практически во всех случаях
(допустимые значения skipvalue смотрите в описании опции skiploopfilter).
@@ -4383,7 +4510,7 @@ all: Пропускать все кадры.
Полностью пропускает декодирование кадров.
Дает большой прирост скорости, но прерывистое изображение и иногда артефакты.
(допустимые значения skipvalue смотрите в описании опции skiploopfilter).
-.IPs "threads=<1\-8> (только MPEG-1/2)"
+.IPs "threads=<1\-8> (только MPEG\-1/2)"
количество потоков, использующихся для декодирования (по умолчанию: 1)
.IPs vismv=<значение>
Указывает визуализировать векторы движения.
@@ -4391,11 +4518,11 @@ all: Пропускать все кадры.
.br
0: Отключено.
.br
-1: Визуализировать векторы P-кадров, предсказанные вперед.
+1: Визуализировать векторы P\-кадров, предсказанные вперед.
.br
-2: Визуализировать векторы B-кадров, предсказанные вперед.
+2: Визуализировать векторы B\-кадров, предсказанные вперед.
.br
-4: Визуализировать векторы B-кадров, предсказанные назад.
+4: Визуализировать векторы B\-кадров, предсказанные назад.
.REss
.IPs vstats
Выводит некоторую статистику и сохраняет ее в ./vstats_*.log.
@@ -4403,7 +4530,7 @@ all: Пропускать все кадры.
.
.TP
.B \-noslices
-Отключает отрисовку видео слоями/\:полосами по 16-пикселов высотой, вместо отрисовки
+Отключает отрисовку видео слоями/\:полосами по 16\-пикселов высотой, вместо отрисовки
целого кадра за один проход.
Может быть быстрее или медленнее, в зависимости от видео карты и доступного кеша.
Полезно только с кодеками libmpeg2 и libavcodec.
@@ -4532,7 +4659,7 @@ lanczos
.IPs "\-vc \-divxds,\-divx,"
Пропустить Win32 DivX кодеки.
.IPs "\-vc ffmpeg12,mpeg12,"
-Попытаться использовать MPEG-1/2 из libavcodec, затем libmpeg2, затем остальные.
+Попытаться использовать MPEG\-1/2 из libavcodec, затем libmpeg2, затем остальные.
.RE
.PD 1
.
@@ -4574,13 +4701,13 @@ lanczos
Встроенные фильтры постобработки Xvid:
.PD 0
.RSs
-.IPs "deblock-chroma (смотрите также \-vf pp)"
+.IPs "deblock\-chroma (смотрите также \-vf pp)"
deblock фильтр хроматической[chroma] составляющей
-.IPs "deblock-luma (смотрите также \-vf pp)"
+.IPs "deblock\-luma (смотрите также \-vf pp)"
deblock фильтр яркостной[luma] составляющей
-.IPs "dering-luma (смотрите также \-vf pp)"
+.IPs "dering\-luma (смотрите также \-vf pp)"
deringing фильтр яркостной[luma] составляющей
-.IPs "dering-chroma (смотрите также \-vf pp)"
+.IPs "dering\-chroma (смотрите также \-vf pp)"
deringing фильтр хроматической[chroma] составляющей
.IPs "filmeffect (смотрите также \-vf noise)"
Добавляет эффект старинного фильма.
@@ -4637,6 +4764,27 @@ deringing фильтр хроматической[chroma] составляющей
.PP
.I ЗАМЕЧАНИЕ:
Полный список доступных аудио фильтров можно получить при помощи \-af help.
+.sp 1
+Аудио фильтры управляются в списках.
+Вот несколько команд управления списком фильтров.
+.
+.TP
+.B \-af\-add <filter1[,filter2,...]>
+Добавляет указанные фильтры в конец списка.
+.
+.TP
+.B \-af\-pre <filter1[,filter2,...]>
+Добавляет указанные фильтры в начало списка.
+.
+.TP
+.B \-af\-del <index1[,index2,...]>
+Удаляет фильтры с указанным индексом.
+Индексы начинаются с 0, отрицательные числа означают отсчет от
+конца списка (\-1 \- последний).
+.
+.TP
+.B \-af\-clr
+Полностью очищает список фильтров.
.PP
Доступные фильтры:
.
@@ -4646,7 +4794,8 @@ deringing фильтр хроматической[chroma] составляющей
Может использоваться при наличии звуковой карты с фиксированной частотой
или если вы привязаны к старой карте, поддерживающей максимально 44.1kГц.
В случае необходимости фильтр включается автоматически.
-Он поддерживает только формат 16-бит integer и float с "родным" [native-endian] порядком байт
+Он поддерживает только формат 16\-бит integer и float с "родным"
+[native\-endian] порядком байт
в качестве входных данных.
.br
.I ЗАМЕЧАНИЕ:
@@ -4692,7 +4841,7 @@ deringing фильтр хроматической[chroma] составляющей
.B lavcresample[=srate[:length[:linear[:count[:cutoff]]]]]
.\" FIXME poor translation of entire block (with parameters)
Устанавливает частоту дискретизации аудио потока в <srate>, указанную в Гц.
-Он поддерживает только формат 16-бит с "родным" [native-endian] порядком байт.
+Он поддерживает только формат 16\-бит с "родным" [native\-endian] порядком байт.
.br
.I ЗАМЕЧАНИЕ:
С MEncoder, вам необходимо также использовать \-srate <srate>.
@@ -4706,14 +4855,51 @@ deringing фильтр хроматической[chroma] составляющей
если 1, то фильтры будут линейно интерполированы между многофазными элементами
.IPs <count>
log2 от количества многофазных элементов
-(..., 10->1024, 11->2048, 12->4096, ...)
-(по умолчанию: 10->1024)
+(..., 10\->1024, 11\->2048, 12\->4096, ...)
+(по умолчанию: 10\->1024)
.IPs <cutoff>
граничная частота (0.0\-1.0), по умолчанию устанавливается в зависимости от длины фильтра
.RE
.PD 1
.
.TP
+.B lavcac3enc[=tospdif[:bitrate[:minchn]]]
+Кодирует многоканальное аудио в AC\-3 в реальном времени, используя
+libavcodec.
+Поддерживает родной порядок байтов 16\-битного входного формата,
+максимум 6 каналов.
+На выходе используется сетевой порядок байтов для сырых потоков
+AC\-3 и родной порядок байтов при выводе посредством S/PDIF.
+Для данного фильтра частота дискретизации на выходе такая же, как и
+на входе.
+Если входная частота дискретизации составляет 48кГц, 44.1кГц или
+32кГц, фильтр использует её непосредственно.
+В противном случае фильтр смены частоты дискретизации автоматически
+вставляется перед этим фильтром, с целью установления входной и
+выходной частоты в 48кГц.
+Вам необходимо указать '\-channels N' для декодирования аудио в N
+каналов, чтобы фильтр мог кодировать N\-канальный вход в AC\-3.
+.br
+.PD 0
+.RSs
+.IPs <tospdif>
+Выводит в сырой поток AC\-3, если параметр нулевой или не
+установлен; выводит в S/PDIF для транзитной передачи, если
+<tospdif> является ненулевым значением.
+.IPs <bitrate>
+Битпоток для кодирования AC\-3 потока.
+Установите его равным 384 или 384000 для получения 384кбит.
+Допустимые значения: 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256,
+ 320, 384, 448, 512, 576, 640
+Битпоток по умолчанию зависит от числа каналов (ch) на входе.
+1ch: 96, 2ch: 192, 3ch: 224, 4ch: 384, 5ch: 448, 6ch: 448
+.IPs <minchn>
+Если число каналов на входе менее чем <minchn>, фильтр
+автоматически отключится (по умолчанию: 5).
+.RE
+.PD 1
+.
+.TP
.B sweep[=скорость]
Производит синусоидальный сигнал.
.PD 0
@@ -4750,7 +4936,7 @@ log2 от количества многофазных элементов
.\" FIXME matrix decoding = матричное декодирование
.IPs "Флаг Значение"
.IPs "m матричное декодирования переднего канала"
-.IPs "s 2-канальное матричное декодирование"
+.IPs "s 2\-канальное матричное декодирование"
.IPs "0 декодирование без матриц (по умолчанию)"
.RE
.PD 1
@@ -4832,13 +5018,11 @@ log2 от количества многофазных элементов
маршрута, меняющих местами каналы 0 и 1, и оставляющих каналы 2 и 3
неизменными.
Заметьте, что если медиа содержит два воспроизводящихся канала, каналы
-2 и 3 будут содержать тишину, но 1 и 0 все-таки пометяются местами.
+2 и 3 будут содержать тишину, но 1 и 0 все\-таки поменяются местами.
.IPs "mplayer \-af channels=6:4:0:0:0:1:0:2:0:3 media.avi"
Устанавливает количество каналов равным 6, и настраивает 4
маршрута, копирующих канал 0 в 0 и 3.
Каналы 4 и 5 будут содержать тишину.
-.IPs "mplayer \-af channels=6:6:0:4:1:0:2:1:3:2:4:3:5:5 media.avi"
-Должна заставить 6-канальный ffdca (DTS) вывод работать корректно с ALSA.
.RE
.PD 1
.
@@ -4853,7 +5037,7 @@ log2 от количества многофазных элементов
Устанавливает желаемый формат.
Указывается в форме 'sbe', где 's' означает знак ('s' для знакового, 'u' \- для
беззнакового), 'b' означает количество бит на сэмпл (16,24 или 32) и 'e'
-означает порядок байт ('le' little-endian, 'be' big-endian, 'ne' \- порядок байт
+означает порядок байт ('le' little\-endian, 'be' big\-endian, 'ne' \- порядок байт
компьютера, на котором запущен MPlayer).
Правильные значения (некоторые из возможных): 's16le', 'u32be' и 'u24ne'.
Исключения из правила, также являющиеся верными идентификаторами формата:
@@ -5016,7 +5200,7 @@ Digital 5.1 звуком, иначе этот фильтр испортит звук
Задержка устанавливается следующим образом: Если d1 \- расстояние от
слушателя до передних колонок и d2 \- расстояние от слушателя до
задних колонок, то задержку следует устанавливать в 15мс, если d1 <= d2 и
-в 15+5*(d2-d1), если d1 > d2.
+в 15+5*(d2\-d1), если d1 > d2.
.RE
.sp 1
.RS
@@ -5082,7 +5266,7 @@ unsigned long long counter /*Используется для сохранения синхронизациии, обнов
.PD 0
.RSs
.IPs <mmapped_file>
-Файл, в который отображаются данные (по умолчанию: ~/.mplayer/\:mplayer-af_export)
+Файл, в который отображаются данные (по умолчанию: ~/.mplayer/\:mplayer\-af_export)
.IPs <nsamples>
количество сэмплов на канал (по умолчанию: 512)
.RE
@@ -5091,8 +5275,8 @@ unsigned long long counter /*Используется для сохранения синхронизациии, обнов
.I ПРИМЕР:
.RE
.RSs
-.IPs "mplayer \-af export=/tmp/mplayer-af_export:1024 media.avi"
-Будет экспортировать 1024 сэмпла на канал в '/tmp/mplayer-af_export'.
+.IPs "mplayer \-af export=/tmp/mplayer\-af_export:1024 media.avi"
+Будет экспортировать 1024 сэмпла на канал в '/tmp/mplayer\-af_export'.
.RE
.PD 1
.
@@ -5176,7 +5360,7 @@ unsigned long long counter /*Используется для сохранения синхронизациии, обнов
"центрально" микшируется в окончательный аудио поток.
Заметьте, что этот фильтр переведет ваш сигнал в моно.
Хорошо работает с 2 канальными дорожками; не трудитесь
-пробовать его на чем-то, отличном от 2 канального стерео.
+пробовать его на чем\-то, отличном от 2 канального стерео.
.
.TP
.B scaletempo[=опция1:опция2:...]
@@ -5475,11 +5659,11 @@ scale и к эху при его низких значениях.
.br
0.00:0.75 "точный бикубический" VirtualDub'а
.br
-0.00:0.50 сплайн Catmull-Rom
+0.00:0.50 сплайн Catmull\-Rom
.br
-0.33:0.33 сплайн Mitchell-Netravali
+0.33:0.33 сплайн Mitchell\-Netravali
.br
-1.00:0.00 кубический B-сплайн
+1.00:0.00 кубический B\-сплайн
.br
.\" FIXME is translation correct sharpen,soft,sharp
\-sws 7 (гауссово): резкость (0 (мягко) \- 100 (резко))
@@ -5521,7 +5705,7 @@ spal: 768x576 (PAL с квадратным пикселом)
.RE
.
.TP
-.B dsize[=aspect|w:h:aspect-method:r]
+.B dsize[=aspect|w:h:aspect\-method:r]
Изменяет размер/\:пропорции предполагаемого экрана в произвольной точке
цепочки фильтров. Пропорции могут быть заданы как дробью (4/3), так и
вещественным числом (1.33). Альтернативно вы можете точно установить
@@ -5552,7 +5736,7 @@ spal: 768x576 (PAL с квадратным пикселом)
Указывает разрешение экрана, равное 800x600 для 4/3 видео, или
800x450 для 16/9 видео.
.RE
-.IPs <aspect-method>
+.IPs <aspect\-method>
Изменяет ширину и высоту в соответствии с оригинальными пропорциями.
.RSss
\-1: Игнорировать оригинальные пропорции (по умолчанию).
@@ -5616,7 +5800,7 @@ spal: 768x576 (PAL с квадратным пикселом)
.TP
.B format[=fourcc]
Ограничивает пространство цветов для следующего фильтра без осуществления
-какого-либо преобразования. Используйте совместно с фильтром scale
+какого\-либо преобразования. Используйте совместно с фильтром scale
для реального преобразования.
.br
.I ЗАМЕЧАНИЕ:
@@ -5631,7 +5815,7 @@ spal: 768x576 (PAL с квадратным пикселом)
.TP
.B noformat[=fourcc]
Ограничивает пространство цветов для следующего фильтра без осуществления
-какого-либо преобразования. В отличие от фильтра format, он позволяет использовать
+какого\-либо преобразования. В отличие от фильтра format, он позволяет использовать
любое пространство цветов
.B кроме
указанного вами.
@@ -5812,9 +5996,9 @@ high quality pp filter combination (ha:a:128:7,va:a,dr:a)
.br
1: мягкое определение порога (лучшее устранение ореола, но сильнее размывание)
.br
-4: как 0, но также использует QP B-кадров (может привести к мерцанию)
+4: как 0, но также использует QP B\-кадров (может привести к мерцанию)
.br
-5: как 1, но также использует QP B-кадров (может привести к мерцанию)
+5: как 1, но также использует QP B\-кадров (может привести к мерцанию)
.RE
.
.TP
@@ -5854,9 +6038,9 @@ libavcodec, в то время как spp использует только
изображение более гладким, но размытым (по умолчанию:
0 \- PSNR оптимально).
.IPs <bframes>
-0: не использовать QP из B-кадров (по умолчанию)
+0: не использовать QP из B\-кадров (по умолчанию)
.br
-1: использовать QP из B-кадров тоже (может привести к мерцанию)
+1: использовать QP из B\-кадров тоже (может привести к мерцанию)
.RE
.
.TP
@@ -5892,7 +6076,7 @@ IDCT используется только центральный образец.
фильтр изменения общей формулы
.RSs
.IPs <выражение>
-Некоторое выражение, например 'p(W-X\\,Y)' для зеркального отображения по
+Некоторое выражение, например 'p(W\-X\\,Y)' для зеркального отображения по
горизонтали. Для улучшения читаемости можно использовать пробелы.
Вот список констант, которые можно использовать в выражении:
.RSss
@@ -5914,14 +6098,23 @@ p(x,y): возвращает значение пиксела в позиции x/y текущей плоскости [plane].
.RE
.
.TP
-.B rgbtest
+.B rgbtest[=ширина:высота]
Генерирует шаблон тестирования RGB, полезный для определения проблем
с RGB и BGR.
Вы должны видеть красные, зеленые и синие полосы от верха до низа.
+.RSs
+.IPs <ширина>
+Желаемая ширина сгенерированного изображения (по умолчанию: 0).
+0 означает ширину исходного изображения.
+.br
+.IPs <высота>
+Желаемая высота сгенерированного изображения (по умолчанию: 0).
+0 означает высоту исходного изображения.
+.RE
.
.TP
.B lavc[=качество:fps]
-Быстрое программное преобразование из YV12 в MPEG-1 с помощью libavcodec для
+Быстрое программное преобразование из YV12 в MPEG\-1 с помощью libavcodec для
использования с DVB/\:DXR3/\:IVTV/\:V4L2.
.RSs
.IPs <качество>
@@ -6127,7 +6320,7 @@ negative image (default: 1.0)
.IPs <режим>
Выбирает режим выборки [sampling].
.RSss
-0: выборка `ближайший соседний` [nearest-neighbor sampling], быстрая, но неверная
+0: выборка `ближайший соседний` [nearest\-neighbor sampling], быстрая, но неверная
.br
1: линейная интерполяция (по умолчанию)
.REss
@@ -6144,7 +6337,7 @@ negative image (default: 1.0)
или если вы после кодирования планируете демультиплексировать и
мультипликсировать поток.
Его следует размещать в самом конце или почти в самом конце цепочки фильтров,
-если у вас не хорошей причины делать по-другому.
+если у вас не хорошей причины делать по\-другому.
.
.TP
.B softskip
@@ -6183,7 +6376,7 @@ or the same spread out differently over the block.
.
.TP
.B dint[=sense:level]
-Фильтр деинтерлейсинга drop-deinterlace (dint), определяет и выбрасывает первый из набора
+Фильтр деинтерлейсинга drop\-deinterlace (dint), определяет и выбрасывает первый из набора
чересстрочных видео кадров.
.PD 0
.RSs
@@ -6244,7 +6437,7 @@ thresh (по умолчанию: 10)
Применить эффект к цветностной компоненте.
.IPs <width>x<height>
ширина и высота матрицы, нечетного размера в обоих направлениях.
-(мин = 3x3, макс = 13x11 или 11x13, обычно что-то между 3x3 и 7x7)
+(мин = 3x3, макс = 13x11 или 11x13, обычно что\-то между 3x3 и 7x7)
.IPs amount
Относительная величина резкости/\:размывания добавляемого изображению
(разумный диапазон будет \-1.5\-1.5).
@@ -6438,13 +6631,13 @@ detc, и должен использоваться с MEncoder, но не с MPlayer.
.\" FIXME luma plane = яркостная компонента
Используется только яркостная компонента для определения границ кадров.
Если поле не имеет совпадающих, оно преобразуется в кадр простой
-линейной апроксимацией.
-Если источником является MPEG-2, этот фильтр должен быть первым,
+линейной аппроксимацией.
+Если источником является MPEG\-2, этот фильтр должен быть первым,
чтобы иметь доступ к флагам полей, устанавливаемым
-MPEG-2 декодером.
+MPEG\-2 декодером.
В зависимости от исходного MPEG, вы можете спокойно игнорировать
это замечание, до тех пор, пока не видите множества
-предупреждений "Bottom-first field".
+предупреждений "Bottom\-first field".
Без указания опций фильтр делает обычный обратный телесин и
может использоваться с MEncoder совместно с \-fps 30000/1001 \-ofps 24000/1001.
Когда этот фильтр используется с MPlayer, он может стать причиной
@@ -6483,7 +6676,7 @@ MPEG-2 декодером.
Если n нечетное, предполагается, что кадр, идущий непосредственно за
помеченным MPEG флагом REPEAT_FIRST_FIELD кадром, является
прогрессивным, таким образом фильтр вообще не тратит время на
-MPEG-2 содержимом с мягким телесином.
+MPEG\-2 содержимом с мягким телесином.
Это единственный эффект этого флага, если доступно MMX2 или 3DNow!.
Без MMX2 и 3DNow, если n=0 или 1, будут использоваться те же вычисления, что
и с n=2 или 3.
@@ -6515,7 +6708,7 @@ n=256 для его полного отключения.
.
.TP
.B softpulldown
-Этот фильтр корректно работает только с MEncoder и влияет на MPEG-2 флаги,
+Этот фильтр корректно работает только с MEncoder и влияет на MPEG\-2 флаги,
использующиеся для мягкого 3:2 пулдауна (мягкого телесина).
Если вы хотите использовать ivtc иди detc фильтр для фильма, к которому частично
применен мягкий телесин, вставка этого фильтра перед ними должна сделать
@@ -6525,7 +6718,7 @@ n=256 для его полного отключения.
.B divtc[=опции]
Inverse telecine for deinterlaced video.
обратный телесин для нечересстрочного видео.
-Если видео с 3:2-пулдаун телесином потеряло одно из полей или над ним
+Если видео с 3:2\-пулдаун телесином потеряло одно из полей или над ним
произведен деинтерлейсинг с использованием метода, сохраняющего одно
из полей и интерполирующего другое, в результате получится дрожащее видео,
имеющее дублированный каждый четвертый кадр.
@@ -6549,7 +6742,7 @@ Inverse telecine for deinterlaced video.
до того, как начнется процесс кодирования, выдающий действительный результат.
Используйте \-nosound \-ovc raw \-o /dev/null для избежания
ненужного расхода времени CPU на этом проходе.
-Вы можете даже больше увеличить скорость, добавив что-то вроде crop=2:2:0:0 после divtc.
+Вы можете даже больше увеличить скорость, добавив что\-то вроде crop=2:2:0:0 после divtc.
Затем используйте второй проход divtc для осуществления действительного кодирования.
Если вы используете многопроходное кодирование, используйте второй проход divtc
на каждом проходе процесса кодирования.
@@ -6620,7 +6813,7 @@ Deghosting усиливает любые артефакты сжатия в объединенных [blended] кадрах,
Порядок полей при захвате и конвертировании совпадает.
Этот режим существует только для того, чтобы на него можно было сослаться
и упростить документирование остальных опций. Если же вы действительно его
-выберите, фильтр добросовестно ничего не будет делать ;-)
+выберите, фильтр добросовестно ничего не будет делать ;\-)
.IPs a
Порядок полей при захвате определяется автоматически по флагам полей,
порядок полей при конвертировании прямо противоположен.
@@ -6860,7 +7053,7 @@ MEncoder, и только если \-fps и \-ofps обе установлены в
Фильтр bitmap оверлея читает bitmap данные из FIFO и отображает их
поверх изображения, допуская некоторое его преобразование.
Небольшую тестовую программу для bmovl смотрите в
-TOOLS/bmovl-test.c.
+TOOLS/bmovl\-test.c.
.PD 0
.RSs
.IPs <видимость>
@@ -6912,8 +7105,8 @@ TOOLS/bmovl-test.c.
.IPs <альфа>
Устанавливает отклонение альфа.
Если вы установите это значение в \-255, то сможете затем послать последовательность
-ALPHA-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
-красивого fade-in-эффекта [плавного проявления]! ;)
+ALPHA\-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
+красивого fade\-in\-эффекта [плавного проявления]! ;)
.RSss
0: катое же, как и было
.br
@@ -6934,7 +7127,7 @@ ALPHA-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
.
.TP
.B framestep=I|[i]step
-Рендерит только каждый n-й кадр или каждый внутренний (ключевой) кадр.
+Рендерит только каждый n\-й кадр или каждый внутренний (ключевой) кадр.
.sp 1
Если вызвать этот фильтр с I (в верхнем регистре) в качестве параметра, то
.B только
@@ -6962,7 +7155,7 @@ ALPHA-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
Если вы не указываете параметр или указываете значение меньше 0,
будет использоваться значение по умолчанию.
Вы также можете остановиться, когда удовлетворены (... \-vf tile=10:5 ...).
-Возможно, поместить фильтр scale перед tile будет хорошей идеей :-)
+Возможно, поместить фильтр scale перед tile будет хорошей идеей :\-)
.sp 1
Список параметров:
.sp 1
@@ -7023,16 +7216,16 @@ ALPHA-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
вывода видео zr2.
.RSs
.IPs maxheight=<h>|maxwidth=<w>
-Эти опции устанавливают максимальную шгирину и высоту которые может
+Эти опции устанавливают максимальную ширину и высоту которые может
обрабатывать zr карта (на текущий момент уровень фильтров MPlayer не
может их запрашивать).
-.IPs {dc10+,dc10,buz,lml33}-{PAL|NTSC}
+.IPs {dc10+,dc10,buz,lml33}\-{PAL|NTSC}
Используйте эти опции для автоматической установки maxwidth и maxheight
в значения, известные для комбинации карта/\:режим.
-Верные опции, например: dc10-PAL и buz-NTSC (по умолчанию: dc10+PAL)
+Верные опции, например: dc10\-PAL и buz\-NTSC (по умолчанию: dc10+PAL)
.IPs color|bw
Выбирает цветное или черно\-белое кодирование.
-Черно-белое работает быстрее.
+Черно\-белое работает быстрее.
по умолчанию \- цветное.
.IPs hdec={1,2,4}
Горизонтальное прореживание 1, 2 или 4.
@@ -7158,7 +7351,7 @@ ALPHA-команд, чтобы установить область в \-225, \-200, \-175 и так далее для
трехпроходного режима кодирования.
.br
.I ЗАМЕЧАНИЕ:
-Использование этого режима скорее всего приведет к A-V рассинхронизации.
+Использование этого режима скорее всего приведет к A\-V рассинхронизации.
Не используйте его. Он оставлен только для обратной совместимости и
в будущих версиях, возможно, будет удален.
.
@@ -7494,7 +7687,7 @@ VBR режим не будет работать со значениями меньше 112.
.
.TP
.B mode=<stereo | jstereo | mono | dual>
-(по умолчанию: mono для 1-канального звука, иначе stereo)
+(по умолчанию: mono для 1\-канального звука, иначе stereo)
.
.TP
.B psy=<\-1\-4>
@@ -7579,7 +7772,7 @@ LTP (ужасно медленно)
.PD 0
.RSs
.IPs "ac3\ \ "
-Dolby Digital (AC-3)
+Dolby Digital (AC\-3)
.IPs adpcm_*
Форматы Adaptive PCM \- подробности смотрите в HTML документации.
.IPs "flac\ "
@@ -7587,15 +7780,15 @@ Free Lossless Audio Codec (FLAC)
.IPs "g726\ "
G.726 ADPCM
.IPs libamr_nb
-3GPP Adaptive Multi-Rate (AMR) узкополосной
+3GPP Adaptive Multi\-Rate (AMR) узкополосной
.IPs libamr_wb
-3GPP Adaptive Multi-Rate (AMR) широкополосной
+3GPP Adaptive Multi\-Rate (AMR) широкополосной
.IPs libfaac
Advanced Audio Coding (AAC) \- используя FAAC
.IPs libmp3lame
-MPEG-1 audio layer 3 (MP3) \- используя LAME
+MPEG\-1 audio layer 3 (MP3) \- используя LAME
.IPs "mp2\ \ "
-MPEG-1 audio layer 2 (MP2)
+MPEG\-1 audio layer 2 (MP2)
.IPs pcm_*
PCM форматы \- подробности смотрите в HTML документации.
.IPs roq_dpcm
@@ -7628,7 +7821,7 @@ Windows Media Audio v2
поэтому, должен использоваться только для тестов на
деградацию, требующих бинарно идентичных файлов, даже
если меняется версия кодировщика.
-Эта опция также подавляет user_data заголовок в MPEG-4 потоках.
+Эта опция также подавляет user_data заголовок в MPEG\-4 потоках.
Не используйте ее, если вы не знаете наверняка, что делаете.
.
.TP
@@ -7666,19 +7859,19 @@ HuffYUV
.IPs libtheora
Theora
.IPs libx264
-x264 H.264/AVC MPEG-4 Part 10
+x264 H.264/AVC MPEG\-4 Part 10
.IPs libxvid
-Xvid MPEG-4 Part 2 (ASP)
+Xvid MPEG\-4 Part 2 (ASP)
.IPs ljpeg
Lossless JPEG
.IPs mjpeg
Motion JPEG
.IPs mpeg1video
-MPEG-1 видео
+MPEG\-1 видео
.IPs mpeg2video
-MPEG-2 видео
+MPEG\-2 видео
.IPs mpeg4
-MPEG-4 (DivX 4/5)
+MPEG\-4 (DivX 4/5)
.IPs msmpeg4
DivX 3
.IPs msmpeg4v2
@@ -7700,7 +7893,7 @@ Windows Media Video, версия 2 (Он же WMV8)
.
.TP
.B vqmin=<1\-31>
-минимальный квантователь (проход 1/2)
+минимальный квантователь
.RSs
.IPs 1
Не рекомендуется (намного больший файл, маленькое различие в качестве и странные
@@ -7766,7 +7959,7 @@ qprd, lumi_mask, и так далее...
.
.TP
.B vqmax=<1\-31>
-Максимальное значение квантователя (проход 1/2), 10\-31 будет разумным
+Максимальное значение квантователя, 10\-31 будет разумным
диапазоном (по умолчанию: 31).
.
.TP
@@ -7779,18 +7972,18 @@ qprd, lumi_mask, и так далее...
.
.TP
.B vqdiff=<1\-31>
-максимальное различие квантователя в последовательных I- или P-кадрах
-(проход 1/2) (по умолчанию: 3)
+максимальное различие квантователя в последовательных I\- или P\-кадрах
+(по умолчанию: 3)
.
.TP
.B vmax_b_frames=<0\-4>
-максимальное количество B-кадров между не-B-кадрами:
+максимальное количество B\-кадров между не\-B\-кадрами:
.PD 0
.RSs
.IPs 0
-нет B-кадров (по умолчанию)
+нет B\-кадров (по умолчанию)
.IPs 0\-2
-разумный диапазон для MPEG-4
+разумный диапазон для MPEG\-4
.RE
.PD 1
.
@@ -7835,10 +8028,13 @@ iter (итеративный перекрывающийся блок, используется только в snow)
Указывает кодировать каждый макроблок всеми режимами и выбирать лучший.
Это работает медленно, но дает лучшее качество и меньший файл.
Когда mbd установлена в 1 или 2, значение опции mbcmp при сравнении
-макроблоков игнорируется. Однако, если любая из настроек сравнения (precmp,
-subcmp, cmp, mbcmp) не равна нулю, будет использоваться более медленный, но
-более качественный полупиксельный поиск движения не зависимо от того,
-какое значения присвоено mbd.
+макроблоков игнорируется (однако, значение mbcmp всё ещё
+используется в других местах, в частности, в алгоритмах поиска
+движения).
+Однако, если любая из настроек сравнения (precmp, subcmp, cmp,
+mbcmp) не равна нулю, будет использоваться более медленный, но
+более качественный полупиксельный поиск движения не зависимо от
+того, какое значения присвоено mbd.
.PD 0
.RSs
.IPs 0
@@ -7846,7 +8042,7 @@ subcmp, cmp, mbcmp) не равна нулю, будет использоваться более медленный, но
.IPs 1
Выбирает режим MB, требующий меньшее количество бит (=vhq).
.IPs 2
-Выбирает режим MB, имеющий лучшее соотношение сигнал-шум.
+Выбирает режим MB, имеющий лучшее соотношение сигнал\-шум.
.RE
.PD 1
.
@@ -7876,7 +8072,7 @@ loop фильтр (H.263+)
.B keyint=<0\-300>
максимальный интервал между ключевыми кадрами (по умолчанию: 250, другими словами
один ключевой кадр каждые десять секунд в 25fps фильме.
-Это рекомендуемое значение для MPEG-4).
+Это рекомендуемое значение для MPEG\-4).
Большинство кодеков требуют наличия регулярных ключевых кадров, чтобы
ограничить накопление ошибок несовпадения.
Ключевые кадры также нужны для перемещения, поскольку перемещение
@@ -7886,7 +8082,7 @@ loop фильтр (H.263+)
0 эквивалентно 1, что делает каждый кадр ключевым.
Значения >300 не рекомендуется использовать, поскольку качество
может быть плохим в зависимости от декодера, кодера и удачи.
-Для MPEG-1/2 обычно используются значения <=30.
+Для MPEG\-1/2 обычно используются значения <=30.
.
.TP
.B sc_threshold=<\-1000000000\-1000000000>
@@ -7901,26 +8097,26 @@ loop фильтр (H.263+)
.B sc_factor=<любое положительное целое>
Кадры с квантователем выше указанного значения с большей вероятность приведут к
срабатыванию алгоритма определения изменения сцены и использованию
-кодеком I-кадра (по умолчанию: 1).
+кодеком I\-кадра (по умолчанию: 1).
Разумный диапазон: 1\-16.
Значения между 2 и 6 могут дать увеличенный PSNR (вплоть до примерно
-0.04 дБ) и лучшее расположение I-кадров в сильно динамичных сценах.
+0.04 дБ) и лучшее расположение I\-кадров в сильно динамичных сценах.
Значения больше 6 могут дать очень незначительное увеличение PSNR
(примерно на 0.01 дБ больше, чем sc_factor=6), но заметно
ухудшат визуальное качество.
.
.TP
.B vb_strategy=<0\-2> (только первый проход)
-стратегия выбора между I/P/B-кадрами:
+стратегия выбора между I/P/B\-кадрами:
.PD 0
.RSs
.IPs 0
-Всегда использовать максимальное количество B-кадров (по умолчанию).
+Всегда использовать максимальное количество B\-кадров (по умолчанию).
.IPs 1
-Избегать использования B-кадров в сильно динамичных сценах.
+Избегать использования B\-кадров в сильно динамичных сценах.
Смотрите опцию b_sensitivity для тюнинга этой стратегии.
.IPs 2
-Размещает B-кадры более или менее оптимально, чтобы получить максимальное качество (медленнее).
+Размещает B\-кадры более или менее оптимально, чтобы получить максимальное качество (медленнее).
Вы можете захотеть уменьшить влияние этой опции на скорость, настраивая
опцию brd_scale.
.RE
@@ -7929,9 +8125,9 @@ loop фильтр (H.263+)
.TP
.B b_sensitivity=<любое целое большее 0>
Настраивает чувствительность определения опцией vb_strategy=1 движения
-и избегания использования B-кадров (по умолчанию: 40).
+и избегания использования B\-кадров (по умолчанию: 40).
Меньшее значение чувствительности даст в результате большее количество
-B-кадров. Это обычно улучшает PSNR, но слишком большое их количество
+B\-кадров. Это обычно улучшает PSNR, но слишком большое их количество
может навредить качеству в сильно динамичных сценах.
Если же нет большого количества динамики, то можно
безопасно уменьшить b_sensitivity ниже значения по умолчанию;
@@ -7940,9 +8136,9 @@ B-кадров. Это обычно улучшает PSNR, но слишком большое их количество
.TP
.B brd_scale=<0\-10>
.\"FIXME is translation correct
-.\" Downscales frames for dynamic B-frame decision (default: 0).
+.\" Downscales frames for dynamic B\-frame decision (default: 0).
Уменьшает размер изображения для определения динамичности
-B-кадра (по умолчанию: 0).
+B\-кадра (по умолчанию: 0).
При каждом увеличении brd_scale на единицу, размерности
делятся на два, что увеличивает скорость работы в четыре раза.
Обе размерности полностью отмастшабированного кадра должны быть четными,
@@ -7955,7 +8151,7 @@ brd_scale=2 требует кратность восьми и так далее.
.B bidir_refine=<0\-4>
Уточнить два вектора движения, использующихся в двунаправленных
макроблоках вместо повторного использования векторов из прямого и обратного поиска.
-Опция не имеет эффекта при отсутствии B-Кадров.
+Опция не имеет эффекта при отсутствии B\-Кадров.
.PD 0
.RSs
.IPs 0
@@ -7976,7 +8172,7 @@ brd_scale=2 требует кратность восьми и так далее.
.IPs 2
второй проход
.IPs 3
-N-й проход (второй и последующие проходы N-проходного режима)
+N\-й проход (второй и последующие проходы N\-проходного режима)
.RE
.RS
Вот как это работает, и как это можно использовать:
@@ -7988,7 +8184,7 @@ CPU опции так, как это делает режим turbo.
В двупроходном режиме второй проход (vpass=2) читает файл статистики и
на основе этой информации принимаются решения об управлении величиной потока.
.br
-В N-проходном режиме, второй проход (vpass=3, это не опечатка)
+В N\-проходном режиме, второй проход (vpass=3, это не опечатка)
делает две вещи: сначала читает файл статистики, затем перезаписывает его.
возможно, перед этим вам захочется сохранить divx2pass.log, если
существует вероятность прерывания работы MEncoder.
@@ -8055,7 +8251,7 @@ huffyuv:
.
.TP
.B vbitrate=<значение>
-Указывает битпоток (проход 1/2) (по умолчанию: 800).
+Указывает битпоток (по умолчанию: 800).
.br
.I ВНИМАНИЕ:
1кбит = 1000 бит
@@ -8081,18 +8277,18 @@ vratetol не должно быть слишком большим во время второго прохода, иначе могут
.
.TP
.B vrc_maxrate=<значение>
-максимальный битпоток в кбит/\:сек (проход 1/2)
+максимальный битпоток в кбит/\:сек
(по умолчанию: 0, неограничен)
.
.TP
.B vrc_minrate=<значение>
-минимальный битпоток в кбит/\:сек (проход 1/2)
+минимальный битпоток в кбит/\:сек
(по умолчанию: 0, неограничен)
.
.TP
.B vrc_buf_size=<значение>
-размер буфера в кбит (проход 1/2).
-Для MPEG-1/2 это также устанавливает размер vbv буфера, для VCD используйте 327,
+размер буфера в кбит.
+Для MPEG\-1/2 это также устанавливает размер vbv буфера, для VCD используйте 327,
917 для SVCD и 1835 для DVD.
.
.TP
@@ -8117,32 +8313,32 @@ vratetol не должно быть слишком большим во время второго прохода, иначе могут
.\" FIXME chek translation for v?_qfactor options
.TP
.B vb_qfactor=<\-31.0\-31.0>
-отношение квантователя B- и не-B-кадров (проход 1/2) (по умолчанию: 1.25)
+отношение квантователя B\- и не-B\-кадров (по умолчанию: 1.25)
.
.TP
.B vi_qfactor=<\-31.0\-31.0>
-отношение квантователя I- и не-I-кадров (проход 1/2) (по умолчанию: 0.8)
+отношение квантователя I\- и не-I\-кадров (по умолчанию: 0.8)
.
.TP
.B vb_qoffset=<\-31.0\-31.0>
-смещение квантователя между B- и не-B-кадрами (проход 1/2) (по умолчанию: 1.25)
+смещение квантователя между B\- и не-B\-кадрами (по умолчанию: 1.25)
.
.TP
.B vi_qoffset=<\-31.0\-31.0>
-(проход 1/2) (по умолчанию: 0.0)
+(по умолчанию: 0.0)
.br
если v{b|i}_qfactor > 0
.br
-квантователь I/B-кадра = квантователь P-кадра * v{b|i}_qfactor + v{b|i}_qoffset
+квантователь I/B\-кадра = квантователь P\-кадра * v{b|i}_qfactor + v{b|i}_qoffset
.br
иначе
.br
производится обычное управление величиной потока (не делается привязка к квантователю
-следующего P-кадра) и устанавливается q= \-q * v{b|i}_qfactor + v{b|i}_qoffset
+следующего P\-кадра) и устанавливается q= \-q * v{b|i}_qfactor + v{b|i}_qoffset
.br
.I ПОДСКАЗКА:
Чтобы произвести кодирование с постоянным квантователем, отличающихся для
-I/P- и B-кадров вы можете использовать:
+I/P\- и B\-кадров вы можете использовать:
lmin= <ip_квантователь>:lmax= <ip_квантователь>:vb_qfactor= <b_квантователь/\:ip_квантователь>.
.
.TP
@@ -8167,7 +8363,7 @@ lmin= <ip_квантователь>:lmax= <ip_квантователь>:vb_qfactor= <b_квантователь/\:ip
.
.TP
.B vqcomp=<0.0\-1.0>
-Сжатие квантователя. От этой опции зависит vrc_eq (проход 1/2) (по умолчанию: 0.5).
+Сжатие квантователя. От этой опции зависит vrc_eq (по умолчанию: 0.5).
Предположим для определенности, что используется стандартная формула
управления битпотоком. Если vqcomp=1.0, контроль битпотока выделяет каждому кадру
количество бит, необходимое для кодирования их с одинаковым QP.
@@ -8175,21 +8371,21 @@ lmin= <ip_квантователь>:lmax= <ip_квантователь>:vb_qfactor= <b_квантователь/\:ip
каждого кадра, т.е. в точности CBR.
.I ЗАМЕЧАНИЕ
Эти значения \- две крайности, их никогда не следует использовать.
-Качество восприятия будет оптимальным где-то между этими двумя значениями.
+Качество восприятия будет оптимальным где\-то между этими двумя значениями.
.
.TP
.B vrc_eq=<формула>
-основная формула управления величиной потока (проход 1/2)
+основная формула управления величиной потока
.RE
.RSs
.IPs "1\ \ \ \ "
постоянный битпоток
.IPs "tex\ \ "
постоянное качество
-.IPs 1+(tex/\:avgTex-1)*qComp
+.IPs 1+(tex/\:avgTex\-1)*qComp
приближенная формула старого модуля управления величиной потока
.IPs tex^qComp
-с qcomp 0.5 или чем-то похожим (по умолчанию)
+с qcomp 0.5 или чем\-то похожим (по умолчанию)
.RE
.PP
.RS
@@ -8206,17 +8402,17 @@ lmin= <ip_квантователь>:lmax= <ip_квантователь>:vb_qfactor= <b_квантователь/\:ip
.IPs "tex\ \ "
сложность текстуры
.IPs iTex,pTex
-сложность внутренней, не-внутренней текстуры
+сложность внутренней, не\-внутренней текстуры
.IPs avgTex
средняя сложность текстуры
.IPs avgIITex
-средняя сложность внутренней текстуры в I-кадрах
+средняя сложность внутренней текстуры в I\-кадрах
.IPs avgPITex
-средняя сложность внутренней текстуры в P-кадрах
+средняя сложность внутренней текстуры в P\-кадрах
.IPs avgPPTex
-средняя сложность не-внутренней текстуры в P-кадрах
+средняя сложность не\-внутренней текстуры в P\-кадрах
.IPs avgBPTex
-средняя сложность не-внутренней текстуры в B-кадрах
+средняя сложность не\-внутренней текстуры в B\-кадрах
.IPs "mv\ \ \ "
количество бит, используемых для векторов движения
.IPs fCode
@@ -8252,7 +8448,7 @@ qcomp из командной строки
.
.TP
.B vrc_override=<опции>
-Указанное пользователем качество для определенных частей (концовок, титров, ...) (проход 1/2).
+Указанное пользователем качество для определенных частей (концовок, титров, ...).
Опции, указываемые в формате <начальный кадр>, <конечный кадр>,
<качество>[/<начальный кадр>, <конечный кадр>, <качество>[/...]]:
.PD 0
@@ -8274,7 +8470,7 @@ qcomp из командной строки
.
.TP
.B vqsquish=<0|1>
-Указывает как удерживать квантователь между qmin и qmax (проход 1/2).
+Указывает как удерживать квантователь между qmin и qmax.
.PD 0
.RSs
.IPs 0
@@ -8321,7 +8517,7 @@ qcomp из командной строки
отключено
.IPs 1
Рекомендуется, только если вы хотите направить вывод в
-эталонный MPEG-4 декодер.
+эталонный MPEG\-4 декодер.
.IPs \-1
Разрешает специфичные расширения libavcodec (по умолчанию).
.IPs \-2
@@ -8557,7 +8753,7 @@ p_mask=1.0 удваивает количество бит, выделяемых каждому внутреннему блоку.
.\" CHECKING STOPPED HERE
.TP
.B border_mask=<0.0\-1.0>
-Обработка-границ для кодировщиков MPEG-типа.
+Обработка\-границ для кодировщиков MPEG\-типа.
Обработка границ увеличивает квантователь макроблоков, удаленных от
границы менее, чем на 1/5 ширины/высоты кадра, так как они, как правило,
визуально менее важны.
@@ -8655,7 +8851,7 @@ Naq попытается исправить квантователи уровня MB для сохранения должного
.PD 0
.RSs
.IPs 0
-кодирование кодами переменной длины (vlc) (Golomb-Rice)
+кодирование кодами переменной длины (vlc) (Golomb\-Rice)
.IPs 1
арифметическое кодирование (CABAC)
.RE
@@ -8696,6 +8892,9 @@ Naq попытается исправить квантователи уровня MB для сохранения должного
.B mbcmp=<0\-2000>
Указывает функцию сравнения для принятия решения о выборе типа макроблока,
действует только при mbd=0.
+Она также используется для некоторых функций поиска движения, в
+таких случаях она обладает эффектом вне зависимости от значения
+mbd.
.PD 0
.RSs
.\" FIXME check ALL methods translation
@@ -8712,7 +8911,7 @@ Naq попытается исправить квантователи уровня MB для сохранения должного
.IPs "5 (BIT)"
количество бит, необходимых для блока
.IPs "6 (RD)"
-оптимальность соотношения сигнал-шум, медленно
+оптимальность соотношения сигнал\-шум, медленно
.IPs "7 (ZERO)"
0
.IPs "8 (VSAD)"
@@ -8726,7 +8925,7 @@ Naq попытается исправить квантователи уровня MB для сохранения должного
.IPs "12 (W97)"
9/7 вейвлет, используется только в snow
.IPs "+256\ "
-Также использовать цветность, в данный момент не работает (правильно) с B-кадрами.
+Также использовать цветность, в данный момент не работает (правильно) с B\-кадрами.
.RE
.PD 1
.
@@ -8789,7 +8988,7 @@ FIXME: Описать это.
.IPs \-2
адаптивный (быстрый) ромб размера 2
.IPs \-1
-асимметричный перекрестный поиск [uneven multi-hexagon search] (медленно)
+асимметричный перекрестный поиск [uneven multi\-hexagon search] (медленно)
.IPs 1
обычный ромб с size=1 (по умолчанию), он же ромб EPSZ типа
.nf
@@ -8885,7 +9084,7 @@ mv0_threshold значения выше 320 приведет к ухудшению PSNR и визуального
.IPs 0
отключено
.IPs 1
-только после I-кадров (по умолчанию)
+только после I\-кадров (по умолчанию)
.IPs 2
всегда
.RE
@@ -8916,7 +9115,7 @@ mv0_threshold значения выше 320 приведет к ухудшению PSNR и визуального
.
.TP
.B "aic\ \ \ \ "
-Включает AC предсказание для MPEG-4 или улучшенное внутреннее предсказание для H.263+.
+Включает AC предсказание для MPEG\-4 или улучшенное внутреннее предсказание для H.263+.
Это очень незначительно улучшит качество (около 0.02 дБ PSNR), и незначительно
уменьшит скорость (примерно на 1%).
.br
@@ -9017,7 +9216,7 @@ MPEG MMX квантователь не может обрабатывать отрицательные отклонения (установите
.
.TP
.B (no)lowdelay
-Устанавливает low delay флаг для MPEG-1/2 (отключает B-кадры).
+Устанавливает low delay флаг для MPEG\-1/2 (отключает B\-кадры).
.
.TP
.B vglobal=<0\-3>
@@ -9170,7 +9369,7 @@ RTJPEG, или RTJPEG сжатый c LZO.
.
.TP
.B (no)qpel
-по умолчанию, MPEG-4 использует полупиксельную точность при поиске движения.
+по умолчанию, MPEG\-4 использует полупиксельную точность при поиске движения.
Стандарт предполагает режим, когда кодировщикам позволяется использовать
четвертьпиксельную точность.
Результат, как правило, будет более четким.
@@ -9183,7 +9382,7 @@ RTJPEG, или RTJPEG сжатый c LZO.
.TP
.B (no)gmc
Задействует Global Motion Compensation, в результате Xvid будет
-создавать специальные кадры (GMC-кадры), которые хорошо
+создавать специальные кадры (GMC\-кадры), которые хорошо
подходят для изображений с Панорамированием/\:Масштабированием/\:Поворотом.
Сэкономятся биты при использовании этой опции или нет, очень сильно
зависит от исходного материала.
@@ -9195,7 +9394,7 @@ RTJPEG, или RTJPEG сжатый c LZO.
который экономит биты, модифицируя квантованные коэффициенты
.\" FIXME untranslated "entropy encoder"
[quantized coefficients] для их лучшего сжатия entropy encoder.
-Эта опция дает хороший прирост в качестве, и если VHQ по-вашему использует
+Эта опция дает хороший прирост в качестве, и если VHQ по\-вашему использует
слишком много CPU, она может быть хорошей альтернативой для сохранения
нескольких бит (и увеличения качества при фиксированном битпотоке).
за меньшую, чем с VHQ цену (по умолчанию: включено).
@@ -9227,7 +9426,7 @@ RTJPEG, или RTJPEG сжатый c LZO.
отклонение от оригинальной картинки,
но субъективное качество изображения будет лучше.
Поскольку фильтр работает с информацией о цвете, его, возможно, стоит отключить
-при черно-белом кодировании.
+при черно\-белом кодировании.
.
.TP
.B (no)hq_ac
@@ -9278,7 +9477,7 @@ RTJPEG, или RTJPEG сжатый c LZO.
.B (no)grayscale
.\" FIXME color planes
Заставляет Xvid отбрасывать цветностные плоскости, таким образом кодированное
-видео становится черно-белым.
+видео становится черно\-белым.
Эта опция всего лишь отключает запись данных
о цвете на последнем этапе кодирования.
.
@@ -9294,27 +9493,27 @@ RTJPEG, или RTJPEG сжатый c LZO.
.
.TP
.B min_iquant=<0\-31>
-минимальный квантователь I-кадра (по умолчанию: 2)
+минимальный квантователь I\-кадра (по умолчанию: 2)
.
.TP
.B max_iquant=<0\-31>
-максимальный квантователь I-кадра (по умолчанию: 31)
+максимальный квантователь I\-кадра (по умолчанию: 31)
.
.TP
.B min_pquant=<0\-31>
-минимальный квантователь P-кадра (по умолчанию: 2)
+минимальный квантователь P\-кадра (по умолчанию: 2)
.
.TP
.B max_pquant=<0\-31>
-максимальный квантователь P-кадра (по умолчанию: 31)
+максимальный квантователь P\-кадра (по умолчанию: 31)
.
.TP
.B min_bquant=<0\-31>
-минимальный квантователь B-кадра (по умолчанию: 2)
+минимальный квантователь B\-кадра (по умолчанию: 2)
.
.TP
.B max_bquant=<0\-31>
-максимальный квантователь B-кадра (по умолчанию: 31)
+максимальный квантователь B\-кадра (по умолчанию: 31)
.
.TP
.B min_key_interval=<значение> (только двухпроходный режим)
@@ -9367,38 +9566,38 @@ RTJPEG, или RTJPEG сжатый c LZO.
первому (в строке).
kfthreshold устанавливает диапазон, в пределах которого урезаются кадры, а
kfreduction \- на сколько уменьшается их битпоток.
-Последний I-кадр обрабатывается как обычно. (по умолчанию: 30).
+Последний I\-кадр обрабатывается как обычно. (по умолчанию: 30).
.
.TP
.B max_bframes=<0\-4>
-Максимальное количество B-кадров, помещаемых между I/P-кадрами (по умолчанию: 2).
+Максимальное количество B\-кадров, помещаемых между I/P\-кадрами (по умолчанию: 2).
.
.TP
.B bquant_ratio=<0\-1000>
.\" FIXME need better translation
-коэффициент квантователя между B- и не-B-кадрами, 150=1.50 (по умолчанию: 150)
+коэффициент квантователя между B\- и не\-B\-кадрами, 150=1.50 (по умолчанию: 150)
.
.TP
.B bquant_offset=<\-1000\-1000>
.\" FIXME need better translation
-смещение квантователя между B- и не-B-кадрами, 100=1.00 (по умолчанию: 100)
+смещение квантователя между B\- и не\-B\-кадрами, 100=1.00 (по умолчанию: 100)
.
.TP
.B bf_threshold=<\-255\-255>
-Эта настройка позволяет указать приоритетность размещения B-кадров.
-Чем выше значение, тем выше вероятность использования B-кадров
+Эта настройка позволяет указать приоритетность размещения B\-кадров.
+Чем выше значение, тем выше вероятность использования B\-кадров
(по умолчанию: 0).
-Не забывайте, что B-кадры обычно используют больший квантователь, и,
-поэтому, производство большого количества B-кадров может снизить
+Не забывайте, что B\-кадры обычно используют больший квантователь, и,
+поэтому, производство большого количества B\-кадров может снизить
визуальное качество.
.
.TP
.B (no)closed_gop
Эта опция говорит Xvid закрывать каждый GOP (Group Of Pictures, группа
-картинок, ограниченная двумя I-кадрами), что делает их независимыми
+картинок, ограниченная двумя I\-кадрами), что делает их независимыми
друг от друга.
Это всего лишь подразумевает, что последний кадр в GOP является
-или P-кадром, или I-кадром, но не B-кадром.
+или P\-кадром, или I\-кадром, но не B\-кадром.
Как правило, включение этой опции \- хорошая идея (по умолчанию: включено).
.
.TP
@@ -9412,7 +9611,7 @@ kfreduction \- на сколько уменьшается их битпоток.
.br
.I ВНИМАНИЕ:
При этом генерируется нестандартный битовый поток, который не будет
-проигрываться ISO-MPEG-4 декодерами, за исключением
+проигрываться ISO\-MPEG\-4 декодерами, за исключением
DivX/\:libavcodec/\:Xvid.
.br
.I ВНИМАНИЕ:
@@ -9425,8 +9624,8 @@ DivX/\:libavcodec/\:Xvid.
Эта настройка позволяет создание видео потоков с переменным битпотоком.
Значение опции указывает порог. Если разница последующего кадра с
предыдущим ниже этого значения, то кадр не кодируется (в поток помещается
-так называемый n-vop).
-При воспроизведении, когда достигается n-vop, будет отображаться предыдущий
+так называемый n\-vop).
+При воспроизведении, когда достигается n\-vop, будет отображаться предыдущий
кадр.
.br
.I ВНИМАНИЕ:
@@ -9466,7 +9665,7 @@ DivX/\:libavcodec/\:Xvid.
дополнительных бит в сцены с маленьким битпотоком, забирая их
из всего клипа.
Это может пригодиться, если есть несколько сцен с низким битпотоком
-на которых по-прежнему видны квадратики. (по умолчанию: 0).
+на которых по\-прежнему видны квадратики. (по умолчанию: 0).
.
.TP
.B overflow_control_strength=<0\-100>
@@ -9577,7 +9776,7 @@ PAR \- это отношение ширины и высоты отдельного пиксела.
Эти две величины связаны следующим
образом: DAR = PAR * (ширина/высота).
.br
-MPEG-4 определяет 5 предопределенных пропорций пиксела и одну дополнительную,
+MPEG\-4 определяет 5 предопределенных пропорций пиксела и одну дополнительную,
позволяющую указать желаемые пропорции вручную.
Стандартные 5 вариантов:
.PD 0
@@ -9647,11 +9846,11 @@ par_height.
.TP
.B bvhq=<0|1>
.\" FIXME Need translation check. Possibly wrong.
-Опция позволяет векторам\-кандидатам для B-кадров
+Опция позволяет векторам\-кандидатам для B\-кадров
быть использованными для кодирования методом, выбранным,
используя оператор, оптимизированный по соотношению сигнал-шум.
-Это в точности то, что делается для P-кадров опцией vhq.
-Эта опция производит хорошо смотрящиеся B-кадры, как правило,
+Это в точности то, что делается для P\-кадров опцией vhq.
+Эта опция производит хорошо смотрящиеся B\-кадры, как правило,
никак не ухудшая производительность (по умолчанию: 1).
.
.PP
@@ -9669,7 +9868,7 @@ par_height.
.
.TP
.B bitrate=<значение>
-Устанавливает используемый средний битпоток в кбит/секунду (по-молчанию: отключено).
+Устанавливает используемый средний битпоток в кбит/секунду (по\-молчанию: отключено).
Поскольку локальное значение битпотока может меняться, эта величина может
быть неточной для короткого видео (смотрите ratetol).
Постоянный битпоток со значимой потерей в качестве можно получить,
@@ -9677,13 +9876,13 @@ par_height.
.
.TP
.B qp=<0\-51>
-Выбирает квантователь, используемый для P-кадров.
-Значения для I- и B-кадров получаются из этого смещением на ip_factor и pb_factor,
+Выбирает квантователь, используемый для P\-кадров.
+Значения для I\- и B\-кадров получаются из этого смещением на ip_factor и pb_factor,
соответственно.
20\-40 \- полезный диапазон.
Меньшие значение дадут лучшую точность, но больший битпоток.
0 \- без потерь.
-Заметьте, что квантование в H.264 работает иначе, чем в MPEG-1/2/4:
+Заметьте, что квантование в H.264 работает иначе, чем в MPEG\-1/2/4:
параметр квантования H.264 (QP) задается в логарифмической шкале.
Зависимость примерно такая: H264QP = 12 + 6*log2(MPEGQP).
Например, QP=2 в MPEG эквивалентно QP=18 в H.264.
@@ -9715,7 +9914,7 @@ N\-й проход (второй и третий проходы трехпроходного кодирования)
Вот как это работает, и как это можно использовать:
.br
Первый проход собирает статистику видео и записывает ее в файл.
-Вы можете отключить некоторые CPU-прожорливые опции, кроме тех, что
+Вы можете отключить некоторые CPU\-прожорливые опции, кроме тех, что
включены по умолчанию.
.br
В двухпроходном режиме, второй проход (pass=2) читает файл статистики
@@ -9746,10 +9945,10 @@ N\-й проход (второй и третий проходы трехпроходного кодирования)
.IPs 0
отключено (по умолчанию)
.IPs 1
-Уменьшает subq, frameref и отключает некоторые режимы анализа разбиения inter-макроблоков.
+Уменьшает subq, frameref и отключает некоторые режимы анализа разбиения inter\-макроблоков.
.IPs 2
Уменьшает subq и frameref до 1, использует ME поиск по ромбу и отключает все
-режимы анализа разбиения inter-макроблоков.
+режимы анализа разбиения inter\-макроблоков.
.RE
.RS
Уровень 1 может ускорить первый проход в два раза без изменения общего PSNR
@@ -9761,42 +9960,42 @@ N\-й проход (второй и третий проходы трехпроходного кодирования)
.
.TP
.B keyint=<value>
-Устанавливает максимальный интервал между IDR-кадрами (по умолчанию: 250).
+Устанавливает максимальный интервал между IDR\-кадрами (по умолчанию: 250).
Большие значения экономят биты, таким образом, увеличивая качество ценой
точности перемещения.
-В отличие от MPEG-1/2/4, H.264 не страдает от погрешности DCT при больших
+В отличие от MPEG\-1/2/4, H.264 не страдает от погрешности DCT при больших
значениях keyint.
.
.TP
.B keyint_min=<1\-keyint/2>
-Устанавливает минимальный интервал между IDR-кадрами (по умолчанию: 25).
+Устанавливает минимальный интервал между IDR\-кадрами (по умолчанию: 25).
Если в пределах этого интервала происходит изменение сцены, оно
-по-прежнему будет кодироваться I-кадром, а не начинать новый GOP.
-В H.264, I-кадры не обязательно ограничивают закрытый GOP,
-потому что допускается предсказание P-кадра из более, чем одного
+по\-прежнему будет кодироваться I\-кадром, а не начинать новый GOP.
+В H.264, I\-кадры не обязательно ограничивают закрытый GOP,
+потому что допускается предсказание P\-кадра из более, чем одного
предыдущего кадра (смотрите также frameref).
-Следовательно, I-кадры не являются необходимыми для перемещения.
-IDR-кадры не позволяют последующим P-кадрам ссылаться на любой
-другой, предшествующий IDR-кадру.
+Следовательно, I\-кадры не являются необходимыми для перемещения.
+IDR\-кадры не позволяют последующим P\-кадрам ссылаться на любой
+другой, предшествующий IDR\-кадру.
.
.TP
.B scenecut=<\-1\-100>
-Контролирует агрессивность вставки дополнительных I-кадров (по умолчанию: 40).
+Контролирует агрессивность вставки дополнительных I\-кадров (по умолчанию: 40).
С малыми значениями scenecut, кодек зачастую должен принудительно вставлять
-I-кадр, когда может превыситься keyint.
-Хорошие значения scenecut могут найти лучшее положение для I-кадра.
-Большие значения используют больше I-Кадров, чем требуется,
+I\-кадр, когда может превыситься keyint.
+Хорошие значения scenecut могут найти лучшее положение для I\-кадра.
+Большие значения используют больше I\-Кадров, чем требуется,
зря расходуя биты.
-\-1 отключает определение смены сцены, так что I-кадры вставляются только
+\-1 отключает определение смены сцены, так что I\-кадры вставляются только
один раз каждые keyint кадров, даже если ранее произошло изменение сцены.
Это не рекомендуется и зря тратит битпоток, поскольку изменения сцены,
-закодированные P-кадрами такие же большие, как и I-кадры, но не
+закодированные P\-кадрами такие же большие, как и I\-кадры, но не
обнуляют "счетчик keyint".
.
.TP
.B frameref=<1\-16>
Количество предыдущих кадров, используемых в качестве предсказателей
-в B- и P-кадрах (по умолчанию: 1).
+в B\- и P\-кадрах (по умолчанию: 1).
Это эффективно в аниме, но для материала с обычным движением, начиная
примерно с 6 связанных кадров, улучшения очень быстро сходят на нет.
Эта опция не влияет на скорость декодирования, но увеличивает
@@ -9805,25 +10004,25 @@ I-кадр, когда может превыситься keyint.
.
.TP
.B bframes=<0\-16>
-максимальное количество последовательных B-кадров между I- и P-кадрами (по умолчанию: 0)
+максимальное количество последовательных B\-кадров между I\- и P\-кадрами (по умолчанию: 0)
.
.TP
.B (no)b_adapt
-Автоматически решает когда и в каких количествах использовать B-кадры,
+Автоматически решает когда и в каких количествах использовать B\-кадры,
вплоть до максимального значения, указанного выше (по умолчанию: включено).
-Если опция отключена, используется максимальное количество B-кадров.
+Если опция отключена, используется максимальное количество B\-кадров.
.
.TP
.B b_bias=<\-100\-100>
Управляет решением, представленным b_adapt.
-Большее значение b_bias создает больше B-кадров (по умолчанию: 0).
+Большее значение b_bias создает больше B\-кадров (по умолчанию: 0).
.
.TP
.B (no)b_pyramid
-Позволяет B-кадрам использоваться как ссылки для предсказания других кадров.
-Например, предположим 3 последовательных B-кадра: I0 B1 B2 B3 P4.
-Без этой опции, B-кадры следуют тому же шаблону, что и в MPEG-[124].
-Таким образом они кодируются в порядке I0 P4 B1 B2 B3, и все B-кадры
+Позволяет B\-кадрам использоваться как ссылки для предсказания других кадров.
+Например, предположим 3 последовательных B\-кадра: I0 B1 B2 B3 P4.
+Без этой опции, B\-кадры следуют тому же шаблону, что и в MPEG\-[124].
+Таким образом они кодируются в порядке I0 P4 B1 B2 B3, и все B\-кадры
предсказываются из I0 и P4.
С этой опцией, они кодируются как I0 P4 B2 B1 B3.
B2 такой же как и выше, но B1 предсказывается из I0 и B2, а
@@ -9843,10 +10042,10 @@ B3 предсказывается из B2 и P4.
.TP
.B deblock=<\-6\-6>,<\-6\-6>
Первый параметр \- это AlphaC0 (по умолчанию: 0).
-Он настраивает пороговые значения для H.264 in-loop deblocking фильтра.
-Во-первых, этот параметр настраивает максимальное количество изменений,
+Он настраивает пороговые значения для H.264 in\-loop deblocking фильтра.
+Во\-первых, этот параметр настраивает максимальное количество изменений,
которые может внести фильтр в любой отдельный пиксел.
-Во-вторых, он влияет на пороговое значение разности вдоль фильтруемой
+Во\-вторых, он влияет на пороговое значение разности вдоль фильтруемой
границы.
Положительное значение лучше убирает артефакты в виде квадратиков,
но также смазывают детали.
@@ -9865,7 +10064,7 @@ B3 предсказывается из B2 и P4.
.
.TP
.B (no)cabac
-Использовать CABAC (Context-Adaptive Binary Arithmetic Coding) (по умолчанию: включено).
+Использовать CABAC (Context\-Adaptive Binary Arithmetic Coding) (по умолчанию: включено).
Немного замедляет кодирование и декодирование, но должно сэкономить 10\-15% битпотока.
Не следует отключать его, если не гонитесь за скоростью кодирования.
.
@@ -9901,11 +10100,11 @@ B3 предсказывается из B2 и P4.
.
.TP
.B ip_factor=<значение>
-отношение квантователя I- и P-кадров (по умолчанию: 1.4)
+отношение квантователя I\- и P\-кадров (по умолчанию: 1.4)
.
.TP
.B pb_factor=<значение>
-отношение квантователя P- и B-кадров (по умолчанию: 1.3)
+отношение квантователя P\- и B\-кадров (по умолчанию: 1.3)
.
.TP
.B qcomp=<0\-1> (ABR или двухпроходный режим)
@@ -9919,10 +10118,10 @@ B3 предсказывается из B2 и P4.
(по умолчанию: 20).
Меньшие значения позволяют значению квантователя "прыгать" сильнее,
большие значения принуждают его меняться более плавно.
-cplx_blur гарантирует, что каждый I-кадр имеет качество, сравнимое с
-последующими P-кадрами, и гарантирует, что чередование кадром с
+cplx_blur гарантирует, что каждый I\-кадр имеет качество, сравнимое с
+последующими P\-кадрами, и гарантирует, что чередование кадром с
маленькой и высокой сложностью (например, анимация с низким fps)
-не расходует биты попусту из-за колебаний квантователя.
+не расходует биты попусту из\-за колебаний квантователя.
.
.TP
.B qblur=<0\-99> (только двухпроходный режим)
@@ -9957,7 +10156,7 @@ cplx_blur гарантирует, что каждый I-кадр имеет качество, сравнимое с
.TP
.B direct_pred=<name>
Определяет тип предсказания движения, используемого для прямых
-макроблоков в B-кадрах.
+макроблоков в B\-кадрах.
.PD 0
.RSs
.IPs none
@@ -9966,7 +10165,7 @@ cplx_blur гарантирует, что каждый I-кадр имеет качество, сравнимое с
Векторы движения экстраполируются из соседних блоков.
(по умолчанию)
.IPs temporal
-Векторы движения интерполируются из последующего P-кадра.
+Векторы движения экстраполируются из последующего P\-кадра.
.IPs auto
Кодек для каждого кадры выбирает между spatial и temporal.
.RE
@@ -9981,11 +10180,11 @@ direct_pred=none одновременно и медленнее, и хуже по качеству.
.
.TP
.B (no)weight_b
-Использовать взвешенное предсказание в B-кадрах.
+Использовать взвешенное предсказание в B\-кадрах.
Без этой опции, двунаправленно предсказанные макроблоки
присваивают одинаковый вес каждому кадру, на который ссылаются.
С этой опцией веса определяются временной позицией
-B-кадра относительно того, на который он ссылается.
+B\-кадра относительно того, на который он ссылается.
Требует bframes > 1.
.
.TP
@@ -10078,10 +10277,10 @@ subq=5 может сжимать до 10% лучше, чем subq=1.
качества для всех возможных типов макроблоков, перед выбором
лучшего типа (по умолчанию).
.IPs 6
-Задействует оптимизацию типов макроблоков по соотношению сигнал-шум
-в I- и P-кадрах.
+Задействует оптимизацию типов макроблоков по соотношению сигнал\-шум
+в I\- и P\-кадрах.
.IPs 7
-Задействует оптимизацию по соотношению сигнал-шум векторов движения
+Задействует оптимизацию по соотношению сигнал\-шум векторов движения
и intra режимов. (лучший)
.RE
.PD 1
@@ -10106,19 +10305,19 @@ subq=5 может сжимать до 10% лучше, чем subq=1.
.
.TP
.B (no)brdo
-Задействует оптимизацию типов макроблоков по отношению сигнал-шум
-в B-Кадрах.
+Задействует оптимизацию типов макроблоков по отношению сигнал\-шум
+в B\-Кадрах.
Требует subq>=6.
.
.TP
.B (no)bime
Уточняет два вектора движения, используемых в двунаправленных макроблоках,
вместо повторного использования векторов и прямом и обратном поисках.
-Эта опция не имеет эффекта при отсутствии B-кадров.
+Эта опция не имеет эффекта при отсутствии B\-кадров.
.
.TP
.B trellis=<0\-2>
-Квантование, оптимальное по соотношению сигнал-шум
+Квантование, оптимальное по соотношению сигнал\-шум
.PD 0
.RSs
.IPs 0
@@ -10136,7 +10335,7 @@ subq=5 может сжимать до 10% лучше, чем subq=1.
.\" Set the size of the inter luma quantization deadzone for non-trellis
.\" quantization (default: 21).
Устанавливает размер мертвой зоны inter квантования яркостной компоненты
-для не-trellis квантования (по умолчанию: 21).
+для не\-trellis квантования (по умолчанию: 21).
.\" FIXME film grain = текстура фильма
Меньшие значения позволяют сохранить хорошую детализацию и текстуру фильма
(обычно полезно для кодирования высоким битпотоком/качеством), в то время
@@ -10151,7 +10350,7 @@ subq=5 может сжимать до 10% лучше, чем subq=1.
.\" Set the size of the intra luma quantization deadzone for non-trellis
.\" quantization (default: 11).
Устанавливает размер мертвой зоны intra квантования яркостной компоненты
-для не-trellis квантования (по умолчанию: 21).
+для не\-trellis квантования (по умолчанию: 21).
Эта опция имеет тот же эффект, что и deadzone_inter, за исключением того, что
она действует на intra кадры.
Рекомендуется начать с настройки этого параметра, прежде чем
@@ -10159,13 +10358,13 @@ subq=5 может сжимать до 10% лучше, чем subq=1.
.
.TP
.B (no)fast_pskip
-Выполняет раннее определение пропусков в P-кадрах (по умолчанию: включено).
-Это обычно увеличивает скорость без каких-либо затрат, но иногда
+Выполняет раннее определение пропусков в P\-кадрах (по умолчанию: включено).
+Это обычно увеличивает скорость без каких\-либо затрат, но иногда
производит артефакты в областях без деталей, таких как небо.
.
.TP
.B (no)dct_decimate
-Отсеивает dct блоки в P-кадрах, содержащие только маленький одиночный
+Отсеивает dct блоки в P\-кадрах, содержащие только маленький одиночный
коэффициент (по умолчанию: включено).
Это удалит некоторые детали, тем самым сэкономит биты, которые могут быть
снова использованы в других кадрах, надо надеяться, улучшая
@@ -10290,7 +10489,7 @@ PSNR, QP, тип кадра, размер, и другую статистику для каждого кадра
.
.TP
.B (no)psnr
-Выводит статистику по соотношению сигнал-шум.
+Выводит статистику по соотношению сигнал\-шум.
.br
.I ЗАМЕЧАНИЕ:
PSNR поля 'Y', 'U', 'V', и 'Avg' PSNR с итогах не являются
@@ -10322,7 +10521,7 @@ inter блок
.IPs green
пропущенный блок
.IPs yellow
-B-блок
+B\-блок
.RE
.PD 1
.RS
@@ -10339,7 +10538,7 @@ B-блок
.
.SS xvfw (\-xvfwopts)
Кодирование с кодеками Video for Windows по большей части устарело,
-если только вы не хотите кодировать каким-то неизвестным сторонним кодеком.
+если только вы не хотите кодировать каким\-то неизвестным сторонним кодеком.
.
.TP
.B codec=<имя>
@@ -10414,32 +10613,32 @@ pes1 и pes2 весьма сильно испорченные форматы (без заголовка упаковки и
.
.TP
.B vwidth, vheight=<1\-4095>
-Устанавливает ширину и высоту видео, если это MPEG-1/2.
+Устанавливает ширину и высоту видео, если это MPEG\-1/2.
.
.TP
.B vpswidth, vpsheight=<1\-4095>
-Устанавливает "pan and scan" ширину и высоту видео, если это MPEG-2.
+Устанавливает "pan and scan" ширину и высоту видео, если это MPEG\-2.
.
.TP
.B vaspect=<1 | 4/3 | 16/9 | 221/100>
-Устанавливает пропорции отображения для MPEG-2 видео.
-Не используйте ее для MPEG-1 или результирующие пропорции будут
+Устанавливает пропорции отображения для MPEG\-2 видео.
+Не используйте ее для MPEG\-1 или результирующие пропорции будут
абсолютно неверными.
.
.TP
.B vbitrate=<целое>
-Устанавливает величину видео битпотока в кбит/с для MPEG-1/2.
+Устанавливает величину видео битпотока в кбит/с для MPEG\-1/2.
.
.TP
.B vframerate=<24000/1001 | 24 | 25 | 30000/1001 | 30 | 50 | 60000/1001 | 60 >
-Устанавливает частоту кадров для MPEG-1/2.
+Устанавливает частоту кадров для MPEG\-1/2.
Эта опция будет проигнорирована, если использовалась вместе с telecine.
.
.TP
.B telecine
Включает 3:2 пулдаун режим мягкого телесина: мультплексор
сделает поток похожим на кодированный с 30000/1001 fps.
-Работает только с MPEG-2 видео, когда частота кадров на выходе
+Работает только с MPEG\-2 видео, когда частота кадров на выходе
равна 20000/1001, при необходимости преобразуйте ее опцией \-ofps.
Любые другие частоты кадров несовместимы с этой опцией.
.
@@ -10447,7 +10646,7 @@ pes1 и pes2 весьма сильно испорченные форматы (без заголовка упаковки и
.B film2pal
Включает FILM в PAL и NTSC в PAL режим мягкого телесина: мультиплексор
сделает видео поток похожим на кодированный с 25 fps.
-Работает только с MPEG-2 видео, когда частота кадров на выходе
+Работает только с MPEG\-2 видео, когда частота кадров на выходе
равна 24000/1001, при необходимости преобразуйте ее опцией \-ofps.
Любые другие частоты кадров несовместимы с этой опцией.
.
@@ -10458,7 +10657,7 @@ pes1 и pes2 весьма сильно испорченные форматы (без заголовка упаковки и
желаемую частоту кадров; мультиплексор сделает видео поток похожим
на закодированный с желаемой частотой,
заменяя номинальную выходную частоту кадров.
-Работает только с MPEG-2, когда частота кадров на входе меньше, чем на выходе,
+Работает только с MPEG\-2, когда частота кадров на входе меньше, чем на выходе,
и увеличение частоты <= 1.5.
.sp 1
.RS
@@ -10500,7 +10699,7 @@ pes1 и pes2 весьма сильно испорченные форматы (без заголовка упаковки и
.TP
.B probesize=<значение>
Максимальное количество анализируемых данных на этапе определения.
-В случае MPEG-TS эта величина означает максимальное количество
+В случае MPEG\-TS эта величина означает максимальное количество
сканируемых TS пакетов.
.
.TP
@@ -10528,7 +10727,7 @@ pes1 и pes2 весьма сильно испорченные форматы (без заголовка упаковки и
.PD 0
.RSs
.IPs "mpg\ \ "
-системы MPEG-1 и MPEG-2 PS
+системы MPEG\-1 и MPEG\-2 PS
.IPs "asf\ \ "
Advanced Streaming Format
.IPs "avi\ \ "
@@ -10548,7 +10747,10 @@ RealAudio и RealVideo
.IPs "mov\ \ "
QuickTime
.IPs "mp4\ \ "
-MPEG-4 формат
+MPEG\-4 формат
+.IPs "ipod\ "
+MPEG\-4 формат с дополнительными флагами заголовка, необходимыми
+для прошивки Apple iPod.
.IPs "dv\ \ \ "
Контейнер Sony Digital Video
.RE
@@ -10617,7 +10819,7 @@ FIXME: Об этом также упоминается в разделе ladspa.
Каталог DVDCSS_CACHE будет создан, если не существовал,
а ткаже подкаталог с названием DVD ролика или даты изготовления.
Если DVDCSS_CACHE не установлена или пуста, libdvdcss будет использовать
-значение по-умолчания, равное "${HOME}/.dvdcss/" под Unix и
+значение по умолчанию, равное "${HOME}/.dvdcss/" под Unix и
"C:\\Documents and Settings\\$USER\\Application Data\\dvdcss\\" под Win32.
Специальное значение "off" отключает кеширование.
.
@@ -10700,7 +10902,7 @@ FIXME: Описать это.
Транспорт может быть tcp или unix.
Синтаксис: tcp/<некий_хост>:<некий_порт>, <некий_хост>:<номер_экземпляра>
или [unix]:<номер_экземпляра>.
-Основной порт NAS \- 8000 и <номер_экземпляра> добавляется к нему.
+Основной порт NAS \- 8000 и <номер_экземпляра> добавляется к нему.
.sp 1
.RS
.I ПРИМЕРЫ:
@@ -10924,6 +11126,12 @@ mplayer dvd://1 \-dumpstream \-dumpfile title1.vob
.fi
.
.PP
+.B Воспроизведение DVD с помощью dvdnav из /dev/sr1:
+.nf
+mplayer dvdnav:////dev/sr1
+.fi
+.
+.PP
.B Поток по HTTP:
.nf
mplayer http://mplayer.hq/example.avi
@@ -10966,21 +11174,21 @@ mplayer \-vo zr2 \-vf scale=352:288,zrmjpeg file.avi
.fi
.
.PP
-.B Воспроизведение DTS-CD с транзитной передачей:
+.B Воспроизведение DTS\-CD с транзитной передачей:
.nf
mplayer \-ac hwdts \-rawaudio format=0x2001 \-cdrom\-device /dev/cdrom cdda://
.fi
.br
Вы также можете использовать \-afm hwac3 вместо \-ac hwdts.
-Исправьте '/dev/cdrom' на имя CD-ROM устройства в вашей системе.
+Исправьте '/dev/cdrom' на имя CD\-ROM устройства в вашей системе.
Если ваш внешний ресивер поддерживает декодирование сырых DTS потоков,
вы можете воспроизводить их напрямую через cdda://, не указывая
format, hwac3 или hwdts.
.
.PP
-.B Проиграть 6-ти канальный AAC файл на двух колонках:
+.B Проиграть 6\-ти канальный AAC файл на двух колонках:
.nf
-mplayer \-rawaudio format=0xff \-demuxer rawaudio \-af pan=2:.32:.32:.39:.06:.06:.39:.17:-.17:-.17:.17:.33:.33 adts_he-aac160_51.aac
+mplayer \-rawaudio format=0xff \-demuxer rawaudio \-af pan=2:.32:.32:.39:.06:.06:.39:.17:\-.17:\-.17:.17:.33:.33 adts_he\-aac160_51.aac
.fi
.br
Вы можете немного поэкспериментировать со значениями pan (например, умножить на некоторую
@@ -11040,7 +11248,7 @@ mencoder \-tv driver=v4l:width=640:height=480 tv:// \-o tv.avi \-ovc raw
.PP
.B Кодировать из канала (pipe):
.nf
-rar p test-SVCD.rar | mencoder \-ovc lavc \-lavcopts vcodec=mpeg4:vbitrate=800 \-ofps 24 \-
+rar p test\-SVCD.rar | mencoder \-ovc lavc \-lavcopts vcodec=mpeg4:vbitrate=800 \-ofps 24 \-
.fi
.
.
@@ -11052,7 +11260,7 @@ rar p test-SVCD.rar | mencoder \-ovc lavc \-lavcopts vcodec=mpeg4:vbitrate=800 \
Не паникуйте.
Если вы нашли их, сообщите об этом нам, но предварительно убедитесь, что прочли всю документацию.
Также обращайте внимание на смайлики. :)
-Многие ошибки \- результат некорректной настройки программы и использования параметров.
+Многие ошибки \- результат некорректной настройки программы и использования параметров.
Раздел документации, посвященный отправке сообщений об ошибках
(http://www.mplayerhq.hu/\:DOCS/\:HTML/\:ru/\:bugreports.html)
описывает как создать полезный отчет.
@@ -11064,11 +11272,12 @@ rar p test-SVCD.rar | mencoder \-ovc lavc \-lavcopts vcodec=mpeg4:vbitrate=800 \
MPlayer изначально был написан Arpad Gereoffy.
Смотрите файл AUTHORS, чтобы получить список некоторых из множества других разработчиков.
.PP
-MPlayer is (C) 2000\-2007 The MPlayer Team
+MPlayer is (C) 2000\-2008 The MPlayer Team
.PP
Оригинальная английская версия этого руководства в основном была написана Gabucino,
Jonas Jermann и Diego Biurrun. Сейчас она поддерживается Diego Biurrun.
Первоначальный перевод осуществлен Владимиром Ворошиловым.
-Пожалуйста, отсылайте электронные письма об оригинальной странице в список рассылки MPlayer-DOCS.
-Письма, относящиеся к переводу, отсылайте в MPlayer-translations.
+Пожалуйста, отсылайте электронные письма об оригинальной странице в
+список рассылки MPlayer\-DOCS.
+Письма, относящиеся к переводу, отсылайте в MPlayer\-translations.
.\" end of file
diff --git a/DOCS/xml/hu/bugs.xml b/DOCS/xml/hu/bugs.xml
index ac1b754791..64349ee8f9 100644
--- a/DOCS/xml/hu/bugs.xml
+++ b/DOCS/xml/hu/bugs.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r26990 -->
+<!-- synced with r27890 -->
<appendix id="bugs">
<title>Ismert hibц║k</title>
@@ -8,13 +8,6 @@
<itemizedlist>
<listitem>
- <para>SIGILL (signal 4) P3-on 2.2.x kernelekkel:</para>
- <para>Problц╘ma: a 2.2.x kernelben nincs megfelelе▒ (mе╠kц╤dе▒) SSE tц║mogatц║s</para>
- <para>Megoldц║s: frissц╜tsd a kernelt 2.4.x-re</para>
- <para>Tц╪neti kezelц╘s: <command>./configure --disable-sse</command></para>
-</listitem>
-
-<listitem>
<para>ц│ltalц║nos SIGILL (signal 4):</para>
<para>
Problц╘ma: az <application>MPlayer</application> nem ugyan azon a gц╘pen
@@ -139,78 +132,6 @@
</itemizedlist>
</sect2>
-<!-- ********** -->
-
-<sect2 id="bugs-nosound">
-<title>Egyц║ltalц║n nincs hang</title>
-
-<itemizedlist>
-<listitem>
- <para>a fц║jlod nem tц║mogatott audiцЁ codec-et hasznц║l</para>
- <para>
- Megoldц║s: olvasd el a dokumentц║ciцЁt ц╘s segц╜ts a tц║mogatц║s elkц╘szц╜tц╘sц╘ben
- </para>
-</listitem>
-</itemizedlist>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="bugs-nopicture">
-<title>Egyц║ltalц║n nincs kц╘p (csak ц╪res szц╪rke/zц╤ld ablak)</title>
-
-<itemizedlist>
-<listitem>
- <para>a fц║jlod egy nem tц║mogatott videцЁ codec-et hasznц║l</para>
- <para>
- Megoldц║s: olvasd el a dokumentц║ciцЁt ц╘s segц╜ts a tц║mogatц║s elkц╘szц╜tц╘sц╘ben
- </para>
-</listitem>
-
-<listitem>
- <para>
- az automatikusan kivц║lasztott codec nem tudja dekцЁdolni a fц║jlt, prцЁbц║lj meg mц║sik
- codec-et kivц║lasztani a <option>-vc</option> vagy <option>-vfm</option> kapcsolцЁkkal
- </para>
-</listitem>
-</itemizedlist>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="bugs-video">
-<title>VideцЁ-kimeneti problц╘mц║k</title>
-
-<para>
-Vedd figyelembe, hogy a <option>-fs -vm</option> ц╘s <option>-zoom</option> kapcsolцЁkat
-nem mindegyik vezц╘rlе▒ tц║mogatja. Rц║adц║sul csak pц║r vezц╘rlе▒ tц║mogatja a hardveres
-mц╘retezц╘st/nagyц╜tц║st.
-</para>
-
-<formalpara>
-<title>OSD/felirat vibrц║lц║s</title>
-<para>
-<itemizedlist>
- <listitem><para>x11 vezц╘rlе▒: bocs, ez jelenleg nem javц╜thatцЁ</para></listitem>
- <listitem><para>xv vezц╘rlе▒: hasznц║ld a <option>-double</option> kapcsolцЁt</para></listitem>
-</itemizedlist>
-</para>
-</formalpara>
-
-<formalpara>
-<title>Zц╤ld kц╘p mga_vid hasznц║latakor
- (<option>-vo mga</option> / <option>-vo xmga</option>)</title>
-<para>
-<itemizedlist>
-<listitem><para>
- az mga_vid rosszul detektц║lja a kц║rtyц║d RAM-jц║nak mц╘retц╘t, tц╤ltsd be
- ц╨jra a <option>mga_ram_size</option> kapcsolцЁval
-</para></listitem>
-</itemizedlist>
-</para>
-</formalpara>
-
-</sect2>
</sect1>
</appendix>
diff --git a/DOCS/xml/hu/containers.xml b/DOCS/xml/hu/containers.xml
deleted file mode 100644
index d367cf192c..0000000000
--- a/DOCS/xml/hu/containers.xml
+++ /dev/null
@@ -1,524 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with r27107 -->
-<chapter id="containers">
-<title>Kontц╘nerek</title>
-
-<para>
-Fontos, hogy eloszlassunk egy gyakori tц╘vhitet. A legtц╤bben ha egy
-<filename>.AVI</filename> kiterjesztц╘sе╠ filmet lц║tnak, rц╤gtц╤n arra kц╤vetkeztetnek,
-hogy az nem egy MPEG fц║jl. Ez nem igaz. Legalц║bbis nem teljesen. Az ц║tlagos
-vц╘lemц╘nnyel ellentц╘tben egy ilyen fц║jl <emphasis>tartalmazhat</emphasis> MPEG-1 videцЁt.
-</para>
-
-<para>
-Mint lц║thatod, egy <emphasis role="bold">codec</emphasis> nem ugyan az,
-mint egy <emphasis role="bold">kontц╘ner formц║tum</emphasis>.
-Pц╘ldц║ul videцЁ <emphasis role="bold">codec</emphasis>-ek ezek: MPEG-1, MPEG-2,
-MPEG-4 (DivX), Indeo5, 3ivx.
-De kontц╘ner <emphasis role="bold">formц║tumok</emphasis> ezek:
-MPG, AVI, ASF.
-</para>
-
-<para>
-Elmц╘letileg egy OpenDivX-es videцЁt ц╘s MP3 audiцЁt beletehetsz egy
-<emphasis role="bold">MPG kontц╘nerbe</emphasis>. Habц║r a legtц╤bb
-lejц║tszцЁ nem fogja lejц║tszani, mert MPEG-1-es videцЁt ц╘s MP2-es
-audiцЁt vц║rnak (az <emphasis role="bold">AVI</emphasis>-val ellentц╘tben
-az <emphasis role="bold">MPG</emphasis> nem rendelkezik a megfelelе▒
-mezе▒kkel a videцЁ ц╘s audiцЁ folyamainak leц╜rц║sц║hoz). Vagy tehetsz
-MPEG-1 videцЁt is AVI fц║jlba. Az
-<ulink url="http://ffmpeg.org/">FFmpeg</ulink> ц╘s a
-<link linkend="mencoder"><application>MEncoder</application></link> tud kц╘szц╜teni ilyen fц║jlokat.
-</para>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="video-formats">
-<title>VideцЁ formц║tumok</title>
-
-<sect2 id="mpg-vob-dat">
-<title>MPEG fц║jlok</title>
-
-<para>
-Az MPEG fц║jlok kц╪lц╤nbц╤zе▒ alakц╨ak lehetnek:
-</para>
-
-<itemizedlist>
-<listitem><para>
- MPG: Ez a <emphasis role="bold">legalapabb</emphasis> formц║tum az
- MPEG fц║jl formц║tumok kц╤zц╪l. MPEG-1 videцЁt ц╘s MP2 (MPEG-1 layer 2) vagy
- ritkц║n MP1 audiцЁt tartalmaz.
-</para></listitem>
-<listitem><para>
- DAT: Ez majdnem ugyan olyan formц║tum, mint az MPG, csak a kiterjesztц╘s
- kц╪lц╤nbц╤zik. <emphasis role="bold">Video CD</emphasis>-ken hasznц║ljц║k. A VCD-k
- kц╘szц╜tц╘si ц╘s a Linux tervezц╘si mцЁdja miatt a DAT fц║jlokat nem lehet sem
- lejц║tszani sem ц║tmц║solni a VCD-krе▒l mint rendes fц║jlokat. A
- <option>vcd://</option> elе▒tagot kell hasznц║lnod a Video CD lejц║tszц║sц║hoz.
-</para></listitem>
-<listitem><para>
- VOB: Ez a <emphasis role="bold">DVD</emphasis>-ken hasznц║lt MPEG fц║jl formц║tum.
- Ugyan az, mint az MPG, plusz tartalmazhat feliratot ц╘s nem-MPEG (AC-3) hangot.
- KцЁdolt MPEG-2 videцЁt ц╘s ц║ltalц║ban AC-3 audiцЁt tartalmaz, de DTS, MP2 ц╘s
- tц╤mц╤rц╜tetlen LPCM is megengedett. <emphasis role="bold">Olvasd el a
- <link linkend="dvd">DVD</link> rц╘szt</emphasis>!
-</para></listitem>
-<listitem><para>
- TY: Ez egy TiVo MPEG stream. MPEG PES adatot tartalmaz az audiцЁ ц╘s
- videцЁ stream-hez, valamint extra informц║ciцЁkat, mint pl. zц║rt feliratok.
- A kontц╘ner nem MPEG program stream, csak egy TiVo ц║ltal kц╘szц╜tett hasonlцЁ
- formц║tum. Ha tц╤bbet akarsz megtudni a TiVo stream formц║tumrцЁl, olvasd el a
- <ulink url="http://dvd-create.sourceforge.net/tystudio/tystream.shtml">
- TyStudio oldalц║t</ulink>.
-</para></listitem>
-</itemizedlist>
-
-<para>
-A kц╘pkockц║k sorozata fц╪ggetlen csoportokat alkot az MPEG fц║jlokban. Ez azt
-jelenti, hogy egy MPEG fц║jlt szabvц║nyos fц║jl eszkц╤zц╤kkel (pц╘ldц║ul
-<command>dd</command>, <command>cut</command>) vц║ghatsz/ц╤sszeilleszthetsz,
-ц╨gy, hogy teljesen mе╠kц╤dе▒kц╘pes marad.
-</para>
-
-<para>
-Az MPEG-ek egyik legfontosabb tulajdonsц║ga, hogy van egy mezе▒jц╪k, mely a
-videцЁ folyam kц╘parц║nyц║t ц╜rja le. Pц╘ldц║ul az SVCD-knek 480x480 felbontц║sц╨
-videцЁjuk van, a fejlц╘cben ilyenkor ez a mezе▒ 4:3 arц║nyra van ц║llц╜tva, ezц╘rt
-jц║tszцЁdnak le 640x480-ban. Az AVI fц║jlokbцЁl gyakran hiц║nyzik ez a mezе▒,
-ezц╘rt ezeket ц╨jra kell mц╘retezni a <option>-aspect</option> kapcsolцЁval
-kцЁdolц║s vagy lejц║tszц║s kц╤zben.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="avi">
-<title>AVI fц║jlok</title>
-
-<para>
-A Microsoft ц║ltal tervezett
-<emphasis role="bold">AVI (Audio Video Interleaved)</emphasis>
-egy szц╘les kц╤rben elterjedt, tц╤bbcц╘lц╨ formц║tum, melyet jelenleg leginkц║bb
-MPEG-4 (DivX ц╘s DivX4) videцЁknц║l hasznц║lnak. Rengeteg ismert hц║trц║nya ц╘s
-hiц║nyossц║ga van (pц╘ldц║ul stream-elц╘sben). Tц║mogat egy videцЁ folyamot 0-99
-audiцЁ folyammal, max 2 GB-ig, de van egy <emphasis role="bold">OpenDML</emphasis>
-kiterjesztц╘s, amivel ennц╘l nagyobb fц║jlok is kezelhetе▒ek. A Microsoft mц║r
-nem javasolja a hasznц║latц║t, ц╘s az ASF/WMV hasznц║latц║ra buzdц╜t. Nem
-mintha ez bц║rkit is ц╘rdekelne.
-</para>
-
-<para>
-Van egy hack, aminek a segц╜tsц╘gц╘vel az AVI fц║jlokban lehet Ogg Vorbis audiцЁ
-folyam is, de ц╜gy inkompatibilisek lesznek a szabvц║nyos AVI-val.
-Az <application>MPlayer</application> le tudja jц║tszani ezeket a fц║jlokat. A
-keresц╘s is megoldott, de ezt egyszerе╠en gц║tolja a rosszul kцЁdolt fц║jlok
-zavaros fejlц╘ce. Sajnos jelenleg az egyetlen kцЁdolцЁ program, ami tud ilyen
-fц║jlokat kц╘szц╜teni, a <application>NanDub</application> is kц╪zd ezzel a problц╘mц║val.
-</para>
-
-<note><para>
-A DV kamerц║k kц╘szц╜tenek nyers DV folyamokat, amit a DV grab-belе▒ segц╘dprogramja
-kц╘t kц╪lц╤nbц╤zе▒ tц╜pusц╨ AVI fц║jllц║ konvertц║l. Az AVI ezutц║n vagy kц╪lц╤n audiцЁ ц╘s videцЁ
-stream-et fog tartalmazni, amit az <application>MPlayer</application> le tud
-jц║tszani vagy nyers DV stream-et, aminek a tц║mogatц║sa mц╘g fejlesztц╘s alatt van.
-</para></note>
-
-<para>
-Kц╘tfajta AVI fц║jl lц╘tezik:
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">Interleaved (ц║tlapolt):</emphasis> Az audiцЁ ц╘s a
- videцЁ tartalom ц║t van lapolva. Ez az alapц╘rtelmezett. Javasolt ц╘s a
- legtц╤bbszц╤r hasznц║lt. Nц╘hц║ny segц╘dprogram hibц║s szinkronц╨ ц║tlapolt AVI-t kц╘szц╜t.
- Az <application>MPlayer</application> ezeket ц║tlapoltkц╘nt detektц║lja ц╘s
- emiatt elveszik az A/V szinkronizц║ciцЁ, valцЁszц╜nе╠leg pц╤rgetц╘snц╘l.
- Ezeket a fц║jlokat nem-ц║tlapoltkц╘nt kell lejц║tszani
- (a <option>-ni</option> kapcsolцЁval).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Non-interleaved (Nem-ц║tlapolt):</emphasis> Elе▒szц╤r jц╤n
- a teljes videцЁ folyam, majd a teljes audiцЁ folyam. ц█gy rengeteg ugrц║sra van
- szц╪ksц╘g, mely megnehezц╜ti a hц║lцЁzati ц╘s CD-ROM-rцЁl tц╤rtц╘nе▒ lejц║tszц║st.
-</para></listitem>
-</itemizedlist>
-</para>
-
-<para>
-Az <application>MPlayer</application> kц╘tfц╘le idе▒zц╜tц╘st tц║mogat az AVI
-fц║jlokhoz:
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">bps-alapц╨:</emphasis> A videцЁ/audiцЁ folyam
- bitrц║tц║n/mintavц╘teli rц║tц║jц║n alapul. Ezt a mцЁdszert hasznц║lja a legtц╤bb
- lejц║tszцЁ, beleц╘rtve az <ulink url="http://avifile.sf.net">avifile</ulink>t
- ц╘s a <application>Windows Media Player</application>-t. A sц╘rц╪lt fejlц╘cе╠
- vagy VBR audiцЁval, de nem VBR-kц╘sz kцЁdolцЁval kц╘szц╜tett fц║jlok A/V
- deszinkronizц║ciцЁhoz vezetnek ezzel a mцЁdszerrel (legtц╤bbszц╤r pц╤rgetц╘snц╘l).
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">interleaving-alapц╨:</emphasis> Nem hasznц║lja a
- fejlц╘c bitrц║ta ц╘rtц╘kц╘t, inkц║bb az ц║tlapolt audiцЁ ц╘s videцЁ darabok
- relatц╜v pozц╜ciцЁjц║t nц╘zi, lehetе▒vц╘ tц╘ve ezzel a VBR audiцЁ-s, rosszul
- kцЁdolt fц║jlok lejц║tszц║sц║t.
-</para></listitem>
-</itemizedlist>
-</para>
-
-<para>
-Bц║rmelyik audiцЁ ц╘s videцЁ codec engedц╘lyezett, de vedd figyelembe, hogy a
-VBR audiцЁt a legtц╤bb lejц║tszцЁ nem tц║mogatja. A fц║jl formц║tum lehetе▒vц╘ teszi
-a VBR audiцЁ hasznц║latц║t, de a legtц╤bb lejц║tszцЁ CBR audiцЁt vц║r, ц╜gy elakadnak
-a VBR-ben. A VBR ritka ц╘s a Microsoft AVI specifikц║ciцЁi csak a CBR audiцЁt
-ц╜rjц║k le. Azt is ц╘szre lehet venni, hogy a legtц╤bb AVI kцЁdolцЁ/multiplexelе▒
-hibц║s fц║jlt kц╘szц╜t VBR audiцЁ hasznц║latakor.
-Csak kц╘t ismert kivц╘tel van: a <application>NanDub</application> ц╘s a
-<link linkend="mencoder"><application>MEncoder</application></link>.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="asf-wmv">
-<title>ASF/WMV fц║jlok</title>
-
-<para>
-Az ASF (Active Streaming Format) szintц╘n a MicrosofttцЁl szц║rmazik. Az ASF-nek
-kц╘tfajta verziцЁjц║t kц╘szц╜tettц╘k el, v1.0 ц╘s v2.0. A v1.0-t a sajц║t mц╘dia
-eszkц╤zeik hasznц║ljц║k (<application>Windows Media Player</application> ц╘s
-<application>Windows Media Encoder</application>) ц╘s nagyon titkos. A
-v2.0 nyilvц║nos ц╘s szabadalmaztatott :). Termц╘szetesen kц╪lц╤nbц╤znek,
-semmilyen kompatibilitц║s nincs kц╤ztц╪k (ez is csak egy jogi jц║tц╘k).
-Az <application>MPlayer</application> csak a v1.0-t tц║mogatja, mivel mц╘g
-soha senki sem lц║tott v2.0 fц║jlokat :). Figyelj rц║, hogy az ASF fц║jlok
-manapsц║g <filename>.WMA</filename> vagy <filename>.WMV</filename> kiterjesztц╘sе╠ek.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="mov">
-<title>QuickTime/MOV fц║jlok</title>
-
-<para>
-Ezeket a formц║tumokat az Apple fejlesztette ki, ц╘s bц║rmilyen codec-et
-tartalmazhatnak, CBR-t vagy VBR-t. Legtц╤bbszц╤r <filename>.QT</filename> vagy
-<filename>.MOV</filename> kiterjesztц╘sц╪k van. Megjegyzendе▒, hogy miцЁta az
-MPEG-4 csapat a QuickTime-ot vц║lasztotta az MPEG-4 javasolt fц║jlformц║tumц║nak,
-a MOV fц║jlaik <filename>.MPG</filename> vagy <filename>.MP4</filename>
-kiterjesztц╘ssel jц╤nnek (ц╘rdekes mцЁdon a videцЁ ц╘s audiцЁ folyamok ezekben a
-fц║jlokban igazi MPG ц╘s AAC fц║jlok. Mц╘g ki is tudod е▒ket csomagolni a
-<option>-dumpvideo</option> ц╘s <option>-dumpaudio</option> kapcsolцЁkkal.).
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="vivo">
-<title>VIVO fц║jlok</title>
-
-<para>
-Az <application>MPlayer</application> ц╤rц╤mmel demuxц║lja a VIVO fц║jl formц║tumokat.
-A legnagyobb hц║trц║nya a formц║tumnak az, hogy nincs index blokkja, sem
-fix csomag mц╘rete vagy szinkron bц║jtja, ц╘s a legtц╤bb fц║jlban mц╘g a
-kulcs kц╘pkockц║k is hiц║nyoznak, ц╜gy felejtsd el a pц╤rgetц╘st!
-</para>
-
-<para>
-A VIVO/1.0 fц║jlok videцЁ codec-je szabvц║nyos
-<emphasis role="bold">h.263</emphasis>.
-A VIVO/2.0 fц║jlok videцЁ codec-je mцЁdosult, nem szabvц║nyos
-<emphasis role="bold">h.263v2</emphasis>. Az audio ugyan az, valцЁszц╜nе╠leg
-<emphasis role="bold">g.723 (standard)</emphasis> vagy
-<emphasis role="bold">Vivo Siren</emphasis>.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="fli">
-<title>FLI fц║jlok</title>
-
-<para>
-A <emphasis role="bold">FLI</emphasis> egy nagyon rц╘gi fц║jl formц║tum,
-melyet az Autodesk Animator hasznц║lt, de gyakoran hasznц║ljц║k rц╤vid
-animц║ciцЁkhoz a neten.
-Az <application>MPlayer</application> demuxц║lja ц╘s dekцЁdolja a FLI
-filmeket ц╘s mц╘g keresni is tud bennц╪k (hasznos a <option>-loop</option>
-kapcsolцЁval tц╤rtц╘nе▒ ciklikus lejц║tszц║snц║l). A FLI fц║jlokban nincs kulcs
-kц╘pkocka, ц╜gy a kц╘p egy rц╤vid idе▒re zavaros lesz a keresц╘s utц║n.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="realmedia">
-<title>RealMedia (RM) fц║jlok</title>
-
-<para>
-Igen, az <application>MPlayer</application> tudja olvasni (demuxц║lni)
-a RealMedia (<filename>.rm</filename>) fц║jlokat.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="nuppelvideo">
-<title>NuppelVideo fц║jlok</title>
-
-<para>
-A NuppelVideo
-egy TV grab-belе▒ eszkц╤z (AFAIK:). Az <application>MPlayer</application> tudja
-olvasni a <filename>.NUV</filename> fц║jlait (csak NuppelVideo 5.0). Ezek a
-fц║jlok tartalmazhatnak tц╤mц╤rц╜tetlen YV12, YV12+RTJpeg tц╤mц╤rц╜tett,
-YV12 RTJpeg+lzo tц╤mц╤rц╜tett ц╘s YV12+lzo tц╤mц╤rц╜tett kц╘pkockц║kat.
-Az <application>MPlayer</application> dekцЁdolja (ц╘s
-<emphasis role="bold">kцЁdolja</emphasis>
-a <application>MEncoder</application>rel MPEG-4-be (DivX)/stb.!) е▒ket.
-A keresц╘s mе╠kц╤dik.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="yuv4mpeg">
-<title>yuv4mpeg fц║jlok</title>
-
-<para>
-A <ulink url="http://mjpeg.sf.net">yuv4mpeg / yuv4mpeg2</ulink>
-egy az <ulink url="http://mjpeg.sf.net">mjpegtools programok</ulink>
-ц║ltal hasznц║lt fц║jlformц║tum. Grab-belheted, kц╘szц╜thetsz, szе╠rheted vagy
-kцЁdolhatod az ilyen formц║tumц╨ videцЁkat ezekkel az eszkц╤zц╤kkel.
-A fц║jl formц║tum igazц║bцЁl tц╤mц╤rц╜tetlen YUV 4:2:0 kц╘pek sorozatц║bцЁl ц║ll.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="film">
-<title>FILM fц║jlok</title>
-
-<para>
-Ezt a formц║tumot a rц╘gi Sega Saturn CD-ROM jц║tц╘kok hasznц║ltц║k.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="roq">
-<title>RoQ fц║jlok</title>
-
-<para>
-A RoQ fц║jlok multimц╘dia fц║jlok, melyeket pц║r ID jц║tц╘k hasznц║l, pl. a Quake III ц╘s
-a Return to Castle Wolfenstein.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="ogg">
-<title>OGG/OGM fц║jlok</title>
-
-<para>
-Ez egy ц╨j fц║jl formц║tum a
-<ulink url="http://www.xiph.org">Xiph.Org Alapц╜tvц║ny</ulink>tцЁl.
-Bц║rmilyen videцЁ ц╘s audiцЁ codec-et tartalmazhat, CBR vagy VBR. El kell vц╘gezned
-a <systemitem class="library">libogg</systemitem> ц╘s a
-<systemitem class="library">libvorbis</systemitem> telepц╜tц╘sц╘t az
-<application>MPlayer</application> fordц╜tц║sa elе▒tt, hogy le tudd jц║tszani
-ezeket a fц║jlokat.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="sdp">
-<title>SDP fц║jlok</title>
-
-<para>
-Az <ulink url="ftp://ftp.rfc-editor.org/in-notes/rfc2327.txt">SDP</ulink> egy
-IETF szabvц║nyos formц║tum videцЁ ц╘s/vagy audiцЁ RTP folyamok leц╜rц║sц║hoz.
-("<ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink>"
-szц╪ksц╘ges.)
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="pva">
-<title>PVA fц║jlok</title>
-
-<para>
-A PVA egy MPEG-szerе╠ formц║tum, melyet a DVB TV kц║rtyц║k szoftvere hasznц║l (pl.:
-<application>MultiDec</application>,
-<application>WinTV</application> Windows alatt).
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="nsv">
-<title>NSV fц║jlok</title>
-
-<para>
-NSV (NullSoft Video) egy a <application>Winamp</application> lejц║tszцЁ ц║ltal
-hasznц║lt formц║tum audio ц╘s video stream-elц╘shez.
-A videцЁ VP3, VP5 vagy VP6, az audiцЁ MP3, AAC vagy VLB.
-Az csak audiцЁt tartalmazцЁ fц║jlnak <filename>.nsa</filename> kiterjesztц╘se van.
-Az <application>MPlayer</application> mindkц╘t NSV folyamot ц╘s fц║jlt le tudja
-jц║tszani.
-Meg szeretnц╘m jegyezni, hogy a
-<ulink url="http://www.winamp.com">Winamp oldalц║n</ulink> a legtц╤bb fц║jl VLB audiцЁt
-hasznц║l, amit nem lehet dekцЁdolni mц╘g. Ezenkц╜vц╪l tц╤bb stream az oldalon kц╪lц╤n
-szц╘tcsomagolцЁ rц╘teget igц╘nyel, amit mц╘g el kellene kц╘szц╜teni (ezek a fц║jlok
-ц╨gyis lejц║tszhatatlanok, mert VLB audiцЁt hasznц║lnak).
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="matroska">
-<title>Matroska fц║jlok</title>
-
-<para>
-A Matroska egy nyц╜lt kontц╘ner formц║tum.
-Tovц║bbi infцЁk a <ulink url="http://www.matroska.org/">hivatalos weboldalukon</ulink> talц║lhatцЁak.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="nut">
-<title>NUT fц║jlok</title>
-
-<para>
-A NUT az <application>MPlayer</application>es ц╘s az <application>FFmpeg</application>es
-emberkц╘k ц║ltal kifejlesztett kontц╘ner formц║tum. Mindkц╘t projekt tц║mogatja.
-Tovц║bbi infцЁkat a <ulink url="http://www.nut-container.org/">hivatalos weboldalon</ulink> olvashatsz.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="gif">
-<title>GIF fц║jlok</title>
-
-<para>
-A <emphasis role="bold">GIF</emphasis> egy gyakori web-es grafikus formц║tum.
-Kц╘t verziцЁja van a GIF specifikц║ciцЁnak, GIF87a ц╘s GIF89a. A fе▒ kц╪lц╤nbsц╘g az,
-hogy a GIF89a megengedi az animц║ciцЁt. Az <application>MPlayer</application>
-tц║mogatja mindkц╘t formц║tumot a <systemitem class="library">libungif</systemitem>
-vagy mц║s libgif-kompatibilis fц╪ggvц╘nykц╤nyvtц║r segц╜tsц╘gц╘vel. A nem animц║lt GIF-ek
-egy kц╘pkockц║t tartalmazцЁ videцЁkц╘nt lesznek megjelenц╜tve.
-(Hasznц║ld a <option>-loop</option> ц╘s a <option>-fixed-vo</option> kapcsolцЁkat
-a hosszabb megjelenц╜tц╘shez.)
-</para>
-
-<para>
-Az <application>MPlayer</application> jelenleg nem tц║mogatja a keresц╘st
-a GIF fц║jlokban. A GIF fц║jlok nem szц╪ksц╘gszerе╠en fix kц╘pkocka mц╘retе╠ek,
-sem fix framrц║tц║jц╨ak. Inkц║bb minden egyes kц╘pkocka fц╪ggetlen mц╘retе╠ ц╘s
-meghatц║rozott helyzetе╠ egy fix mц╘retе╠ mezе▒n. A framerц║tц║t egy opcionц║lis
-blokk vezц╘rli minden egyes kц╘pkocka elе▒tt, ami leц╜rja a kц╤vetkezе▒
-kц╘pkocka kц╘sleltetц╘sц╘t centisecundumokban.
-</para>
-
-<para>
-A szabvц║nyos GIF fц║jlok 24-bites RGB kц╘pkockц║kat tartalmaznak legtц╤bbszц╤r
-egy 8-bites indexelt palettц║val. Ezeket a kц╘pkockц║k legtц╤bbszц╤r LZW-vel
-tц╤mц╤rц╜tettek, habц║r nц╘hц║ny GIF kцЁdolцЁ tц╤mц╤rц╜tetlen kц╘pkockц║kat kц╘szц╜t,
-hogy elkerц╪ljц╘k az LZW tц╤mц╤rц╜tц╘s szabadalmц║nak megsц╘rtц╘sц╘t.
-</para>
-
-<para>
-Ha a disztribц╨ciцЁdban nincs <systemitem class="library">libungif</systemitem>,
-tц╤ltsd le a
-<ulink url="http://sourceforge.net/projects/libungif">libungif
-weboldalц║rцЁl</ulink>. Bе▒vebb technikai informц║ciцЁkц╘rt vess egy pillantц║st a
-<ulink url="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF89a specifikц║ciцЁra</ulink>.
-</para>
-</sect2>
-</sect1>
-
-
-<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
-
-
-<sect1 id="audio-formats">
-<title>AudiцЁ formц║tumok</title>
-
-<para>
-Az <application>MPlayer</application> egy <emphasis role="bold">film</emphasis>
-ц╘s nem egy <emphasis role="bold">zene</emphasis> lejц║tszцЁ, ennek ellenц╘re
-le tud jц║tszani nц╘hц║ny audiцЁ fц║jl formц║tumot (az alц║bbi rц╘szben vannak felsorolva).
-Nem javaslom az <application>MPlayer</application> ilyen formц║ban tц╤rtц╘nе▒ hasznц║latц║t,
-jobb ha <ulink url="http://www.xmms.org">XMMS</ulink>-t hasznц║lsz.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="mp3">
-<title>MP3 fц║jlok</title>
-
-<para>
-Bizonyos MP3 <application>MPlayer</application>rel tц╤rtц╘nе▒ lejц║tszц║sakor
-problц╘mц║id lehetnek, mert rosszul, MPEG-kц╘nt ismeri fel ц╘s vagy rosszul
-vagy sehogy sem jц║tsza le. Ez nem javц╜thatцЁ anц╘lkц╪l, hogy ne tц╤rц╤lnц╘nk
-bizonyos sц╘rц╪lt MPEG fц║jlok lejц║tszц║sц║nak tц║mogatц║sц║t, ц╜gy a belц║thatцЁ
-jц╤vе▒ben ez ц╜gy is marad. A <option>-demuxer</option> kapcsolцЁ, melyet a man
-oldal ц╜r le, segц╜thet ezekben az esetekben.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="ogg-vorbis">
-<title>OGG/OGM fц║jlok (Vorbis)</title>
-
-<para>
-Megfelelе▒en telepц╜tett
-<systemitem class="library">libogg</systemitem> ц╘s
-<systemitem class="library">libvorbis</systemitem> kell hozzц║.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="cdda">
-<title>CD audio</title>
-
-<para>
-Az <application>MPlayer</application> fel tudja hasznц║lni a <application>cdparanoia</application>-t
-CDDA (Audio CD) lejц║tszц║sц║hoz. A <application>cdparanoia</application> jellemzе▒inek
-felsorolц║sa ц║tlц╘pi ezen fejezet kereteit.
-</para>
-
-<para>
-Lц║sd a man oldal <option>-cdda</option> kapcsolцЁra vonatkozцЁ rц╘szц╘t, melynek a segц╜tsц╘gц╘vel
-kapcsolцЁkat adhatsz tovц║bb a <application>cdparanoia</application>-nak.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="xmms">
-<title>XMMS</title>
-
-<para>
-Az <application>MPlayer</application> fel tudja hasznц║lni az <application>XMMS</application>
-bemeneti plugin-jeit tц╤bb fц║jl formц║tum lejц║tszц║sц║hoz. Van plugin SNES jц║tц╘k hangok, SID
-hangok (Commodore 64), sok Amiga formц║tum, .xm, .it, VQF, Musepack, Bonk,
-ц╘s szц║mos egyц╘b lejц║tszц║sц║hoz. Megtalц║lhatцЁak az
-<ulink url="http://www.xmms.org/plugins.php?category=input">XMMS bemeneti plugin oldalц║n</ulink>.
-</para>
-
-<para>
-Ehhez a kц╘pessц╘ghez <application>XMMS</application> ц╘s
-<filename>./configure --enable-xmms</filename> kapcsolцЁval fordц╜tott
-<application>MPlayer</application> kell.
-</para>
-</sect2>
-</sect1>
-
-</chapter>
diff --git a/DOCS/xml/pl/encoding-guide.xml b/DOCS/xml/pl/encoding-guide.xml
index 8b0a6d5c58..cbb7c07f4f 100644
--- a/DOCS/xml/pl/encoding-guide.xml
+++ b/DOCS/xml/pl/encoding-guide.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with 1.32 -->
+<!-- synced with 27843 -->
<!-- Opiekun: Torinthiel -->
<!-- INCOMPLETE!!!! -->
<chapter id="encoding-guide">
@@ -30,7 +30,7 @@
<para>
Ciд≥е╪ko jest pokazaд┤ ksiд┘е╪kowy przepis na tworzenie ripu DVD bardzo wysokiej
jakoе⌡ci. Trzeba wziд┘д┤ pod uwagд≥ kilka czynnikцЁw, i powinieneе⌡ rozumieд┤
- szczegцЁе┌y albo masz duе╪д┘ szansд≥ е╪e nie bд≥dziesz zadowolony z wynikцЁw.
+ szczegцЁе┌y procesu, albo jest duе╪a szansa е╪e nie bд≥dziesz zadowolony z wynikцЁw.
Poniе╪ej zbadamy niektцЁre problemy i pokaе╪emy przykе┌ad. Zakе┌adamy е╪e uе╪ywasz
<systemitem class="library">libavcodec</systemitem> do kodowania obrazu,
chociaе╪ ta sama teoria dziaе┌д┘ teе╪ przy innych kodekach.
@@ -46,12 +46,15 @@
Ciebie mд┘dre decyzje.
</para>
+<!-- ********** -->
+
<sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
<title>Przygotowanie do kodowania: Identyfikowanie materiaе┌u е╨rцЁdе┌owego
i framerate</title>
+
<para>
- Zanim w ogцЁle zaczniesz myе⌡leд┤ o kodowaniu filmu, musisz podjд┘д┤ kilka
- poczд┘tkowych krokцЁw.
+ Zanim w ogцЁle zaczniesz myе⌡leд┤ o kodowaniu filmu, musisz przejе⌡д┤ kilka
+ wstд≥pnych krokцЁw.
</para>
<para>
@@ -61,14 +64,14 @@ i framerate</title>
satelitarnej), bд≥dzie w jednym z dwцЁch formatцЁw: NTSC w Ameryce PцЁе┌nocnej
i Japonii, PAL w Europie itp.
Trzeba sobie jednak zdawaд┤ sprawд≥ z tego, е╪e jest to tylko format do
- prezentacji w telewizji, i czд≥sto <emphasis role="bold">ne</emphasis> jest
+ prezentacji w telewizji, i czд≥sto <emphasis role="bold">nie</emphasis> jest
oryginalnym formatem filmu.
Doе⌡wiadczenie pokazuje е╪e filmy NTSC sд┘ trudniejsze do kodowania, poniewaе╪
jest wiд≥cej elementцЁw do zidentyfikowania w е╨rцЁdle.
е╩eby zrobiд┤ odpowienie kodowanie musisz znaд┤ oryginalny format filmu.
Nieuwzglд≥dnienie tego skutkuje wieloma wadami wynikowego pliku, na przykе┌ad
brzydkie artefakty przeplotu i powtцЁrzone albo zagubione klatki.
- Poza tym е╪e sд┘ pbrzydkie, artefakty sд┘ teе╪ szkodliwe dla kodowania:
+ Poza tym е╪e sд┘ brzydkie, artefakty sд┘ teе╪ szkodliwe dla kodowania:
Dostaniesz gorszд┘ jakoе⌡д┤ na jednostkд≥ bitrate.
</para>
@@ -87,18 +90,18 @@ i framerate</title>
<emphasis role="bold">Film PAL</emphasis>: Nagrywany kamerд┘ video PAL
z prд≥dkoе⌡ciд┘ 50 pцЁl na sekundд≥.
Pole skе┌ada siд≥ tylko z parzystych albo nieparzystych linii klatki.
- Telewizja byе┌a projektowana by odе⌡wierzaд┤ je naprzemiennie, jako tania forma
- analogowej kompresji.
+ Telewizja byе┌a projektowana by odе⌡wierzaд┤ je naprzemiennie, w charakterze
+ taniej formy analogowej kompresji.
Ludzkie oko podobno kompensuje ten efekt, ale jeе⌡li zrozumiesz przeplot
nauczysz siд≥ go widzieд┤ teе╪ w telewizji i nigdy juе╪ nie bд≥dziesz z niej
- zadowolony.
+ ZADOWOLONY.
Dwa pola <emphasis role="bold">nie</emphasis> dajд┘ peе┌nej klatki, poniewaе╪
sд┘ uchwycone co 1/50 sekundy, wiд≥c nie pasujд┘ do siebie, chyba е╪e nie ma
ruchu.
</para></listitem>
<listitem><para>
<emphasis role="bold">Film NTSC</emphasis>: Nagrany kamerд┘ NTSC z prд≥dkoе⌡ciд┘
- 6000/1001 pцЁl na sekundд≥, albo 60 pцЁl na sekundд≥ w erze przedkolorowej.
+ 60000/1001 pцЁl na sekundд≥, albo 60 pцЁl na sekundд≥ w erze przedkolorowej.
Poza tym podobny do PAL.
</para></listitem>
<listitem><para>
@@ -116,6 +119,7 @@ i framerate</title>
</itemizedlist>
</sect3>
+
<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
<title>Identyfikowanie materiaе┌u е╨rцЁdе┌owego</title>
<para>
@@ -131,8 +135,8 @@ i framerate</title>
na klatkach a inne na polach.
<emphasis role="bold">Zawsze</emphasis> gdy film jest przygotowywany do
wyе⌡wietlania w telewizji jest przeksztaе┌cany na format oparty na polach.
- Rozliczne metody ktцЁrymi siд≥ tego dokonuje sд┘ wspцЁlnie nazywane "pulldown",
- a niesе┌awne "3:2 telecine" z NTSC jest jednym z jego rodzajцЁw.
+ Rozliczne metody ktцЁrymi siд≥ tego dokonuje sд┘ wspцЁlnie nazywane "telecine",
+ a niesе┌awne "3:2 pulldown" z NTSC jest jednym z jego rodzajцЁw.
Jeе╪eli oryginaе┌ nie byе┌ teе╪ oparty na polach (z tд┘ samд┘ prд≥dkoе⌡ciд┘),
dostajesz film w innym formacie niе╪ oryginaе┌.
</para>
@@ -164,19 +168,20 @@ i framerate</title>
<listitem><para>
<emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Uе╪ywane do pokazywania
materiaе┌цЁw 30fps na NTSC.
- Przyjemne, dokе┌adnie jak pulldown 2:2 PAL.
+ Przyjemne, tak jak pulldown 2:2 PAL.
</para></listitem>
</itemizedlist>
<para>
Sд┘ teе╪ metody konwersji miд≥dzy filmami PAL i NTSC, ale ten temat
wykracza poza zakres tego podrд≥cznika.
- Jeе⌡li natkniesz siд≥ na taki film, i chcesz go zakodowaд┤, to najwiд≥ksze
- szanse masz odnajdujд┘c kopiд≥ w oryginalnym formacie.
+ Jeе⌡li natkniesz siд≥ na taki film i chcesz go zakodowaд┤, to najwiд≥ksze
+ szanse masz robiд┘c kopiд≥ w oryginalnym formacie.
Konwersja miд≥dzy tymi dwoma formatami jest wysoce destrukcyjna i nie moе╪e
- zostaд┤ czysto odwrцЁcona, wiд≥c kodowanie bд≥dzie o wiele gorszej jakoе⌡ci jeе⌡li
+ zostaд┤ е┌adnie odwrцЁcona, wiд≥c kodowanie bд≥dzie o wiele gorszej jakoе⌡ci jeе⌡li
jest robione z przekonwertowanego е╨rцЁdе┌a.
</para>
+
<para>
Gdy film jest zapisywany na DVD, kolejne pary pцЁl sд┘ zapisywane jako klatka,
pomimo tego е╪e nie sд┘ przezaczone do wyе⌡wietlania razem.
@@ -194,6 +199,7 @@ i framerate</title>
telecine" (hard-telecine), gdzie pola sд┘ faktycznie powtцЁrzone
w zakodowanym MPEG-2.
</para>
+
<para>
Procedury radzenia sobie z takimi przypadkami bд≥dд┘ omцЁwione
<link linkend="menc-feat-telecine">w dalszej czд≥е⌡ci przewodnika</link>.
@@ -205,7 +211,7 @@ i framerate</title>
<title>Regiony NTSC:</title>
<listitem><para>
Jeе⌡li <application>MPlayer</application> wyе⌡wietla w trakcie oglд┘dania filmu
- е╪e framerate zostaе┌o zmienione na 24000/1001, i nigdy nie powraca, to jest
+ е╪e framerate zostaе┌o zmienione na 24000/1001 i nigdy nie powraca, to jest
to prawie na pewno progresywny materiaе┌ na ktцЁrym zastosowano "miд≥kkie
telecine".
</para></listitem>
@@ -253,13 +259,16 @@ i framerate</title>
-speed albo odtwarzaд┤ klatka po klatce.
SprцЁbuj uе╪yд┤ opcji <option>-speed</option> 0.2 е╪eby oglд┘daд┤ film bardzo
wolno, albo naciskaj wielokrotnie klawisz "<keycap>.</keycap>" е╪eby
- wyе⌡wietlaд┤ jednд┘ klatkд≥ na raz. Moе╪e to pomцЁc zidentyfikowaд┤ wzorzec jeе⌡li
+ wyе⌡wietlaд┤ klatka po klatce.
+ Moе╪e to pomцЁc zidentyfikowaд┤ wzorzec jeе⌡li
nie moе╪esz go dostrzec przy peе┌nej prд≥dkoе⌡ci.
</para>
</note>
</sect3>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-dvd-mpeg4-2pass">
<title>Staе┌y kwantyzator a tryb wieloprzebiegowy</title>
@@ -286,8 +295,7 @@ i framerate</title>
na bitrate w przyszе┌ych scenach, wiд≥c nie mogд┘ na dе┌ugo przekraczaд┤
wymaganego bitrate.
Bardziej zaawansowane tryby, takie jak kodowanie wieloprzebiegowe, potrafiд┘
- wziд┘д┤ pod uwagд≥ statystyki z poprzednich przebiegцЁw; to naprawia wyе╪ej
- wymieniony problem.
+ wziд┘д┤ pod uwagд≥ statystyki z poprzednich przebiegцЁw, co naprawia ten problem.
</para>
<note><title>Uwaga:</title>
@@ -295,7 +303,7 @@ i framerate</title>
Wiд≥kszoе⌡д┤ kodekцЁw obsе┌ugujд┘cych kodowanie ABR obsе┌uguje tylko kodowanie
dwuprzebiegowe, podczas gdy niektцЁre inne, na przykе┌ad
<systemitem class="library">x264</systemitem> albo
- <systemitem class="library">XviD</systemitem> potrafiд┘ wykonywaд┤ wiele
+ <systemitem class="library">Xvid</systemitem> potrafiд┘ wykonywaд┤ wiele
przebiegцЁw, z lekkд┘ poprawд┘ jakoе⌡ci po kaе╪dym przebiegu. Jednak ta poprawa
nie jest zauwaе╪alna ani mierzalna po okoе┌o 4tym przebiegu.
Dlatego teе╪, w tej czд≥е⌡ci, tryb dwuprzebiegowy i wieloprzebiegowy bд≥dд┘
@@ -326,7 +334,7 @@ i framerate</title>
kwantyzatora, to prawie na pewno niszczysz film.
е╩eby tego uniknд┘д┤, powinieneе⌡ pewnie zmniejszyд┤ rozdzielczoе⌡д┤ filmu, metodд┘
opisanд┘ dalej.
- OgцЁlnie, jeе⌡li troszczysz siд≥ o jakoе⌡д┤, powinieneе⌡ unikaд┤ CBR.
+ OgцЁlnie, jeе⌡li zaleе╪y Ci na jakoе⌡ci, powinieneе⌡ unikaд┤ CBR.
</para>
<para>
@@ -345,8 +353,8 @@ i framerate</title>
niezaleе╪nie od tego czy makroblok tego wymaga czy nie. To znaczy е╪e moе╪na by
byе┌o zastosowaд┤ do makrobloku wyе╪szy kwantyzator bez utraty postrzegalnej
jakoе⌡ci. Dlaczego marnowaд┤ bity na niepotrzebnie niski kwantyzator?
- Mikroprocesor ma tyle cykli ile jest czasu, ale jest tylko pewna iloе⌡д┤ bitцЁw
- na twardym dysku.
+ Mikroprocesor ma tyle cykli ile jest czasu, ale jest tylko ograniczona iloе⌡д┤
+ bitцЁw na twardym dysku.
</para>
<para>
@@ -371,7 +379,7 @@ i framerate</title>
<para>
Poniewaе╪ jesteе⌡ juе╪ przekonany е╪e prawidе┌owym wyborem sд┘ dwa przebiegi,
prawdziwym pytaniem jest jakiego bitrate uе╪yд┤. Nie ma jednej odpowiedzi.
- Idealnie chcesz wybraд┤ bitrate bд≥dд┘cy najbliе╪ej rцЁwnowagi miд≥dzy jakoе⌡ciд┘
+ Idealnie chcesz wybraд┤ bitrate bд≥dд┘cy najlepszym kompromisem miд≥dzy jakoе⌡ciд┘
a wielkoе⌡ciд┘ pliku. To siд≥ zmienia w zaleе╪noе⌡ci od filmu.
</para>
@@ -391,153 +399,149 @@ i framerate</title>
wiд≥c powinieneе⌡ <link linkend="menc-feat-dvd-mpeg4-audio">е⌡ciд┘gnд┘д┤ go</link>
najpierw.
Moе╪esz wyliczyд┤ bitrate z nastд≥pujд┘cego rцЁwnania:
- <systemitem>bitrate = (wielkoе⌡д┤_docelowa_w_MBajtach - wielkoе⌡д┤_dе╨wiд≥ku_w_MB)
+ <systemitem>bitrate = (wielkoе⌡д┤_docelowa_w_MBajtach - wielkoе⌡д┤_dе╨wiд≥ku_w_MBajtach)
* 1024 * 1024 / dе┌ugoе⌡д┤_w_sekundach * 8 / 1000</systemitem>
- Na przykе┌ad by wcisnoе⌡д┤ dwugodzinny film na pе┌ytkд≥ 702MB, z 60MB е⌡cieе╪ki
+ Na przykе┌ad by wcisnд┘д┤ dwugodzinny film na pе┌ytkд≥ 702MB, z 60MB е⌡cieе╪ki
dе╨wiд≥kowej, bitrate video musi byд┤:
<systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
= 740kbps</systemitem>
</para>
-
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-constraints">
-<title>Constraints for efficient encoding</title>
+<title>Ograniczenia efektywnego kodowania</title>
<para>
- Due to the nature of MPEG-type compression, there are various
- constraints you should follow for maximal quality.
- MPEG splits the video up into 16x16 squares called macroblocks,
- each composed of 4 8x8 blocks of luma (intensity) information and two
- half-resolution 8x8 chroma (color) blocks (one for red-cyan axis and
- the other for the blue-yellow axis).
- Even if your movie width and height are not multiples of 16, the
- encoder will use enough 16x16 macroblocks to cover the whole picture
- area, and the extra space will go to waste.
- So in the interests of maximizing quality at a fixed filesize, it is
- a bad idea to use dimensions that are not multiples of 16.
+Ze wzglд≥du na naturд≥ kodowania typu MPEG istniejд┘ rцЁе╪ne ograniczenia ktцЁrych
+warto siд≥ trzymaд┤ е╪eby osiд┘gnд┘д┤ najlepszд┘ jakoе⌡д┤.
+MPEG dzieli obraz na kwadraty 16x16 pikseli nazywane makroblokami,
+kaе╪dy z nich skе┌ada siд≥ z 4 blokцЁw 8x8 informacji o jasnoе⌡ci (luminancja, luma)
+i dwцЁch 8x8 z poе┌owд┘ rozdzielczoе⌡ci (jeden na skе┌adowд┘ czerwono-morskд┘, drugi
+na niebiesko-е╪цЁе┌tд┘).
+Nawet jeе⌡li wysokoе⌡д┤ i szerokoе⌡д┤ filmu nie sд┘ wielokrotnoе⌡ciami 16,
+koder uе╪yje tyle makroblokцЁw е╪eby przykryд┤ caе┌y obszar obrazu,
+dodatkowa przestrzeе└ zostanie zmarnowana.
+Zatem w interesie zwiд≥kszenai jakoе⌡ci przy utrzymaniu wielkoе⌡ci pliku kiepskim
+pomysе┌em jest uе╪ywanie wymiarцЁw ktцЁre nie sд┘ wielokrotnoе⌡ciд┘ 16.
</para>
<para>
- Most DVDs also have some degree of black borders at the edges. Leaving
- these in place can hurt quality in several ways.
+Wiд≥kszoе⌡д┤ DVD ma teе╪ jakieе⌡ czarne ramki na brzegach.
+Zostawienie ich tam <emphasis role="bold">mocno</emphasis> zaszkodzi jakoе⌡ci
+na kilka sposobцЁw.
</para>
<orderedlist>
<listitem>
-<para>
- MPEG-type compression is also highly dependent on frequency domain
- transformations, in particular the Discrete Cosine Transform (DCT),
- which is similar to the Fourier transform. This sort of encoding is
- efficient for representing patterns and smooth transitions, but it
- has a hard time with sharp edges. In order to encode them it must
- use many more bits, or else an artifact known as ringing will
- appear.
-</para>
+ <para>
+ Kompresje typu MPEG sд┘ zaleе╪ne od transformat przestrzeni czд≥stotliwoе⌡ci,
+ a dokе┌adniej Dyskretnej Transformaty Cosinusowej (DCT), ktцЁra jest podobna do
+ transformaty Fouriera.
+ Ten sposцЁb kodowania jest efektywny przy wzorach i gе┌adkich przejе⌡ciach, ale
+ kiepsko sobie radzi z ostrymi krawд≥dziami.
+ е╩eby je zakoowaд┤, musi uе╪ywaд┤ o wiele wiд≥kszej liczby bitцЁw, albo wystд┘piд┘
+ artefakty znane jako pierе⌡cienie.
+ </para>
-<para>
- The frequency transform (DCT) takes place separately on each
- macroblock (actually each block), so this problem only applies when
- the sharp edge is inside a block. If your black borders begin
- exactly at multiple-of-16 pixel boundaries, this is not a problem.
- However, the black borders on DVDs rarely come nicely aligned, so
- in practice you will always need to crop to avoid this penalty.
-</para>
+ <para>
+ Transformacja czд≥stotliwoе⌡ci (DCT) jest stosowana osobno do kaе╪dego
+ makrobloku (tak na prawdд≥ do kaе╪dego bloku), wiд≥c ten problem istnieje tylko
+ gdy ostra krawд≥dе╨ jest wewnд┘trz bloku.
+ Jeе⌡li czarna ramka zaczyna siд≥ dokе┌adnie na krawд≥dzi 16-pikselowego bloku,
+ nie stwarza problemцЁw.
+ Jednakе╪e, rzadko kiedy takie ramki sд┘ е┌adnie wyrцЁwnane, wiд≥c zazwyczaj bд≥dzie
+ trzeba przyciд┘д┤ obraz е╪eby tego uniknд┘д┤.
+ </para>
</listitem>
</orderedlist>
<para>
- In addition to frequency domain transforms, MPEG-type compression uses
- motion vectors to represent the change from one frame to the next.
- Motion vectors naturally work much less efficiently for new content
- coming in from the edges of the picture, because it is not present in
- the previous frame. As long as the picture extends all the way to the
- edge of the encoded region, motion vectors have no problem with
- content moving out the edges of the picture. However, in the presence
- of black borders, there can be trouble:
+Poza transformatami przestrzeni czд≥stotliwoе⌡ci, kompresje typu MPEG uе╪ywajд┘
+wektorцЁw ruchu, by reprezentowaд┤ zmiany miд≥dzy sд┘siednimi klatkami.
+Oczywiе⌡cie wektory ruchu sд┘ mniej efektywne w stosunku do nowej treе⌡ci
+przychodzд┘cej z brzegцЁw obrazka, poniewaе╪ nie byе┌o jej na poprzedniej klatce.
+Jeе⌡li obraz rozciд┘ga siд≥ do krawд≥dzi zakodowanego regionu,
+wektory ruchu radzд┘ sobie z treе⌡ciд┘ wychodzд┘cд┘ poza krawд≥dzie.
+Jednak jeе⌡li sд┘ ramki, mogд┘ byд┤ kе┌opoty:
</para>
<orderedlist continuation="continues">
<listitem>
-<para>
- For each macroblock, MPEG-type compression stores a vector
- identifying which part of the previous frame should be copied into
- this macroblock as a base for predicting the next frame. Only the
- remaining differences need to be encoded. If a macroblock spans the
- edge of the picture and contains part of the black border, then
- motion vectors from other parts of the picture will overwrite the
- black border. This means that lots of bits must be spent either
- re-blackening the border that was overwritten, or (more likely) a
- motion vector will not be used at all and all the changes in this
- macroblock will have to be coded explicitly. Either way, encoding
- efficiency is greatly reduced.
-</para>
+ <para>
+ Dla kaе╪dego makrobloku, kompresja typu MPEG przechowuje wektor opisujд┘cy
+ ktцЁra czд≥е⌡д┤ poprzedniej klatki powinna byд┤ skopiowana do tego makrobloku jako
+ podstawa do przewidzenia nastд≥pnej klatki.
+ Zakodowane wtedy muszд┘ byд┤ tylko rцЁе╪nice.
+ Jeе⌡li makroblok zawiera fragment ramki, to wektory ruchu z pozostaе┌ych czeе⌡ci
+ obrazu zamaе╪д┘ obramowanie.
+ Oznacza to е╪e duе╪o bitцЁw bд≥dzie zuе╪ytych albo na jej powtцЁrne zaczernienie
+ albo (co bardziej prawdopodobne), wektor ruchu w ogцЁle nie bд≥dzie uе╪yty
+ i wszystkie zmiany w tym makrobloku bд≥dzie trzeba zakodowaд┤ bezpoе⌡rednio.
+ W obu przypadkach, bardzo cierpi na tym efektywnoе⌡д┤ kodowania.
+ </para>
-<para>
- Again, this problem only applies if black borders do not line up on
- multiple-of-16 boundaries.
-</para>
+ <para>
+ PowtцЁrnie, ten problem wystд≥puje tylko jeе⌡li ramki nie sд┘ na krawд≥dziach
+ 16-pikselowych blokцЁw.
+ </para>
</listitem>
<listitem>
-<para>
- Finally, suppose we have a macroblock in the interior of the
- picture, and an object is moving into this block from near the edge
- of the image. MPEG-type coding cannot say "copy the part that is
- inside the picture but not the black border." So the black border
- will get copied inside too, and lots of bits will have to be spent
- encoding the part of the picture that is supposed to be there.
-</para>
+ <para>
+ W koе└cu, przypuе⌡д┤my е╪e mamy makroblok wewnд┘trz obrazu i obiekt dostaje siд≥ do
+ niego z okolic krawд≥dzi.
+ Kodowanie typu MPEG nie potrafi powiedzieд┤ "skopiuj czд≥е⌡д┤ ktцЁra jeest
+ wewnд┘trz obraka, ale nie czarne obramowanie." Dlatego obramowanie teе╪
+ zostanie skopiowane i trzeba bд≥dzie zuе╪yд┤ sporo bitцЁw е╪eby zakodowaд┤ fragment
+ obrazu ktцЁry powinien tam byд┤.
+ </para>
-<para>
- If the picture runs all the way to the edge of the encoded area,
- MPEG has special optimizations to repeatedly copy the pixels at the
- edge of the picture when a motion vector comes from outside the
- encoded area. This feature becomes useless when the movie has black
- borders. Unlike problems 1 and 2, aligning the borders at multiples
- of 16 does not help here.
-</para>
+ <para>
+ Jeе⌡li obraz siд≥ga do krawд≥dzi zakodowanego obszaru, MPEG ma specjalne
+ optymalizacje do wielokrotnego kopiowania ostatniego rzд≥du pikseli jeе⌡li
+ wektor ruchu przychodzi z poza zakodoanego obszaru.
+ Staje siд≥ to bezuе╪yteczne gry obraz ma czarne obramowanie.
+ W odrцЁе╪nieniu od problemцЁw 1 i 2 tutaj nic nie pomoе╪e ustawienie obramowania
+ w odpowiednim miejscu.
+ </para>
</listitem>
-<listitem>
-<para>
- Despite the borders being entirely black and never changing, there
- is at least a minimal amount of overhead involved in having more
- macroblocks.
-</para>
-</listitem>
+<listitem><para>
+ Mimo tego, е╪e obramowanie jest caе┌kowicie czarne i nigdy siд≥ nie zmienia,
+ zawsze jest pewien narzut zwiд┘zany z wiд≥kszд┘ iloе⌡ciд┘ makroblokцЁw.
+</para></listitem>
</orderedlist>
<para>
- For all of these reasons, it is recommended to fully crop black
- borders. Further, if there is an area of noise/distortion at the edge
- of the picture, cropping this will improve encoding efficiency as
- well. Videophile purists who want to preserve the original as close as
- possible may object to this cropping, but unless you plan to encode at
- constant quantizer, the quality you gain from cropping will
- considerably exceed the amount of information lost at the edges.
+Ze wszystkich tych powodцЁw zalecane jest caе┌kowite wyciд≥cie czarnych obramowaе└.
+Dodatkowo, jeе⌡li przy krawд≥dziach jest obszar zakе┌цЁceе└/znieksztaе┌ceе└, obciд≥cie
+go rцЁwnieе╪ poprawi efektywnoе⌡д┤ kodowania.
+Puryе⌡ci, ktцЁrzy chcд┘ moе╪liwie dokе┌adnie zachowaд┤ oryginaе┌ mogд┘ siд≥ sprzeciwiaд┤,
+ale jeе⌡li nie planujesz uе╪ywaд┤ staе┌ego kwantyzatora to jakoе⌡д┤ uzyskana dziд≥ki
+skadrowaniu znaczд┘co przewyе╪szy utratд≥ informacji przy brzegach.
</para>
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-crop">
-<title>Cropping and Scaling</title>
+<title>Kadrowanie i skalowanie</title>
<para>
- Recall from the previous section that the final picture size you
- encode should be a multiple of 16 (in both width and height).
- This can be achieved by cropping, scaling, or a combination of both.
+Przypomnijmy z poprzedniej czд≥е⌡ci е╪e ostateczna wielkoе⌡д┤ (wysokoе⌡д┤ i szerokoе⌡д┤)
+obrazu do kodowania powinna byд┤ wielokrotnoе⌡ciд┘ 16.
+Moе╪na to osiд┘gnд┘д┤ kadrowaniem, skalowaniem albo kombinacjд┘ obydwu.
</para>
<para>
- When cropping, there are a few guidelines that must be followed to
- avoid damaging your movie.
- The normal YUV format, 4:2:0, stores chroma (color) information
- subsampled, i.e. chroma is only sampled half as often in each
- direction as luma (intensity) information.
- Observe this diagram, where L indicates luma sampling points and C
- chroma.
+Przy kadrowaniu, jest kilka reguе┌ ktцЁrych musimy przestrzegaд┤ by uniknд┘д┤
+uszkodzenia filmu.
+Zwykе┌y format YUV, 4:2:0, przechowuje wartoе⌡ci koloru podprцЁbkowane, czyli
+kolor jest prцЁbkowany o poе┌owд≥ rzadziej w kaе╪dym kierunku niе╪ jasnoе⌡д┤.
+SpцЁjrzmy na diagram, na ktцЁrym L oznacza punkty prцЁbkowania jasnoе⌡ci (luma)
+a C koloru (chroma).
</para>
<informaltable>
@@ -614,18 +618,17 @@ i framerate</title>
</informaltable>
<para>
- As you can see, rows and columns of the image naturally come in pairs.
- Thus your crop offsets and dimensions <emphasis>must</emphasis> be
- even numbers.
- If they are not, the chroma will no longer line up correctly with the
- luma.
- In theory, it is possible to crop with odd offsets, but it requires
- resampling the chroma which is potentially a lossy operation and not
- supported by the crop filter.
+Jak widaд┤, wiersze i kolumny obrazu w sposцЁb naturalny е┌д┘czд┘ siд≥ w pary.
+Dlatego przesuniд≥cia i wymiary kadrowania <emphasis>muszд┘</emphasis> byд┤
+liczbami parzystymi.
+Jeе⌡li nie sд┘, barwa nie bд≥dzie juе╪ dobrze dopasowana do jasnoе⌡ci.
+Teoretycznie moе╪liwe jest kadrowanie z nieparzystym przesuniд≥ciem, ale wymaga
+to przeprцЁbkowania kolorцЁw, co jest potencjalnie stratnд┘ operacjд┘ nie
+obsе┌ugiwanд┘ przez filtr kadrowania.
</para>
<para>
- Further, interlaced video is sampled as follows:
+Dalej, film z przeplotem jest kodowany jak poniе╪ej:
</para>
<informaltable>
@@ -658,8 +661,8 @@ i framerate</title>
<spanspec spanname="spa15-16" namest="col15" nameend="col16"/>
<tbody>
<row>
- <entry namest="col1" nameend="col8">Top field</entry>
- <entry namest="col9" nameend="col16">Bottom field</entry>
+ <entry namest="col1" nameend="col8">GцЁrne pole</entry>
+ <entry namest="col9" nameend="col16">Dolne pole</entry>
</row>
<row>
<entry>L</entry>
@@ -866,371 +869,391 @@ i framerate</title>
</informaltable>
<para>
- As you can see, the pattern does not repeat until after 4 lines.
- So for interlaced video, your y-offset and height for cropping must
- be multiples of 4.
+Jak widaд┤, wzцЁr powtarza siд≥ dopiero po 4 liniach.
+Dlatego przy filmie z przeplotem, pionowa wspцЁе┌rzд≥dna i wysokoе⌡д┤ kadrowania
+muszд┘ byд┤ wielokrotnoе⌡ciami 4.
</para>
<para>
- Native DVD resolution is 720x480 for NTSC, and 720x576 for PAL, but
- there is an aspect flag that specifies whether it is full-screen (4:3) or
- wide-screen (16:9). Many (if not most) widescreen DVDs are not strictly
- 16:9, and will be either 1.85:1 or 2.35:1 (cinescope). This means that
- there will be black bands in the video that will need to be cropped out.
+Podstawowд┘ rozdzielczoе⌡ciд┘ DVD jest 720x480 dla NTSC i 720x576 dla PAL, ale
+jest teе╪ flaga proporcji, ktцЁra okreе⌡la czy obraz jest ekranowy (4:3) czy
+panoramiczny (16:9).
+Wiele (jeе⌡li nie wiд≥kszoе⌡д┤) panoramicznych DVD nie jest dokе┌adnie 16:9 tylko
+raczej 1,85:1 lub 2,35:1 (cinescope).
+Oznacza to е╪e bд≥dzie czarne obramowanie na filmie, ktцЁre trzeba usunд┘д┤.
</para>
<para>
- <application>MPlayer</application> provides a crop detection filter that
- will determine the crop rectangle (<option>-vf cropdetect</option>).
- Run <application>MPlayer</application> with
- <option>-vf cropdetect</option> and it will print out the crop
- settings to remove the borders.
- You should let the movie run long enough that the whole picture
- area is used, in order to get accurate crop values.
+<application>MPlayer</application> dostarcza filtr wykrywania kadrowania
+(<option>-vf cropdetect</option>), ktцЁry okreе⌡li prostokд┘t kadrowania.
+Uruchom <application>MPlayera</application> z opcjд┘ <option>-vf
+cropdetect</option> a wydrukuje on ustawienia kadrowania potrzebne do usuniд≥cia
+obramowania.
+Powinieneе⌡ puе⌡ciд┤ film wystarczajд┘co dе┌ugo е╪eby zostaе┌ uе╪yty caе┌y obszar
+obrazu, inaczej wartoе⌡ci bд≥dд┘ niedokе┌adne.
</para>
<para>
- Then, test the values you get with <application>MPlayer</application>,
- using the command line which was printed by
- <option>cropdetect</option>, and adjust the rectangle as needed.
- The <option>rectangle</option> filter can help by allowing you to
- interactively position the crop rectangle over your movie.
- Remember to follow the above divisibility guidelines so that you
- do not misalign the chroma planes.
+Potem przetestuj otrzymane wartoе⌡ci z uе╪yciem
+<application>MPlayera</application>, przekazujд┘c opcje podane przez
+<option>cropdetect</option> i dostosowujд┘c prostokд┘t wedе┌ug potrzeb.
+Filtr <option>rectangle</option> moе╪e w tym pomцЁc, pozwalajд┘c na interaktywne
+ustawienie prostokд┘ta kadrowania na filmie.
+Pamiд≥taj, by trzymaд┤ siд≥ powyе╪szych reguе┌ podzielnoе⌡ci, е╪eby nie przestawiд┤
+pе┌aszczyzny koloru.
</para>
<para>
- In certain cases, scaling may be undesirable.
- Scaling in the vertical direction is difficult with interlaced
- video, and if you wish to preserve the interlacing, you should
- usually refrain from scaling.
- If you will not be scaling but you still want to use multiple-of-16
- dimensions, you will have to overcrop.
- Do not undercrop, since black borders are very bad for encoding!
+W pewnych przypadkach skalowanie moе╪e byд┤ niepoе╪д┘dane.
+Skalowanie w kierunku pionowym jest trudne przy filmie z przeplotem, a jeе⌡li
+chcesz zachowaд┤ przeplot, zazwyczaj powinieneе⌡ siд≥ wstrzymaд┤ od skalowania.
+Jeе⌡l nie chcesz skalowaд┤, ale nadal chcesz uе╪ywaд┤ wymiarцЁw bд≥dд┘cych wielokrotnoе⌡ciami 16 to musisz przekadrowaд┤.
+NIe naleе╪y niedokadrowywaд┤, bo obramowania sд┘ bardzo szkodliwe przy kodowaniu!
</para>
<para>
- Because MPEG-4 uses 16x16 macroblocks, you will want to make sure that each
- dimension of the video you are encoding is a multiple of 16 or else you
- will be degrading quality, especially at lower bitrates. You can do this
- by rounding the width and height of the crop rectangle down to the nearest
- multiple of 16.
- As stated earlier, when cropping, you will want to increase the Y offset by
- half the difference of the old and the new height so that the resulting
- video is taken from the center of the frame. And because of the way DVD
- video is sampled, make sure the offset is an even number. (In fact, as a
- rule, never use odd values for any parameter when you are cropping and
- scaling video.) If you are not comfortable throwing a few extra pixels
- away, you might prefer instead to scale the video instead. We will look
- at this in our example below.
- You can actually let the <option>cropdetect</option> filter do all of the
- above for you, as it has an optional <option>round</option> parameter that
- is equal to 16 by default.
+Poniewaе╪ MPEG-4 uе╪ywa makroblokцЁw 16x16, powinieneе⌡ siд≥ upewniд┤,
+е╪e kaе╪dy wymiar kodowanego filmu jest wielokrotnoе⌡ciд┘ 16, inaczej
+degradujemy jakoе⌡д┤, zwе┌aszcza przy niе╪szych bitrate.
+Moе╪na tego dokonaд┤ zaokrд┘glajд┘c wysokoе⌡д┤ i szerokoе⌡д┤ prostokд┘ta kadrowania do
+najbliе╪szej wielokrotnoе⌡ci 16.
+Jak powiedziano wczeе⌡niej, trzeba zwiд≥kszyд┤ przesuniд≥cie
+pionowe o poе┌owд≥ rцЁе╪nicy miд≥dzy starд┘ a nowд┘ wysokoе⌡ciд┘,
+е╪eby wynikowy film byе┌ brany ze е⌡rodka klatki.
+A ze wzglд≥du na sposцЁb w jaki prцЁbkowane jest DVD, upewnij siд≥ е╪e przesuniд≥cie
+jest parzyste (w zasadzie, stosuj siд≥ do reguе┌y, е╪eby nigdy nie uе╪ywaд┤
+nieparzystych wartoе⌡ci przy przycinaniu i skalowaniu obrazu).
+Jeе⌡li nie czujesz siд≥ dobrze odrzucajд┘c dodatkowe piksele,
+moе╪e wolisz przeskalowaд┤ video.
+Przyjе╪ymy siд≥ temu w przykе┌adzie poniе╪ej.
+Moе╪esz teе╪ pozwoliд┤ filtrowi <option>cropdetect</option> zrobiд┤ to wszystko za
+Ciebie, jako е╪e ma on opcjonalny parametr <option>round</option>
+(zaokrд┘glenie), domyе⌡lnie rцЁwny 16.
</para>
<para>
- Also, be careful about "half black" pixels at the edges. Make sure you
- crop these out too, or else you will be wasting bits there that
- are better spent elsewhere.
+Uwaе╪aj teе╪ na "poе┌-czarne" piksele na przegach. Teе╪ je wykadruj, albo bд≥dziesz
+na nie marnowaе┌ bity ktцЁ?e przydadzд┘ siд≥ gdzie indziej.
</para>
<para>
- After all is said and done, you will probably end up with video whose pixels
- are not quite 1.85:1 or 2.35:1, but rather something close to that. You
- could calculate the new aspect ratio manually, but
- <application>MEncoder</application> offers an option for <systemitem
- class="library">libavcodec</systemitem> called <option>autoaspect</option>
- that will do this for you. Absolutely do not scale this video up in order to
- square the pixels unless you like to waste your hard disk space. Scaling
- should be done on playback, and the player will use the aspect stored in
- the AVI to determine the correct resolution.
- Unfortunately, not all players enforce this auto-scaling information,
- therefore you may still want to rescale.
+Po tym wszystkim prawdopodobnie dostaniesz film ktцЁry nie ma dokе┌adnie
+proporcji 1,85:1 ani 2,35:1 tylko coе⌡ podobnego.
+MцЁgе┌byе⌡ samemu policzyд┤ nowe proporcje, ale <application>MEncoder</application>
+ma pocjд≥ do <systemitem class="library">libavcodec</systemitem> nazywanд┘
+<option>autoaspect</option> ktцЁra zrobi to za Ciebie.
+Nie powinieneе⌡ przeskalowywaд┤ video е╪eby wyrцЁwnaд┤ piksele, chyba е╪e chcesz
+marnowaд┤ miejsce na dysku.
+Skalowanie powinno byд┤ robione przy odtwarzaniu, a odtwarzacz uе╪ywa informacji
+o proporcjach zapisanych w AVI е╪eby okreе⌡liд┤ prawidе┌owд┘ rozdzielczoе⌡д┤.
+Niestety, nie wszystkie odtwarzacze uznajд┘ te informacje,
+dlatego mimo wszystko moе╪esz chcieд┤ przeskalowaд┤.
</para>
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-resolution-bitrate">
-<title>Choosing resolution and bitrate</title>
-
-<para>
- If you will not be encoding in constant quantizer mode, you need to
- select a bitrate.
- The concept of bitrate is quite simple.
- It is the (average) number of bits that will be consumed to store your
- movie, per second.
- Normally bitrate is measured in kilobits (1000 bits) per second.
- The size of your movie on disk is the bitrate times the length of the
- movie in time, plus a small amount of "overhead" (see the section on
- <link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">the AVI container</link>
- for instance).
- Other parameters such as scaling, cropping, etc. will
- <emphasis role="bold">not</emphasis> alter the file size unless you
- change the bitrate as well!.
-</para>
-<para>
- Bitrate does <emphasis role="bold">not</emphasis> scale proportionally
- to resolution.
- That is to say, a 320x240 file at 200 kbit/sec will not be the same
- quality as the same movie at 640x480 and 800 kbit/sec!
- There are two reasons for this:
+<title>Dobieranie rozdzielczoе⌡ci i bitrate</title>
+
+<para>
+Jeе⌡li nie kodujesz w trybie staе┌ego kwantyzatora, musisz wybraд┤ bitrate.
+Jest to doе⌡д┤ prosta rzecz &ndash; to (е⌡rednia) iloе⌡д┤ bitцЁw jaka bд≥dzie
+uе╪ywana do zakodowania jednej sekundy filmu.
+Zazwyczaj bitrate mierzy siд≥ w kilobitach (1000 bitцЁw) na sekundд≥.
+Wielkoе⌡д┤ filmu na dysku to bitrate razy dе┌ugoе⌡д┤ filmu,
+plus drobne "dodatki" (patrz na przykе┌ad sekcja o
+<link linkend="menc-feat-dvd-mpeg4-muxing-avi-limitations">kontenerze AVI</link>
+).
+Pozostaе┌e parametry, takie jak skalowanie, kadrowanie itp.
+<emphasis role="bold">nie</emphasis> zmieniд┘ wielkoе⌡ci pliku jeе⌡li nie
+zmienisz teе╪ bitrate!
+</para>
+
+<para>
+Bitrate <emphasis role="bold">nie</emphasis> skaluje siд≥ proporcjonalnie do
+rozdzielczoе⌡ci.
+To znaczy, film 320x240 w 200 kbit/s nie bд≥dzie tej samej jakoе⌡ci co ten sam
+film w 640x480 i 800 kbit/s!
+Sд┘ ku temu dwie przyczyny:
<orderedlist>
- <listitem><para>
- <emphasis role="bold">Perceptual</emphasis>: You notice MPEG
- artifacts more if they are scaled up bigger!
- Artifacts appear on the scale of blocks (8x8).
- Your eye will not see errors in 4800 small blocks as easily as it
- sees errors in 1200 large blocks (assuming you will be scaling both
- to fullscreen).
- </para></listitem>
- <listitem><para>
- <emphasis role="bold">Theoretical</emphasis>: When you scale down
- an image but still use the same size (8x8) blocks for the frequency
- space transform, you move more data to the high frequency bands.
- Roughly speaking, each pixel contains more of the detail than it
- did before.
- So even though your scaled-down picture contains 1/4 the information
- in the spacial directions, it could still contain a large portion
- of the information in the frequency domain (assuming that the high
- frequencies were underutilized in the original 640x480 image).
- </para></listitem>
- </orderedlist>
-</para>
-<para>
- Past guides have recommended choosing a bitrate and resolution based
- on a "bits per pixel" approach, but this is usually not valid due to
- the above reasons.
- A better estimate seems to be that bitrates scale proportional to the
- square root of resolution, so that 320x240 and 400 kbit/sec would be
- comparable to 640x480 at 800 kbit/sec.
- However this has not been verified with theoretical or empirical
- rigor.
- Further, given that movies vary greatly with regard to noise, detail,
- degree of motion, etc., it is futile to make general recommendations
- for bits per length-of-diagonal (the analog of bits per pixel,
- using the square root).
-</para>
-<para>
- So far we have discussed the difficulty of choosing a bitrate and
- resolution.
+<listitem><para>
+ <emphasis role="bold">Wizualna</emphasis>: е│atwiej zauwaе╪yд┤ artefakty MPEG
+ jeе⌡li sд┘ bardziej powiд≥kszone!
+ Artefakty powstajд┘ na poziomie blokцЁw (8x8).
+ Ludzkie oko trudniej dostrzega bе┌д≥dy w 4800 maе┌ych blokach niе╪ w 1200 duе╪ych
+ (zakе┌adajд┘c е╪e skalujesz na peе┌ny ekran).
+</para></listitem>
+<listitem><para>
+ <emphasis role="bold">Teoretyczna</emphasis>: Kiedy zmniejszasz obraz ale
+ nadal uе╪ywasz tych samych blokцЁw 8x8 do transformacji przestrzeni
+ czд≥stotliwoе⌡ci. masz wiд≥cej danych w pasmach wyе╪szych czд≥stotliwoе⌡ci.
+ W pewien sposцЁb kaе╪dy piksel ma wiд≥cej szczegцЁе┌цЁw niе╪ poprzednio.
+ Dlatego, mimo е╪e przeskalowany obraz zawiera 1/4 informacji jeе⌡li chodzi
+ o wielkoе⌡д┤, to nadal moе╪e zawieraд┤ wiд≥kszoе⌡д┤ informacji w przestrzeni
+ czд≥stotliwoе⌡ci (zakе┌adajд┘c е╪e wysokie czд≥stotliwoе⌡ci byе┌y maе┌o uе╪ywane
+ w oryginalnym filmie 640x480).
+</para></listitem>
+</orderedlist>
+</para>
+
+<para>
+Poprzednie podrд≥czniki zalecaе┌y dobranie bitrate i rozdzielczoе⌡ci w sposцЁb
+bazujд┘cy na podejе⌡ciu "bity na piksel", ale z powyе╪szych powodцЁw zazwyczaj nie
+jest to prawidе┌owe.
+Lepszym przybliе╪eniem zdaje siд≥ skalowanie bitrate proporcjonalnie do
+pierwiastka kwadratowego z&nbsp;rozdzielczoе⌡ci, czyli film 320x240 i 400 kbit/s
+powinien byд┤ podobny do 640x480 i 800 kbit/s.
+Nie zostaе┌o to jednak zweryfikowane ani teoretycznie ani empirycznie.
+Dodatkowo, poniewaе╪ filmy sд┘ bardzo zrцЁе╪nicowane jeе⌡li chodzi o szum,
+szczegцЁе┌y, iloе⌡д┤ ruchu itp. bezsensowne jest podawanie ogцЁlnych zaleceе└ na bity
+na przekд┘tд┘ (analogia bitцЁw na piksel uе╪ywajд┘ca pierwiastka).
+</para>
+<para>
+OmцЁwiliе⌡my wiд≥c problemy z wyborem bitrate i rozdzielczoе⌡ci.
</para>
<sect3 id="menc-feat-dvd-mpeg4-resolution-bitrate-compute">
-<title>Computing the resolution</title>
+<title>Obliczanie rozdzielczoе⌡ci</title>
+
<para>
- First, you should compute the encoded aspect ratio:
- <systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem>
+Nastд≥pne kroki przeprowadzд┘ Ciд≥ przez obliczenie rozdzielczoе⌡ci dla Twojego
+filmu bez znieksztaе┌cania go za bardzo, biorд┘c pod uwagд≥ kilka typцЁw informacji
+o е╨rцЁdе┌owym filmie.
+Najpierw powinieneе⌡ policzyд┤ zakodowane proporcje:
+<systemitem>ARc = (Wc x (ARa / PRdvd )) / Hc</systemitem>
+
<itemizedlist>
-<title>where:</title>
+<title>gdzie:</title>
<listitem><para>
- Wc and Hc are the width and height of the cropped video,
+ Hc i Wc to wysokoе⌡д┤ i szerokoе⌡д┤ skadrowanego filmu.
</para></listitem>
<listitem><para>
- ARa is the displayed aspect ratio, which usually is 4/3 or 16/9,
+ ARa do wyе⌡wietlane proporcje, zazwyczaj 4/3 lub 16/9.
</para></listitem>
<listitem><para>
- PRdvd is the pixel ratio of the DVD which is equal to 1.25=(720/576) for PAL
- DVDs and 1.5=(720/480) for NTSC DVDs,
+ PRdvd to proporcje na DVD rцЁwne 1,25=(720*576) dla DVD PAL i 1,5=(720/480) dla
+ VD NTSC.
</para></listitem>
</itemizedlist>
</para>
<para>
- Then, you can compute the X and Y resolution, according to a certain
- Compression Quality (CQ) factor:
- <systemitem>ResY = INT(SQRT( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem>
- and
- <systemitem>ResX = INT( ResY * ARc / 16) * 16</systemitem>
+Potem moе╪esz policzyд┤ rozdzielczoе⌡д┤ X i Y, zgodnie z dobranym wskaе╪nikiem
+Jakoе⌡ci Kompresji (Compression Quality, CQ):
+<systemitem>RozY = INT(Pierw( 1000*Bitrate/25/ARc/CQ )/16) * 16</systemitem>
+i
+<systemitem>RozX = INT( ResY * ARc / 16) * 16</systemitem>,
+gdzie INT oznacza zaokrд┘glenie do liczby caе┌kowitej.
</para>
<para>
- Okay, but what is the CQ?
- The CQ represents the number of bits per pixel and per frame of the encode.
- Roughly speaking, the greater the CQ, the less the likelihood to see
- encoding artifacts.
- However, if you have a target size for your movie (1 or 2 CDs for instance),
- there is a limited total number of bits that you can spend; therefore it is
- necessary to find a good tradeoff between compressibility and quality.
+Dobrze, ale co to jest CQ?
+CQ reprezentuje iloе⌡д┤ bitцЁw na piksel i klatkд≥ kodowania.
+Z grubsza biorд┘c, im wiд≥ksze CQ tym mniejsza szansa na zobaczenie artefaktцЁw
+kodowania.
+Jednakе╪e, jeе⌡li masz docelowд┘ wielkoе⌡д┤ filmu (na przykе┌ad 1 lub 2 pе┌yty CD),
+masz ograniczonд┘ iloе⌡д┤ bitцЁw do zuе╪ycia; dlatego musisz znaleе╨д┤ rцЁwnowagд≥
+miд≥dzy poziomem kompresji i jakoе⌡ciд┘.
</para>
<para>
- The CQ depends both on the bitrate and the movie resolution.
- In order to raise the CQ, typically you would downscale the movie given that the
- bitrate is computed in function of the target size and the length of the
- movie, which are constant.
- A CQ below 0.18 usually ends up in a very blocky picture, because there
- are not enough bits to code the information of each macroblock (MPEG4, like
- many other codecs, groups pixels by blocks of several pixels to compress the
- image; if there are not enough bits, the edges of those blocks are
- visible).
- It is therefore wise to take a CQ ranging from 0.20 to 0.22 for a 1 CD rip,
- and 0.26-0.28 for 2 CDs.
+CQ zaleе╪y od bitrate, efektywnoе⌡ci kodeka video i rozdzielczoе⌡ci filmu.
+е╩eby podnieе⌡д┤ CQ zazwyczej zmniejszysz film, poniewaе╪ bitrate jest funkcjд┘ docelowej wielkoе⌡ci i dе┌ugoе⌡ci filmu, ktцЁre sд┘ staе┌e.
+Przy uе╪yciu kodekцЁw MPEG-4 ASP, takich jak
+<systemitem class="library">Xvid</systemitem> i
+<systemitem class="library">libavcodec</systemitem>, CQ niе╪sze niе╪ 0,18
+zazwyczaj daje kiepski obraz, poniewaе╪ nie ma doе⌡д┤ bitцЁw by zakodowaд┤
+informacje z kaе╪dego makrobloku.
+(MPEG4, jak wiele innych kodekцЁw, grupuje piksele w bloki е╪eby
+skompresowaд┤ obraz. Jeе⌡li nie ma doе⌡д┤ bitцЁw widaд┤ krawд≥dzie tych blokцЁw.)
+Dlatego teе╪ mд┘drze jest wybraд┤ CQ w zakresie 0,20 do 0,22 na film jednopе┌ytkowy
+i 0,26-0,28 na dwupе┌ytkowy przy standardowych opcjach kodowania.
+Bardziej zaawansowane opcje kodowania, takie jak te podane tutaj dla
+<link linkend="menc-feat-mpeg4-lavc-example-settings"><systemitem class="library">libavcodec</systemitem></link>
+i
+<link linkend="menc-feat-xvid-example-settings"><systemitem class="library">Xvid</systemitem></link>
+powinny umoе╪liwiд┤ otrzymanie takiej samej jakoе⌡ci z CQ w zakresie 0,18 do 0,20
+na 1 CD i 0,24 do 0,26 na 2 CD.
+Z kodekami MPEG-4 AVC, takimi jak
+<systemitem class="library">x264</systemitem>, moе╪esz uе╪ywaд┤ CQ w&nbsp;zakresie
+0,14 do 0,16 przy standardowych opcjach
+a powinno siд≥ teе╪ udaд┤ zejе⌡д┤ do 0,10 do 0,12 z
+<link linkend="menc-feat-x264-example-settings">zaawansowanymi opcjami kodowania <systemitem class="library">x264</systemitem></link>.
</para>
<para>
- Please take note that the CQ is just an indicative figure, as depending on
- the encoded content, a CQ of 0.18 may look just fine for a Bergman, contrary
- to a movie such as The Matrix, which contains many high-motion scenes.
- On the other hand, it is worthless to raise CQ higher than 0.30 as you would
- be wasting bits without any noticeable quality gain.
+Pamiд≥tajmy, е╪e CQ jest tylko przydatnym odnoе⌡nikiem, zaleе╪nym od kodowanego
+filmu. CQ rцЁwne ,018 moе╪e wyglд┘daд┤ dobrze przy Bergmanie, w przeciwieе└stwie do
+filmu takiego jak Martix, ktцЁry zaawiera wiele bardzo ruchliwych scen.
+Z drugiej strony, bezsensowne jest podnoszenie CQ powyе╪ej 0,30 jako е╪e marnuje siд≥ bity bez zauwaе╪alnej poprawy jakoе⌡ci.
+Pamiд≥tajmy teе╪ е╪e, jak byе┌o wspomniane wczeе⌡niej, filmy w niе╪szej
+rozdzielczoе⌡ci potrzebujд┘ wiд≥kszego CQ (w porцЁwnaniu do na przykе┌ad
+rozdzielczoе⌡ci DVD) е╪eby dobrze wyglд┘daд┤.
</para>
</sect3>
-
</sect2>
+<!-- ********** -->
+<!-- synced 'till here -->
+
<sect2 id="menc-feat-dvd-mpeg4-filtering">
<title>Filtering</title>
<para>
- Learning how to use <application>MEncoder</application>'s video filters
- is essential to producing good encodes.
- All video processing is performed through the filters -- cropping,
- scaling, color adjustment, noise removal, sharpening, deinterlacing,
- telecine, inverse telecine, and deblocking, just to name a few.
- Along with the vast number of supported input formats, the variety of
- filters available in <application>MEncoder</application> is one of its
- main advantages over other similar programs.
+Learning how to use <application>MEncoder</application>'s video filters
+is essential to producing good encodes.
+All video processing is performed through the filters -- cropping,
+scaling, color adjustment, noise removal, sharpening, deinterlacing,
+telecine, inverse telecine, and deblocking, just to name a few.
+Along with the vast number of supported input formats, the variety of
+filters available in <application>MEncoder</application> is one of its
+main advantages over other similar programs.
</para>
<para>
- Filters are loaded in a chain using the -vf option:
+Filters are loaded in a chain using the -vf option:
- <screen>-vf filter1=options,filter2=options,...</screen>
+<screen>-vf filter1=options,filter2=options,...</screen>
- Most filters take several numeric options separated by colons, but
- the syntax for options varies from filter to filter, so read the man
- page for details on the filters you wish to use.
+Most filters take several numeric options separated by colons, but
+the syntax for options varies from filter to filter, so read the man
+page for details on the filters you wish to use.
</para>
<para>
- Filters operate on the video in the order they are loaded.
- For example, the following chain:
+Filters operate on the video in the order they are loaded.
+For example, the following chain:
- <screen>-vf crop=688:464:12:4,scale=640:464</screen>
+<screen>-vf crop=688:464:12:4,scale=640:464</screen>
- will first crop the 688x464 region of the picture with upper-left
- corner at (12,4), and then scale the result down to 640x464.
+will first crop the 688x464 region of the picture with upper-left
+corner at (12,4), and then scale the result down to 640x464.
</para>
<para>
- Certain filters need to be loaded at or near the beginning of the
- filter chain, in order to take advantage of information from the
- video decoder that will be lost or invalidated by other filters.
- The principal examples are <option>pp</option> (postprocessing, only
- when it is performing deblock or dering operations),
- <option>spp</option> (another postprocessor to remove MPEG artifacts),
- <option>pullup</option> (inverse telecine), and
- <option>softpulldown</option> (for converting soft telecine to hard
- telecine).
+Certain filters need to be loaded at or near the beginning of the
+filter chain, in order to take advantage of information from the
+video decoder that will be lost or invalidated by other filters.
+The principal examples are <option>pp</option> (postprocessing, only
+when it is performing deblock or dering operations),
+<option>spp</option> (another postprocessor to remove MPEG artifacts),
+<option>pullup</option> (inverse telecine), and
+<option>softpulldown</option> (for converting soft telecine to hard telecine).
</para>
<para>
- In general, you want to do as little filtering as possible to the movie
- in order to remain close to the original DVD source. Cropping is often
- necessary (as described above), but avoid to scale the video. Although
- scaling down is sometimes preferred to using higher quantizers, we want
- to avoid both these things: remember that we decided from the start to
- trade bits for quality.
+In general, you want to do as little filtering as possible to the movie
+in order to remain close to the original DVD source. Cropping is often
+necessary (as described above), but avoid to scale the video. Although
+scaling down is sometimes preferred to using higher quantizers, we want
+to avoid both these things: remember that we decided from the start to
+trade bits for quality.
</para>
<para>
- Also, do not adjust gamma, contrast, brightness, etc. What looks good
- on your display may not look good on others. These adjustments should
- be done on playback only.
+Also, do not adjust gamma, contrast, brightness, etc. What looks good
+on your display may not look good on others. These adjustments should
+be done on playback only.
</para>
<para>
- One thing you might want to do, however, is pass the video through a
- very light denoise filter, such as <option>-vf hqdn3d=2:1:2</option>.
- Again, it is a matter of putting those bits to better use: why waste them
- encoding noise when you can just add that noise back in during playback?
- Increasing the parameters for <option>hqdn3d</option> will further
- improve compressibility, but if you increase the values too much, you
- risk degrading the image visibily. The suggested values above
- (<option>2:1:2</option>) are quite conservative; you should feel free to
- experiment with higher values and observe the results for yourself.
+One thing you might want to do, however, is pass the video through a
+very light denoise filter, such as <option>-vf hqdn3d=2:1:2</option>.
+Again, it is a matter of putting those bits to better use: why waste them
+encoding noise when you can just add that noise back in during playback?
+Increasing the parameters for <option>hqdn3d</option> will further
+improve compressibility, but if you increase the values too much, you
+risk degrading the image visibly. The suggested values above
+(<option>2:1:2</option>) are quite conservative; you should feel free to
+experiment with higher values and observe the results for yourself.
</para>
-
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-interlacing">
<title>Interlacing and Telecine</title>
<para>
- Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some
- processing must be done to this 24 fps video to make it run at the correct
- NTSC framerate. The process is called 3:2 pulldown, commonly referred to
- as telecine (because pulldown is often applied during the telecine
- process), and, naively described, it works by slowing the film down to
- 24000/1001 fps, and repeating every fourth frame.
+Almost all movies are shot at 24 fps. Because NTSC is 30000/1001 fps, some
+processing must be done to this 24 fps video to make it run at the correct
+NTSC framerate. The process is called 3:2 pulldown, commonly referred to
+as telecine (because pulldown is often applied during the telecine
+process), and, naively described, it works by slowing the film down to
+24000/1001 fps, and repeating every fourth frame.
</para>
<para>
- No special processing, however, is done to the video for PAL DVDs, which
- run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown,
- but this does not become an issue in practice.) The 24 fps film is simply
- played back at 25 fps. The result is that the movie runs slightly faster,
- but unless you are an alien, you probably will not notice the difference.
- Most PAL DVDs have pitch-corrected audio, so when they are played back at
- 25 fps things will sound right, even though the audio track (and hence the
- whole movie) has a running time that is 4% less than NTSC DVDs.
+No special processing, however, is done to the video for PAL DVDs, which
+run at 25 fps. (Technically, PAL can be telecined, called 2:2 pulldown,
+but this does not become an issue in practice.) The 24 fps film is simply
+played back at 25 fps. The result is that the movie runs slightly faster,
+but unless you are an alien, you probably will not notice the difference.
+Most PAL DVDs have pitch-corrected audio, so when they are played back at
+25 fps things will sound right, even though the audio track (and hence the
+whole movie) has a running time that is 4% less than NTSC DVDs.
</para>
<para>
- Because the video in a PAL DVD has not been altered, you need not worry
- much about framerate. The source is 25 fps, and your rip will be 25
- fps. However, if you are ripping an NTSC DVD movie, you may need to
- apply inverse telecine.
+Because the video in a PAL DVD has not been altered, you need not worry
+much about framerate. The source is 25 fps, and your rip will be 25
+fps. However, if you are ripping an NTSC DVD movie, you may need to
+apply inverse telecine.
</para>
<para>
- For movies shot at 24 fps, the video on the NTSC DVD is either telecined
- 30000/1001, or else it is progressive 24000/1001 fps and intended to be telecined
- on-the-fly by a DVD player. On the other hand, TV series are usually
- only interlaced, not telecined. This is not a hard rule: some TV series
- are interlaced (such as Buffy the Vampire Slayer) whereas some are a
- mixture of progressive and interlaced (such as Angel, or 24).
+For movies shot at 24 fps, the video on the NTSC DVD is either telecined
+30000/1001, or else it is progressive 24000/1001 fps and intended to be
+telecined on-the-fly by a DVD player. On the other hand, TV series are usually
+only interlaced, not telecined. This is not a hard rule: some TV series
+are interlaced (such as Buffy the Vampire Slayer) whereas some are a
+mixture of progressive and interlaced (such as Angel, or 24).
</para>
<para>
- It is highly recommended that you read the section on
- <link linkend="menc-feat-telecine">How to deal with telecine and interlacing in NTSC DVDs</link>
- to learn how to handle the different possibilities.
+It is highly recommended that you read the section on
+<link linkend="menc-feat-telecine">How to deal with telecine and interlacing in NTSC DVDs</link>
+to learn how to handle the different possibilities.
</para>
<para>
- However, if you are mostly just ripping movies, likely you are either
- dealing with 24 fps progressive or telecined video, in which case you can
- use the <option>pullup</option> filter <option>-vf
- pullup,softskip</option>.
+However, if you are mostly just ripping movies, likely you are either
+dealing with 24 fps progressive or telecined video, in which case you can
+use the <option>pullup</option> filter <option>-vf
+pullup,softskip</option>.
</para>
-
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-dvd-mpeg4-encoding-interlaced">
<title>Encoding interlaced video</title>
<para>
- If the movie you want to encode is interlaced (NTSC video or
- PAL video), you will need to choose whether you want to
- deinterlace or not.
- While deinterlacing will make your movie usable on progressive
- scan displays such a computer monitors and projectors, it comes
- at a cost: The fieldrate of 50 or 60000/1001 fields per second
- is halved to 25 or 30000/1001 frames per second, and roughly half of
- the information in your movie will be lost during scenes with
- significant motion.
+If the movie you want to encode is interlaced (NTSC video or
+PAL video), you will need to choose whether you want to
+deinterlace or not.
+While deinterlacing will make your movie usable on progressive
+scan displays such a computer monitors and projectors, it comes
+at a cost: The fieldrate of 50 or 60000/1001 fields per second
+is halved to 25 or 30000/1001 frames per second, and roughly half of
+the information in your movie will be lost during scenes with
+significant motion.
</para>
<para>
- Therefore, if you are encoding for high quality archival purposes,
- it is recommended not to deinterlace.
- You can always deinterlace the movie at playback time when
- displaying it on progressive scan devices, and future players will
- be able to deinterlace to full fieldrate, interpolating 50 or
- 60000/1001 entire frames per second from the interlaced video.
+Therefore, if you are encoding for high quality archival purposes,
+it is recommended not to deinterlace.
+You can always deinterlace the movie at playback time when
+displaying it on progressive scan devices.
+The power of currently available computers forces players to use a
+deinterlacing filter, which results in a slight degradation in
+image quality.
+But future players will be able to mimic the interlaced display of
+a TV, deinterlacing to full fieldrate and interpolating 50 or
+60000/1001 entire frames per second from the interlaced video.
</para>
<para>
@@ -1253,19 +1276,19 @@ Special care must be taken when working with interlaced video:
<para>
With these things in mind, here is our first example:
-</para>
<screen>
- mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \
- vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
+mencoder <replaceable>capture.avi</replaceable> -mc 0 -oac lavc -ovc lavc -lavcopts \
+ vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
</screen>
-<para>
Note the <option>ilme</option> and <option>ildct</option> options.
</para>
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-av-sync">
<title>Notes on Audio/Video synchronization</title>
+
<para>
<application>MEncoder</application>'s audio/video synchronization
algorithms were designed with the intention of recovering files with
@@ -1280,6 +1303,7 @@ the <option>-mc 0</option> option, or put this in your
you are only working with good sources (DVD, TV capture, high quality
MPEG-4 rips, etc) and not broken ASF/RM/MOV files.
</para>
+
<para>
If you want to further guard against strange frame skips and
duplication, you can use both <option>-mc 0</option> and
@@ -1290,9 +1314,11 @@ unpredictably add or drop frames, or if your input file has variable
framerate!
Therefore, using <option>-noskip</option> is not in general recommended.
</para>
+
<para>
-The so-called "three-pass" audio encoding which <application>MEncoder</application>
-supports has been reported to cause A/V desync.
+The so-called "three-pass" audio encoding which
+<application>MEncoder</application> supports has been reported to cause A/V
+desync.
This will definitely happen if it is used in conjunction with certain
filters, therefore, it is now recommended <emphasis>not</emphasis> to
use three-pass audio mode.
@@ -1301,6 +1327,7 @@ users who understand when it is safe to use and when it is not.
If you have never heard of three-pass mode before, forget that we
even mentioned it!
</para>
+
<para>
There have also been reports of A/V desync when encoding from stdin
with <application>MEncoder</application>.
@@ -1308,642 +1335,799 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
</para>
</sect2>
+<!-- ********** -->
+
+<sect2 id="menc-feat-dvd-mpeg4-codec">
+<title>Choosing the video codec</title>
+
+<para>
+Which video codec is best to choose depends on several factors,
+like size, quality, streamability, usability and popularity, some of
+which widely depend on personal taste and technical constraints.
+</para>
+<itemizedlist>
+<listitem>
+ <para>
+ <emphasis role="bold">Compression efficiency</emphasis>:
+ It is quite easy to understand that most newer-generation codecs are
+ made to increase quality and compression.
+ Therefore, the authors of this guide and many other people suggest that
+ you cannot go wrong
+ <footnote id='fn-menc-feat-dvd-mpeg4-codec-cpu'><para>
+ Be careful, however: Decoding DVD-resolution MPEG-4 AVC videos
+ requires a fast machine (i.e. a Pentium 4 over 1.5GHz or a Pentium M
+ over 1GHz).
+ </para></footnote>
+ when choosing MPEG-4 AVC codecs like
+ <systemitem class="library">x264</systemitem> instead of MPEG-4 ASP codecs
+ such as <systemitem class="library">libavcodec</systemitem> MPEG-4 or
+ <systemitem class="library">Xvid</systemitem>.
+ (Advanced codec developers may be interested in reading Michael
+ Niedermayer's opinion on
+ "<ulink url="http://guru.multimedia.cx/?p=10">why MPEG4-ASP sucks</ulink>".)
+ Likewise, you should get better quality using MPEG-4 ASP than you
+ would with MPEG-2 codecs.
+ </para>
+
+ <para>
+ However, newer codecs which are in heavy development can suffer from
+ bugs which have not yet been noticed and which can ruin an encode.
+ This is simply the tradeoff for using bleeding-edge technology.
+ </para>
+
+ <para>
+ What is more, beginning to use a new codec requires that you spend some
+ time becoming familiar with its options, so that you know what
+ to adjust to achieve a desired picture quality.
+ </para>
+</listitem>
+
+<listitem><para>
+ <emphasis role="bold">Hardware compatibility</emphasis>:
+ It usually takes a long time for standalone video players to begin to
+ include support for the latest video codecs.
+ As a result, most only support MPEG-1 (like VCD, XVCD and KVCD), MPEG-2
+ (like DVD, SVCD and KVCD) and MPEG-4 ASP (like DivX,
+ <systemitem class="library">libavcodec</systemitem>'s LMP4 and
+ <systemitem class="library">Xvid</systemitem>)
+ (Beware: Usually, not all MPEG-4 ASP features are supported).
+ Please refer to the technical specs of your player (if they are available),
+ or google around for more information.
+</para></listitem>
+
+<listitem>
+ <para>
+ <emphasis role="bold">Best quality per encoding time</emphasis>:
+ Codecs that have been around for some time (such as
+ <systemitem class="library">libavcodec</systemitem> MPEG-4 and
+ <systemitem class="library">Xvid</systemitem>) are usually heavily
+ optimized with all kinds of smart algorithms and SIMD assembly code.
+ That is why they tend to yield the best quality per encoding time ratio.
+ However, they may have some very advanced options that, if enabled,
+ will make the encode really slow for marginal gains.
+ </para>
+
+ <para>
+ If you are after blazing speed you should stick around the default
+ settings of the video codec (although you should still try the other
+ options which are mentioned in other sections of this guide).
+ </para>
+
+ <para>
+ You may also consider choosing a codec which can do multi-threaded
+ processing, though this is only useful for users of machines with
+ several CPUs.
+ <systemitem class="library">libavcodec</systemitem> MPEG-4 does
+ allow that, but speed gains are limited, and there is a slight
+ negative effect on picture quality.
+ <systemitem class="library">Xvid</systemitem>'s multi-threaded encoding,
+ activated by the <option>threads</option> option, can be used to
+ boost encoding speed &mdash; by about 40-60% in typical cases &mdash;
+ with little if any picture degradation.
+ <systemitem class="library">x264</systemitem> also allows multi-threaded
+ encoding, which currently speeds up encoding by 94% per CPU core while
+ lowering PSNR between 0.005dB and 0.01dB on a typical setup.
+ </para>
+</listitem>
+
+<listitem>
+ <para>
+ <emphasis role="bold">Personal taste</emphasis>:
+ This is where it gets almost irrational: For the same reason that some
+ hung on to DivX&nbsp;3 for years when newer codecs were already doing wonders,
+ some folks will prefer <systemitem class="library">Xvid</systemitem>
+ or <systemitem class="library">libavcodec</systemitem> MPEG-4 over
+ <systemitem class="library">x264</systemitem>.
+ </para>
+ <para>
+ You should make your own judgement; do not take advice from people who
+ swear by one codec.
+ Take a few sample clips from raw sources and compare different
+ encoding options and codecs to find one that suits you best.
+ The best codec is the one you master, and the one that looks
+ best to your eyes on your display
+ <footnote id='fn-menc-feat-dvd-mpeg4-codec-playback'><para>
+ The same encode may not look the same on someone else's monitor or
+ when played back by a different decoder, so future-proof your encodes by
+ playing them back on different setups.
+ </para></footnote>!
+ </para>
+</listitem>
+</itemizedlist>
+
+<para>
+Please refer to the section
+<link linkend="menc-feat-selecting-codec">selecting codecs and container formats</link>
+to get a list of supported codecs.
+</para>
+</sect2>
+
+<!-- ********** -->
+
<sect2 id="menc-feat-dvd-mpeg4-audio">
<title>Audio</title>
<para>
- Audio is a much simpler problem to solve: if you care about quality, just
- leave it as is.
- Even AC3 5.1 streams are at most 448Kbit/s, and they are worth every bit.
- You might be tempted to transcode the audio to high quality Vorbis, but
- just because you do not have an A/V receiver for AC3 pass-through today
- does not mean you will not have one tomorrow. Future-proof your DVD rips by
- preserving the AC3 stream.
- You can keep the AC3 stream either by copying it directly into the video
- stream <link linkend="menc-feat-mpeg4">during the encoding</link>.
- You can also extract the AC3 stream in order to mux it into containers such
- as NUT or Matroska.
- <screen>mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable></screen>
- will dump into the file <replaceable>sound.ac3</replaceable> the
- audio track number 129 from the file
- <replaceable>source_file.vob</replaceable> (NB: DVD VOB files
- usually use a different audio numbering,
- which means that the VOB audio track 129 is the 2nd audio track of the file).
-</para>
-
-<para>
- But sometimes you truly have no choice but to further compress the
- sound so that more bits can be spent on the video.
- Most people choose to compress audio with either MP3 or Vorbis audio
- codecs.
- While the latter is a very space-efficient codec, MP3 is better supported
- by hardware players, although this trend is changing.
-</para>
-
-<para>
- Do <emphasis>not</emphasis> use <option>-nosound</option> when encoding
- a file with audio, even if you will be encoding and muxing audio
- separately later.
- Though it may work in ideal cases, using <option>-nosound</option> is
- likely to hide some problems in your encoding command line setting.
- In other words, having a soundtrack during your encode assures you that,
- provided you do not see messages such as
- <quote>Too many audio packets in the buffer</quote>, you will be able
- to get proper sync.
-</para>
-
-<para>
- You need to have <application>MEncoder</application> process the sound.
- You can for example copy the orignal soundtrack during the encode with
- <option>-oac copy</option> or convert it to a "light" 4 kHz mono WAV
- PCM with <option>-oac pcm -channels 1 -srate 4000</option>.
- Otherwise, in some cases, it will generate a video file that will not sync
- with the audio.
- Such cases are when the number of video frames in the source file does
- not match up to the total length of audio frames or whenever there
- are discontinuities/splices where there are missing or extra audio frames.
- The correct way to handle this kind of problem is to insert silence or
- cut audio at these points.
- However <application>MPlayer</application> cannot do that, so if you
- demux the AC3 audio and encode it with a separate app (or dump it to PCM with
- <application>MPlayer</application>), the splices will be left incorrect
- and the only way to correct them is to drop/dup video frames at the
- splice.
- As long as <application>MEncoder</application> sees the audio when it is
- encoding the video, it can do this dropping/duping (which is usually OK
- since it takes place at full black/scenechange, but if
- <application>MEncoder</application> cannot see the audio, it will just
- process all frames as-is and they will not fit the final audio stream when
- you for example merge your audio and video track into a Matroska file.
-</para>
-
-<para>
- First of all, you will have to convert the DVD sound into a WAV file that the
- audio codec can use as input.
- For example:
- <screen>mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> -vc dummy -aid 1 -vo null</screen>
- will dump the second audio track from the file
- <replaceable>source_file.vob</replaceable> into the file
- <replaceable>destination_sound.wav</replaceable>.
- You may want to normalize the sound before encoding, as DVD audio tracks
- are commonly recorded at low volumes.
- You can use the tool <application>normalize</application> for instance,
- which is available in most distributions.
- If you are using Windows, a tool such as <application>BeSweet</application>
- can do the same job.
- You will compress in either Vorbis or MP3.
- For example:
- <screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen>
- will encode <replaceable>destination_sound.wav</replaceable> with
- the encoding quality 1, which is roughly equivalent to 80Kb/s, and
- is the minimum quality at which you should encode if you care about
- quality.
- Please note that MEncoder currently cannot mux Vorbis audio tracks
- into the output file because it only supports AVI and MPEG
- containers as an output, each of which may lead to audio/video
- playback synchronization problems with some players when the AVI file
- contain VBR audio streams such as Vorbis.
- Do not worry, this document will show you how you can do that with third
- party programs.
+Audio is a much simpler problem to solve: if you care about quality, just
+leave it as is.
+Even AC-3 5.1 streams are at most 448Kbit/s, and they are worth every bit.
+You might be tempted to transcode the audio to high quality Vorbis, but
+just because you do not have an A/V receiver for AC-3 pass-through today
+does not mean you will not have one tomorrow. Future-proof your DVD rips by
+preserving the AC-3 stream.
+You can keep the AC-3 stream either by copying it directly into the video
+stream <link linkend="menc-feat-mpeg4">during the encoding</link>.
+You can also extract the AC-3 stream in order to mux it into containers such
+as NUT or Matroska.
+<screen>
+mplayer <replaceable>source_file.vob</replaceable> -aid 129 -dumpaudio -dumpfile <replaceable>sound.ac3</replaceable>
+</screen>
+will dump into the file <replaceable>sound.ac3</replaceable> the
+audio track number 129 from the file
+<replaceable>source_file.vob</replaceable> (NB: DVD VOB files
+usually use a different audio numbering,
+which means that the VOB audio track 129 is the 2nd audio track of the file).
+</para>
+
+<para>
+But sometimes you truly have no choice but to further compress the
+sound so that more bits can be spent on the video.
+Most people choose to compress audio with either MP3 or Vorbis audio codecs.
+While the latter is a very space-efficient codec, MP3 is better supported
+by hardware players, although this trend is changing.
+</para>
+
+<para>
+Do <emphasis>not</emphasis> use <option>-nosound</option> when encoding
+a file with audio, even if you will be encoding and muxing audio
+separately later.
+Though it may work in ideal cases, using <option>-nosound</option> is
+likely to hide some problems in your encoding command line setting.
+In other words, having a soundtrack during your encode assures you that,
+provided you do not see messages such as
+<quote>Too many audio packets in the buffer</quote>, you will be able
+to get proper sync.
+</para>
+
+<para>
+You need to have <application>MEncoder</application> process the sound.
+You can for example copy the original soundtrack during the encode with
+<option>-oac copy</option> or convert it to a "light" 4 kHz mono WAV
+PCM with <option>-oac pcm -channels 1 -srate 4000</option>.
+Otherwise, in some cases, it will generate a video file that will not sync
+with the audio.
+Such cases are when the number of video frames in the source file does
+not match up to the total length of audio frames or whenever there
+are discontinuities/splices where there are missing or extra audio frames.
+The correct way to handle this kind of problem is to insert silence or
+cut audio at these points.
+However <application>MPlayer</application> cannot do that, so if you
+demux the AC-3 audio and encode it with a separate app (or dump it to PCM with
+<application>MPlayer</application>), the splices will be left incorrect
+and the only way to correct them is to drop/duplicate video frames at the
+splice.
+As long as <application>MEncoder</application> sees the audio when it is
+encoding the video, it can do this dropping/duping (which is usually OK
+since it takes place at full black/scene change), but if
+<application>MEncoder</application> cannot see the audio, it will just
+process all frames as-is and they will not fit the final audio stream when
+you for example merge your audio and video track into a Matroska file.
+</para>
+
+<para>
+First of all, you will have to convert the DVD sound into a WAV file that the
+audio codec can use as input.
+For example:
+<screen>
+mplayer <replaceable>source_file.vob</replaceable> -ao pcm:file=<replaceable>destination_sound.wav</replaceable> \
+ -vc dummy -aid 1 -vo null
+</screen>
+will dump the second audio track from the file
+<replaceable>source_file.vob</replaceable> into the file
+<replaceable>destination_sound.wav</replaceable>.
+You may want to normalize the sound before encoding, as DVD audio tracks
+are commonly recorded at low volumes.
+You can use the tool <application>normalize</application> for instance,
+which is available in most distributions.
+If you are using Windows, a tool such as <application>BeSweet</application>
+can do the same job.
+You will compress in either Vorbis or MP3.
+For example:
+<screen>oggenc -q1 <replaceable>destination_sound.wav</replaceable></screen>
+will encode <replaceable>destination_sound.wav</replaceable> with
+the encoding quality 1, which is roughly equivalent to 80Kb/s, and
+is the minimum quality at which you should encode if you care about
+quality.
+Please note that <application>MEncoder</application> currently cannot
+mux Vorbis audio tracks
+into the output file because it only supports AVI and MPEG
+containers as an output, each of which may lead to audio/video
+playback synchronization problems with some players when the AVI file
+contain VBR audio streams such as Vorbis.
+Do not worry, this document will show you how you can do that with third
+party programs.
</para>
-
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-muxing">
<title>Muxing</title>
+
<para>
- Now that you have encoded your video, you will most likely want
- to mux it with one or more audio tracks into a movie container, such
- as AVI, MPEG, Matroska or NUT.
- <application>MEncoder</application> is currently only able to natively output
- audio and video into MPEG and AVI container formats.
- for example:
- <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable></screen>
- This would merge the video file <replaceable>input_video.avi</replaceable>
- and the audio file <replaceable>input_audio.mp2</replaceable>
- into the AVI file <replaceable>output_movie.avi</replaceable>.
- This command works with MPEG-1 layer I, II and III (more commonly known
- as MP3) audio, WAV and a few other audio formats too.
-</para>
-
-<para>
- MEncoder features experimental support for
- <systemitem class="library">libavformat</systemitem>, which is a
- library from the FFmpeg project that supports muxing and demuxing
- a variety of containers.
- For example:
- <screen>mencoder -oac copy -ovc copy -o <replaceable>output_movie.asf</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable> -of lavf -lavfopts format=asf</screen>
- This will do the same thing as the previous example, except that
- the output container will be ASF.
- Please note that this support is highly experimental (but getting
- better every day), and will only work if you compiled
- <application>MPlayer</application> with the support for
- <systemitem class="library">libavformat</systemitem> enabled (which
- means that a pre-packaged binary version will not work in most cases).
+Now that you have encoded your video, you will most likely want
+to mux it with one or more audio tracks into a movie container, such
+as AVI, MPEG, Matroska or NUT.
+<application>MEncoder</application> is currently only able to natively output
+audio and video into MPEG and AVI container formats.
+for example:
+<screen>
+mencoder -oac copy -ovc copy -o <replaceable>output_movie.avi</replaceable> \
+ -audiofile <replaceable>input_audio.mp2</replaceable> <replaceable>input_video.avi</replaceable>
+</screen>
+This would merge the video file <replaceable>input_video.avi</replaceable>
+and the audio file <replaceable>input_audio.mp2</replaceable>
+into the AVI file <replaceable>output_movie.avi</replaceable>.
+This command works with MPEG-1 layer I, II and III (more commonly known
+as MP3) audio, WAV and a few other audio formats too.
+</para>
+
+<para>
+<application>MEncoder</application> features experimental support for
+<systemitem class="library">libavformat</systemitem>, which is a
+library from the FFmpeg project that supports muxing and demuxing
+a variety of containers.
+For example:
+<screen>
+mencoder -oac copy -ovc copy -o <replaceable>output_movie.asf</replaceable> -audiofile <replaceable>input_audio.mp2</replaceable> \
+ <replaceable>input_video.avi</replaceable> -of lavf -lavfopts format=asf
+</screen>
+This will do the same thing as the previous example, except that
+the output container will be ASF.
+Please note that this support is highly experimental (but getting
+better every day), and will only work if you compiled
+<application>MPlayer</application> with the support for
+<systemitem class="library">libavformat</systemitem> enabled (which
+means that a pre-packaged binary version will not work in most cases).
</para>
<sect3 id="menc-feat-dvd-mpeg4-muxing-filter-issues">
<title>Improving muxing and A/V sync reliability</title>
+
<para>
- You may experience some serious A/V sync problems while trying to mux
- your video and some audio tracks, where no matter how you adjust the
- audio delay, you will never get proper sync.
- That may happen when you use some video filters that will drop or
- duplicate some frames, like the inverse telecine filters.
- It is strongly encouraged to append the <option>harddup</option> video
- filter at the end of the filter chain to avoid this kind of problem.
+You may experience some serious A/V sync problems while trying to mux
+your video and some audio tracks, where no matter how you adjust the
+audio delay, you will never get proper sync.
+That may happen when you use some video filters that will drop or
+duplicate some frames, like the inverse telecine filters.
+It is strongly encouraged to append the <option>harddup</option> video
+filter at the end of the filter chain to avoid this kind of problem.
</para>
<para>
- Without <option>harddup</option>, if <application>MEncoder</application>
- wants to duplicate a frame, it relies on the muxer to put a mark on the
- container so that the last frame will be displayed again to maintain
- sync while writing no actual frame.
- With <option>harddup</option>, <application>MEncoder</application>
- will instead just push the last frame displayed again into the filter
- chain.
- This means that the encoder receives the <emphasis>exact</emphasis>
- same frame twice, and compresses it.
- This will result in a slightly bigger file, but will not cause problems
- when demuxing or remuxing into other container formats.
+Without <option>harddup</option>, if <application>MEncoder</application>
+wants to duplicate a frame, it relies on the muxer to put a mark on the
+container so that the last frame will be displayed again to maintain
+sync while writing no actual frame.
+With <option>harddup</option>, <application>MEncoder</application>
+will instead just push the last frame displayed again into the filter
+chain.
+This means that the encoder receives the <emphasis>exact</emphasis>
+same frame twice, and compresses it.
+This will result in a slightly bigger file, but will not cause problems
+when demuxing or remuxing into other container formats.
</para>
<para>
- You may also have no choice but to use <option>harddup</option> with
- container formats that are not too tightly linked with
- <application>MEncoder</application> such as the ones supported through
- <systemitem class="library">libavformat</systemitem>, which may not
- support frame duplication at the container level.
+You may also have no choice but to use <option>harddup</option> with
+container formats that are not too tightly linked with
+<application>MEncoder</application> such as the ones supported through
+<systemitem class="library">libavformat</systemitem>, which may not
+support frame duplication at the container level.
</para>
</sect3>
<sect3 id="menc-feat-dvd-mpeg4-muxing-avi-limitations">
<title>Limitations of the AVI container</title>
+
<para>
- Although it is the most widely-supported container format after MPEG-1,
- AVI also has some major drawbacks.
- Perhaps the most obvious is the overhead.
- For each chunk of the AVI file, 24 bytes are wasted on headers and
- index.
- This translates into a little over 5 MB per hour, or 1-2.5%
- overhead for a 700 MB movie. This may not seem like much, but it could
- mean the difference between being able to use 700 kbit/sec video or
- 714 kbit/sec, and every bit of quality counts.
+Although it is the most widely-supported container format after MPEG-1,
+AVI also has some major drawbacks.
+Perhaps the most obvious is the overhead.
+For each chunk of the AVI file, 24 bytes are wasted on headers and index.
+This translates into a little over 5 MB per hour, or 1-2.5%
+overhead for a 700 MB movie. This may not seem like much, but it could
+mean the difference between being able to use 700 kbit/sec video or
+714 kbit/sec, and every bit of quality counts.
</para>
<para>
- In addition this gross inefficiency, AVI also has the following major
- limitations:
+In addition this gross inefficiency, AVI also has the following major
+limitations:
</para>
<orderedlist>
-<listitem>
-<para>
+<listitem><para>
Only fixed-fps content can be stored. This is particularly limiting
if the original material you want to encode is mixed content, for
example a mix of NTSC video and film material.
Actually there are hacks that can be used to store mixed-framerate
content in AVI, but they increase the (already huge) overhead
fivefold or more and so are not practical.
-</para>
-</listitem>
-<listitem>
-<para>
+</para></listitem>
+<listitem><para>
Audio in AVI files must be either constant-bitrate (CBR) or
constant-framesize (i.e. all frames decode to the same number of
samples).
Unfortunately, the most efficient codec, Vorbis, does not meet
either of these requirements.
Therefore, if you plan to store your movie in AVI, you will have to
- use a less efficient codec such as MP3 or AC3.
-</para>
-</listitem>
+ use a less efficient codec such as MP3 or AC-3.
+</para></listitem>
</orderedlist>
<para>
- Having said all that, <application>MEncoder</application> does not
- currently support variable-fps output or Vorbis encoding.
- Therefore, you may not see these as limitations if
- <application>MEncoder</application> is the
- only tool you will be using to produce your encodes.
- However, it is possible to use <application>MEncoder</application>
- only for video encoding, and then use external tools to encode
- audio and mux it into another container format.
+Having said all that, <application>MEncoder</application> does not
+currently support variable-fps output or Vorbis encoding.
+Therefore, you may not see these as limitations if
+<application>MEncoder</application> is the
+only tool you will be using to produce your encodes.
+However, it is possible to use <application>MEncoder</application>
+only for video encoding, and then use external tools to encode
+audio and mux it into another container format.
</para>
</sect3>
+
<sect3 id="menc-feat-dvd-mpeg4-muxing-matroska">
<title>Muxing into the Matroska container</title>
+
<para>
- Matroska is a free, open standard container format, aiming
- to offer a lot of advanced features, which older containers
- like AVI cannot handle.
- For example, Matroska supports variable bitrate audio content
- (VBR), variable framerates (VFR), chapters, file attachments,
- error detection code (EDC) and modern A/V Codecs like "Advanced Audio
- Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing
- handled by AVI.
+Matroska is a free, open standard container format, aiming
+to offer a lot of advanced features, which older containers
+like AVI cannot handle.
+For example, Matroska supports variable bitrate audio content
+(VBR), variable framerates (VFR), chapters, file attachments,
+error detection code (EDC) and modern A/V Codecs like "Advanced Audio
+Coding" (AAC), "Vorbis" or "MPEG-4 AVC" (H.264), next to nothing
+handled by AVI.
</para>
<para>
- The tools required to create Matroska files are collectively called
- <application>mkvtoolnix</application>, and are available for most
- Unix platforms as well as <application>Windows</application>.
- Because Matroska is an open standard you may find other
- tools that suit you better, but since mkvtoolnix is the most
- common, and is supported by the Matroska team itself, we will
- only cover its usage.
+The tools required to create Matroska files are collectively called
+<application>mkvtoolnix</application>, and are available for most
+Unix platforms as well as <application>Windows</application>.
+Because Matroska is an open standard you may find other
+tools that suit you better, but since mkvtoolnix is the most
+common, and is supported by the Matroska team itself, we will
+only cover its usage.
</para>
<para>
- Probably the easiest way to get started with Matroska is to use
- <application>MMG</application>, the graphical frontend shipped with
- <application>mkvtoolnix</application>, and follow the
- <ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink>
+Probably the easiest way to get started with Matroska is to use
+<application>MMG</application>, the graphical frontend shipped with
+<application>mkvtoolnix</application>, and follow the
+<ulink url="http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge-gui.html">guide to mkvmerge GUI (mmg)</ulink>
</para>
<para>
- You may also mux audio and video files using the command line:
- <screen>mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable></screen>
- This would merge the video file <replaceable>input_video.avi</replaceable>
- and the two audio files <replaceable>input_audio1.mp3</replaceable>
- and <replaceable>input_audio2.ac3</replaceable> into the Matroska
- file <replaceable>output.mkv</replaceable>.
- Matroska, as mentioned earlier, is able to do much more than that, like
- multiple audio tracks (including fine-tuning of audio/video
- synchronization), chapters, subtitles, splitting, etc...
- Please refer to the documentation of those applications for
- more details.
+You may also mux audio and video files using the command line:
+<screen>
+mkvmerge -o <replaceable>output.mkv</replaceable> <replaceable>input_video.avi</replaceable> <replaceable>input_audio1.mp3</replaceable> <replaceable>input_audio2.ac3</replaceable>
+</screen>
+This would merge the video file <replaceable>input_video.avi</replaceable>
+and the two audio files <replaceable>input_audio1.mp3</replaceable>
+and <replaceable>input_audio2.ac3</replaceable> into the Matroska
+file <replaceable>output.mkv</replaceable>.
+Matroska, as mentioned earlier, is able to do much more than that, like
+multiple audio tracks (including fine-tuning of audio/video
+synchronization), chapters, subtitles, splitting, etc...
+Please refer to the documentation of those applications for
+more details.
</para>
-
</sect3>
-
</sect2>
-
</sect1>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
<sect1 id="menc-feat-telecine">
<title>How to deal with telecine and interlacing within NTSC DVDs</title>
<sect2 id="menc-feat-telecine-intro">
<title>Introduction</title>
+
<formalpara>
<title>What is telecine?</title>
<para>
- I suggest you visit this page if you do not understand much of what
- is written in this document:
- <ulink url="http://www.divx.com/support/guides/guide.php?gid=10">http://www.divx.com/support/guides/guide.php?gid=10</ulink>
- This URL links to an understandable and reasonably comprehensive
- description of what telecine is.
+If you do not understand much of what is written in this document, read the
+<ulink url="http://en.wikipedia.org/wiki/Telecine">Wikipedia entry on telecine</ulink>.
+It is an understandable and reasonably comprehensive
+description of what telecine is.
</para></formalpara>
<formalpara>
<title>A note about the numbers.</title>
<para>
- Many documents, including the guide linked above, refer to the fields
- per second value of NTSC video as 59.94 and the corresponding frames
- per second values as 29.97 (for telecined and interlaced) and 23.976
- (for progressive). For simplicity, some documents even round these
- numbers to 60, 30, and 24.
+Many documents, including the article linked above, refer to the fields
+per second value of NTSC video as 59.94 and the corresponding frames
+per second values as 29.97 (for telecined and interlaced) and 23.976
+(for progressive). For simplicity, some documents even round these
+numbers to 60, 30, and 24.
</para></formalpara>
<para>
- Strictly speaking, all those numbers are approximations. Black and
- white NTSC video was exactly 60 fields per second, but 60000/1001
- was later chosen to accomodate color data while remaining compatible
- with contemporary black and white televisions. Digital NTSC video
- (such as on a DVD) is also 60000/1001 fields per second. From this,
- interlaced and telecined video are derived to be 30000/1001 frames
- per second; progressive video is 24000/1001 frames per second.
+Strictly speaking, all those numbers are approximations. Black and
+white NTSC video was exactly 60 fields per second, but 60000/1001
+was later chosen to accommodate color data while remaining compatible
+with contemporary black and white televisions. Digital NTSC video
+(such as on a DVD) is also 60000/1001 fields per second. From this,
+interlaced and telecined video are derived to be 30000/1001 frames
+per second; progressive video is 24000/1001 frames per second.
</para>
<para>
- Older versions of the <application>MEncoder</application> documentation
- and many archived mailing list posts refer to 59.94, 29.97, and 23.976.
- All <application>MEncoder</application> documentation has been updated
- to use the fractional values, and you should use them too.
+Older versions of the <application>MEncoder</application> documentation
+and many archived mailing list posts refer to 59.94, 29.97, and 23.976.
+All <application>MEncoder</application> documentation has been updated
+to use the fractional values, and you should use them too.
</para>
<para>
- <option>-ofps 23.976</option> is incorrect.
- <option>-ofps 24000/1001</option> should be used instead.
+<option>-ofps 23.976</option> is incorrect.
+<option>-ofps 24000/1001</option> should be used instead.
</para>
<formalpara>
<title>How telecine is used.</title>
<para>
- All video intended to be displayed on an NTSC
- television set must be 60000/1001 fields per second. Made-for-TV movies
-4 and shows are often filmed directly at 60000/1001 fields per second, but
- the majority of cinema is filmed at 24 or 24000/1001 frames per
- second. When cinematic movie DVDs are mastered, the video is then
- converted for television using a process called telecine.
+All video intended to be displayed on an NTSC
+television set must be 60000/1001 fields per second. Made-for-TV movies
+and shows are often filmed directly at 60000/1001 fields per second, but
+the majority of cinema is filmed at 24 or 24000/1001 frames per
+second. When cinematic movie DVDs are mastered, the video is then
+converted for television using a process called telecine.
</para></formalpara>
<para>
- On a DVD, the video is never actually stored as 60000/1001 fields per
- second. For video that was originally 60000/1001, each pair of fields is
- combined to form a frame, resulting in 30000/1001 frames per
- second. Hardware DVD players then read a flag embedded in the video
- stream to determine whether the odd- or even-numbered lines should
- form the first field.
+On a DVD, the video is never actually stored as 60000/1001 fields per
+second. For video that was originally 60000/1001, each pair of fields is
+combined to form a frame, resulting in 30000/1001 frames per
+second. Hardware DVD players then read a flag embedded in the video
+stream to determine whether the odd- or even-numbered lines should
+form the first field.
</para>
<para>
- Usually, 24000/1001 frames per second content stays as it is when
- encoded for a DVD, and the DVD player must perform telecining
- on-the-fly. Sometimes, however, the video is telecined
- <emphasis>before</emphasis> being stored on the DVD; even though it
- was originally 24000/1001 frames per second, it becomes 60000/1001 fields per
- second. When it is stored on the DVD, pairs of fields are combined to form
- 30000/1001 frames per second.
+Usually, 24000/1001 frames per second content stays as it is when
+encoded for a DVD, and the DVD player must perform telecining
+on-the-fly. Sometimes, however, the video is telecined
+<emphasis>before</emphasis> being stored on the DVD; even though it
+was originally 24000/1001 frames per second, it becomes 60000/1001 fields per
+second. When it is stored on the DVD, pairs of fields are combined to form
+30000/1001 frames per second.
</para>
<para>
- When looking at individual frames formed from 60000/1001 fields per
- second video, telecined or otherwise, interlacing is clearly visible
- wherever there is any motion, because one field (say, the
- even-numbered lines) represents a moment in time 1/(60000/1001)
- seconds later than the other. Playing interlaced video on a computer
- looks ugly both because the monitor is higher resolution and because
- the video is shown frame-after-frame instead of field-after-field.
+When looking at individual frames formed from 60000/1001 fields per
+second video, telecined or otherwise, interlacing is clearly visible
+wherever there is any motion, because one field (say, the
+even-numbered lines) represents a moment in time 1/(60000/1001)
+seconds later than the other. Playing interlaced video on a computer
+looks ugly both because the monitor is higher resolution and because
+the video is shown frame-after-frame instead of field-after-field.
</para>
<itemizedlist>
<title>Notes:</title>
<listitem><para>
This section only applies to NTSC DVDs, and not PAL.
- </para></listitem>
+</para></listitem>
<listitem><para>
The example <application>MEncoder</application> lines throughout the
document are <emphasis role="bold">not</emphasis> intended for
actual use. They are simply the bare minimum required to encode the
pertaining video category. How to make good DVD rips or fine-tune
<systemitem class="library">libavcodec</systemitem> for maximal
- quality is not within the scope of this document.
- </para></listitem>
+ quality is not within the scope of this section; refer to other
+ sections within the <link linkend="encoding-guide">MEncoder encoding
+ guide</link>.
+</para></listitem>
<listitem><para>
There are a couple footnotes specific to this guide, linked like this:
<link linkend="menc-feat-telecine-footnotes">[1]</link>
- </para></listitem>
+</para></listitem>
</itemizedlist>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-telecine-ident">
<title>How to tell what type of video you have</title>
<sect3 id="menc-feat-telecine-ident-progressive">
<title>Progressive</title>
+
<para>
- Progressive video was originally filmed at 24000/1001 fps, and stored
- on the DVD without alteration.
+Progressive video was originally filmed at 24000/1001 fps, and stored
+on the DVD without alteration.
</para>
<para>
- When you play a progressive DVD in <application>MPlayer</application>,
- <application>MPlayer</application> will print the following line as
- soon as the movie begins to play:
-
- <screen> demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.</screen>
-
- From this point forward, demux_mpg should never say it finds
- &quot;30000/1001 fps NTSC content.&quot;
+When you play a progressive DVD in <application>MPlayer</application>,
+<application>MPlayer</application> will print the following line as
+soon as the movie begins to play:
+<screen>
+demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
+</screen>
+From this point forward, demux_mpg should never say it finds
+"30000/1001 fps NTSC content."
</para>
<para>
- When you watch progressive video, you should never see any
- interlacing. Beware, however, because sometimes there is a tiny bit
- of telecine mixed in where you would not expect. I have encountered TV
- show DVDs that have one second of telecine at every scene change, or
- at seemingly random places. I once watched a DVD that had a
- progressive first half, and the second half was telecined. If you
- want to be <emphasis>really</emphasis> thorough, you can scan the
- entire movie:
-
- <screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
-
- Using <option>-benchmark</option> makes
- <application>MPlayer</application> play the movie as quickly as it
- possibly can; still, depending on your hardware, it can take a
- while. Every time demux_mpg reports a framerate change, the line
- immediately above will show you the time at which the change
- occurred.
+When you watch progressive video, you should never see any
+interlacing. Beware, however, because sometimes there is a tiny bit
+of telecine mixed in where you would not expect. I have encountered TV
+show DVDs that have one second of telecine at every scene change, or
+at seemingly random places. I once watched a DVD that had a
+progressive first half, and the second half was telecined. If you
+want to be <emphasis>really</emphasis> thorough, you can scan the
+entire movie:
+<screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
+Using <option>-benchmark</option> makes
+<application>MPlayer</application> play the movie as quickly as it
+possibly can; still, depending on your hardware, it can take a
+while. Every time demux_mpg reports a framerate change, the line
+immediately above will show you the time at which the change
+occurred.
</para>
<para>
- Sometimes progressive video on DVDs is referred to as
- &quot;soft-telecine&quot; because it is intended to
- be telecined by the DVD player.
+Sometimes progressive video on DVDs is referred to as
+"soft-telecine" because it is intended to
+be telecined by the DVD player.
</para>
</sect3>
+
<sect3 id="menc-feat-telecine-ident-telecined">
<title>Telecined</title>
+
<para>
- Telecined video was originally filmed at 24000/1001, but was telecined
- <emphasis>before</emphasis> it was written to the DVD.
+Telecined video was originally filmed at 24000/1001, but was telecined
+<emphasis>before</emphasis> it was written to the DVD.
</para>
<para>
- <application>MPlayer</application> does not (ever) report any
- framerate changes when it plays telecined video.
+<application>MPlayer</application> does not (ever) report any
+framerate changes when it plays telecined video.
</para>
<para>
- Watching a telecined video, you will see interlacing artifacts that
- seem to &quot;blink&quot;: they repeatedly appear and disappear.
- You can look closely at this by
- <orderedlist>
- <listitem>
- <screen>mplayer dvd://1</screen>
- </listitem>
- <listitem><para>
- Seek to a part with motion.
- </para></listitem>
- <listitem><para>
- Use the <keycap>.</keycap> key to step forward one frame at a time.
- </para></listitem>
- <listitem><para>
- Look at the pattern of interlaced-looking and progressive-looking
- frames. If the pattern you see is PPPII,PPPII,PPPII,... then the
- video is telecined. If you see some other pattern, then the video
- may have been telecined using some non-standard method;
- <application>MEncoder</application> cannot losslessly convert
- non-standard telecine to progressive. If you do not see any
- pattern at all, then it is most likely interlaced.
- </para></listitem>
- </orderedlist>
+Watching a telecined video, you will see interlacing artifacts that
+seem to "blink": they repeatedly appear and disappear.
+You can look closely at this by
+<orderedlist>
+<listitem><screen>mplayer dvd://1</screen></listitem>
+<listitem><para>
+ Seek to a part with motion.
+</para></listitem>
+<listitem><para>
+ Use the <keycap>.</keycap> key to step forward one frame at a time.
+</para></listitem>
+<listitem><para>
+ Look at the pattern of interlaced-looking and progressive-looking
+ frames. If the pattern you see is PPPII,PPPII,PPPII,... then the
+ video is telecined. If you see some other pattern, then the video
+ may have been telecined using some non-standard method;
+ <application>MEncoder</application> cannot losslessly convert
+ non-standard telecine to progressive. If you do not see any
+ pattern at all, then it is most likely interlaced.
+</para></listitem>
+</orderedlist>
</para>
<para>
- Sometimes telecined video on DVDs is referred to as
- &quot;hard-telecine&quot;. Since hard-telecine is already 60000/1001 fields
- per second, the DVD player plays the video without any manipulation.
+Sometimes telecined video on DVDs is referred to as
+"hard-telecine". Since hard-telecine is already 60000/1001 fields
+per second, the DVD player plays the video without any manipulation.
</para>
<para>
- Another way to tell if your source is telecined or not is to play
- the source with the <option>-vf pullup</option> and <option>-v</option>
- command line options to see how <option>pullup</option> matches frames.
- If the source is telecined, you should see on the console a 3:2 pattern
- with <systemitem>0+.1.+2</systemitem> and <systemitem>0++1</systemitem>
- alternating.
- This technique has the advantage that you do not need to watch the
- source to identify it, which could be useful if you wish to automate
- the encoding procedure, or to carry out said procedure remotely via
- a slow connection.
+Another way to tell if your source is telecined or not is to play
+the source with the <option>-vf pullup</option> and <option>-v</option>
+command line options to see how <option>pullup</option> matches frames.
+If the source is telecined, you should see on the console a 3:2 pattern
+with <systemitem>0+.1.+2</systemitem> and <systemitem>0++1</systemitem>
+alternating.
+This technique has the advantage that you do not need to watch the
+source to identify it, which could be useful if you wish to automate
+the encoding procedure, or to carry out said procedure remotely via
+a slow connection.
</para>
-
</sect3>
+
<sect3 id="menc-feat-telecine-ident-interlaced">
<title>Interlaced</title>
+
<para>
- Interlaced video was originally filmed at 60000/1001 fields per second,
- and stored on the DVD as 30000/1001 frames per second. The interlacing effect
- (often called &quot;combing&quot;) is a result of combining pairs of
- fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart,
- and when they are displayed simultaneously the difference is apparent.
+Interlaced video was originally filmed at 60000/1001 fields per second,
+and stored on the DVD as 30000/1001 frames per second. The interlacing effect
+(often called "combing") is a result of combining pairs of
+fields into frames. Each field is supposed to be 1/(60000/1001) seconds apart,
+and when they are displayed simultaneously the difference is apparent.
</para>
<para>
- As with telecined video, <application>MPlayer</application> should
- not ever report any framerate changes when playing interlaced content.
+As with telecined video, <application>MPlayer</application> should
+not ever report any framerate changes when playing interlaced content.
</para>
<para>
- When you view an interlaced video closely by frame-stepping with the
- <keycap>.</keycap> key, you will see that every single frame is interlaced.
+When you view an interlaced video closely by frame-stepping with the
+<keycap>.</keycap> key, you will see that every single frame is interlaced.
</para>
</sect3>
+
<sect3 id="menc-feat-telecine-ident-mixedpt">
<title>Mixed progressive and telecine</title>
+
<para>
- All of a &quot;mixed progressive and telecine&quot; video was originally
- 24000/1001 frames per second, but some parts of it ended up being telecined.
+All of a "mixed progressive and telecine" video was originally
+24000/1001 frames per second, but some parts of it ended up being telecined.
</para>
<para>
- When <application>MPlayer</application> plays this category, it will
- (often repeatedly) switch back and forth between &quot;30000/1001 fps NTSC&quot;
- and &quot;24000/1001 fps progressive NTSC&quot;. Watch the bottom of
- <application>MPlayer</application>'s output to see these messages.
+When <application>MPlayer</application> plays this category, it will
+(often repeatedly) switch back and forth between "30000/1001 fps NTSC"
+and "24000/1001 fps progressive NTSC". Watch the bottom of
+<application>MPlayer</application>'s output to see these messages.
</para>
<para>
- You should check the &quot;30000/1001 fps NTSC&quot; sections to make sure
- they are actually telecine, and not just interlaced.
+You should check the "30000/1001 fps NTSC" sections to make sure
+they are actually telecine, and not just interlaced.
</para>
</sect3>
+
<sect3 id="menc-feat-telecine-ident-mixedpi">
<title>Mixed progressive and interlaced</title>
+
<para>
- In &quot;mixed progressive and interlaced&quot; content, progressive
- and interlaced video have been spliced together.
+In "mixed progressive and interlaced" content, progressive
+and interlaced video have been spliced together.
</para>
<para>
- This category looks just like &quot;mixed progressive and telecine&quot;,
- until you examine the 30000/1001 fps sections and see that they do not have the
- telecine pattern.
+This category looks just like "mixed progressive and telecine",
+until you examine the 30000/1001 fps sections and see that they do not have the
+telecine pattern.
</para>
</sect3>
-
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-telecine-encode">
<title>How to encode each category</title>
<para>
- As I mentioned in the beginning, example <application>MEncoder</application>
- lines below are <emphasis role="bold">not</emphasis> meant to actually be used;
- they only demonstrate the minimum parameters to properly encode each category.
+As I mentioned in the beginning, example <application>MEncoder</application>
+lines below are <emphasis role="bold">not</emphasis> meant to actually be used;
+they only demonstrate the minimum parameters to properly encode each category.
</para>
+
<sect3 id="menc-feat-telecine-encode-progressive">
<title>Progressive</title>
<para>
- Progressive video requires no special filtering to encode. The only
- parameter you need to be sure to use is
- <option>-ofps 24000/1001</option>. Otherwise, <application>MEncoder</application>
- will try to encode at 30000/1001 fps and will duplicate frames.
+Progressive video requires no special filtering to encode. The only
+parameter you need to be sure to use is <option>-ofps 24000/1001</option>.
+Otherwise, <application>MEncoder</application>
+will try to encode at 30000/1001 fps and will duplicate frames.
</para>
<para>
- <screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
+<screen>mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001</screen>
</para>
<para>
- It is often the case, however, that a video that looks progressive
- actually has very short parts of telecine mixed in. Unless you are
- sure, it is safest to treat the video as
- <link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>.
- The performance loss is small
- <link linkend="menc-feat-telecine-footnotes">[3]</link>.
+It is often the case, however, that a video that looks progressive
+actually has very short parts of telecine mixed in. Unless you are
+sure, it is safest to treat the video as
+<link linkend="menc-feat-telecine-encode-mixedpt">mixed progressive and telecine</link>.
+The performance loss is small
+<link linkend="menc-feat-telecine-footnotes">[3]</link>.
</para>
</sect3>
+
<sect3 id="menc-feat-telecine-encode-telecined">
<title>Telecined</title>
+
<para>
- Telecine can be reversed to retrieve the original 24000/1001 content,
- using a process called inverse-telecine.
- <application>MPlayer</application> contains several filters to
- accomplish this; the best filter, <option>pullup</option>, is described
- in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed
- progressive and telecine</link> section.
+Telecine can be reversed to retrieve the original 24000/1001 content,
+using a process called inverse-telecine.
+<application>MPlayer</application> contains several filters to
+accomplish this; the best filter, <option>pullup</option>, is described
+in the <link linkend="menc-feat-telecine-encode-mixedpt">mixed
+progressive and telecine</link> section.
</para>
</sect3>
+
<sect3 id="menc-feat-telecine-encode-interlaced">
<title>Interlaced</title>
+
<para>
- For most practical cases it is not possible to retrieve a complete
- progressive video from interlaced content. The only way to do so
- without losing half of the vertical resolution is to double the
- framerate and try to &quot;guess&quot; what ought to make up the
- corresponding lines for each field (this has drawbacks - see method
- 3).
+For most practical cases it is not possible to retrieve a complete
+progressive video from interlaced content. The only way to do so
+without losing half of the vertical resolution is to double the
+framerate and try to "guess" what ought to make up the
+corresponding lines for each field (this has drawbacks - see method 3).
</para>
<orderedlist>
<listitem><para>
-
Encode the video in interlaced form. Normally, interlacing wreaks
havoc with the encoder's ability to compress well, but
<systemitem class="library">libavcodec</systemitem> has two
parameters specifically for dealing with storing interlaced video a
- bit better: <option> ildct</option> and <option>ilme</option>. Also,
+ bit better: <option>ildct</option> and <option>ilme</option>. Also,
using <option>mbd=2</option> is strongly recommended
<link linkend="menc-feat-telecine-footnotes">[2] </link> because it
will encode macroblocks as non-interlaced in places where there is
no motion. Note that <option>-ofps</option> is NOT needed here.
-
<screen>mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
- </para></listitem>
+</para></listitem>
<listitem><para>
Use a deinterlacing filter before encoding. There are several of
these filters available to choose from, each with its own advantages
- and disadvantages. Consult <option>mplayer -pphelp</option> to see
- what is available (grep for &quot;deint&quot;), and search the
- <ulink url="http://www.mplayerhq.hu/homepage/design6/info.html#mailing_lists">
+ and disadvantages. Consult <option>mplayer -pphelp</option> and
+ <option>mplayer -vf help</option> to see what is available
+ (grep for "deint"), read Michael Niedermayer's
+ <ulink url="http://guru.multimedia.cx/deinterlacing-filters/">Deinterlacing filters comparison</ulink>,
+ and search the
+ <ulink url="http://www.mplayerhq.hu/design7/mailing_lists.html">
MPlayer mailing lists</ulink> to find many discussions about the
- various filters. Again, the framerate is not changing, so no
+ various filters.
+ Again, the framerate is not changing, so no
<option>-ofps</option>. Also, deinterlacing should be done after
cropping <link linkend="menc-feat-telecine-footnotes">[1]</link> and
before scaling.
-
- <screen>mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc</screen>
- </para></listitem>
+ <screen>mencoder dvd://1 -oac copy -vf yadif -ovc lavc</screen>
+</para></listitem>
<listitem><para>
Unfortunately, this option is buggy with
<application>MEncoder</application>; it ought to work well with
<application>MEncoder G2</application>, but that is not here yet. You
- might experience crahes. Anyway, the purpose of <option> -vf
+ might experience crashes. Anyway, the purpose of <option> -vf
tfields</option> is to create a full frame out of each field, which
makes the framerate 60000/1001. The advantage of this approach is that no
data is ever lost; however, since each frame comes from only one
@@ -1961,9 +2145,11 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
<emphasis role="bold">have to</emphasis> specify both
<option>-fps</option> and <option>-ofps</option> to be twice the
framerate of your original source.
-
- <screen>mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001</screen>
- </para></listitem>
+ <screen>
+mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc \
+ -fps 60000/1001 -ofps 60000/1001<!--
+ --></screen>
+</para></listitem>
<listitem><para>
If you plan on downscaling dramatically, you can extract and encode
only one of the two fields. Of course, you will lose half the vertical
@@ -1975,23 +2161,25 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
appropriately. Remember that you will have to adjust the scale to
compensate for the vertical resolution being halved.
<screen>mencoder dvd://1 -oac copy -vf field=0 -ovc lavc</screen>
- </para></listitem>
+</para></listitem>
</orderedlist>
</sect3>
+
<sect3 id="menc-feat-telecine-encode-mixedpt">
<title>Mixed progressive and telecine</title>
+
<para>
- In order to turn mixed progressive and telecine video into entirely
- progressive video, the telecined parts have to be
- inverse-telecined. There are three ways to accomplish this,
- described below. Note that you should
- <emphasis role="bold">always</emphasis> inverse-telecine before any
- rescaling; unless you really know what you are doing,
- inverse-telecine before cropping, too
- <link linkend="menc-feat-telecine-footnotes">[1]</link>.
- <option>-ofps 24000/1001</option> is needed here because the output video
- will be 24000/1001 frames per second.
+In order to turn mixed progressive and telecine video into entirely
+progressive video, the telecined parts have to be
+inverse-telecined. There are three ways to accomplish this,
+described below. Note that you should
+<emphasis role="bold">always</emphasis> inverse-telecine before any
+rescaling; unless you really know what you are doing,
+inverse-telecine before cropping, too
+<link linkend="menc-feat-telecine-footnotes">[1]</link>.
+<option>-ofps 24000/1001</option> is needed here because the output video
+will be 24000/1001 frames per second.
</para>
<itemizedlist>
@@ -2003,14 +2191,30 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
else <application>MEncoder</application> will crash.
<option>pullup</option> is, however, the cleanest and most
accurate method available for encoding both telecine and
- &quot;mixed progressive and telecine&quot;.
-
- <screen>mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001</screen>
- </para>
-
-
- </listitem>
- <listitem><para>
+ "mixed progressive and telecine".
+ <screen>
+mencoder dvd://1 -oac copy -vf pullup,softskip
+ -ovc lavc -ofps 24000/1001<!--
+ --></screen>
+</para></listitem>
+<listitem><para>
+ <option>-vf filmdint</option> is similar to
+ <option>-vf pullup</option>: both filters attempt to match a pair of
+ fields to form a complete frame. <option>filmdint</option> will
+ deinterlace individual fields that it cannot match, however, whereas
+ <option>pullup</option> will simply drop them. Also, the two filters
+ have separate detection code, and <option>filmdint</option> may tend to match fields a
+ bit less often. Which filter works better may depend on the input
+ video and personal taste; feel free to experiment with fine-tuning
+ the filters' options if you encounter problems with either one (see
+ the man page for details). For most well-mastered input video,
+ however, both filters work quite well, so either one is a safe choice
+ to start with.
+ <screen>
+mencoder dvd://1 -oac copy -vf filmdint -ovc lavc -ofps 24000/1001<!--
+ --></screen>
+</para></listitem>
+<listitem><para>
An older method
is to, rather than inverse-telecine the telecined parts, telecine
the non-telecined parts and then inverse-telecine the whole
@@ -2019,35 +2223,27 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
softpulldown with either <option>detc</option> or
<option>ivtc</option>, the final result will be entirely
progressive. <option>-ofps 24000/1001</option> is needed.
+ <screen>
+mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
+ </screen>
+</para></listitem>
- <screen>mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001</screen>
- </para>
- </listitem>
-
-<listitem><para>
- I have not used <option>-vf filmdint</option> myself, but here is what
- D Richard Felker III has to say:
-
- <blockquote><para>It is OK, but IMO it tries to deinterlace rather
- than doing inverse telecine too often (much like settop DVD
- players &amp; progressive TVs) which gives ugly flickering and
- other artifacts. If you are going to use it, you at least need to
- spend some time tuning the options and watching the output first
- to make sure it is not messing up.</para></blockquote>
- </para></listitem>
</itemizedlist>
</sect3>
+
<sect3 id="menc-feat-telecine-encode-mixedpi">
<title>Mixed progressive and interlaced</title>
+
<para>
- There are two options for dealing with this category, each of
- which is a compromise. You should decide based on the
- duration/location of each type.
+There are two options for dealing with this category, each of
+which is a compromise. You should decide based on the
+duration/location of each type.
</para>
<itemizedlist>
-<listitem><para>
+<listitem>
+ <para>
Treat it as progressive. The interlaced parts will look interlaced,
and some of the interlaced fields will have to be dropped, resulting
in a bit of uneven jumpiness. You can use a postprocessing filter if
@@ -2061,7 +2257,7 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
second video, they will be telecined along with the progressive
frames. Half of the interlaced "frames" will be displayed for three
fields' duration (3/(60000/1001) seconds), resulting in a flicking
- &quot;jump back in time&quot; effect that looks quite bad. If you
+ "jump back in time" effect that looks quite bad. If you
even attempt this, you <emphasis role="bold">must</emphasis> use a
deinterlacing filter like <option>lb</option> or
<option>l5</option>.
@@ -2084,27 +2280,29 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
only half progressive, you probably want to encode it as if it is all
interlaced.
</para>
- </listitem>
+</listitem>
<listitem><para>
Treat it as interlaced. Some frames of the progressive parts will
need to be duplicated, resulting in uneven jumpiness. Again,
deinterlacing filters may slightly degrade the progressive parts.
- </para></listitem>
-
+</para></listitem>
</itemizedlist>
</sect3>
-
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-telecine-footnotes">
<title>Footnotes</title>
+
<orderedlist>
-<listitem><formalpara>
+<listitem>
+ <formalpara>
<title>About cropping:</title>
<para>
Video data on DVDs are stored in a format called YUV 4:2:0. In YUV
- video, luma (&quot;brightness&quot;) and chroma (&quot;color&quot;)
+ video, luma ("brightness") and chroma ("color")
are stored separately. Because the human eye is somewhat less
sensitive to color than it is to brightness, in a YUV 4:2:0 picture
there is only one chroma pixel for every four luma pixels. In a
@@ -2144,7 +2342,7 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
vertically by multiples of four unless you use <option>-vf
field</option> before cropping.
</para>
- </listitem>
+</listitem>
<listitem><formalpara>
<title>About encoding parameters and quality:</title>
@@ -2160,8 +2358,7 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
encoding quality (and decrease encoding speed) but that is beyond
the scope of this document.
</para>
- </formalpara>
- </listitem>
+</formalpara></listitem>
<listitem><formalpara>
<title>About the performance of pullup:</title>
@@ -2169,125 +2366,191 @@ Do not do this! Always use a file or CD/DVD/etc device as input.
It is safe to use <option>pullup</option> (along with <option>softskip
</option>) on progressive video, and is usually a good idea unless
the source has been definitively verified to be entirely progressive.
- The performace loss is small for most cases. On a bare-minimum encode,
+ The performance loss is small for most cases. On a bare-minimum encode,
<option>pullup</option> causes <application>MEncoder</application> to
be 50% slower. Adding sound processing and advanced <option>lavcopts
</option> overshadows that difference, bringing the performance
decrease of using <option>pullup</option> down to 2%.
</para>
- </formalpara>
- </listitem>
-
+</formalpara></listitem>
</orderedlist>
-
</sect2>
-
</sect1>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
<sect1 id="menc-feat-enc-libavcodec">
<title>Encoding with the <systemitem class="library">libavcodec</systemitem>
codec family</title>
<para>
-<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
+<systemitem class="library">libavcodec</systemitem>
provides simple encoding to a lot of interesting video and audio formats.
You can encode to the following codecs (more or less up to date):
</para>
+<!-- ********** -->
+
<sect2 id="menc-feat-enc-libavcodec-video-codecs">
-<title><systemitem class="library">libavcodec</systemitem>'s video codecs</title>
+<title><systemitem class="library">libavcodec</systemitem>'s
+ video codecs</title>
<para>
<informaltable frame="all">
<tgroup cols="2">
<thead>
-<row><entry>Video codec name</entry><entry>Description</entry></row>
+ <row><entry>Video codec name</entry><entry>Description</entry></row>
</thead>
<tbody>
-<row><entry>mjpeg</entry><entry>
- Motion JPEG
- </entry></row>
-<row><entry>ljpeg</entry><entry>
- lossless JPEG
- </entry></row>
-<row><entry>h261</entry><entry>
- H.261
- </entry></row>
-<row><entry>h263</entry><entry>
- H.263
- </entry></row>
-<row><entry>h263p</entry><entry>
- H.263+
- </entry></row>
-<row><entry>mpeg4</entry><entry>
- ISO standard MPEG-4 (DivX 5, XviD compatible)
- </entry></row>
-<row><entry>msmpeg4</entry><entry>
- pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)
- </entry></row>
-<row><entry>msmpeg4v2</entry><entry>
- pre-standard MPEG-4 by MS, v2 (used in old ASF files)
- </entry></row>
-<row><entry>wmv1</entry><entry>
- Windows Media Video, version 1 (AKA WMV7)
- </entry></row>
-<row><entry>wmv2</entry><entry>
- Windows Media Video, version 2 (AKA WMV8)
- </entry></row>
-<row><entry>rv10</entry><entry>
- RealVideo 1.0
- </entry></row>
-<row><entry>rv20</entry><entry>
- RealVideo 2.0
- </entry></row>
-<row><entry>mpeg1video</entry><entry>
- MPEG-1 video
- </entry></row>
-<row><entry>mpeg2video</entry><entry>
- MPEG-2 video
- </entry></row>
-<row><entry>huffyuv</entry><entry>
- lossless compression
- </entry></row>
-<row><entry>asv1</entry><entry>
- ASUS Video v1
- </entry></row>
-<row><entry>asv2</entry><entry>
- ASUS Video v2
- </entry></row>
-<row><entry>ffv1</entry><entry>
- FFmpeg's lossless video codec
- </entry></row>
-<row><entry>svq1</entry><entry>
- Sorenson video 1
- </entry></row>
-<row><entry>flv</entry><entry>
- Sorenson H.263 used in Flash Video
- </entry></row>
-<row><entry>dvvideo</entry><entry>
- Sony Digital Video
- </entry></row>
-<row><entry>snow</entry><entry>
- FFmpeg's experimental wavelet-based codec
- </entry></row>
+<row>
+ <entry>mjpeg</entry>
+ <entry>Motion JPEG</entry>
+</row>
+<row>
+ <entry>ljpeg</entry>
+ <entry>lossless JPEG</entry>
+</row>
+<row>
+ <entry>jpegls</entry>
+ <entry>JPEG LS</entry>
+</row>
+<row>
+ <entry>targa</entry>
+ <entry>Targa image</entry>
+</row>
+<row>
+ <entry>gif</entry>
+ <entry>GIF image</entry>
+</row>
+<row>
+ <entry>bmp</entry>
+ <entry>BMP image</entry>
+</row>
+<row>
+ <entry>png</entry>
+ <entry>PNG image</entry>
+</row>
+<row>
+ <entry>h261</entry>
+ <entry>H.261</entry>
+</row>
+<row>
+ <entry>h263</entry>
+ <entry>H.263 </entry>
+</row>
+<row>
+ <entry>h263p</entry>
+ <entry>H.263+</entry>
+</row>
+<row>
+ <entry>mpeg4</entry>
+ <entry>ISO standard MPEG-4 (DivX, Xvid compatible)</entry>
+</row>
+<row>
+ <entry>msmpeg4</entry>
+ <entry>pre-standard MPEG-4 variant by MS, v3 (AKA DivX3)</entry>
+</row>
+<row>
+ <entry>msmpeg4v2</entry>
+ <entry>pre-standard MPEG-4 by MS, v2 (used in old ASF files)</entry>
+</row>
+<row>
+ <entry>wmv1</entry>
+ <entry>Windows Media Video, version 1 (AKA WMV7)</entry>
+</row>
+<row>
+ <entry>wmv2</entry>
+ <entry>Windows Media Video, version 2 (AKA WMV8)</entry>
+</row>
+<row>
+ <entry>rv10</entry>
+ <entry>RealVideo 1.0</entry>
+</row>
+<row>
+ <entry>rv20</entry>
+ <entry>RealVideo 2.0</entry>
+</row>
+<row>
+ <entry>mpeg1video</entry>
+ <entry>MPEG-1 video</entry>
+</row>
+<row>
+ <entry>mpeg2video</entry>
+ <entry>MPEG-2 video</entry>
+</row>
+<row>
+ <entry>huffyuv</entry>
+ <entry>lossless compression</entry>
+</row>
+<row>
+ <entry>ffvhuff</entry>
+ <entry>FFmpeg modified huffyuv lossless</entry>
+</row>
+<row>
+ <entry>asv1</entry>
+ <entry>ASUS Video v1</entry>
+</row>
+<row>
+ <entry>asv2</entry>
+ <entry>ASUS Video v2</entry>
+</row>
+<row>
+ <entry>ffv1</entry>
+ <entry>FFmpeg's lossless video codec</entry>
+</row>
+<row>
+ <entry>svq1</entry>
+ <entry>Sorenson video 1</entry>
+</row>
+<row>
+ <entry>flv</entry>
+ <entry>Sorenson H.263 used in Flash Video</entry>
+</row>
+<row>
+ <entry>flashsv</entry>
+ <entry>Flash Screen Video</entry>
+</row>
+<row>
+ <entry>dvvideo</entry>
+ <entry>Sony Digital Video</entry>
+</row>
+<row>
+ <entry>snow</entry>
+ <entry>FFmpeg's experimental wavelet-based codec</entry>
+</row>
+<row>
+ <entry>zmbv</entry>
+ <entry>Zip Motion Blocks Video</entry>
+</row>
+<row>
+ <entry>dnxhd</entry>
+ <entry>AVID DNxHD</entry>
+</row>
</tbody>
</tgroup>
</informaltable>
The first column contains the codec names that should be passed after the
-<literal>vcodec</literal> config, like: <option>-lavcopts vcodec=msmpeg4</option>
+<literal>vcodec</literal> config,
+like: <option>-lavcopts vcodec=msmpeg4</option>
</para>
-<informalexample>
-<para>
+
+<informalexample><para>
An example with MJPEG compression:
-<screen>mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen>
-</para>
-</informalexample>
+<screen>
+mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc lavc -lavcopts vcodec=mjpeg -oac copy
+</screen>
+</para></informalexample>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-enc-libavcodec-audio-codecs">
-<title><systemitem class="library">libavcodec</systemitem>'s audio codecs</title>
+<title><systemitem class="library">libavcodec</systemitem>'s
+ audio codecs</title>
+
<para>
<informaltable frame="all">
<tgroup cols="2">
@@ -2295,22 +2558,78 @@ An example with MJPEG compression:
<row><entry>Audio codec name</entry><entry>Description</entry></row>
</thead>
<tbody>
- <row>
- <entry>mp2</entry>
- <entry>MPEG Layer 2</entry>
- </row>
- <row>
- <entry>ac3</entry>
- <entry>AC3, AKA Dolby Digital</entry>
- </row>
- <row>
- <entry>adpcm_ima_wav</entry>
- <entry>IMA adaptive PCM (4 bits per sample, 4:1 compression)</entry>
- </row>
- <row>
- <entry>sonic</entry>
- <entry>experimental lossy/lossless codec</entry>
- </row>
+<row>
+ <entry>ac3</entry>
+ <entry>Dolby Digital (AC-3)</entry>
+</row>
+<row>
+ <entry>adpcm_*</entry>
+ <entry>Adaptive PCM formats - see supplementary table</entry>
+</row>
+<row>
+ <entry>flac</entry>
+ <entry>Free Lossless Audio Codec (FLAC)</entry>
+</row>
+<row>
+ <entry>g726</entry>
+ <entry>G.726 ADPCM</entry>
+</row>
+<row>
+ <entry>libamr_nb</entry>
+ <entry>3GPP Adaptive Multi-Rate (AMR) narrow-band</entry>
+</row>
+<row>
+ <entry>libamr_wb</entry>
+ <entry>3GPP Adaptive Multi-Rate (AMR) wide-band</entry>
+</row>
+<row>
+ <entry>libfaac</entry>
+ <entry>Advanced Audio Coding (AAC) - using FAAC</entry>
+</row>
+<row>
+ <entry>libgsm</entry>
+ <entry>ETSI GSM 06.10 full rate</entry>
+</row>
+<row>
+ <entry>libgsm_ms</entry>
+ <entry>Microsoft GSM</entry>
+</row>
+<row>
+ <entry>libmp3lame</entry>
+ <entry>MPEG-1 audio layer 3 (MP3) - using LAME</entry>
+</row>
+<row>
+ <entry>mp2</entry>
+ <entry>MPEG-1 audio layer 2 (MP2)</entry>
+</row>
+<row>
+ <entry>pcm_*</entry>
+ <entry>PCM formats - see supplementary table</entry>
+</row>
+<row>
+ <entry>roq_dpcm</entry>
+ <entry>Id Software RoQ DPCM</entry>
+</row>
+<row>
+ <entry>sonic</entry>
+ <entry>experimental FFmpeg lossy codec</entry>
+</row>
+<row>
+ <entry>sonicls</entry>
+ <entry>experimental FFmpeg lossless codec</entry>
+</row>
+<row>
+ <entry>vorbis</entry>
+ <entry>Vorbis</entry>
+</row>
+<row>
+ <entry>wmav1</entry>
+ <entry>Windows Media Audio v1</entry>
+</row>
+<row>
+ <entry>wmav2</entry>
+ <entry>Windows Media Audio v2</entry>
+</row>
</tbody>
</tgroup>
</informaltable>
@@ -2319,44 +2638,205 @@ The first column contains the codec names that should be passed after the
<literal>acodec</literal> option, like: <option>-lavcopts acodec=ac3</option>
</para>
-<informalexample>
+<informalexample><para>
+An example with AC-3 compression:
+<screen>
+mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -oac lavc -lavcopts acodec=ac3 -ovc copy
+</screen>
+</para></informalexample>
+
<para>
-An example with AC3 compression:
-<screen>mencoder dvd://2 -o title2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy</screen>
+Contrary to <systemitem class="library">libavcodec</systemitem>'s video
+codecs, its audio codecs do not make a wise usage of the bits they are
+given as they lack some minimal psychoacoustic model (if at all)
+which most other codec implementations feature.
+However, note that all these audio codecs are very fast and work
+out-of-the-box everywhere <application>MEncoder</application> has been
+compiled with <systemitem class="library">libavcodec</systemitem> (which
+is the case most of time), and do not depend on external libraries.
</para>
-</informalexample>
+
+<sect3 id="menc-feat-enc-libavcodec-audio-codecs-pcmadpcm">
+<title>PCM/ADPCM format supplementary table</title>
<para>
- Contrary to <systemitem class="library">libavcodec</systemitem>'s video
- codecs, its audio codecs do not make a wise usage of the bits they are
- given as they lack some minimal psychoacoustic model (if at all)
- which most other codec implementations feature.
- However, note that all these audio codecs are very fast and work
- out-of-the-box everywhere <application>MEncoder</application> has been
- compiled with <systemitem class="library">libavcodec</systemitem> (which
- is the case most of time), and do not depend on external libraries.
+<informaltable frame="all">
+<tgroup cols="2">
+<thead>
+<row><entry>PCM/ADPCM codec name</entry><entry>Description</entry></row>
+</thead>
+<tbody>
+<row>
+ <entry>pcm_s32le</entry>
+ <entry>signed 32-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_s32be</entry>
+ <entry>signed 32-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_u32le</entry>
+ <entry>unsigned 32-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_u32be</entry>
+ <entry>unsigned 32-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_s24le</entry>
+ <entry>signed 24-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_s24be</entry>
+ <entry>signed 24-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_u24le</entry>
+ <entry>unsigned 24-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_u24be</entry>
+ <entry>unsigned 24-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_s16le</entry>
+ <entry>signed 16-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_s16be</entry>
+ <entry>signed 16-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_u16le</entry>
+ <entry>unsigned 16-bit little-endian</entry>
+</row>
+<row>
+ <entry>pcm_u16be</entry>
+ <entry>unsigned 16-bit big-endian</entry>
+</row>
+<row>
+ <entry>pcm_s8</entry>
+ <entry>signed 8-bit</entry>
+</row>
+<row>
+ <entry>pcm_u8</entry>
+ <entry>unsigned 8-bit</entry>
+</row>
+<row>
+ <entry>pcm_alaw</entry>
+ <entry>G.711 A-LAW </entry>
+</row>
+<row>
+ <entry>pcm_mulaw</entry>
+ <entry>G.711 &mu;-LAW</entry>
+</row>
+<row>
+ <entry>pcm_s24daud</entry>
+ <entry>signed 24-bit D-Cinema Audio format</entry>
+</row>
+<row>
+ <entry>pcm_zork</entry>
+ <entry>Activision Zork Nemesis</entry>
+</row>
+<row>
+ <entry>adpcm_ima_qt</entry>
+ <entry>Apple QuickTime</entry>
+</row>
+<row>
+ <entry>adpcm_ima_wav</entry>
+ <entry>Microsoft/IBM WAVE</entry>
+</row>
+<row>
+ <entry>adpcm_ima_dk3</entry>
+ <entry>Duck DK3</entry>
+</row>
+<row>
+ <entry>adpcm_ima_dk4</entry>
+ <entry>Duck DK4</entry>
+</row>
+<row>
+ <entry>adpcm_ima_ws</entry>
+ <entry>Westwood Studios</entry>
+</row>
+<row>
+ <entry>adpcm_ima_smjpeg</entry>
+ <entry>SDL Motion JPEG</entry>
+</row>
+<row>
+ <entry>adpcm_ms</entry>
+ <entry>Microsoft</entry>
+</row>
+<row>
+ <entry>adpcm_4xm</entry>
+ <entry>4X Technologies</entry>
+</row>
+<row>
+ <entry>adpcm_xa</entry>
+ <entry>Phillips Yellow Book CD-ROM eXtended Architecture</entry>
+</row>
+<row>
+ <entry>adpcm_ea</entry>
+ <entry>Electronic Arts</entry>
+</row>
+<row>
+ <entry>adpcm_ct</entry>
+ <entry>Creative 16->4-bit</entry>
+</row>
+<row>
+ <entry>adpcm_swf</entry>
+ <entry>Adobe Shockwave Flash</entry>
+</row>
+<row>
+ <entry>adpcm_yamaha</entry>
+ <entry>Yamaha</entry>
+</row>
+<row>
+ <entry>adpcm_sbpro_4</entry>
+ <entry>Creative VOC SoundBlaster Pro 8->4-bit</entry>
+</row>
+<row>
+ <entry>adpcm_sbpro_3</entry>
+ <entry>Creative VOC SoundBlaster Pro 8->2.6-bit</entry>
+</row>
+<row>
+ <entry>adpcm_sbpro_2</entry>
+ <entry>Creative VOC SoundBlaster Pro 8->2-bit</entry>
+</row>
+<row>
+ <entry>adpcm_thp</entry>
+ <entry>Nintendo GameCube FMV THP</entry>
+</row>
+<row>
+ <entry>adpcm_adx</entry>
+ <entry>Sega/CRI ADX</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
</para>
+</sect3>
+
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-lavc-encoding-options">
<title>Encoding options of libavcodec</title>
<para>
- Ideally, you would probably want to be able to just tell the encoder to switch
- into "high quality" mode and move on.
- That would probably be nice, but unfortunately hard to implement as different
- encoding options yield different quality results depending on the source material.
- That is because compression depends on the visual properties of the video
- in question.
- For example, anime and live action have very different properties and
- thus require different options to obtain optimum encoding.
- The good news is that some options should never be left out, like
- <option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
- See below for a detailed description of common encoding options.
+Ideally, you would probably want to be able to just tell the encoder to switch
+into "high quality" mode and move on.
+That would probably be nice, but unfortunately hard to implement as different
+encoding options yield different quality results depending on the source
+material. That is because compression depends on the visual properties of the
+video in question.
+For example, Anime and live action have very different properties and
+thus require different options to obtain optimum encoding.
+The good news is that some options should never be left out, like
+<option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
+See below for a detailed description of common encoding options.
</para>
-
<itemizedlist>
<title>Options to adjust:</title>
<listitem><para>
@@ -2368,48 +2848,41 @@ An example with AC3 compression:
option, but you need to deactivate scene detection, which
is not a good idea as it will hurt encode efficiency a bit.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vb_strategy=1</emphasis>: helps in high-motion scenes.
On some videos, vmax_b_frames may hurt quality, but vmax_b_frames=2 along
with vb_strategy=1 helps.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">dia</emphasis>: motion search range. Bigger is better
and slower.
Negative values are a completely different scale.
Good values are -1 for a fast encode, or 2-4 for slower.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">predia</emphasis>: motion search pre-pass.
Not as important as dia. Good values are 1 (default) to 4. Requires preme=2
to really be useful.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">cmp, subcmp, precmp</emphasis>: Comparison function for
motion estimation.
Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate
distortion).
0 is fastest, and sufficient for precmp.
- For cmp and subcmp, 2 is good for anime, and 3 is good for live action.
+ For cmp and subcmp, 2 is good for Anime, and 3 is good for live action.
6 may or may not be slightly better, but is slow.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">last_pred</emphasis>: Number of motion predictors to
take from the previous frame.
1-3 or so help at little speed cost.
Higher values are slow for no extra gain.
</para></listitem>
-
<listitem><para>
- <emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of macroblocks.
- Small speed cost for small quality gain.
+ <emphasis role="bold">cbp, mv0</emphasis>: Controls the selection of
+ macroblocks. Small speed cost for small quality gain.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">qprd</emphasis>: adaptive quantization based on the
macroblock's complexity.
@@ -2417,7 +2890,6 @@ An example with AC3 compression:
This can cause artifacts unless you set vqmax to some reasonably small value
(6 is good, maybe as low as 4); vqmin=1 should also help.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">qns</emphasis>: very slow, especially when combined
with qprd.
@@ -2426,7 +2898,6 @@ An example with AC3 compression:
Do not use this unless you have already tweaked everything else as far as it
will go and the results still are not good enough.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vqcomp</emphasis>: Tweak ratecontrol.
What values are good depends on the movie.
@@ -2435,7 +2906,6 @@ An example with AC3 compression:
them on high-complexity scenes (default: 0.5, range: 0-1. recommended range:
0.5-0.7).
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vlelim, vcelim</emphasis>: Sets the single coefficient
elimination threshold for luminance and chroma planes.
@@ -2444,27 +2914,24 @@ An example with AC3 compression:
when the change in a block is less than the threshold you specify, and in
such a case, to just encode the block as "no change".
This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9
- seem to be good for live movies, but seem not to help with anime;
+ seem to be good for live movies, but seem not to help with Anime;
when encoding animation, you should probably leave them unchanged.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">qpel</emphasis>: Quarter pixel motion estimation.
MPEG-4 uses half pixel precision for its motion search by default,
therefore this option comes with an overhead as more information will be
stored in the encoded file.
The compression gain/loss depends on the movie, but it is usually not very
- effective on anime.
+ effective on Anime.
qpel always incurs a significant cost in CPU decode time (+25% in
practice).
</para></listitem>
-
<listitem><para>
<emphasis role="bold">psnr</emphasis>: does not affect the actual encoding,
but writes a log file giving the type/size/quality of each frame, and
prints a summary of PSNR (Peak Signal to Noise Ratio) at the end.
</para></listitem>
-
</itemizedlist>
<itemizedlist>
@@ -2472,7 +2939,6 @@ An example with AC3 compression:
<listitem><para>
<emphasis role="bold">vme</emphasis>: The default is best.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">lumi_mask, dark_mask</emphasis>: Psychovisual adaptive
quantization.
@@ -2480,7 +2946,6 @@ An example with AC3 compression:
Reasonable values may be effective in your case, but be warned this is very
subjective.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">scplx_mask</emphasis>: Tries to prevent blocky
artifacts, but postprocessing is better.
@@ -2488,36 +2953,43 @@ An example with AC3 compression:
</itemizedlist>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-mpeg4-lavc-example-settings">
<title>Encoding setting examples</title>
<para>
- The following settings are examples of different encoding
- option combinations that affect the speed vs quality tradeoff
- at the same target bitrate.
+The following settings are examples of different encoding
+option combinations that affect the speed vs quality tradeoff
+at the same target bitrate.
</para>
<para>
- All the encoding settings were tested on a 720x448 @30000/1001 fps
- video sample, the target bitrate was 900kbps, and the machine was an
- AMD-64 3400+ at 2400 Mhz in 64 bits mode.
- Each encoding setting features the measured encoding speed (in
- frames per second) and the PSNR loss (in dB) compared to the "very
- high quality" setting.
- Please understand that depending on your source, your machine type
- and development advancements, you may get very different results.
+All the encoding settings were tested on a 720x448 @30000/1001 fps
+video sample, the target bitrate was 900kbps, and the machine was an
+AMD-64 3400+ at 2400 MHz in 64 bits mode.
+Each encoding setting features the measured encoding speed (in
+frames per second) and the PSNR loss (in dB) compared to the "very
+high quality" setting.
+Please understand that depending on your source, your machine type
+and development advancements, you may get very different results.
</para>
<para>
<informaltable frame="all">
<tgroup cols="4">
<thead>
-<row><entry>Description</entry><entry>Encoding options</entry><entry>speed (in fps)</entry><entry>Relative PSNR loss (in dB)</entry></row>
+<row>
+ <entry>Description</entry>
+ <entry>Encoding options</entry>
+ <entry>speed (in fps)</entry>
+ <entry>Relative PSNR loss (in dB)</entry>
+</row>
</thead>
<tbody>
<row>
<entry>Very high quality</entry>
- <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:vme=5:naq:qns=2</option></entry>
+ <entry><option>vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2</option></entry>
<entry>6fps</entry>
<entry>0dB</entry>
</row>
@@ -2545,11 +3017,14 @@ An example with AC3 compression:
</para>
</sect2>
-<sect2 id="custommatrices"><title>Custom inter/intra matrices</title>
+<!-- ********** -->
+
+<sect2 id="custommatrices">
+<title>Custom inter/intra matrices</title>
<para>
With this feature of
-<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
+<systemitem class="library">libavcodec</systemitem>
you are able to set custom inter (I-frames/keyframes) and intra
(P-frames/predicted frames) matrices. It is supported by many of the codecs:
<systemitem>mpeg1video</systemitem> and <systemitem>mpeg2video</systemitem>
@@ -2562,7 +3037,7 @@ A typical usage of this feature is to set the matrices preferred by the
</para>
<para>
-The <emphasis role="bold">KVCD &quot;Notch&quot; Quantization Matrix:</emphasis>
+The <emphasis role="bold">KVCD "Notch" Quantization Matrix:</emphasis>
</para>
<para>
@@ -2594,202 +3069,205 @@ Inter:
<para>
Usage:
<screen>
-$ mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=...
+mencoder <replaceable>input.avi</replaceable> -o <replaceable>output.avi</replaceable> -oac copy -ovc lavc \
+ -lavcopts inter_matrix=...:intra_matrix=...
</screen>
</para>
<para>
<screen>
-$ mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts
-vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
-12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
-29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
-:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
-28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
+mencoder <replaceable>input.avi</replaceable> -ovc lavc -lavcopts \
+vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,\
+12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,\
+29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79\
+:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,\
+28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,\
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
</screen>
</para>
</sect2>
+<!-- ********** -->
<sect2 id="menc-feat-dvd-mpeg4-example">
<title>Example</title>
<para>
- So, you have just bought your shiny new copy of Harry Potter and the Chamber
- of Secrets (widescreen edition, of course), and you want to rip this DVD
- so that you can add it to your Home Theatre PC. This is a region 1 DVD,
- so it is NTSC. The example below will still apply to PAL, except you will
- omit <option>-ofps 24000/1001</option> (because the output framerate is the
- same as the input framerate), and of course the crop dimensions will be
- different.
+So, you have just bought your shiny new copy of Harry Potter and the Chamber
+of Secrets (widescreen edition, of course), and you want to rip this DVD
+so that you can add it to your Home Theatre PC. This is a region 1 DVD,
+so it is NTSC. The example below will still apply to PAL, except you will
+omit <option>-ofps 24000/1001</option> (because the output framerate is the
+same as the input framerate), and of course the crop dimensions will be
+different.
</para>
<para>
- After running <option>mplayer dvd://1</option>, we follow the process
- detailed in the section <link linkend="menc-feat-telecine">How to deal
- with telecine and interlacing in NTSC DVDs</link> and discover that it is
- 24000/1001 fps progressive video, which means that we need not use an inverse
- telecine filter, such as <option>pullup</option> or
- <option>filmdint</option>.
+After running <option>mplayer dvd://1</option>, we follow the process
+detailed in the section <link linkend="menc-feat-telecine">How to deal
+with telecine and interlacing in NTSC DVDs</link> and discover that it is
+24000/1001 fps progressive video, which means that we need not use an inverse
+telecine filter, such as <option>pullup</option> or
+<option>filmdint</option>.
</para>
-<para>
- Next, we want to determine the appropriate crop rectangle, so we use the
- cropdetect filter:
-
- <screen>mplayer dvd://1 -vf cropdetect</screen>
-
- Make sure you seek to a fully filled frame (such as a bright scene), and
- you will see in <application>MPlayer</application>'s console output:
-
- <screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
-
- We then play the movie back with this filter to test its correctness:
-
- <screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
-
- And we see that it looks perfectly fine. Next, we ensure the width and
- height are a multiple of 16. The width is fine, however the height is
- not. Since we did not fail 7th grade math, we know that the nearest
- multiple of 16 lower than 362 is 352.
+<para id="menc-feat-dvd-mpeg4-example-crop">
+Next, we want to determine the appropriate crop rectangle, so we use the
+cropdetect filter:
+<screen>mplayer dvd://1 -vf cropdetect</screen>
+Make sure you seek to a fully filled frame (such as a bright scene,
+past the opening credits and logos), and
+you will see in <application>MPlayer</application>'s console output:
+<screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
+We then play the movie back with this filter to test its correctness:
+<screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
+And we see that it looks perfectly fine. Next, we ensure the width and
+height are a multiple of 16. The width is fine, however the height is
+not. Since we did not fail 7th grade math, we know that the nearest
+multiple of 16 lower than 362 is 352.
</para>
<para>
- We could just use <option>crop=720:352:0:58</option>, but it would be nice
- to take a little off the top and a little off the bottom so that we
- retain the center. We have shrunk the height by 10 pixels, but we do not
- want to increase the y-offset by 5-pixels since that is an odd number and
- will adversely affect quality. Instead, we will increase the y-offset by
- 4 pixels:
-
- <screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
-
- Another reason to shave pixels from both the top and the bottom is that we
- ensure we have eliminated any half-black pixels if they exist. Note that if
- your video is telecined, make sure the <option>pullup</option> filter (or
- whichever inverse telecine filter you decide to use) appears in the filter
- chain before you crop. If it is interlaced, deinterlace before cropping.
- (If you choose to preserve the interlaced video, then make sure your
- vertical crop offset is a multiple of 4.)
+We could just use <option>crop=720:352:0:58</option>, but it would be nice
+to take a little off the top and a little off the bottom so that we
+retain the center. We have shrunk the height by 10 pixels, but we do not
+want to increase the y-offset by 5-pixels since that is an odd number and
+will adversely affect quality. Instead, we will increase the y-offset by
+4 pixels:
+<screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
+Another reason to shave pixels from both the top and the bottom is that we
+ensure we have eliminated any half-black pixels if they exist. Note that if
+your video is telecined, make sure the <option>pullup</option> filter (or
+whichever inverse telecine filter you decide to use) appears in the filter
+chain before you crop. If it is interlaced, deinterlace before cropping.
+(If you choose to preserve the interlaced video, then make sure your
+vertical crop offset is a multiple of 4.)
</para>
<para>
- If you are really concerned about losing those 10 pixels, you might
- prefer instead to scale the dimensions down to the nearest multiple of 16.
- The filter chain would look like:
-
- <screen>-vf crop=720:362:0:58,scale=720:352</screen>
-
- Scaling the video down like this will mean that some small amount of
- detail is lost, though it probably will not be perceptible. Scaling up will
- result in lower quality (unless you increase the bitrate). Cropping
- discards those pixels altogether. It is a tradeoff that you will want to
- consider for each circumstance. For example, if the DVD video was made
- for television, you might want to avoid vertical scaling, since the line
- sampling corresponds to the way the content was originally recorded.
+If you are really concerned about losing those 10 pixels, you might
+prefer instead to scale the dimensions down to the nearest multiple of 16.
+The filter chain would look like:
+<screen>-vf crop=720:362:0:58,scale=720:352</screen>
+Scaling the video down like this will mean that some small amount of
+detail is lost, though it probably will not be perceptible. Scaling up will
+result in lower quality (unless you increase the bitrate). Cropping
+discards those pixels altogether. It is a tradeoff that you will want to
+consider for each circumstance. For example, if the DVD video was made
+for television, you might want to avoid vertical scaling, since the line
+sampling corresponds to the way the content was originally recorded.
</para>
<para>
- On inspection, we see that our movie has a fair bit of action and high
- amounts of detail, so we pick 2400Kbit for our bitrate.
+On inspection, we see that our movie has a fair bit of action and high
+amounts of detail, so we pick 2400Kbit for our bitrate.
</para>
<para>
- We are now ready to do the two pass encode. Pass one:
-
- <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
--lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \
--o Harry_Potter_2.avi</screen>
-
- And pass two is the same, except that we specify <option>vpass=2</option>:
-
- <screen>mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
--lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \
--o Harry_Potter_2.avi</screen>
+We are now ready to do the two pass encode. Pass one:
+<screen>
+mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
+ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=1 \
+ -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+</screen>
+And pass two is the same, except that we specify <option>vpass=2</option>:
+<screen>
+mencoder dvd://1 -ofps 24000/1001 -oac copy -o <replaceable>Harry_Potter_2.avi</replaceable> -ovc lavc \
+ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:autoaspect:vpass=2 \
+ -vf pullup,softskip,crop=720:352:0:62,hqdn3d=2:1:2
+</screen>
</para>
<para>
- The options <option>v4mv:mbd=2:trell</option> will greatly increase the
- quality at the expense of encoding time. There is little reason to leave
- these options out when the primary goal is quality. The options
- <option>cmp=3:subcmp=3:mbcmp=3</option> select a comparison function that
- yields higher quality than the defaults. You might try experimenting with
- this parameter (refer to the man page for the possible values) as
- different functions can have a large impact on quality depending on the
- source material. For example, if you find
- <systemitem class="library">libavcodec</systemitem> produces too much
- blocky artifacting, you could try selecting the experimental NSSE as
- comparison function via <option>*cmp=10</option>.
+The options <option>v4mv:mbd=2:trell</option> will greatly increase the
+quality at the expense of encoding time. There is little reason to leave
+these options out when the primary goal is quality. The options
+<option>cmp=3:subcmp=3</option> select a comparison function that
+yields higher quality than the defaults. You might try experimenting with
+this parameter (refer to the man page for the possible values) as
+different functions can have a large impact on quality depending on the
+source material. For example, if you find
+<systemitem class="library">libavcodec</systemitem> produces too much
+blocky artifacts, you could try selecting the experimental NSSE as
+comparison function via <option>*cmp=10</option>.
</para>
<para>
- For this movie, the resulting AVI will be 138 minutes long and nearly
- 3GB. And because you said that file size does not matter, this is a
- perfectly acceptable size. However, if you had wanted it smaller, you
- could try a lower bitrate. Increasing bitrates have diminishing
- returns, so while we might clearly see an improvement from 1800Kbit to
- 2000Kbit, it might not be so noticeable above 2000Kbit. Feel
- free to experiment until you are happy.
+For this movie, the resulting AVI will be 138 minutes long and nearly
+3GB. And because you said that file size does not matter, this is a
+perfectly acceptable size. However, if you had wanted it smaller, you
+could try a lower bitrate. Increasing bitrates have diminishing
+returns, so while we might clearly see an improvement from 1800Kbit to
+2000Kbit, it might not be so noticeable above 2000Kbit. Feel
+free to experiment until you are happy.
</para>
<para>
- Because we passed the source video through a denoise filter, you may want
- to add some of it back during playback. This, along with the
- <option>spp</option> post-processing filter, drastically improves the
- perception of quality and helps eliminate blocky artifacts in the video.
- With <application>MPlayer</application>'s <option>autoq</option> option,
- you can vary the amount of post-processing done by the spp filter
- depending on available CPU. Also, at this point, you may want to apply
- gamma and/or color correction to best suit your display. For example:
-
- <screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen>
-
+Because we passed the source video through a denoise filter, you may want
+to add some of it back during playback. This, along with the
+<option>spp</option> post-processing filter, drastically improves the
+perception of quality and helps eliminate blocky artifacts in the video.
+With <application>MPlayer</application>'s <option>autoq</option> option,
+you can vary the amount of post-processing done by the spp filter
+depending on available CPU. Also, at this point, you may want to apply
+gamma and/or color correction to best suit your display. For example:
+<screen>
+mplayer <replaceable>Harry_Potter_2.avi</replaceable> -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
+</screen>
</para>
</sect2>
</sect1>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
<sect1 id="menc-feat-xvid">
-<title>Encoding with the <systemitem class="library">XviD</systemitem>
-codec</title>
+<title>Encoding with the <systemitem class="library">Xvid</systemitem>
+ codec</title>
+
<para>
- <systemitem class="library">XviD</systemitem> is a free library for
- encoding MPEG-4 ASP video streams.
- Before starting to encode, you need to <link linkend="xvid">
- set up <application>MEncoder</application> to support it</link>.
+<systemitem class="library">Xvid</systemitem> is a free library for
+encoding MPEG-4 ASP video streams.
+Before starting to encode, you need to <link linkend="xvid">
+set up <application>MEncoder</application> to support it</link>.
</para>
+
<para>
- This guide mainly aims at featuring the same kind of information
- as x264's encoding guide.
- Therefore, please begin by reading
- <link linkend="menc-feat-x264-encoding-options-intro">the first part</link>
- of that guide.
+This guide mainly aims at featuring the same kind of information
+as x264's encoding guide.
+Therefore, please begin by reading
+<link linkend="menc-feat-x264-encoding-options-intro">the first part</link>
+of that guide.
</para>
+<!-- ********** -->
<sect2 id="menc-feat-xvid-intro">
<title>What options should I use to get the best results?</title>
<para>
- Please begin by reviewing the
- <systemitem class="library">XviD</systemitem> section of
- <application>MPlayer</application>'s man page.
- This section is intended to be a supplement to the man page.
+Please begin by reviewing the
+<systemitem class="library">Xvid</systemitem> section of
+<application>MPlayer</application>'s man page.
+This section is intended to be a supplement to the man page.
</para>
+
<para>
- The XviD default settings are already a good tradeoff between
- speed and quality, therefore you can safely stick to them if
- the following section puzzles you.
+The Xvid default settings are already a good tradeoff between
+speed and quality, therefore you can safely stick to them if
+the following section puzzles you.
</para>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-xvid-encoding-options">
-<title>Encoding options of <systemitem class="library">XviD</systemitem></title>
+<title>Encoding options of <systemitem class="library">Xvid</systemitem></title>
<itemizedlist>
<listitem><para>
- <emphasis role="bold">vhq</emphasis>
+ <emphasis role="bold">vhq</emphasis>
This setting affects the macroblock decision algorithm, where the
higher the setting, the wiser the decision.
The default setting may be safely used for every encode, while
@@ -2800,16 +3278,14 @@ codec</title>
Turning it off will noticeably speed up encoding; if speed is
critical for you, the tradeoff may be worth it.
</para></listitem>
-
<listitem><para>
- <emphasis role="bold">bvhq</emphasis>
+ <emphasis role="bold">bvhq</emphasis>
This does the same job as vhq, but does it on B-frames.
It has a negligible impact on speed, and slightly improves quality
(around +0.1dB PSNR).
</para></listitem>
-
<listitem><para>
- <emphasis role="bold">max_bframes</emphasis>
+ <emphasis role="bold">max_bframes</emphasis>
A higher number of consecutive allowed B-frames usually improves
compressibility, although it may also lead to more blocking artifacts.
The default setting is a good tradeoff between compressibility and
@@ -2819,9 +3295,8 @@ codec</title>
target bitrate is high enough to ensure that the encoder does not
have to increase quantizers to reach it.
</para></listitem>
-
<listitem><para>
- <emphasis role="bold">bf_threshold</emphasis>
+ <emphasis role="bold">bf_threshold</emphasis>
This controls the B-frame sensitivity of the encoder, where a higher
value leads to more B-frames being used (and vice versa).
This setting is to be used together with <option>max_bframes</option>;
@@ -2840,9 +3315,8 @@ codec</title>
consecutive B-frame), this would be your only way to
increase compressibility through using B-frames.
</para></listitem>
-
<listitem><para>
- <emphasis role="bold">trellis</emphasis>
+ <emphasis role="bold">trellis</emphasis>
Optimizes the quantization process to get an optimal tradeoff
between PSNR and bitrate, which allows significant bit saving.
These bits will in return be spent elsewhere on the video,
@@ -2852,116 +3326,116 @@ codec</title>
have turned down <option>vhq</option> and all other more
CPU-hungry options to the minimum.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">hq_ac</emphasis>
Activates a better coefficient cost estimation method, which slightly
- reduces filesize by around 0.15 to 0.19% (which corresponds to less
+ reduces file size by around 0.15 to 0.19% (which corresponds to less
than 0.01dB PSNR increase), while having a negligible impact on speed.
It is therefore recommended to always leave it on.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">cartoon</emphasis>
Designed to better encode cartoon content, and has no impact on
speed as it just tunes the mode decision heuristics for this type
of content.
</para></listitem>
-
-<listitem><para>
- <emphasis role="bold">me_quality</emphasis>
+<listitem>
+ <para>
+ <emphasis role="bold">me_quality</emphasis>
This setting is to control the precision of the motion estimation.
The higher <option>me_quality</option>, the more
precise the estimation of the original motion will be, and the
better the resulting clip will capture the original motion.
- </para>
- <para>
+ </para>
+ <para>
The default setting is best in all cases;
thus it is not recommended to turn it down unless you are
really looking for speed, as all the bits saved by a good motion
estimation would be spent elsewhere, raising overall quality.
Therefore, do not go any lower than 5, and even that only as a last
resort.
-</para></listitem>
-
+ </para>
+</listitem>
<listitem><para>
- <emphasis role="bold">chroma_me</emphasis>
+ <emphasis role="bold">chroma_me</emphasis>
Improves motion estimation by also taking the chroma (color)
information into account, whereas <option>me_quality</option>
alone only uses luma (grayscale).
This slows down encoding by 5-10% but improves visual quality
- quite a bit by reducing blocking effects and reduces filesize by
+ quite a bit by reducing blocking effects and reduces file size by
around 1.3%.
If you are looking for speed, you should disable this option before
starting to consider reducing <option>me_quality</option>.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">chroma_opt</emphasis>
- Is intended to increase chroma image quality around pure
- white/black edges, rather than improving compression.
- This can help to reduce the "red stairs" effect.
+ Is intended to increase chroma image quality around pure
+ white/black edges, rather than improving compression.
+ This can help to reduce the "red stairs" effect.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">lumi_mask</emphasis>
- Tries to give less bitrate to part of the picture that the
- human eye cannot see very well, which should allow the encoder
- to spend the saved bits on more important parts of the picture.
- The quality of the encode yielded by this option highly depends
- on personal preferences and on the type and monitor settings
- used to watch it (typically, it will not look as good if it is
- bright or if it is a TFT monitor).
+ Tries to give less bitrate to part of the picture that the
+ human eye cannot see very well, which should allow the encoder
+ to spend the saved bits on more important parts of the picture.
+ The quality of the encode yielded by this option highly depends
+ on personal preferences and on the type and monitor settings
+ used to watch it (typically, it will not look as good if it is
+ bright or if it is a TFT monitor).
</para></listitem>
-
-<listitem><para>
+<listitem>
+ <para>
<emphasis role="bold">qpel</emphasis>
- Raise the number of candidate motion vectors by increasing
- the precision of the motion estimation from halfpel to
- quarterpel.
- The idea is to find better motion vectors which will in return
- reduce bitrate (hence increasing quality).
- However, motion vectors with quarterpel precision require a
- few extra bits to code, but the candidate vectors do not always
- give (much) better results.
- Quite often, the codec still spends bits on the extra precision,
- but little or no extra quality is gained in return.
- Unfortunately, there is no way to foresee the possible gains of
- <option>qpel</option>, so you need to actually encode with and
- without it to know for sure.
- </para><para>
- <option>qpel</option> can be almost double encoding time, and
- requires as much as 25% more processing power to decode.
- It is not supported by all standalone players.
-</para></listitem>
-
+ Raise the number of candidate motion vectors by increasing
+ the precision of the motion estimation from halfpel to
+ quarterpel.
+ The idea is to find better motion vectors which will in return
+ reduce bitrate (hence increasing quality).
+ However, motion vectors with quarterpel precision require a
+ few extra bits to code, but the candidate vectors do not always
+ give (much) better results.
+ Quite often, the codec still spends bits on the extra precision,
+ but little or no extra quality is gained in return.
+ Unfortunately, there is no way to foresee the possible gains of
+ <option>qpel</option>, so you need to actually encode with and
+ without it to know for sure.
+ </para>
+ <para>
+ <option>qpel</option> can be almost double encoding time, and
+ requires as much as 25% more processing power to decode.
+ It is not supported by all standalone players.
+ </para>
+</listitem>
<listitem><para>
<emphasis role="bold">gmc</emphasis>
- Tries to save bits on panning scenes by using a single motion
- vector for the whole frame.
- This almost always raises PSNR, but significantly slows down
- encoding (as well as decoding).
- Therefore, you should only use it when you have turned
- <option>vhq</option> to the maximum.
- <systemitem class="library">XviD</systemitem>'s GMC is more
- sophisticated than DivX's, but is only supported by few
- standalone players.
+ Tries to save bits on panning scenes by using a single motion
+ vector for the whole frame.
+ This almost always raises PSNR, but significantly slows down
+ encoding (as well as decoding).
+ Therefore, you should only use it when you have turned
+ <option>vhq</option> to the maximum.
+ <systemitem class="library">Xvid</systemitem>'s GMC is more
+ sophisticated than DivX's, but is only supported by few
+ standalone players.
</para></listitem>
-
</itemizedlist>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-xvid-encoding-profiles">
<title>Encoding profiles</title>
+
<para>
- XviD supports encoding profiles through the <option>profile</option> option,
- which are used to impose restrictions on the properties of the XviD video
- stream such that it will be playable on anything which supports the
- chosen profile.
- The restrictions relate to resolutions, bitrates and certain MPEG-4
- features.
- The following table shows what each profile supports.
+Xvid supports encoding profiles through the <option>profile</option> option,
+which are used to impose restrictions on the properties of the Xvid video
+stream such that it will be playable on anything which supports the
+chosen profile.
+The restrictions relate to resolutions, bitrates and certain MPEG-4
+features.
+The following table shows what each profile supports.
</para>
+
<informaltable>
<tgroup cols="16" align="center">
<colspec colnum="1" colname="col1"/>
@@ -2984,267 +3458,268 @@ codec</title>
<spanspec spanname="spa2-5" namest="col2" nameend="col5"/>
<spanspec spanname="spa6-11" namest="col6" nameend="col11"/>
<spanspec spanname="spa12-17" namest="col12" nameend="col17"/>
- <tbody>
- <row>
- <entry></entry>
- <entry spanname="spa2-5">Simple</entry>
- <entry spanname="spa6-11">Advanced Simple</entry>
- <entry spanname="spa12-17">DivX</entry>
- </row>
- <row>
- <entry>Profile name</entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>2</entry>
- <entry>3</entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>2</entry>
- <entry>3</entry>
- <entry>4</entry>
- <entry>5</entry>
- <entry>Handheld</entry>
- <entry>Portable NTSC</entry>
- <entry>Portable PAL</entry>
- <entry>Home Theater NTSC</entry>
- <entry>Home Theater PAL</entry>
- <entry>HDTV</entry>
- </row>
- <row>
- <entry>Width [pixels]</entry>
- <entry>176</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>176</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>720</entry>
- <entry>176</entry>
- <entry>352</entry>
- <entry>352</entry>
- <entry>720</entry>
- <entry>720</entry>
- <entry>1280</entry>
- </row>
- <row>
- <entry>Height [pixels]</entry>
- <entry>144</entry>
- <entry>144</entry>
- <entry>288</entry>
- <entry>288</entry>
- <entry>144</entry>
- <entry>144</entry>
- <entry>288</entry>
- <entry>288</entry>
- <entry>576</entry>
- <entry>576</entry>
- <entry>144</entry>
- <entry>240</entry>
- <entry>288</entry>
- <entry>480</entry>
- <entry>576</entry>
- <entry>720</entry>
- </row>
- <row>
- <entry>Frame rate [fps]</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>30</entry>
- <entry>15</entry>
- <entry>30</entry>
- <entry>25</entry>
- <entry>30</entry>
- <entry>25</entry>
- <entry>30</entry>
- </row>
- <row>
- <entry>Max average bitrate [kbps]</entry>
- <entry>64</entry>
- <entry>64</entry>
- <entry>128</entry>
- <entry>384</entry>
- <entry>128</entry>
- <entry>128</entry>
- <entry>384</entry>
- <entry>768</entry>
- <entry>3000</entry>
- <entry>8000</entry>
- <entry>537.6</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>4854</entry>
- <entry>9708.4</entry>
- </row>
- <row>
- <entry>Peak average bitrate over 3 secs [kbps]</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>800</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>8000</entry>
- <entry>16000</entry>
- </row>
- <row>
- <entry>Max. B-frames</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry>0</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>0</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>1</entry>
- <entry>2</entry>
- </row>
- <row>
- <entry>MPEG quantization</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry>Adaptive quantization</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- </row>
- <row>
- <entry>Interlaced encoding</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- </row>
- <row>
- <entry>Quaterpixel</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry>Global motion compensation</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry>X</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- </tbody>
+<tbody>
+<row>
+ <entry></entry>
+ <entry spanname="spa2-5">Simple</entry>
+ <entry spanname="spa6-11">Advanced Simple</entry>
+ <entry spanname="spa12-17">DivX</entry>
+</row>
+<row>
+ <entry>Profile name</entry>
+ <entry>0</entry>
+ <entry>1</entry>
+ <entry>2</entry>
+ <entry>3</entry>
+ <entry>0</entry>
+ <entry>1</entry>
+ <entry>2</entry>
+ <entry>3</entry>
+ <entry>4</entry>
+ <entry>5</entry>
+ <entry>Handheld</entry>
+ <entry>Portable NTSC</entry>
+ <entry>Portable PAL</entry>
+ <entry>Home Theater NTSC</entry>
+ <entry>Home Theater PAL</entry>
+ <entry>HDTV</entry>
+</row>
+<row>
+ <entry>Width [pixels]</entry>
+ <entry>176</entry>
+ <entry>176</entry>
+ <entry>352</entry>
+ <entry>352</entry>
+ <entry>176</entry>
+ <entry>176</entry>
+ <entry>352</entry>
+ <entry>352</entry>
+ <entry>352</entry>
+ <entry>720</entry>
+ <entry>176</entry>
+ <entry>352</entry>
+ <entry>352</entry>
+ <entry>720</entry>
+ <entry>720</entry>
+ <entry>1280</entry>
+</row>
+<row>
+ <entry>Height [pixels]</entry>
+ <entry>144</entry>
+ <entry>144</entry>
+ <entry>288</entry>
+ <entry>288</entry>
+ <entry>144</entry>
+ <entry>144</entry>
+ <entry>288</entry>
+ <entry>288</entry>
+ <entry>576</entry>
+ <entry>576</entry>
+ <entry>144</entry>
+ <entry>240</entry>
+ <entry>288</entry>
+ <entry>480</entry>
+ <entry>576</entry>
+ <entry>720</entry>
+</row>
+<row>
+ <entry>Frame rate [fps]</entry>
+ <entry>15</entry>
+ <entry>15</entry>
+ <entry>15</entry>
+ <entry>15</entry>
+ <entry>30</entry>
+ <entry>30</entry>
+ <entry>15</entry>
+ <entry>30</entry>
+ <entry>30</entry>
+ <entry>30</entry>
+ <entry>15</entry>
+ <entry>30</entry>
+ <entry>25</entry>
+ <entry>30</entry>
+ <entry>25</entry>
+ <entry>30</entry>
+</row>
+<row>
+ <entry>Max average bitrate [kbps]</entry>
+ <entry>64</entry>
+ <entry>64</entry>
+ <entry>128</entry>
+ <entry>384</entry>
+ <entry>128</entry>
+ <entry>128</entry>
+ <entry>384</entry>
+ <entry>768</entry>
+ <entry>3000</entry>
+ <entry>8000</entry>
+ <entry>537.6</entry>
+ <entry>4854</entry>
+ <entry>4854</entry>
+ <entry>4854</entry>
+ <entry>4854</entry>
+ <entry>9708.4</entry>
+</row>
+<row>
+ <entry>Peak average bitrate over 3 secs [kbps]</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>800</entry>
+ <entry>8000</entry>
+ <entry>8000</entry>
+ <entry>8000</entry>
+ <entry>8000</entry>
+ <entry>16000</entry>
+</row>
+<row>
+ <entry>Max. B-frames</entry>
+ <entry>0</entry>
+ <entry>0</entry>
+ <entry>0</entry>
+ <entry>0</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>0</entry>
+ <entry>1</entry>
+ <entry>1</entry>
+ <entry>1</entry>
+ <entry>1</entry>
+ <entry>2</entry>
+</row>
+<row>
+ <entry>MPEG quantization</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>Adaptive quantization</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+</row>
+<row>
+ <entry>Interlaced encoding</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+</row>
+<row>
+ <entry>Quarterpixel</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>Global motion compensation</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry>X</entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+ <entry></entry>
+</row>
+</tbody>
</tgroup>
</informaltable>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-xvid-example-settings">
<title>Encoding setting examples</title>
<para>
- The following settings are examples of different encoding
- option combinations that affect the speed vs quality tradeoff
- at the same target bitrate.
+The following settings are examples of different encoding
+option combinations that affect the speed vs quality tradeoff
+at the same target bitrate.
</para>
<para>
- All the encoding settings were tested on a 720x448 @30000/1001 fps
- video sample, the target bitrate was 900kbps, and the machine was an
- AMD-64 3400+ at 2400 Mhz in 64 bits mode.
- Each encoding setting features the measured encoding speed (in
- frames per second) and the PSNR loss (in dB) compared to the "very
- high quality" setting.
- Please understand that depending on your source, your machine type
- and development advancements, you may get very different results.
+All the encoding settings were tested on a 720x448 @30000/1001 fps
+video sample, the target bitrate was 900kbps, and the machine was an
+AMD-64 3400+ at 2400 MHz in 64 bits mode.
+Each encoding setting features the measured encoding speed (in
+frames per second) and the PSNR loss (in dB) compared to the "very
+high quality" setting.
+Please understand that depending on your source, your machine type
+and development advancements, you may get very different results.
</para>
-<para>
<informaltable frame="all">
<tgroup cols="4">
<thead>
@@ -3278,91 +3753,104 @@ codec</title>
</tbody>
</tgroup>
</informaltable>
-</para>
</sect2>
-
</sect1>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
<sect1 id="menc-feat-x264">
-<title>Encoding with the <systemitem class="library">x264</systemitem> codec</title>
+<title>Encoding with the
+ <systemitem class="library">x264</systemitem> codec</title>
+
<para>
- <systemitem class="library">x264</systemitem> is a free library for
- encoding H.264/AVC video streams.
- Before starting to encode, you need to <link linkend="codec-x264-encode">
- set up <application>MEncoder</application> to support it</link>.
+<systemitem class="library">x264</systemitem> is a free library for
+encoding H.264/AVC video streams.
+Before starting to encode, you need to
+<link linkend="codec-x264">set up <application>MEncoder</application> to support it</link>.
</para>
+<!-- ********** -->
+
<sect2 id="menc-feat-x264-encoding-options">
<title>Encoding options of x264</title>
<para>
- Please begin by reviewing the
- <systemitem class="library">x264</systemitem> section of
- <application>MPlayer</application>'s man page.
- This section is intended to be a supplement to the man page.
- Here you will find quick hints about which options are most
- likely to interest most people. The man page is more terse,
- but also more exhaustive, and it sometimes offers much better
- technical detail.
+Please begin by reviewing the
+<systemitem class="library">x264</systemitem> section of
+<application>MPlayer</application>'s man page.
+This section is intended to be a supplement to the man page.
+Here you will find quick hints about which options are most
+likely to interest most people. The man page is more terse,
+but also more exhaustive, and it sometimes offers much better
+technical detail.
</para>
+
<sect3 id="menc-feat-x264-encoding-options-intro">
<title>Introduction</title>
-<para>This guide considers two major categories of encoding options:</para>
+
+<para>
+This guide considers two major categories of encoding options:
+</para>
<orderedlist>
- <listitem><para>Options which mainly trade off encoding time vs. quality
- </para></listitem>
- <listitem><para>Options which may be useful for fulfilling various personal
- preferences and special requirements</para></listitem>
+<listitem><para>
+ Options which mainly trade off encoding time vs. quality
+</para></listitem>
+<listitem><para>
+ Options which may be useful for fulfilling various personal
+ preferences and special requirements
+</para></listitem>
</orderedlist>
<para>
- Ultimately, only you can decide which options are best for your
- purposes. The decision for the first class of options is the simplest:
- you only have to decide whether you think the quality differences
- justify the speed differences. For the second class of options,
- preferences may be far more subjective, and more factors may be
- involved. Note that some of the "personal preferences and special
- requirements" options can still have large impacts on speed or quality,
- but that is not what they are primarily useful for. A couple of the
- "personal preference" options may even cause changes that look better
- to some people, but look worse to others.
+Ultimately, only you can decide which options are best for your
+purposes. The decision for the first class of options is the simplest:
+you only have to decide whether you think the quality differences
+justify the speed differences. For the second class of options,
+preferences may be far more subjective, and more factors may be
+involved. Note that some of the "personal preferences and special
+requirements" options can still have large impacts on speed or quality,
+but that is not what they are primarily useful for. A couple of the
+"personal preference" options may even cause changes that look better
+to some people, but look worse to others.
</para>
<para>
- Before continuing, you need to understand that this guide uses only one
- quality metric: global PSNR.
- For a brief explanation of what PSNR is, see
- <ulink url="http://en.wikipedia.org/wiki/PSNR">the Wikipedia article on PSNR</ulink>.
- Global PSNR is the last PSNR number reported when you include
- the <option>psnr</option> option in <option>x264encopts</option>.
- Any time you read a claim about PSNR, one of the assumptions
- behind the claim is that equal bitrates are used.
+Before continuing, you need to understand that this guide uses only one
+quality metric: global PSNR.
+For a brief explanation of what PSNR is, see
+<ulink url="http://en.wikipedia.org/wiki/PSNR">the Wikipedia article on PSNR</ulink>.
+Global PSNR is the last PSNR number reported when you include
+the <option>psnr</option> option in <option>x264encopts</option>.
+Any time you read a claim about PSNR, one of the assumptions
+behind the claim is that equal bitrates are used.
</para>
<para>
- Nearly all of this guide's comments assume you are using
- two pass.
- When comparing options, there are two major reasons for using
- two pass encoding.
- First, using two pass often gains around 1dB PSNR, which is a
- very big difference.
- Secondly, testing options by doing direct quality comparisons
- with one pass encodes introduces a major confounding
- factor: bitrate often varies significantly with each encode.
- It is not always easy to tell whether quality changes are due
- mainly to changed options, or if they mostly reflect essentially
- random differences in the achieved bitrate.
+Nearly all of this guide's comments assume you are using two pass.
+When comparing options, there are two major reasons for using
+two pass encoding.
+First, using two pass often gains around 1dB PSNR, which is a
+very big difference.
+Secondly, testing options by doing direct quality comparisons
+with one pass encodes introduces a major confounding
+factor: bitrate often varies significantly with each encode.
+It is not always easy to tell whether quality changes are due
+mainly to changed options, or if they mostly reflect essentially
+random differences in the achieved bitrate.
</para>
-
</sect3>
+
<sect3 id="menc-feat-x264-encoding-options-speedvquality">
<title>Options which primarily affect speed and quality</title>
<itemizedlist>
-<listitem><para>
+<listitem>
+ <para>
<emphasis role="bold">subq</emphasis>:
Of the options which allow you to trade off speed for quality,
<option>subq</option> and <option>frameref</option> (see below) are usually
@@ -3381,9 +3869,10 @@ codec</title>
Typically, <option>subq=5</option> achieves 0.2-0.5 dB higher global
PSNR in comparison <option>subq=1</option>.
This is usually enough to be visible.
-</para>
-<para>
- <option>subq=6</option> is the slowest, highest quality mode.
+ </para>
+ <para>
+ <option>subq=6</option> is slower and yields better quality at a reasonable
+ cost.
In comparison to <option>subq=5</option>, it usually gains 0.1-0.4 dB
global PSNR with speed costs varying from 25%-100%.
Unlike other levels of <option>subq</option>, the behavior of
@@ -3394,18 +3883,25 @@ codec</title>
and quality in complex, high motion scenes, but it may not have much effect
in low-motion scenes. Note that it is still recommended to always set
<option>bframes</option> to something other than zero (see below).
-</para></listitem>
-<listitem><para>
+ </para>
+ <para>
+ <option>subq=7</option> is the slowest, highest quality mode.
+ In comparison to <option>subq=6</option>, it usually gains 0.01-0.05 dB
+ global PSNR with speed costs varying from 15%-33%.
+ Since the tradeoff encoding time vs. quality is quite low, you should
+ only use it if you are after every bit saving and if encoding time is
+ not an issue.
+ </para>
+</listitem>
+<listitem>
+ <para>
<emphasis role="bold">frameref</emphasis>:
<option>frameref</option> is set to 1 by default, but this
- should not be taken to imply that it is reasonable to set it
- to 1.
+ should not be taken to imply that it is reasonable to set it to 1.
Merely raising <option>frameref</option> to 2 gains around
- 0.15dB PSNR with a 5-10% speed penalty; this seems like a
- good tradeoff.
+ 0.15dB PSNR with a 5-10% speed penalty; this seems like a good tradeoff.
<option>frameref=3</option> gains around 0.25dB PSNR over
- <option>frameref=1</option>, which should be a visible
- difference.
+ <option>frameref=1</option>, which should be a visible difference.
<option>frameref=3</option> is around 15% slower than
<option>frameref=1</option>.
Unfortunately, diminishing returns set in rapidly.
@@ -3414,8 +3910,7 @@ codec</title>
15% speed penalty.
Above <option>frameref=6</option>, the quality gains are
usually very small (although you should keep in mind throughout
- this whole discussion that it can vary quite a lot depending on
- your source).
+ this whole discussion that it can vary quite a lot depending on your source).
In a fairly typical case, <option>frameref=12</option>
will improve global PSNR by a tiny 0.02dB over
<option>frameref=6</option>, at a speed cost of 15%-20%.
@@ -3424,9 +3919,9 @@ codec</title>
almost certainly never <emphasis role="bold">harm</emphasis>
PSNR, but the additional quality benefits are barely even
measurable, let alone perceptible.
-</para>
-<note><title>Note:</title>
-<para>
+ </para>
+ <note><title>Note:</title>
+ <para>
Raising <option>frameref</option> to unnecessarily high values
<emphasis role="bold">can</emphasis> and
<emphasis role="bold">usually does</emphasis>
@@ -3435,9 +3930,8 @@ codec</title>
<option>frameref</option> "too high" currently seems too remote
to even worry about, and in the future, optimizations may remove
the possibility altogether.
-</para>
-</note>
-<para>
+ </para></note>
+ <para>
If you care about speed, a reasonable compromise is to use low
<option>subq</option> and <option>frameref</option> values on
the first pass, and then raise them on the second pass.
@@ -3445,7 +3939,7 @@ codec</title>
quality: You will probably lose well under 0.1dB PSNR, which
should be much too small of a difference to see.
However, different values of <option>frameref</option> can
- occasionally affect frametype decision.
+ occasionally affect frame type decision.
Most likely, these are rare outlying cases, but if you want to
be pretty sure, consider whether your video has either
fullscreen repetitive flashing patterns or very large temporary
@@ -3457,41 +3951,41 @@ codec</title>
<option>frameref</option> to 3 or higher.
This issue is probably extremely rare in live action video material,
but it does sometimes come up in video game captures.
-</para></listitem>
-
-<listitem><para>
+ </para>
+</listitem>
+<listitem>
+ <para>
<emphasis role="bold">me</emphasis>:
This option is for choosing the motion estimation search method.
Altering this option provides a straightforward quality-vs-speed
- tradeoff. <option>me=1</option> is only a few percent faster than
+ tradeoff. <option>me=dia</option> is only a few percent faster than
the default search, at a cost of under 0.1dB global PSNR. The
- default setting (<option>me=2</option>) is a reasonable tradeoff
- between speed and quality. <option>me=3</option> gains a little under
+ default setting (<option>me=hex</option>) is a reasonable tradeoff
+ between speed and quality. <option>me=umh</option> gains a little under
0.1dB global PSNR, with a speed penalty that varies depending on
<option>frameref</option>. At high values of
- <option>frameref</option> (e.g. 12 or so), <option>me=3</option>
- is about 40% slower than the default <option> me=2</option>. With
+ <option>frameref</option> (e.g. 12 or so), <option>me=umh</option>
+ is about 40% slower than the default <option> me=hex</option>. With
<option>frameref=3</option>, the speed penalty incurred drops to
25%-30%.
-</para>
-<para>
- <option>me=4</option> uses an exhaustive search that is too slow for
+ </para>
+ <para>
+ <option>me=esa</option> uses an exhaustive search that is too slow for
practical use.
-</para>
+ </para>
</listitem>
-
<listitem><para>
- <emphasis role="bold">4x4mv</emphasis>:
+ <emphasis role="bold">partitions=all</emphasis>:
This option enables the use of 8x4, 4x8 and 4x4 subpartitions in
- predicted macroblocks. Enabling it results in a fairly consistent
+ predicted macroblocks (in addition to the default partitions).
+ Enabling it results in a fairly consistent
10%-15% loss of speed. This option is rather useless in source
containing only low motion, however in some high-motion source,
particularly source with lots of small moving objects, gains of
about 0.1dB can be expected.
-</para>
-</listitem>
-
-<listitem><para>
+</para></listitem>
+<listitem>
+ <para>
<emphasis role="bold">bframes</emphasis>:
If you are used to encoding with other codecs, you may have found
that B-frames are not always useful.
@@ -3502,8 +3996,8 @@ codec</title>
It is interesting to note that using B-frames usually speeds up
the second pass somewhat, and may also speed up a single
pass encode if adaptive B-frame decision is turned off.
-</para>
-<para>
+ </para>
+ <para>
With adaptive B-frame decision turned off
(<option>x264encopts</option>'s <option>nob_adapt</option>),
the optimal value for this setting is usually no more than
@@ -3513,13 +4007,14 @@ codec</title>
B-frames in scenes where they would hurt compression.
The encoder rarely chooses to use more than 3 or 4 B-frames;
setting this option any higher will have little effect.
-</para></listitem>
-
-<listitem><para>
+ </para>
+</listitem>
+<listitem>
+ <para>
<emphasis role="bold">b_adapt</emphasis>:
Note: This is on by default.
-</para>
-<para>
+ </para>
+ <para>
With this option enabled, the encoder will use a reasonably fast
decision process to reduce the number of B-frames used in scenes that
might not benefit from them as much.
@@ -3528,12 +4023,12 @@ codec</title>
The speed penalty of adaptive B-frames is currently rather modest,
but so is the potential quality gain.
It usually does not hurt, however.
- Note that this only affects speed and frametype decision on the
+ Note that this only affects speed and frame type decision on the
first pass.
<option>b_adapt</option> and <option>b_bias</option> have no
effect on subsequent passes.
-</para></listitem>
-
+ </para>
+</listitem>
<listitem><para>
<emphasis role="bold">b_pyramid</emphasis>:
You might as well enable this option if you are using >=2 B-frames;
@@ -3542,8 +4037,8 @@ codec</title>
Note that these videos cannot be read by libavcodec-based decoders
older than about March 5, 2005.
</para></listitem>
-
-<listitem><para>
+<listitem>
+ <para>
<emphasis role="bold">weight_b</emphasis>:
In typical cases, there is not much gain with this option.
However, in crossfades or fade-to-black scenes, weighted
@@ -3556,22 +4051,40 @@ codec</title>
Also, contrary to what some people seem to guess, the decoder
CPU requirements are not much affected by weighted prediction,
all else being equal.
-</para>
-<para>
+ </para>
+ <para>
Unfortunately, the current adaptive B-frame decision algorithm
has a strong tendency to avoid B-frames during fades.
Until this changes, it may be a good idea to add
<option>nob_adapt</option> to your x264encopts, if you expect
fades to have a large effect in your particular video
clip.
-</para></listitem>
+ </para>
+</listitem>
+<listitem id="menc-feat-x264-encoding-options-speedvquality-threads">
+ <para>
+ <emphasis role="bold">threads</emphasis>:
+ This option allows to spawn threads to encode in parallel on multiple CPUs.
+ You can manually select the number of threads to be created or, better, set
+ <option>threads=auto</option> and let
+ <systemitem class="library">x264</systemitem> detect how many CPUs are
+ available and pick an appropriate number of threads.
+ If you have a multi-processor machine, you should really consider using it
+ as it can to increase encoding speed linearly with the number of CPU cores
+ (about 94% per CPU core), with very little quality reduction (about 0.005dB
+ for dual processor, about 0.01dB for a quad processor machine).
+ </para>
+</listitem>
</itemizedlist>
</sect3>
+
<sect3 id="menc-feat-x264-encoding-options-misc-preferences">
<title>Options pertaining to miscellaneous preferences</title>
+
<itemizedlist>
-<listitem><para>
+<listitem>
+ <para>
<emphasis role="bold">Two pass encoding</emphasis>:
Above, it was suggested to always use two pass encoding, but there
are still reasons for not using it. For instance, if you are capturing
@@ -3579,8 +4092,8 @@ codec</title>
Also, one pass is obviously faster than two passes; if you use the
exact same set of options on both passes, two pass encoding is almost
twice as slow.
-</para>
-<para>
+ </para>
+ <para>
Still, there are very good reasons for using two pass encoding. For
one thing, single pass ratecontrol is not psychic, and it often makes
unreasonable choices because it cannot see the big picture. For example,
@@ -3589,7 +4102,7 @@ codec</title>
which, in isolation, requires about 2500kbps in order to look decent.
Immediately following it is a much less demanding 60-second scene
that looks good at 300kbps. Suppose you ask for 1400kbps on the theory
- that this is enough to accomodate both scenes. Single pass ratecontrol
+ that this is enough to accommodate both scenes. Single pass ratecontrol
will make a couple of "mistakes" in such a case. First of all, it
will target 1400kbps in both segments. The first segment may end up
heavily overquantized, causing it to look unacceptably and unreasonably
@@ -3604,8 +4117,8 @@ codec</title>
it would have taken to make it look decent. There are ways to
mitigate the pitfalls of single-pass encoding, but they may tend to
increase bitrate misprediction.
-</para>
-<para>
+ </para>
+ <para>
Multipass ratecontrol can offer huge advantages over a single pass.
Using the statistics gathered from the first pass encode, the encoder
can estimate, with reasonable accuracy, the "cost" (in bits) of
@@ -3614,8 +4127,8 @@ codec</title>
expensive (high-motion) and cheap (low-motion) scenes. See
<option>qcomp</option> below for some ideas on how to tweak this
allocation to your liking.
-</para>
-<para>
+ </para>
+ <para>
Moreover, two passes need not take twice as long as one pass. You can
tweak the options in the first pass for higher speed and lower quality.
If you choose your options well, you can get a very fast first pass.
@@ -3625,18 +4138,18 @@ codec</title>
<option>subq=1:frameref=1</option> to the first pass
<option>x264encopts</option>. Then, on the second pass, use slower,
higher-quality options:
- <option>subq=6:frameref=15:4x4mv:me=3</option>
-</para></listitem>
+ <option>subq=6:frameref=15:partitions=all:me=umh</option>
+ </para>
+</listitem>
<listitem><para>
<emphasis role="bold">Three pass encoding</emphasis>?
-
x264 offers the ability to make an arbitrary number of consecutive
passes. If you specify <option>pass=1</option> on the first pass,
then use <option>pass=3</option> on a subsequent pass, the subsequent
pass will both read the statistics from the previous pass, and write
its own statistics. An additional pass following this one will have
a very good base from which to make highly accurate predictions of
- framesizes at a chosen quantizer. In practice, the overall quality
+ frame sizes at a chosen quantizer. In practice, the overall quality
gain from this is usually close to zero, and quite possibly a third
pass will result in slightly worse global PSNR than the pass before
it. In typical usage, three passes help if you get either bad bitrate
@@ -3645,7 +4158,6 @@ codec</title>
also a few special cases in which three (or more) passes are handy
for advanced users, but for brevity, this guide omits discussing those
special cases.
-
</para></listitem>
<listitem><para>
<emphasis role="bold">qcomp</emphasis>:
@@ -3677,11 +4189,12 @@ codec</title>
vanishingly low, or even zero). The video stream will still have seekable
points as long as there are some scene changes.
</para></listitem>
-<listitem><para>
- <emphasis role="bold">deblockalpha, deblockbeta</emphasis>:
+<listitem>
+ <para>
+ <emphasis role="bold">deblock</emphasis>:
This topic is going to be a bit controversial.
-</para>
-<para>
+ </para>
+ <para>
H.264 defines a simple deblocking procedure on I-blocks that uses
pre-set strengths and thresholds depending on the QP of the block
in question.
@@ -3690,18 +4203,17 @@ codec</title>
The pre-set strengths defined by the standard are well-chosen and
the odds are very good that they are PSNR-optimal for whatever
video you are trying to encode.
- The <option>deblockalpha</option> and <option>deblockbeta</option>
- parameters allow you to specify offsets to the preset deblocking
- thresholds.
-</para>
-<para>
+ The <option>deblock</option> allow you to specify offsets to the preset
+ deblocking thresholds.
+ </para>
+ <para>
Many people seem to think it is a good idea to lower the deblocking
filter strength by large amounts (say, -3).
This is however almost never a good idea, and in most cases,
people who are doing this do not understand very well how
deblocking works by default.
-</para>
-<para>
+ </para>
+ <para>
The first and most important thing to know about the in-loop
deblocking filter is that the default thresholds are almost always
PSNR-optimal.
@@ -3711,8 +4223,8 @@ codec</title>
guaranteed to hurt PSNR.
Strengthening the filter will smear more details; weakening the
filter will increase the appearance of blockiness.
-</para>
-<para>
+ </para>
+ <para>
It is definitely a bad idea to lower the deblocking thresholds if
your source is mainly low in spacial complexity (i.e., not a lot
of detail or noise).
@@ -3729,59 +4241,65 @@ codec</title>
By lowering the deblocking filter strength, you are most likely
increasing error by adding ringing artifacts, but the eye does
not notice because it confuses the artifacts with detail.
-</para>
-
-<para>
+ </para>
+ <para>
This <emphasis role="bold">still</emphasis> does not justify
lowering the deblocking filter strength, however.
You can generally get better quality noise from postprocessing.
If your H.264 encodes look too blurry or smeared, try playing with
<option>-vf noise</option> when you play your encoded movie.
<option>-vf noise=8a:4a</option> should conceal most mild
- artifacting.
+ artifacts.
It will almost certainly look better than the results you
would have gotten just by fiddling with the deblocking filter.
-</para></listitem>
+ </para>
+</listitem>
</itemizedlist>
</sect3>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-x264-example-settings">
<title>Encoding setting examples</title>
<para>
- The following settings are examples of different encoding
- option combinations that affect the speed vs quality tradeoff
- at the same target bitrate.
+The following settings are examples of different encoding
+option combinations that affect the speed vs quality tradeoff
+at the same target bitrate.
</para>
<para>
- All the encoding settings were tested on a 720x448 @30000/1001 fps
- video sample, the target bitrate was 900kbps, and the machine was an
- AMD-64 3400+ at 2400 Mhz in 64 bits mode.
- Each encoding setting features the measured encoding speed (in
- frames per second) and the PSNR loss (in dB) compared to the "very
- high quality" setting.
- Please understand that depending on your source, your machine type
- and development advancements, you may get very different results.
+All the encoding settings were tested on a 720x448 @30000/1001 fps
+video sample, the target bitrate was 900kbps, and the machine was an
+AMD-64 3400+ at 2400 MHz in 64 bits mode.
+Each encoding setting features the measured encoding speed (in
+frames per second) and the PSNR loss (in dB) compared to the "very
+high quality" setting.
+Please understand that depending on your source, your machine type
+and development advancements, you may get very different results.
</para>
-<para>
<informaltable frame="all">
<tgroup cols="4">
<thead>
-<row><entry>Description</entry><entry>Encoding options</entry><entry>speed (in fps)</entry><entry>Relative PSNR loss (in dB)</entry></row>
+<row>
+ <entry>Description</entry>
+ <entry>Encoding options</entry>
+ <entry>speed (in fps)</entry>
+ <entry>Relative PSNR loss (in dB)</entry>
+</row>
</thead>
<tbody>
<row>
<entry>Very high quality</entry>
- <entry><option>subq=6:4x4mv:8x8dct:me=3:frameref=5:bframes=3:b_pyramid:weight_b</option></entry>
+ <entry><option>subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b</option></entry>
<entry>6fps</entry>
<entry>0dB</entry>
</row>
<row>
<entry>High quality</entry>
- <entry><option>subq=5:4x4mv:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry>
+ <entry><option>subq=5:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b</option></entry>
<entry>13fps</entry>
<entry>-0.89dB</entry>
</row>
@@ -3794,318 +4312,876 @@ codec</title>
</tbody>
</tgroup>
</informaltable>
+</sect2>
+</sect1>
+
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
+<sect1 id="menc-feat-video-for-windows">
+<title>
+ Encoding with the <systemitem class="library">Video For Windows</systemitem>
+ codec family
+</title>
+
+<para>
+Video for Windows provides simple encoding by means of binary video codecs.
+You can encode with the following codecs (if you have more, please tell us!)
+</para>
+
+<para>
+Note that support for this is very experimental and some codecs may not work
+correctly. Some codecs will only work in certain colorspaces, try
+<option>-vf format=bgr24</option> and <option>-vf format=yuy2</option>
+if a codec fails or gives wrong output.
</para>
+
+<!-- ********** -->
+
+<sect2 id="menc-feat-enc-vfw-video-codecs">
+<title>Video for Windows supported codecs</title>
+
+<para>
+<informaltable frame="all">
+<tgroup cols="4">
+<thead>
+<row>
+ <entry>Video codec file name</entry>
+ <entry>Description (FourCC)</entry>
+ <entry>md5sum</entry>
+ <entry>Comment</entry>
+</row>
+</thead>
+<tbody>
+<row>
+ <entry>aslcodec_vfw.dll</entry>
+ <entry>Alparysoft lossless codec vfw (ASLC)</entry>
+ <entry>608af234a6ea4d90cdc7246af5f3f29a</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>avimszh.dll</entry>
+ <entry>AVImszh (MSZH)</entry>
+ <entry>253118fe1eedea04a95ed6e5f4c28878</entry>
+ <entry>needs <option>-vf format</option></entry>
+</row>
+<row>
+ <entry>avizlib.dll</entry>
+ <entry>AVIzlib (ZLIB)</entry>
+ <entry>2f1cc76bbcf6d77d40d0e23392fa8eda</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>divx.dll</entry>
+ <entry>DivX4Windows-VFW</entry>
+ <entry>acf35b2fc004a89c829531555d73f1e6</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>huffyuv.dll</entry>
+ <entry>HuffYUV (lossless) (HFYU)</entry>
+ <entry>b74695b50230be4a6ef2c4293a58ac3b</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>iccvid.dll</entry>
+ <entry>Cinepak Video (cvid)</entry>
+ <entry>cb3b7ee47ba7dbb3d23d34e274895133</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>icmw_32.dll</entry>
+ <entry>Motion Wavelets (MWV1)</entry>
+ <entry>c9618a8fc73ce219ba918e3e09e227f2</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>jp2avi.dll</entry>
+ <entry>ImagePower MJPEG2000 (IPJ2)</entry>
+ <entry>d860a11766da0d0ea064672c6833768b</entry>
+ <entry><option>-vf flip</option></entry>
+</row>
+<row>
+ <entry>m3jp2k32.dll</entry>
+ <entry>Morgan MJPEG2000 (MJ2C)</entry>
+ <entry>f3c174edcbaef7cb947d6357cdfde7ff</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>m3jpeg32.dll</entry>
+ <entry>Morgan Motion JPEG Codec (MJPEG)</entry>
+ <entry>1cd13fff5960aa2aae43790242c323b1</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>mpg4c32.dll</entry>
+ <entry>Microsoft MPEG-4 v1/v2</entry>
+ <entry>b5791ea23f33010d37ab8314681f1256</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>tsccvid.dll</entry>
+ <entry>TechSmith Camtasia Screen Codec (TSCC)</entry>
+ <entry>8230d8560c41d444f249802a2700d1d5</entry>
+ <entry>shareware error on windows</entry>
+</row>
+<row>
+ <entry>vp31vfw.dll</entry>
+ <entry>On2 Open Source VP3 Codec (VP31)</entry>
+ <entry>845f3590ea489e2e45e876ab107ee7d2</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>vp4vfw.dll</entry>
+ <entry>On2 VP4 Personal Codec (VP40)</entry>
+ <entry>fc5480a482ccc594c2898dcc4188b58f</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>vp6vfw.dll</entry>
+ <entry>On2 VP6 Personal Codec (VP60)</entry>
+ <entry>04d635a364243013898fd09484f913fb</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>vp7vfw.dll</entry>
+ <entry>On2 VP7 Personal Codec (VP70)</entry>
+ <entry>cb4cc3d4ea7c94a35f1d81c3d750bc8d</entry>
+ <entry><option>-ffourcc VP70</option></entry>
+</row>
+<row>
+ <entry>ViVD2.dll</entry>
+ <entry>SoftMedia ViVD V2 codec VfW (GXVE)</entry>
+ <entry>a7b4bf5cac630bb9262c3f80d8a773a1</entry>
+ <entry></entry>
+</row>
+<row>
+ <entry>msulvc06.DLL</entry>
+ <entry>MSU Lossless codec (MSUD)</entry>
+ <entry>294bf9288f2f127bb86f00bfcc9ccdda</entry>
+ <entry>
+ Decodable by <application>Window Media Player</application>,
+ not <application>MPlayer</application> (yet).
+ </entry>
+</row>
+<row>
+ <entry>camcodec.dll</entry>
+ <entry>CamStudio lossless video codec (CSCD)</entry>
+ <entry>0efe97ce08bb0e40162ab15ef3b45615</entry>
+ <entry>sf.net/projects/camstudio</entry>
+</row>
+</tbody>
+</tgroup>
+</informaltable>
+
+The first column contains the codec names that should be passed after the
+<literal>codec</literal> parameter,
+like: <option>-xvfwopts codec=divx.dll</option>
+The FourCC code used by each codec is given in the parentheses.
+</para>
+
+<informalexample>
+<para>
+An example to convert an ISO DVD trailer to a VP6 flash video file
+using compdata bitrate settings:
+<screen>
+mencoder -dvd-device <replaceable>zeiram.iso</replaceable> dvd://7 -o <replaceable>trailer.flv</replaceable> \
+-ovc vfw -xvfwopts codec=vp6vfw.dll:compdata=onepass.mcf -oac mp3lame \
+-lameopts cbr:br=64 -af lavcresample=22050 -vf yadif,scale=320:240,flip \
+-of lavf
+</screen>
+</para>
+</informalexample>
</sect2>
+<sect2 id="menc-feat-video-for-windows-bitrate-settings">
+<title>Using vfw2menc to create a codec settings file.</title>
+
+<para>
+To encode with the Video for Windows codecs, you will need to set bitrate
+and other options. This is known to work on x86 on both *NIX and Windows.
+</para>
+<para>
+First you must build the <application>vfw2menc</application> program.
+It is located in the <filename class="directory">TOOLS</filename> subdirectory
+of the MPlayer source tree.
+To build on Linux, this can be done using <application>Wine</application>:
+<screen>winegcc vfw2menc.c -o vfw2menc -lwinmm -lole32</screen>
+
+To build on Windows in <application>MinGW</application> or
+<application>Cygwin</application> use:
+<screen>gcc vfw2menc.c -o vfw2menc.exe -lwinmm -lole32</screen>
+
+To build on <application>MSVC</application> you will need getopt.
+Getopt can be found in the original <application>vfw2menc</application>
+archive available at:
+The <ulink url="http://oss.netfarm.it/mplayer-win32.php">MPlayer on win32</ulink> project.
+</para>
+<informalexample>
+<para>
+Below is an example with the VP6 codec.
+<screen>
+vfw2menc -f VP62 -d vp6vfw.dll -s firstpass.mcf
+</screen>
+This will open the VP6 codec dialog window.
+Repeat this step for the second pass
+and use <option>-s <replaceable>secondpass.mcf</replaceable></option>.
+</para>
+</informalexample>
+<para>
+Windows users can use
+<option>-xvfwopts codec=vp6vfw.dll:compdata=dialog</option> to have
+the codec dialog display before encoding starts.
+</para>
+</sect2>
</sect1>
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
+<sect1 id="menc-feat-quicktime-7">
+<title>Using <application>MEncoder</application> to create
+<application>QuickTime</application>-compatible files</title>
+
+
+<sect2 id="menc-feat-quicktime-7-why-use-it">
+<title>Why would one want to produce <application>QuickTime</application>-compatible Files?</title>
+
+<para>
+ There are several reasons why producing
+ <application>QuickTime</application>-compatible files can be desirable.
+</para>
+<itemizedlist>
+<listitem><para>
+ You want any computer illiterate to be able to watch your encode on
+ any major platform (Windows, Mac OS X, Unices &hellip;).
+</para></listitem>
+<listitem><para>
+ <application>QuickTime</application> is able to take advantage of more
+ hardware and software acceleration features of Mac OS X than
+ platform-independent players like <application>MPlayer</application>
+ or <application>VLC</application>.
+ That means that your encodes have a chance to be played smoothly by older
+ G4-powered machines.
+</para></listitem>
+<listitem><para>
+ <application>QuickTime</application> 7 supports the next-generation codec H.264,
+ which yields significantly better picture quality than previous codec
+ generations (MPEG-2, MPEG-4 &hellip;).
+</para></listitem>
+</itemizedlist>
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-constraints">
+<title><application>QuickTime</application> 7 limitations</title>
+
+<para>
+ <application>QuickTime</application> 7 supports H.264 video and AAC audio,
+ but it does not support them muxed in the AVI container format.
+ However, you can use <application>MEncoder</application> to encode
+ the video and audio, and then use an external program such as
+ <application>mp4creator</application> (part of the
+ <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>)
+ to remux the video and audio tracks into an MP4 container.
+</para>
+
+<para>
+ <application>QuickTime</application>'s support for H.264 is limited,
+ so you will need to drop some advanced features.
+ If you encode your video with features that
+ <application>QuickTime</application> 7 does not support,
+ <application>QuickTime</application>-based players will show you a pretty
+ white screen instead of your expected video.
+</para>
+
+<itemizedlist>
+<listitem><para>
+ <emphasis role="bold">B-frames</emphasis>:
+ <application>QuickTime</application> 7 supports a maximum of 1 B-frame, i.e.
+ <option>-x264encopts bframes=1</option>. This means that
+ <option>b_pyramid</option> and <option>weight_b</option> will have no
+ effect, since they require <option>bframes</option> to be greater than 1.
+</para></listitem>
+<listitem><para>
+ <emphasis role="bold">Macroblocks</emphasis>:
+ <application>QuickTime</application> 7 does not support 8x8 DCT macroblocks.
+ This option (<option>8x8dct</option>) is off by default, so just be sure
+ not to explicitly enable it. This also means that the <option>i8x8</option>
+ option will have no effect, since it requires <option>8x8dct</option>.
+</para></listitem>
+<listitem><para>
+ <emphasis role="bold">Aspect ratio</emphasis>:
+ <application>QuickTime</application> 7 does not support SAR (sample
+ aspect ratio) information in MPEG-4 files; it assumes that SAR=1. Read
+ <link linkend="menc-feat-quicktime-7-scale">the section on scaling</link>
+ for a workaround.
+</para></listitem>
+</itemizedlist>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-crop">
+<title>Cropping</title>
+<para>
+ Suppose you want to rip your freshly bought copy of "The Chronicles of
+ Narnia". Your DVD is region 1,
+ which means it is NTSC. The example below would still apply to PAL,
+ except you would omit <option>-ofps 24000/1001</option> and use slightly
+ different <option>crop</option> and <option>scale</option> dimensions.
+</para>
+
+<para>
+ After running <option>mplayer dvd://1</option>, you follow the process
+ detailed in the section <link linkend="menc-feat-telecine">How to deal
+ with telecine and interlacing in NTSC DVDs</link> and discover that it is
+ 24000/1001 fps progressive video. This simplifies the process somewhat,
+ since you do not need to use an inverse telecine filter such as
+ <option>pullup</option> or a deinterlacing filter such as
+ <option>yadif</option>.
+</para>
+
+<para>
+ Next, you need to crop out the black bars from the top and bottom of the
+ video, as detailed in <link linkend="menc-feat-dvd-mpeg4-example-crop">this</link>
+ previous section.
+</para>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-scale">
+<title>Scaling</title>
+
+<para>
+ The next step is truly heartbreaking.
+ <application>QuickTime</application> 7 does not support MPEG-4 videos
+ with a sample aspect ratio other than 1, so you will need to upscale
+ (which wastes a lot of disk space) or downscale (which loses some
+ details of the source) the video to square pixels.
+ Either way you do it, this is highly inefficient, but simply cannot
+ be avoided if you want your video to be playable by
+ <application>QuickTime</application> 7.
+ <application>MEncoder</application> can apply the appropriate upscaling
+ or downscaling by specifying respectively <option>-vf scale=-10:-1</option>
+ or <option>-vf scale=-1:-10</option>.
+ This will scale your video to the correct width for the cropped height,
+ rounded to the closest multiple of 16 for optimal compression.
+ Remember that if you are cropping, you should crop first, then scale:
+
+ <screen>-vf crop=720:352:0:62,scale=-10:-1</screen>
+</para>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-avsync">
+<title>A/V sync</title>
+
+<para>
+ Because you will be remuxing into a different container, you should
+ always use the <option>harddup</option> option to ensure that duplicated
+ frames are actually duplicated in the video output. Without this option,
+ <application>MEncoder</application> will simply put a marker in the video
+ stream that a frame was duplicated, and rely on the client software to
+ show the same frame twice. Unfortunately, this "soft duplication" does
+ not survive remuxing, so the audio would slowly lose sync with the video.
+</para>
+
+<para>
+ The final filter chain looks like this:
+ <screen>-vf crop=720:352:0:62,scale=-10:-1,harddup</screen>
+</para>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-bitrate">
+<title>Bitrate</title>
+
+<para>
+ As always, the selection of bitrate is a matter of the technical properties
+ of the source, as explained
+ <link linkend="menc-feat-dvd-mpeg4-resolution-bitrate">here</link>, as
+ well as a matter of taste.
+ This movie has a fair bit of action and lots of detail, but H.264 video
+ looks good at much lower bitrates than XviD or other MPEG-4 codecs.
+ After much experimentation, the author of this guide chose to encode
+ this movie at 900kbps, and thought that it looked very good.
+ You may decrease bitrate if you need to save more space, or increase
+ it if you need to improve quality.
+</para>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-example">
+<title>Encoding example</title>
+
+<para>
+ You are now ready to encode the video. Since you care about
+ quality, of course you will be doing a two-pass encode. To shave off
+ some encoding time, you can specify the <option>turbo</option> option
+ on the first pass; this reduces <option>subq</option> and
+ <option>frameref</option> to 1. To save some disk space, you can
+ use the <option>ss</option> option to strip off the first few seconds
+ of the video. (I found that this particular movie has 32 seconds of
+ credits and logos.) <option>bframes</option> can be 0 or 1.
+ The other options are documented in <link
+ linkend="menc-feat-x264-encoding-options-speedvquality">Encoding with
+ the <systemitem class="library">x264</systemitem> codec</link> and
+ the man page.
+
+ <screen>mencoder dvd://1 -o /dev/null -ss 32 -ovc x264 \
+-x264encopts pass=1:turbo:bitrate=900:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001</screen>
+
+ If you have a multi-processor machine, don't miss the opportunity to
+ dramatically speed-up encoding by enabling
+ <link linkend="menc-feat-x264-encoding-options-speedvquality-threads">
+ <systemitem class="library">x264</systemitem>'s multi-threading mode</link>
+ by adding <option>threads=auto</option> to your <option>x264encopts</option>
+ command-line.
+</para>
+
+<para>
+ The second pass is the same, except that you specify the output file
+ and set <option>pass=2</option>.
+
+ <screen>mencoder dvd://1 <emphasis role="bold">-o narnia.avi</emphasis> -ss 32 -ovc x264 \
+-x264encopts <emphasis role="bold">pass=2</emphasis>:turbo:bitrate=900:frameref=5:bframes=1:\
+me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
+-vf crop=720:352:0:62,scale=-10:-1,harddup \
+-oac faac -faacopts br=192:mpeg=4:object=2 -channels 2 -srate 48000 \
+-ofps 24000/1001</screen>
+</para>
+
+<para>
+ The resulting AVI should play perfectly in
+ <application>MPlayer</application>, but of course
+ <application>QuickTime</application> can not play it because it does
+ not support H.264 muxed in AVI.
+ So the next step is to remux the video into an MP4 container.
+</para>
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-remux">
+<title>Remuxing as MP4</title>
+
+<para>
+ There are several ways to remux AVI files to MP4. You can use
+ <application>mp4creator</application>, which is part of the
+ <ulink url="http://mpeg4ip.sourceforge.net/">MPEG4IP suite</ulink>.
+</para>
+
+<para>
+ First, demux the AVI into separate audio and video streams using
+ <application>MPlayer</application>.
+
+ <screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
+mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen>
+
+ The file names are important; <application>mp4creator</application>
+ requires that AAC audio streams be named <systemitem>.aac</systemitem>
+ and H.264 video streams be named <systemitem>.h264</systemitem>.
+</para>
+
+<para>
+ Now use <application>mp4creator</application> to create a new
+ MP4 file out of the audio and video streams.
+
+ <screen>mp4creator -create=narnia.aac narnia.mp4
+mp4creator -create=narnia.h264 -rate=23.976 narnia.mp4</screen>
+
+ Unlike the encoding step, you must specify the framerate as a
+ decimal (such as 23.976), not a fraction (such as 24000/1001).
+</para>
+
+<para>
+ This <systemitem>narnia.mp4</systemitem> file should now be playable
+ with any <application>QuickTime</application> 7 application, such as
+ <application>QuickTime Player</application> or
+ <application>iTunes</application>. If you are planning to view the
+ video in a web browser with the <application>QuickTime</application>
+ plugin, you should also hint the movie so that the
+ <application>QuickTime</application> plugin can start playing it
+ while it is still downloading. <application>mp4creator</application>
+ can create these hint tracks:
+
+ <screen>mp4creator -hint=1 narnia.mp4
+mp4creator -hint=2 narnia.mp4
+mp4creator -optimize narnia.mp4</screen>
+
+ You can check the final result to ensure that the hint tracks were
+ created successfully:
+
+ <screen>mp4creator -list narnia.mp4</screen>
+
+ You should see a list of tracks: 1 audio, 1 video, and 2 hint tracks.
+
+<screen>Track Type Info
+1 audio MPEG-4 AAC LC, 8548.714 secs, 190 kbps, 48000 Hz
+2 video H264 Main@5.1, 8549.132 secs, 899 kbps, 848x352 @ 23.976001 fps
+3 hint Payload mpeg4-generic for track 1
+4 hint Payload H264 for track 2
+</screen>
+</para>
+
+</sect2>
+
+<sect2 id="menc-feat-quicktime-7-metadata">
+<title>Adding metadata tags</title>
+
+<para>
+ If you want to add tags to your video that show up in iTunes, you can use
+ <ulink url="http://atomicparsley.sourceforge.net/">AtomicParsley</ulink>.
+
+ <screen>AtomicParsley narnia.mp4 --metaEnema --title "The Chronicles of Narnia" --year 2005 --stik Movie --freefree --overWrite</screen>
+
+ The <option>--metaEnema</option> option removes any existing metadata
+ (<application>mp4creator</application> inserts its name in the
+ "encoding tool" tag), and <option>--freefree</option> reclaims the
+ space from the deleted metadata.
+ The <option>--stik</option> option sets the type of video (such as Movie
+ or TV Show), which iTunes uses to group related video files.
+ The <option>--overWrite</option> option overwrites the original file;
+ without it, <application>AtomicParsley</application> creates a new
+ auto-named file in the same directory and leaves the original file
+ untouched.
+</para>
+
+</sect2>
+
+</sect1>
+
+
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+
<sect1 id="menc-feat-vcd-dvd">
-<title>Using MEncoder to create VCD/SVCD/DVD-compliant files.</title>
+<title>Using <application>MEncoder</application>
+ to create VCD/SVCD/DVD-compliant files</title>
<sect2 id="menc-feat-vcd-dvd-constraints">
<title>Format Constraints</title>
+
<para>
- <application>MEncoder</application> is capable of creating VCD, SCVD
- and DVD format MPEG files using the
- <systemitem class="library">libavcodec</systemitem> library.
- These files can then be used in conjunction with
- <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
- or
- <ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
- to create discs that will play on a standard set-top player.
+<application>MEncoder</application> is capable of creating VCD, SCVD
+and DVD format MPEG files using the
+<systemitem class="library">libavcodec</systemitem> library.
+These files can then be used in conjunction with
+<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>
+or
+<ulink url="http://dvdauthor.sourceforge.net/">dvdauthor</ulink>
+to create discs that will play on a standard set-top player.
</para>
<para>
- The DVD, SVCD, and VCD formats are subject to heavy constraints.
- Only a small selection of encoded picture sizes and aspect ratios are
- available.
- If your movie does not already meet these requirements, you may have
- to scale,crop or add black borders to the picture to make it
- compliant.
+The DVD, SVCD, and VCD formats are subject to heavy constraints.
+Only a small selection of encoded picture sizes and aspect ratios are
+available.
+If your movie does not already meet these requirements, you may have
+to scale, crop or add black borders to the picture to make it
+compliant.
</para>
+
<sect3 id="menc-feat-vcd-dvd-constraints-resolution">
<title>Format Constraints</title>
<informaltable frame="all">
<tgroup cols="9">
<thead>
- <row>
- <entry>Format</entry>
- <entry>Resolution</entry>
- <entry>V. Codec</entry>
- <entry>V. Bitrate</entry>
- <entry>Sample Rate</entry>
- <entry>A. Codec</entry>
- <entry>A. Bitrate</entry>
- <entry>FPS</entry>
- <entry>Aspect</entry>
- </row>
+<row>
+ <entry>Format</entry>
+ <entry>Resolution</entry>
+ <entry>V. Codec</entry>
+ <entry>V. Bitrate</entry>
+ <entry>Sample Rate</entry>
+ <entry>A. Codec</entry>
+ <entry>A. Bitrate</entry>
+ <entry>FPS</entry>
+ <entry>Aspect</entry>
+</row>
</thead>
<tbody>
- <row>
- <entry>NTSC DVD</entry>
- <entry>720x480, 704x480, 352x480, 352x240</entry>
- <entry>MPEG-2</entry>
- <entry>9800 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>AC3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>30000/1001, 24000/1001</entry>
- <entry>4:3, 16:9 (only for 720x480)</entry>
- </row>
- <row>
- <entry>NTSC DVD</entry>
- <entry>352x240<footnote id='fn-rare-resolutions'><para>
- These resolutions are rarely used for DVDs because
- they are fairly low quality.</para></footnote></entry>
- <entry>MPEG-1</entry>
- <entry>1856 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>AC3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>30000/1001, 24000/1001</entry>
- <entry>4:3, 16:9</entry>
- </row>
- <row>
- <entry>NTSC SVCD</entry>
- <entry>480x480</entry>
- <entry>MPEG-2</entry>
- <entry>2600 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>384 kbps (max)</entry>
- <entry>30000/1001</entry>
- <entry>4:3</entry>
- </row>
- <row>
- <entry>NTSC VCD</entry>
- <entry>352x240</entry>
- <entry>MPEG-1</entry>
- <entry>1150 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>224 kbps</entry>
- <entry>24000/1001, 30000/1001</entry>
- <entry>4:3</entry>
- </row>
- <row>
- <entry>PAL DVD</entry>
- <entry>720x576, 704x576, 352x576, 352x288</entry>
- <entry>MPEG-2</entry>
- <entry>9800 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>MP2,AC3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3, 16:9 (only for 720x576)</entry>
- </row>
- <row>
- <entry>PAL DVD</entry>
- <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
- <entry>MPEG-1</entry>
- <entry>1856 kbps</entry>
- <entry>48000 Hz</entry>
- <entry>MP2,AC3,PCM</entry>
- <entry>1536 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3, 16:9</entry>
- </row>
- <row>
- <entry>PAL SVCD</entry>
- <entry>480x576</entry>
- <entry>MPEG-2</entry>
- <entry>2600 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>384 kbps (max)</entry>
- <entry>25</entry>
- <entry>4:3</entry>
- </row>
- <row>
- <entry>PAL VCD</entry>
- <entry>352x288</entry>
- <entry>MPEG-1</entry>
- <entry>1152 kbps</entry>
- <entry>44100 Hz</entry>
- <entry>MP2</entry>
- <entry>224 kbps</entry>
- <entry>25</entry>
- <entry>4:3</entry>
- </row>
+<row>
+ <entry>NTSC DVD</entry>
+ <entry>720x480, 704x480, 352x480, 352x240</entry>
+ <entry>MPEG-2</entry>
+ <entry>9800 kbps</entry>
+ <entry>48000 Hz</entry>
+ <entry>AC-3,PCM</entry>
+ <entry>1536 kbps (max)</entry>
+ <entry>30000/1001, 24000/1001</entry>
+ <entry>4:3, 16:9 (only for 720x480)</entry>
+</row>
+<row>
+ <entry>NTSC DVD</entry>
+ <entry>352x240<footnote id='fn-rare-resolutions'><para>
+ These resolutions are rarely used for DVDs because
+ they are fairly low quality.</para></footnote></entry>
+ <entry>MPEG-1</entry>
+ <entry>1856 kbps</entry>
+ <entry>48000 Hz</entry>
+ <entry>AC-3,PCM</entry>
+ <entry>1536 kbps (max)</entry>
+ <entry>30000/1001, 24000/1001</entry>
+ <entry>4:3, 16:9</entry>
+</row>
+<row>
+ <entry>NTSC SVCD</entry>
+ <entry>480x480</entry>
+ <entry>MPEG-2</entry>
+ <entry>2600 kbps</entry>
+ <entry>44100 Hz</entry>
+ <entry>MP2</entry>
+ <entry>384 kbps (max)</entry>
+ <entry>30000/1001</entry>
+ <entry>4:3</entry>
+</row>
+<row>
+ <entry>NTSC VCD</entry>
+ <entry>352x240</entry>
+ <entry>MPEG-1</entry>
+ <entry>1150 kbps</entry>
+ <entry>44100 Hz</entry>
+ <entry>MP2</entry>
+ <entry>224 kbps</entry>
+ <entry>24000/1001, 30000/1001</entry>
+ <entry>4:3</entry>
+</row>
+<row>
+ <entry>PAL DVD</entry>
+ <entry>720x576, 704x576, 352x576, 352x288</entry>
+ <entry>MPEG-2</entry>
+ <entry>9800 kbps</entry>
+ <entry>48000 Hz</entry>
+ <entry>MP2,AC-3,PCM</entry>
+ <entry>1536 kbps (max)</entry>
+ <entry>25</entry>
+ <entry>4:3, 16:9 (only for 720x576)</entry>
+</row>
+<row>
+ <entry>PAL DVD</entry>
+ <entry>352x288<footnoteref linkend='fn-rare-resolutions'/></entry>
+ <entry>MPEG-1</entry>
+ <entry>1856 kbps</entry>
+ <entry>48000 Hz</entry>
+ <entry>MP2,AC-3,PCM</entry>
+ <entry>1536 kbps (max)</entry>
+ <entry>25</entry>
+ <entry>4:3, 16:9</entry>
+</row>
+<row>
+ <entry>PAL SVCD</entry>
+ <entry>480x576</entry>
+ <entry>MPEG-2</entry>
+ <entry>2600 kbps</entry>
+ <entry>44100 Hz</entry>
+ <entry>MP2</entry>
+ <entry>384 kbps (max)</entry>
+ <entry>25</entry>
+ <entry>4:3</entry>
+</row>
+<row>
+ <entry>PAL VCD</entry>
+ <entry>352x288</entry>
+ <entry>MPEG-1</entry>
+ <entry>1152 kbps</entry>
+ <entry>44100 Hz</entry>
+ <entry>MP2</entry>
+ <entry>224 kbps</entry>
+ <entry>25</entry>
+ <entry>4:3</entry>
+</row>
</tbody>
</tgroup>
</informaltable>
<para>
- If your movie has 2.35:1 aspect (most recent action movies), you will
- have to add black borders or crop the movie down to 16:9 to make a DVD
- or VCD.
- If you add black borders, try to align them at 16-pixel boundaries in
- order to minimize the impact on encoding performance.
- Thankfully DVD has sufficiently excessive bitrate that you do not have
- to worry too much about encoding efficiency, but SVCD and VCD are
- highly bitrate-starved and require effort to obtain acceptable quality.
+If your movie has 2.35:1 aspect (most recent action movies), you will
+have to add black borders or crop the movie down to 16:9 to make a DVD or VCD.
+If you add black borders, try to align them at 16-pixel boundaries in
+order to minimize the impact on encoding performance.
+Thankfully DVD has sufficiently excessive bitrate that you do not have
+to worry too much about encoding efficiency, but SVCD and VCD are
+highly bitrate-starved and require effort to obtain acceptable quality.
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-constraints-gop">
<title>GOP Size Constraints</title>
+
<para>
- DVD, VCD, and SVCD also constrain you to relatively low
- GOP (Group of Pictures) sizes.
- For 30 fps material the largest allowed GOP size is 18.
- For 25 or 24 fps, the maximum is 15.
- The GOP size is set using the <option>keyint</option> option.
+DVD, VCD, and SVCD also constrain you to relatively low
+GOP (Group of Pictures) sizes.
+For 30 fps material the largest allowed GOP size is 18.
+For 25 or 24 fps, the maximum is 15.
+The GOP size is set using the <option>keyint</option> option.
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-constraints-bitrate">
<title>Bitrate Constraints</title>
+
<para>
- VCD video is required to be CBR at 1152 kbps.
- This highly limiting constraint also comes along with an extremly low vbv
- buffer size of 327 kilobits.
- SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less
- restrictive vbv buffer size of 917 kilobits is allowed.
- DVD video bitrates may range anywhere up to 9800 kbps (though typical
- bitrates are about half that), and the vbv buffer size is 1835 kilobits.
+VCD video is required to be CBR at 1152 kbps.
+This highly limiting constraint also comes along with an extremely low vbv
+buffer size of 327 kilobits.
+SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less
+restrictive vbv buffer size of 917 kilobits is allowed.
+DVD video bitrates may range anywhere up to 9800 kbps (though typical
+bitrates are about half that), and the vbv buffer size is 1835 kilobits.
</para>
</sect3>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-vcd-dvd-output">
<title>Output Options</title>
+
<para>
- <application>MEncoder</application> has options to control the output
- format.
- Using these options we can instruct it to create the correct type of
- file.
+<application>MEncoder</application> has options to control the output
+format.
+Using these options we can instruct it to create the correct type of
+file.
</para>
<para>
- The options for VCD and SVCD are called xvcd and xsvcd, because they
- are extended formats.
- They are not strictly compliant, mainly because the output does not
- contain scan offsets.
- If you need to generate an SVCD image, you should pass the output file
- to
- <ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>.
+The options for VCD and SVCD are called xvcd and xsvcd, because they
+are extended formats.
+They are not strictly compliant, mainly because the output does not
+contain scan offsets.
+If you need to generate an SVCD image, you should pass the output file to
+<ulink url="http://www.gnu.org/software/vcdimager/vcdimager.html">vcdimager</ulink>.
</para>
<para>
- VCD:
- <screen>
- -of mpeg -mpegopts format=xvcd
- </screen>
+VCD:
+<screen>-of mpeg -mpegopts format=xvcd</screen>
</para>
<para>
- SVCD:
- <screen>
- -of mpeg -mpegopts format=xsvcd
- </screen>
+SVCD:
+<screen>-of mpeg -mpegopts format=xsvcd</screen>
</para>
<para>
- DVD:
- <screen>
- -of mpeg -mpegopts format=dvd
- </screen>
+DVD (with timestamps on every frame, if possible):
+<screen>-of mpeg -mpegopts format=dvd:tsaf</screen>
</para>
<para>
- DVD with NTSC Pullup:
- <screen>
- -of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001
- </screen>
- This allows 24000/1001 fps progressive content to be encoded at 30000/1001
- fps whilst maintaing DVD-compliance.
+DVD with NTSC Pullup:
+<screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
+This allows 24000/1001 fps progressive content to be encoded at 30000/1001
+fps whilst maintaining DVD-compliance.
</para>
+
<sect3 id="menc-feat-vcd-dvd-output-aspect">
<title>Aspect Ratio</title>
+
<para>
- The aspect argument of <option>-lavcopts</option> is used to encode
- the aspect ratio of the file.
- During playback the aspect ratio is used to restore the video to the
- correct size.
+The aspect argument of <option>-lavcopts</option> is used to encode
+the aspect ratio of the file.
+During playback the aspect ratio is used to restore the video to the
+correct size.
</para>
<para>
- 16:9 or "Widescreen"
- <screen>
- -lavcopts aspect=16/9
- </screen>
+16:9 or "Widescreen"
+<screen>-lavcopts aspect=16/9</screen>
</para>
<para>
- 4:3 or "Fullscreen"
- <screen>
- -lavcopts aspect=4/3
- </screen>
+4:3 or "Fullscreen"
+<screen>-lavcopts aspect=4/3</screen>
</para>
<para>
- 2.35:1 or "Cinemascope" NTSC
- <screen>
- -vf scale=720:368,expand=720:480 -lavcopts aspect=16/9
- </screen>
- To calculate the correct scaling size, use the expanded NTSC width of
- 854/2.35 = 368
+2.35:1 or "Cinemascope" NTSC
+<screen>-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9</screen>
+To calculate the correct scaling size, use the expanded NTSC width of
+854/2.35 = 368
</para>
<para>
- 2.35:1 or "Cinemascope" PAL
- <screen>
- -vf scale="720:432,expand=720:576 -lavcopts aspect=16/9
- </screen>
- To calculate the correct scaling size, use the expanded PAL width of
- 1024/2.35 = 432
+2.35:1 or "Cinemascope" PAL
+<screen>-vf scale=720:432,expand=720:576 -lavcopts aspect=16/9</screen>
+To calculate the correct scaling size, use the expanded PAL width of
+1024/2.35 = 432
</para>
+</sect3>
+
+
+<sect3 id="menc-feat-vcd-dvd-a-v-sync">
+<title>Maintaining A/V sync</title>
+<para>
+In order to maintain audio/video synchronization throughout the encode,
+<application>MEncoder</application> has to drop or duplicate frames.
+This works rather well when muxing into an AVI file, but is almost
+guaranteed to fail to maintain A/V sync with other muxers such as MPEG.
+This is why it is necessary to append the
+<option>harddup</option> video filter at the end of the filter chain
+to avoid this kind of problem.
+You can find more technical information about <option>harddup</option>
+in the section
+<link linkend="menc-feat-dvd-mpeg4-muxing-filter-issues">Improving muxing and A/V sync reliability</link>
+or in the manual page.
+</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-output-srate">
<title>Sample Rate Conversion</title>
+
<para>
- If the audio sample rate in the original file is not the same as
- required by the target format, sample rate conversion is required.
- This is achieved using the <option>-srate</option> option and
- the <option>-af lavcresample</option> audio filter together.
- </para>
- <para>
- DVD:
- <screen>
- -srate 48000 -af lavcresample=48000
- </screen>
+If the audio sample rate in the original file is not the same as
+required by the target format, sample rate conversion is required.
+This is achieved using the <option>-srate</option> option and
+the <option>-af lavcresample</option> audio filter together.
</para>
+
<para>
- VCD and SVCD:
- <screen>
- -srate 44100 -af lavcresample=44100
- </screen>
- </para>
+DVD:
+<screen>-srate 48000 -af lavcresample=48000</screen>
+</para>
+
+<para>
+VCD and SVCD:
+<screen>-srate 44100 -af lavcresample=44100</screen>
+</para>
</sect3>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-vcd-dvd-lavc">
<title>Using libavcodec for VCD/SVCD/DVD Encoding</title>
<sect3 id="menc-feat-vcd-dvd-lavc-intro">
<title>Introduction</title>
+
<para>
- <systemitem class="library">libavcodec</systemitem> can be used to
- create VCD/SVCD/DVD compliant video by using the appropriate options.
+<systemitem class="library">libavcodec</systemitem> can be used to
+create VCD/SVCD/DVD compliant video by using the appropriate options.
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-lavc-options">
<title>lavcopts</title>
+
<para>
- This is a list of fields in <option>-lavcopts</option> that you may
- be required to change in order to make a complaint movie for VCD, SVCD,
- or DVD:
+This is a list of fields in <option>-lavcopts</option> that you may
+be required to change in order to make a complaint movie for VCD, SVCD,
+or DVD:
</para>
<itemizedlist>
@@ -4118,14 +5194,12 @@ codec</title>
Note that MP3 audio is not compliant for any of these formats, but
players often have no problem playing it anyway.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">abitrate</emphasis>:
224 for VCD; up to 384 for SVCD; up to 1536 for DVD, but commonly
used values range from 192 kbps for stereo to 384 kbps for 5.1 channel
sound.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vcodec</emphasis>:
<option>mpeg1video</option> for VCD;
@@ -4133,7 +5207,6 @@ codec</title>
<option>mpeg2video</option> is usually used for DVD but you may also use
<option>mpeg1video</option> for CIF resolutions.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">keyint</emphasis>:
Used to set the GOP size.
@@ -4143,24 +5216,20 @@ codec</title>
with most players.
A <option>keyint</option> of 25 should never cause any problems.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vrc_buf_size</emphasis>:
327 for VCD, 917 for SVCD, and 1835 for DVD.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vrc_minrate</emphasis>:
1152, for VCD. May be left alone for SVCD and DVD.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vrc_maxrate</emphasis>:
1152 for VCD; 2500 for SVCD; 9800 for DVD.
For SVCD and DVD, you might wish to use lower values depending on your
own personal preferences and requirements.
</para></listitem>
-
<listitem><para>
<emphasis role="bold">vbitrate</emphasis>:
1152 for VCD;
@@ -4175,244 +5244,269 @@ codec</title>
use vbitrate=9800, but be warned that this could constrain you to less
than an hour of video on a single-layer DVD.
</para></listitem>
+<listitem><para>
+ <emphasis role="bold">vstrict</emphasis>:
+ <option>vstrict</option>=0 should be used to create DVDs.
+ Without this option, <application>MEncoder</application> creates a
+ stream that cannot be correctly decoded by some standalone DVD
+ players.
+</para></listitem>
</itemizedlist>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-lavc-examples">
<title>Examples</title>
+
<para>
- This is a typical minimum set of <option>-lavcopts</option> for
- encoding video:
+This is a typical minimum set of <option>-lavcopts</option> for
+encoding video:
</para>
<para>
- VCD:
- <screen>
- -lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
- vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
- </screen>
+VCD:
+<screen>
+-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\
+vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
+</screen>
</para>
<para>
- SVCD:
- <screen>
- -lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
- keyint=15:acodec=mp2
- </screen>
+SVCD:
+<screen>
+-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\
+keyint=15:acodec=mp2
+</screen>
</para>
<para>
- DVD:
- <screen>
- -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
- keyint=15:acodec=ac3
- </screen>
+DVD:
+<screen>
+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3
+</screen>
</para>
-
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-lavc-advanced">
<title>Advanced Options</title>
+
<para>
- For higher quality encoding, you may also wish to add quality-enhancing
- options to lavcopts, such as <option>trell</option>,
- <option>mbd=2</option>, and others.
- Note that <option>qpel</option> and <option>v4mv</option>, while often
- useful with MPEG-4, are not usable with MPEG-1 or MPEG-2.
- Also, if you are trying to make a very high quality DVD encode, it may
- be useful to add <option>dc=10</option> to lavcopts.
- Doing so may help reduce the appearance of blocks in flat-colored areas.
- Putting it all together, this is an example of a set of lavcopts for a
- higher quality DVD:
+For higher quality encoding, you may also wish to add quality-enhancing
+options to lavcopts, such as <option>trell</option>,
+<option>mbd=2</option>, and others.
+Note that <option>qpel</option> and <option>v4mv</option>, while often
+useful with MPEG-4, are not usable with MPEG-1 or MPEG-2.
+Also, if you are trying to make a very high quality DVD encode, it may
+be useful to add <option>dc=10</option> to lavcopts.
+Doing so may help reduce the appearance of blocks in flat-colored areas.
+Putting it all together, this is an example of a set of lavcopts for a
+higher quality DVD:
</para>
<para>
- <screen>
- -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
- keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
- vqmin=1:lmin=1:dc=10
- </screen>
+<screen>
+-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
+keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
+vqmin=1:lmin=1:dc=10:vstrict=0
+</screen>
</para>
-
</sect3>
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-vcd-dvd-audio">
<title>Encoding Audio</title>
+
<para>
- VCD and SVCD support MPEG-1 layer II audio, using one of
- <systemitem class="library">toolame</systemitem>,
- <systemitem class="library">twolame</systemitem>,
- or <systemitem class="library">libavcodec</systemitem>'s MP2 encoder.
- The libavcodec MP2 is far from being as good as the other two libraries,
- however it should always be available to use.
- VCD only supports constant bitrate audio (CBR) whereas SVCD supports
- variable bitrate (VBR), too.
- Be careful when using VBR because some bad standalone players might not
- support it too well.
+VCD and SVCD support MPEG-1 layer II audio, using one of
+<systemitem class="library">toolame</systemitem>,
+<systemitem class="library">twolame</systemitem>,
+or <systemitem class="library">libavcodec</systemitem>'s MP2 encoder.
+The libavcodec MP2 is far from being as good as the other two libraries,
+however it should always be available to use.
+VCD only supports constant bitrate audio (CBR) whereas SVCD supports
+variable bitrate (VBR), too.
+Be careful when using VBR because some bad standalone players might not
+support it too well.
</para>
<para>
- For DVD audio, <systemitem class="library">libavcodec</systemitem>'s
- AC3 codec is used.
+For DVD audio, <systemitem class="library">libavcodec</systemitem>'s
+AC-3 codec is used.
</para>
+
<sect3 id="menc-feat-vcd-dvd-audio-toolame">
<title>toolame</title>
+
<para>
- For VCD and SVCD:
- <screen>
- -oac toolame -toolameopts br=224
- </screen>
+For VCD and SVCD:
+<screen>-oac toolame -toolameopts br=224</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-audio-twolame">
<title>twolame</title>
+
<para>
- For VCD and SVCD:
- <screen>
- -oac twolame -twolameopts br=224
- </screen>
+For VCD and SVCD:
+<screen>-oac twolame -twolameopts br=224</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-audio-lavc">
<title>libavcodec</title>
+
<para>
- For DVD with 2 channel sound:
- <screen>
- -oac lavc -lavcopts acodec=ac3:abitrate=192
- </screen>
+For DVD with 2 channel sound:
+<screen>-oac lavc -lavcopts acodec=ac3:abitrate=192</screen>
</para>
+
<para>
- For DVD with 5.1 channel sound:
- <screen>
- -channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384
- </screen>
+For DVD with 5.1 channel sound:
+<screen>-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384</screen>
</para>
+
<para>
- For VCD and SVCD:
- <screen>
- -oac lavc -lavcopts acodec=mp2:abitrate=224
- </screen>
+For VCD and SVCD:
+<screen>-oac lavc -lavcopts acodec=mp2:abitrate=224</screen>
</para>
</sect3>
-
</sect2>
+<!-- ********** -->
+
<sect2 id="menc-feat-vcd-dvd-all">
<title>Putting it all Together</title>
+
<para>
- This section shows some complete commands for creating VCD/SVCD/DVD
- compliant videos.
+This section shows some complete commands for creating VCD/SVCD/DVD
+compliant videos.
</para>
+
<sect3 id="menc-feat-vcd-dvd-all-pal-dvd">
<title>PAL DVD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
- harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
- vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\
- abitrate=192:aspect=16/9 -ofps 25 \
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+ -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 \
+ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 \
-o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-ntsc-dvd">
<title>NTSC DVD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\
- harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\
- vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\
- abitrate=192:aspect=16/9 -ofps 30000/1001 \
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+ -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 \
+ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 \
-o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-pal-ac3-copy">
-<title>PAL AVI Containing AC3 Audio to DVD</title>
+<title>PAL AVI Containing AC-3 Audio to DVD</title>
+
<para>
- If the source already has AC3 audio, use -oac copy instead of re-encoding it.
- <screen>
- mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\
- harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\
- vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+If the source already has AC-3 audio, use -oac copy instead of re-encoding it.
+<screen>
+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf \
+ -vf scale=720:576,harddup -ofps 25 \
+ -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\
+keyint=15:vstrict=0:aspect=16/9 -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-ntsc-ac3-copy">
-<title>NTSC AVI Containing AC3 Audio to DVD</title>
+<title>NTSC AVI Containing AC-3 Audio to DVD</title>
+
<para>
- If the source already has AC3 audio, and is NTSC @ 24000/1001 fps:
- <screen>
- mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \
+If the source already has AC-3 audio, and is NTSC @ 24000/1001 fps:
+<screen>
+mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:tsaf:telecine \
-vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\
- vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \
+ vrc_maxrate=9800:vbitrate=5000:keyint=15:vstrict=0:aspect=16/9 -ofps 24000/1001 \
-o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-pal-svcd">
<title>PAL SVCD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
- scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
- vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 \
+ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-ntsc-svcd">
<title>NTSC SVCD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
- scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
- vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \
+ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\
+vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 \
+ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-pal-vcd">
<title>PAL VCD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
- scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
- vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 25 \
+ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
+</screen>
</para>
</sect3>
+
<sect3 id="menc-feat-vcd-dvd-all-ntsc-vcd">
<title>NTSC VCD</title>
+
<para>
- <screen>
- mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
- scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
- vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\
- vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \
- -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
- </screen>
+<screen>
+mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \
+ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \
+ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:\
+vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224:aspect=16/9 -ofps 30000/1001 \
+ -o <replaceable>movie.mpg</replaceable> <replaceable>movie.avi</replaceable>
+</screen>
</para>
</sect3>
-
</sect2>
-
</sect1>
-
</chapter>
diff --git a/DOCS/xml/zh_CN/documentation.xml b/DOCS/xml/zh_CN/documentation.xml
index 781ffd4b01..d8578814ec 100644
--- a/DOCS/xml/zh_CN/documentation.xml
+++ b/DOCS/xml/zh_CN/documentation.xml
@@ -110,7 +110,7 @@ It can encode with various codecs, like
</para></listitem>
<listitem><para>
Г╪√Г═│Е┬╟Ф┴─Ф°┴FFmpegГ └
- <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
+ <systemitem class="library">libavcodec</systemitem>
Ф┴─Ф■╞Ф▄│Г └Г╪√Г═│
</para></listitem>
<listitem><para>
diff --git a/DOCS/xml/zh_CN/mencoder.xml b/DOCS/xml/zh_CN/mencoder.xml
index f5d83f4122..4b76928c69 100644
--- a/DOCS/xml/zh_CN/mencoder.xml
+++ b/DOCS/xml/zh_CN/mencoder.xml
@@ -688,7 +688,7 @@ SVCD)Е▐┼H.263Ф√┤Д╩╤Д╦─Ф═╥Ц─┌Е▐╞Ф┐°Г └Ф≤╞О╪▄И≥╓Д╨├<application>MPlayer</applicati
<para>
Х©≥Г╖█Г┴╧Ф─╖Д╧▀Е▐╞Д╩╔Д╦▌
-<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>Г └
+<systemitem class="library">libavcodec</systemitem>Г └
<systemitem>mpeg4</systemitem>Г╪√Г═│Е≥╗Д╦─Е░▄Д╫©Г■╗Ц─┌Х╝╟Д╫▐О╪ Х≥╫Г└╤
<application>MPlayer</application>Е▐╞Д╩╔Ф╜ёЕ╦╦Ф▓╜Ф■╬Ф┴─Г■÷Ф┬░Г └Ф√┤Д╩╤О╪▄Е┘╤Д╩√Ф▓╜Ф■╬Е≥╗Е▐╞Х┐╫Д╫©Г■╗И■≥Х╞╞
Г └Е⌡╬Х╠║Ф╞■Д╬▀Ц─┌
diff --git a/Makefile b/Makefile
index c52fdca131..e552e1d644 100644
--- a/Makefile
+++ b/Makefile
@@ -876,10 +876,10 @@ doxygen:
doxygen DOCS/tech/Doxyfile
TAGS:
- rm -f $@; ( find -name '*.[chS]' -print ) | xargs etags -a
+ rm -f $@; ( find -name '*.[chS]' -o -name '*.asm' -print ) | xargs etags -a
tags:
- rm -f $@; ( find -name '*.[chS]' -print ) | xargs ctags -a
+ rm -f $@; ( find -name '*.[chS]' -o -name '*.asm' -print ) | xargs ctags -a
diff --git a/common.mak b/common.mak
index e5770be94f..4d92999542 100644
--- a/common.mak
+++ b/common.mak
@@ -8,11 +8,18 @@ ifndef SUBDIR
vpath %.c $(SRC_DIR)
vpath %.h $(SRC_DIR)
vpath %.S $(SRC_DIR)
+vpath %.asm $(SRC_DIR)
+
+ifeq ($(SRC_DIR),$(SRC_PATH_BARE))
+BUILD_ROOT_REL = .
+else
+BUILD_ROOT_REL = ..
+endif
ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale
-CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
- -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) -I$(SRC_PATH)/ffmpeg $(OPTFLAGS)
+CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+ -I$(BUILD_ROOT_REL) -I$(SRC_PATH) -I$(SRC_PATH)/ffmpeg $(OPTFLAGS)
%.o: %.c
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
@@ -32,8 +39,18 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
%.d: %.cpp
$(DEPEND_CMD) > $@
+%.o: %.d
+
%$(EXESUF): %.c
+SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
+ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
+$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES)
+endif
+
+$(BUILD_ROOT_REL)/version.h:
+ $(SRC_PATH)/version.sh $(SRC_PATH) $@ $(EXTRA_VERSION)
+
install: install-libs install-headers
uninstall: uninstall-libs uninstall-headers
@@ -43,18 +60,12 @@ endif
CFLAGS += $(CFLAGS-yes)
OBJS += $(OBJS-yes)
-ASM_OBJS += $(ASM_OBJS-yes)
-CPP_OBJS += $(CPP_OBJS-yes)
FFLIBS := $(FFLIBS-yes) $(FFLIBS)
TESTS += $(TESTS-yes)
FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS)
FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS)
-SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp)
-OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS)
-
-SRCS := $(addprefix $(SUBDIR),$(SRCS))
OBJS := $(addprefix $(SUBDIR),$(OBJS))
TESTS := $(addprefix $(SUBDIR),$(TESTS))
@@ -68,7 +79,7 @@ depend dep: $(DEPS)
CLEANSUFFIXES = *.o *~ *.ho
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map
-DISTCLEANSUFFIXES = *.d
+DISTCLEANSUFFIXES = *.d *.pc
define RULES
$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o
@@ -80,6 +91,12 @@ $(SUBDIR)%-test.o: $(SUBDIR)%.c
$(SUBDIR)%-test.o: $(SUBDIR)%-test.c
$(CC) $(CFLAGS) -DTEST -c -o $$@ $$^
+$(SUBDIR)i386/%.o: $(SUBDIR)i386/%.asm
+ $(YASM) $(YASMFLAGS) -I $$(<D)/ -o $$@ $$<
+
+$(SUBDIR)i386/%.d: $(SUBDIR)i386/%.asm
+ $(YASM) $(YASMFLAGS) -I $$(<D)/ -M -o $$(@:%.d=%.o) $$< > $$@
+
clean::
rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
$(addprefix $(SUBDIR), $(foreach suffix,$(CLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS))))
diff --git a/configure b/configure
index efa711f746..fdce325fee 100755
--- a/configure
+++ b/configure
@@ -78,6 +78,19 @@ cxx_check() {
compile_check $TMPCPP $@ -lstdc++
}
+yasm_check() {
+ echo >> "$TMPLOG"
+ cat "$TMPS" >> "$TMPLOG"
+ echo >> "$TMPLOG"
+ echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
+ rm -f "$TMPEXE"
+ $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
+ TMP="$?"
+ echo >> "$TMPLOG"
+ echo >> "$TMPLOG"
+ return "$TMP"
+}
+
tmp_run() {
"$TMPEXE" >> "$TMPLOG" 2>&1
}
@@ -408,6 +421,7 @@ Miscellaneous options:
--cc=COMPILER C compiler to build MPlayer [gcc]
--host-cc=COMPILER C compiler for tools needed while building [gcc]
--as=ASSEMBLER assembler to build MPlayer [as]
+ --yasm=YASM Yasm assembler to build MPlayer [yasm]
--ar=AR librarian to build MPlayer [ar]
--ranlib=RANLIB ranlib to build MPlayer [ranlib]
--windres=WINDRES windres to build MPlayer [windres]
@@ -493,6 +507,7 @@ _cc=cc
_ar=ar
test "$CC" && _cc="$CC"
_as=auto
+_yasm=yasm
_runtime_cpudetection=no
_cross_compile=auto
_prefix="/usr/local"
@@ -790,6 +805,9 @@ for ac_option do
--as=*)
_as=`echo $ac_option | cut -d '=' -f 2`
;;
+ --yasm=*)
+ _yasm=`echo $ac_option | cut -d '=' -f 2`
+ ;;
--ar=*)
_ar=`echo $ac_option | cut -d '=' -f 2`
;;
@@ -1543,7 +1561,7 @@ elif test -r /compat/linux/proc/cpuinfo && ! x86_32 ; then
# FreeBSD with Linux emulation /proc mounted,
# extract CPU information from it
_cpuinfo="cat /compat/linux/proc/cpuinfo"
-elif darwin && ! x86_32 ; then
+elif darwin && ! x86 ; then
# use hostinfo on Darwin
_cpuinfo="hostinfo"
elif aix; then
@@ -2385,6 +2403,40 @@ else
fi
echores $_asmalign_pot
+echocheck "yasm"
+if test -z "$YASMFLAGS" ; then
+ if darwin ; then
+ x86_64 && objformat="macho64" || objformat="macho32"
+ elif win32 ; then
+ objformat="win32"
+ else
+ objformat="elf"
+ fi
+ # currently tested for Linux x86, x86_64
+ YASMFLAGS="-f $objformat"
+ x86_64 && YASMFLAGS="$YASMFLAGS -DARCH_X86_64 -m amd64"
+ case "$objformat" in
+ elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
+ macho64) YASMFLAGS="$YASMFLAGS -DPIC -DPREFIX" ;;
+ *) YASMFLAGS="$YASMFLAGS -DPREFIX" ;;
+ esac
+else
+ _warn_CFLAGS=yes
+fi
+
+echo "pabsw xmm0, xmm0" > $TMPS
+yasm_check || _yasm=""
+if test $_yasm ; then
+ test "$_mmx" = "yes" && fft_mmx="yes"
+ _def_yasm='#define HAVE_YASM 1'
+ _have_yasm="yes"
+ echores "$_yasm"
+else
+ _def_yasm='#undef HAVE_YASM'
+ fft_mmx="no"
+ _have_yasm="no"
+ echores "no"
+fi
#FIXME: This should happen before the check for CFLAGS..
if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
@@ -3521,7 +3573,7 @@ if test "$_macosx" = auto ; then
else
_macosx=no
_noaomodules="macosx $_noaomodules"
- _novomodules="quartz $_novomodules"
+ _novomodules="macosx quartz $_novomodules"
fi
fi
if test "$_macosx" = yes ; then
@@ -5785,7 +5837,7 @@ if test "$_zlib" = yes ; then
_ld_extra="$_ld_extra -lz"
else
_def_zlib='#undef CONFIG_ZLIB'
- _libavdecoders=`echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e/TSCC_DECODER// `
+ _libavdecoders=`echo $_libavdecoders | sed -e s/FLASHSV_DECODER// -e s/PNG_DECODER// -e s/ZMBV_DECODER// -e s/DXA_DECODER// -e s/TSCC_DECODER// `
_libavencoders=`echo $_libavencoders | sed -e s/FLASHSV_ENCODER// -e s/PNG_ENCODER// -e s/ZMBV_ENCODER// `
fi
echores "$_zlib"
@@ -7766,6 +7818,8 @@ if test "$cc_vendor" = "gnu" ; then
cc_check -std=gnu99 && CFLAGS="-std=gnu99 $CFLAGS"
cc_check -Wno-pointer-sign && CFLAGS="-Wno-pointer-sign $CFLAGS"
cc_check -Wdisabled-optimization && CFLAGS="-Wdisabled-optimization $CFLAGS"
+else
+ CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
fi
CFLAGS_FFMPEG="-I../.. $CFLAGS"
@@ -7800,6 +7854,7 @@ AR = $_ar
CC = $_cc
CXX = $_cc
HOST_CC = $_host_cc
+YASM = $_yasm
INSTALL = $_install
INSTALLSTRIP = $_install_strip
RANLIB = $_ranlib
@@ -7819,6 +7874,7 @@ CFLAGS_NO_OMIT_LEAF_FRAME_POINTER = $cflags_no_omit_leaf_frame_pointer
CFLAGS_STACKREALIGN = $cflags_stackrealign
CFLAGS_SVGALIB_HELPER = $cflags_svgalib_helper
CFLAGS_TREMOR_LOW = $cflags_tremor_low
+YASMFLAGS = $YASMFLAGS
EXTRALIBS = $_extra_libs
EXTRA_LIB = $_ld_extra $_ld_static $_ld_lm
@@ -7986,6 +8042,7 @@ LIBNAME=\$(LIBPREF)\$(NAME)\$(LIBSUF)
# Some FFmpeg codecs depend on these. Enable them unconditionally for now.
CONFIG_FFT=yes
+CONFIG_FFT_MMX=$fft_mmx
CONFIG_GOLOMB=yes
CONFIG_MDCT=yes
@@ -8010,6 +8067,7 @@ CONFIG_ZLIB=$_zlib
HAVE_PTHREADS = $_pthreads
HAVE_W32THREADS = $_w32threads
+HAVE_YASM = $_have_yasm
`echo $_libavdecoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
`echo $_libavencoders | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
@@ -8413,6 +8471,7 @@ $_def_threads
#else
#define ENABLE_THREADS 0
#endif
+$_def_yasm
#define CONFIG_GPL 1
#define ENABLE_SMALL 0
@@ -8544,7 +8603,8 @@ EOF
if test "$_warn_CFLAGS" = yes; then
cat <<EOF
-MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS set by you, but:
+MPlayer compilation will use the CPPFLAGS/CFLAGS/LDFLAGS/YASMFLAGS set by you,
+but:
*** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
diff --git a/help/help_mp-es.h b/help/help_mp-es.h
index e8762c6731..309c77d927 100644
--- a/help/help_mp-es.h
+++ b/help/help_mp-es.h
@@ -1966,6 +1966,59 @@ static char help_text[]=
#define MSGTR_RADIO_DriverV4L2 "[radio] Utilizando interfaz de radio V4Lv2.\n"
#define MSGTR_RADIO_DriverV4L "[radio] Utilizando interfaz de radio V4Lv1.\n"
#define MSGTR_RADIO_DriverBSDBT848 "[radio] Usando la interfaz de radio *BSD BT848.\n"
+#define MSGTR_RADIO_AvailableDrivers "[radio] Drivers disponibles: "
+
+//tv.c
+#define MSGTR_TV_BogusNormParameter "tv.c: norm_from_string(%s): Parametro de normal invц║lido al configurar %s.\n"
+#define MSGTR_TV_NoVideoInputPresent "Error: Entrada de video no encontrada!\n"
+#define MSGTR_TV_UnknownImageFormat ""\
+"==================================================================\n"\
+" ADVERTENCIA: HA SELECCIONADO UN FORMATO DE SALIDA DE IMAGEN NO \n"\
+" CONOCIDO Y/O NO PROBADO (0x%x) \n"\
+" Esto podrц╜a causarle problemas de reproducciцЁn o que el programa\n"\
+" se cayera! Los Bug reports serц║n ignorados! Intentelo nuevamente\n"\
+" con YV12 (el colorspace por omisiцЁn) y leer la documentaciцЁn. \n"\
+"==================================================================\n"
+#define MSGTR_TV_SelectedNormId "Id norma seleccionada: %d\n"
+#define MSGTR_TV_SelectedNorm "Norma seleccionada : %s\n"
+#define MSGTR_TV_CannotSetNorm "Error: No puedo configurar la norma!\n"
+#define MSGTR_TV_MJP_WidthHeight " MJP: ancho %d alto %d\n"
+#define MSGTR_TV_UnableToSetWidth "Imposible configurar ancho requerido: %d\n"
+#define MSGTR_TV_UnableToSetHeight "Imposible configurar alto requerido: %d\n"
+#define MSGTR_TV_NoTuner "No hay un sintonizador en la entrada seleccionada!\n"
+#define MSGTR_TV_UnableFindChanlist "Imposible encontrar lista de canales seleccionada! (%s)\n"
+#define MSGTR_TV_SelectedChanlist "Lista de canales seleccionada: %s (incluyendo %d canales)\n"
+#define MSGTR_TV_ChannelFreqParamConflict "No puede configurar simultaneamente frecuencia y canal!\n"
+#define MSGTR_TV_ChannelNamesDetected "Nombres de canales de TV detectados.\n"
+#define MSGTR_TV_NoFreqForChannel "Imposible encontrar frecuencia para el canal %s (%s)\n"
+#define MSGTR_TV_SelectedChannel3 "Canal seleccionado: %s - %s (freq: %.3f)\n"
+#define MSGTR_TV_SelectedChannel2 "Canal seleccionado: %s (freq: %.3f)\n"
+#define MSGTR_TV_SelectedFrequency "Frecuencia seleccionada: %lu (%.3f)\n"
+#define MSGTR_TV_RequestedChannel "Canal requerido: %s\n"
+#define MSGTR_TV_UnsupportedAudioType "Tipo de audio '%s (%x)' no soportado!\n"
+#define MSGTR_TV_AudioFormat " Audio TV: %d canales, %d bits, %d Hz\n"
+#define MSGTR_TV_AvailableDrivers "Drivers disponibles:\n"
+#define MSGTR_TV_DriverInfo "Driver seleccionado: %s\n nombre: %s\n autor: %s\n comentario: %s\n"
+#define MSGTR_TV_NoSuchDriver "Ese driver no existe: %s\n"
+#define MSGTR_TV_DriverAutoDetectionFailed "FallцЁ la utodeteccion del driver de TV.\n"
+#define MSGTR_TV_UnknownColorOption "Se especificцЁ una opciцЁn de color desconodida (%d)!\n"
+#define MSGTR_TV_CurrentFrequency "Frecuencia actual: %lu (%.3f)\n"
+#define MSGTR_TV_NoTeletext "Sin teletexto"
+#define MSGTR_TV_Bt848IoctlFailed "tvi_bsdbt848: llamada a %s ioctl fallida. Error: %s\n"
+#define MSGTR_TV_Bt848InvalidAudioRate "tvi_bsdbt848: Audio rate invц║lido. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorOpeningBktrDev "tvi_bsdbt848: Imposible abrir dispositivo bktr. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorOpeningTunerDev "tvi_bsdbt848: Imposible abrir dispositivo sintonizador. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorOpeningDspDev "tvi_bsdbt848: Imposible abrir dispositivo dsp. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorConfiguringDsp "tvi_bsdbt848: FallцЁ la configuraciцЁn del dsp. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorReadingAudio "tvi_bsdbt848: Error leyendo datos de audio. Error: %s\n"
+#define MSGTR_TV_Bt848MmapFailed "tvi_bsdbt848: mmap fallido. Error: %s\n"
+#define MSGTR_TV_Bt848FrameBufAllocFailed "tvi_bsdbt848: Fallo al reservar frame buffer (allocation failed). Error: %s\n"
+#define MSGTR_TV_Bt848ErrorSettingWidth "tvi_bsdbt848: Error configurando el ancho del picture. Error: %s\n"
+#define MSGTR_TV_Bt848ErrorSettingHeight "tvi_bsdbt848: Error configurando el alto del picture. Error: %s\n"
+#define MSGTR_TV_Bt848UnableToStopCapture "tvi_bsdbt848: Imposible detener la captura. Error: %s\n"
+#define MSGTR_TV_TTSupportedLanguages "Idiomas de teletexto soportados:\n"
+#define MSGTR_TV_TTSelectedLanguage "Se seleccionцЁ el idioma de teletexto por omisiцЁn: %s\n"
+#define MSGTR_TV_ScannerNotAvailableWithoutTuner "No se puede utilizar el scanner de canales sin un sintonizador\n"
// ================================== LIBASS ====================================
diff --git a/help/help_mp-ru.h b/help/help_mp-ru.h
index bea7b2fbd9..5d4fe30027 100644
--- a/help/help_mp-ru.h
+++ b/help/help_mp-ru.h
@@ -2,7 +2,8 @@
// Dmitry Baryshkov <mitya@school.ioffe.ru>
// Reworked by: Andrew Savchenko aka Bircoph <Bircoph[at]list[dot]ru>
-// Synced with help_mp-en.h: r26795
+// Synced with help_mp-en.h: r27402
+
// ========================= MPlayer help ===========================
@@ -18,8 +19,8 @@ static char help_text[]=
#endif
#ifdef CONFIG_DVDREAD
" dvd://<п╫п╬п╪п╣я─ я─п╬п╩п╦п╨п╟> п╦пЁя─п╟я┌я▄ DVD я─п╬п╩п╦п╨ я│ я┐я│я┌я─п╬п╧я│я┌п╡п╟ п╡п╪п╣я│я┌п╬ я└п╟п╧п╩п╟\n"
-" -alang/-slang п╡я▀п╠я─п╟я┌я▄ я▐п╥я▀п╨ п╟я┐п╢п╦п╬/я│я┐п╠я┌п╦я┌я─п╬п╡ DVD (п╢п╡я┐п╠я┐п╨п╡п╣п╫п╫я▀п╧ п╨п╬п╢ я│я┌я─п╟п╫я▀)\n"
#endif
+" -alang/-slang п╡я▀п╠я─п╟я┌я▄ я▐п╥я▀п╨ п╟я┐п╢п╦п╬/я│я┐п╠я┌п╦я┌я─п╬п╡ DVD (п╢п╡я┐я┘п╠я┐п╨п╡п╣п╫п╫я▀п╧ п╨п╬п╢ я│я┌я─п╟п╫я▀)\n"
" -ss <п╡я─п╣п╪я▐> п©п╣я─п╣п╪п╣я│я┌п╦я┌я▄я│я▐ п╫п╟ п╥п╟п╢п╟п╫п╫я┐я▌ (я│п╣п╨я┐п╫п╢я▀ п╦п╩п╦ п╖п╖:п°п°:п║п║) п©п╬п╥п╦я├п╦я▌\n"
" -nosound п╠п╣п╥ п╥п╡я┐п╨п╟\n"
" -fs п╬п©я├п╦п╦ п©п╬п╩п╫п╬я█п╨я─п╟п╫п╫п╬пЁп╬ п©я─п╬п╦пЁя─я▀п╡п╟п╫п╦я▐ (п╦п╩п╦ -vm, -zoom, п©п╬п╢я─п╬п╠п╫п╬я│я┌п╦\n п╫п╟ man-я│я┌я─п╟п╫п╦я├п╣)\n"
@@ -48,13 +49,10 @@ static char help_text[]=
"\n";
#endif
-// libmpcodecs/ad_dvdpcm.c:
-#define MSGTR_SamplesWanted "п■п╩я▐ я┐п╩я┐я┤я┬п╣п╫п╦я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ п╫п╣п╬п╠я┘п╬п╢п╦п╪я▀ п╬п╠я─п╟п╥я├я▀ я█я┌п╬пЁп╬ я└п╬я─п╪п╟я┌п╟.\nп÷п╬п╤п╟п╩я┐п╧я│я┌п╟, я│п╡я▐п╤п╦я┌п╣я│я▄ я│ я─п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╟п╪п╦.\n"
// ========================= MPlayer messages ===========================
// mplayer.c:
-
#define MSGTR_Exiting "\nп▓я▀я┘п╬п╢п╦п╪...\n"
#define MSGTR_ExitingHow "\nп▓я▀я┘п╬п╢п╦п╪... (%s)\n"
#define MSGTR_Exit_quit "п▓я▀я┘п╬п╢"
@@ -78,7 +76,7 @@ static char help_text[]=
#define MSGTR_CantFindVideoCodec "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╨п╬п╢п╣п╨ п╢п╩я▐ п╡я▀п╠я─п╟п╫п╫п╬пЁп╬ -vo п╦ п╡п╦п╢п╣п╬я└п╬я─п╪п╟я┌п╟ 0x%X!\n"
#define MSGTR_CannotInitVO "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╡п╦п╢п╣п╬п╢я─п╟п╧п╡п╣я─!\n"
#define MSGTR_CannotInitAO "п╫п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄/п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╟я┐п╢п╦п╬я┐я│я┌я─п╬п╧я│я┌п╡п╬ -> п▒п∙п≈ п≈п▓пёп п░\n"
-#define MSGTR_StartPlaying "п²п╟я┤п╟п╩п╬ п╡п╬cп©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐...\n"
+#define MSGTR_StartPlaying "п²п╟я┤п╟п╩п╬ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐...\n"
#define MSGTR_SystemTooSlow "\n\n"\
" *****************************************************************\n"\
@@ -97,7 +95,7 @@ static char help_text[]=
" - п÷п╬п©я─п╬п╠я┐п╧я┌п╣ я─п╟п╥п╩п╦я┤п╫я▀п╣ п╨п╬п╪п╠п╦п╫п╟я├п╦п╦: -nobps -ni -forceidx -mc 0\n"\
"- п°п╣п╢п╩п╣п╫п╫я▀п╧ п╫п╬я│п╦я┌п╣п╩я▄ (я│п╪п╬п╫я┌п╦я─п╬п╡п╟п╫п╫я▀п╣ NFS/SMB, DVD, VCD п╦ я┌.п©.)\n"\
" - п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -cache 8192.\n"\
-"- п≤я│п©п╬п╩я▄п╥я┐п╣я┌п╣ п╩п╦ п▓я▀ -cache п╢п╩я▐ п©я─п╬п╦пЁя─я▀п╡п╟п╫п╦я▐ п╫п╣я│п╩п╬я▒п╫я▀я┘ [non-interleaved] AVI я└п╟п╧п╩п╬п╡?\n"\
+"- п≤я│п©п╬п╩я▄п╥я┐п╣я┌п╣ п╩п╦ п▓я▀ -cache п╢п╩я▐ п©я─п╬п╦пЁя─я▀п╡п╟п╫п╦я▐ п╫eя│п╩п╬я▒п╫я▀я┘ [non-interleaved] AVI я└п╟п╧п╩п╬п╡?\n"\
" - п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -nocache.\n"\
"п╖п╦я┌п╟п╧я┌п╣ DOCS/HTML/ru/video.html п╢п╩я▐ я│п╬п╡п╣я┌п╬п╡ п©п╬ п©п╬п╢я│я┌я─п╬п╧п╨п╣/я┐я│п╨п╬я─п╣п╫п╦я▌.\n"\
"п∙я│п╩п╦ п╫п╦я┤п╣пЁп╬ п╫п╣ п©п╬п╪п╬пЁп╩п╬, я┌п╬пЁп╢п╟ я┤п╦я┌п╟п╧я┌п╣ DOCS/HTML/ru/bugreports.html!\n\n"
@@ -157,7 +155,7 @@ static char help_text[]=
#define MSGTR_IncreaseRTCMaxUserFreq "п÷п╬п©я─п╬п╠я┐п╧я┌п╣ п╢п╬п╠п╟п╡п╦я┌я▄ \"echo %lu > /proc/sys/dev/rtc/max-user-freq\" \nп╡ п╥п╟пЁя─я┐п╥п╬я┤п╫я▀п╣ я│п╨я─п╦п©я┌я▀ п▓п╟я┬п╣п╧ я│п╦я│я┌п╣п╪я▀.\n"
#define MSGTR_LinuxRTCInitErrorPieOn "п·я┬п╦п╠п╨п╟ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ Linux RTC п╡ ioctl (rtc_pie_on): %s\n"
#define MSGTR_UsingTimingType "п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ %s я│п╦п╫я┘я─п╬п╫п╦п╥п╟я├п╦я▐.\n"
-#define MSGTR_NoIdleAndGui "п·п©я├п╦я▐ -idle п╫п╣ п╪п╬п╤п╣ п╠я▀я┌я▄ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╟ п╡п╪п╣я│я┌п╣ я│ GMPlayer.\n"
+#define MSGTR_NoIdleAndGui "п·п©я├п╦я▐ -idle п╫п╣ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╟ п╡п╪п╣я│я┌п╣ я│ GMPlayer.\n"
#define MSGTR_MenuInitialized "п°п╣п╫я▌ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫п╬: %s\n"
#define MSGTR_MenuInitFailed "п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╪п╣п╫я▌.\n"
#define MSGTR_Getch2InitializedTwice "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: getch2_init п╡я▀п╥п╡п╟п╫ п╢п╡п╟п╤п╢я▀!\n"
@@ -183,7 +181,7 @@ static char help_text[]=
#define MSGTR_MenuCall "п▓я▀п╥п╬п╡ п╪п╣п╫я▌\n"
#define MSGTR_EdlOutOfMem "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╢п╬я│я┌п╟я┌п╬я┤п╫я▀п╧ п╬п╠я┼я▒п╪ п©п╟п╪я▐я┌п╦ п╢п╩я▐ я┘я─п╟п╫п╣п╫п╦я▐ п╢п╟п╫п╫я▀я┘ EDL.\n"
-#define MSGTR_EdlRecordsNo "п╖п╦я┌п╣п╫п╦п╣ %d EDL п╢п╣п╧я│я┌п╡п╦п╧.\n"
+#define MSGTR_EdlRecordsNo "п╖я┌п╣п╫п╦п╣ %d EDL п╢п╣п╧я│я┌п╡п╦п╧.\n"
#define MSGTR_EdlQueueEmpty "п²п╣я┌ п╢п╣п╧я│я┌п╡п╦п╧ EDL, п╨п╬я┌п╬я─я▀п╣ я│п╩п╣п╢я┐п╣я┌ п╦я│п©п╬п╩п╫п╦я┌я▄ (п╬я┤п╣я─п╣п╢я▄ п©я┐я│я┌п╟).\n"
#define MSGTR_EdlCantOpenForWrite "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я└п╟п╧п╩ EDL [%s] п╢п╩я▐ п╥п╟п©п╦я│п╦.\n"
#define MSGTR_EdlCantOpenForRead "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я└п╟п╧п╩ EDL [%s] п╢п╩я▐ я┤я┌п╣п╫п╦я▐.\n"
@@ -199,7 +197,6 @@ static char help_text[]=
#define MSGTR_MPEndposNoSizeBased "п▓ MPlayer п╬п©я├п╦я▐ -endpos п©п╬п╨п╟ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ п╣п╢п╦п╫п╦я├я▀ я─п╟п╥п╪п╣я─п╟.\n"
// mplayer.c OSD
-
#define MSGTR_OSDenabled "п╡п╨п╩я▌я┤п╣п╫п╬"
#define MSGTR_OSDdisabled "п╡я▀п╨п╩я▌я┤п╣п╫п╬"
#define MSGTR_OSDAudio "п░я┐п╢п╦п╬: %s"
@@ -224,7 +221,7 @@ static char help_text[]=
#define MSGTR_SubSourceVobsub "vobsub"
#define MSGTR_SubSourceDemux "п╡п╫п╣п╢я─п╣п╫п╫я▀п╣"
-// osd bar names
+// OSD bar names
#define MSGTR_Volume "п⌠я─п╬п╪п╨п╬я│я┌я▄"
#define MSGTR_Panscan "пёя│п╣я┤п╣п╫п╦п╣ я│я┌п╬я─п╬п╫"
#define MSGTR_Gamma "п⌠п╟п╪п╪п╟"
@@ -253,7 +250,6 @@ static char help_text[]=
#define MSGTR_SubForcedOnlyStatus "п╓п╬я─я│п╦я─п╬п╡п╟п╫я▀ я┌п╬п╩я▄п╨п╬ я│я┐п╠я┌п╦я┌я─я▀: %s"
// mencoder.c:
-
#define MSGTR_UsingPass3ControlFile "п≤я│п©п╬п╩я▄п╥я┐я▌ я│п╩п╣п╢я┐я▌я┴п╦п╧ я└п╟п╧п╩ п╢п╩я▐ п╨п╬п╫я┌я─п╬п╩я▐ 3-пЁп╬ п©я─п╬я┘п╬п╢п╟: %s\n"
#define MSGTR_MissingFilename "\nп÷я─п╬п©я┐я┴п╣п╫п╬ п╦п╪я▐ я└п╟п╧п╩п╟.\n\n"
#define MSGTR_CannotOpenFile_Device "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я└п╟п╧п╩/я┐я│я┌я─п╬п╧я│я┌п╡п╬.\n"
@@ -266,7 +262,7 @@ static char help_text[]=
#define MSGTR_MencoderWrongFormatMPG "\nп÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: п▓п╚п╔п·п■п²п·п≥ п╓п·п═п°п░п╒ п╓п░п≥п⌡п░ _MPEG_. п║п╪. -of help.\n"
#define MSGTR_MissingOutputFilename "п²п╣ я┐п╨п╟п╥п╟п╫ п╡я▀я┘п╬п╢п╫п╬п╧ я└п╟п╧п╩, п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ п╬п©я├п╦я▌ -o."
#define MSGTR_ForcingOutputFourcc "п▓я▀я┘п╬п╢п╫п╬п╧ fourcc я└п╬я─я│п╦я─п╬п╡п╟п╫ п╡ %x [%.4s]\n"
-#define MSGTR_ForcingOutputAudiofmtTag "п╓п╬я─я│п╦я─я┐я▌ я┌я█пЁ п╡я▀я┘п╬п╢п╫п╬пЁп╬ п╟я┐п╢п╦п╬я└п╬я─п╪п╟я┌п╟ п╡ 0x%x.\n"
+#define MSGTR_ForcingOutputAudiofmtTag "п╓п╬я─я│п╦я─я┐я▌ я┌п╣пЁ п╡я▀я┘п╬п╢п╫п╬пЁп╬ п╟я┐п╢п╦п╬я└п╬я─п╪п╟я┌п╟ п╡ 0x%x.\n"
#define MSGTR_DuplicateFrames "\n%d п©п╬п╡я┌п╬я─я▐я▌я┴п╦п╧я│я▐(я┘я│я▐) п╨п╟п╢я─(п╟/п╬п╡)!\n"
#define MSGTR_SkipFrame "\nп÷я─п╬п©я┐я│п╨п╟я▌ п╨п╟п╢я─!\n"
#define MSGTR_ResolutionDoesntMatch "\nп²п╬п╡я▀п╧ п╡п╦п╢п╣п╬я└п╟п╧п╩ п╬п╠п╩п╟п╢п╟п╣я┌ п╦п╫я▀п╪ я─п╟п╥я─п╣я┬п╣п╫п╦п╣п╪ п╦п╩п╦ я├п╡п╣я┌п╬п╡я▀п╪ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬п╪, я┤п╣п╪\nп©я─п╣п╢я▀п╢я┐я┴п╦п╧.\n"
@@ -288,13 +284,13 @@ static char help_text[]=
#define MSGTR_CBRPCMAudioSelected "п▓я▀п╠я─п╟п╫п╬ CBR PCM п╟я┐п╢п╦п╬\n"
#define MSGTR_MP3AudioSelected "п▓я▀п╠я─п╟п╫п╬ MP3 п╟я┐п╢п╦п╬\n"
#define MSGTR_CannotAllocateBytes "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ п╢п╩я▐ %d п╠п╟п╧я┌\n"
-#define MSGTR_SettingAudioDelay "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╟я┐п╢п╦п╬п╥п╟п╢п╣я─п╤п╨я┐ п╡ %5.3f\n"
-#define MSGTR_SettingVideoDelay "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╡п╦п╢п╣п╬п╥п╟п╢п╣я─п╤п╨я┐ п╡ %5.3fs.\n"
+#define MSGTR_SettingAudioDelay "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╥п╟п╢п╣я─п╤п╨я┐ п╟я┐п╢п╦п╬ п╡ %5.3f\n"
+#define MSGTR_SettingVideoDelay "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╥п╟п╢п╣я─п╤п╨я┐ п╡п╦п╢п╣п╬ п╡ %5.3fs.\n"
#define MSGTR_SettingAudioInputGain "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ я┐я│п╦п╩п╣п╫п╦п╣ п╡я┘п╬п╢п╫п╬пЁп╬ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨п╟ п╡ %f\n"
#define MSGTR_LamePresetEquals "\npreset=%s\n\n"
-#define MSGTR_LimitingAudioPreload "п·пЁя─п╟п╫п╦я┤п╦п╡п╟я▌ п©я─п╣п╢п╥п╟пЁя─я┐п╥п╨я┐ п╟я┐п╢п╦п╬ п╢п╬ 0.4я│\n"
+#define MSGTR_LimitingAudioPreload "п·пЁя─п╟п╫п╦я┤п╦п╡п╟я▌ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫я┐я▌ п╥п╟пЁя─я┐п╥п╨я┐ п╟я┐п╢п╦п╬ п╢п╬ 0.4я│\n"
#define MSGTR_IncreasingAudioDensity "пёп╡п╣п╩п╦я┤п╦п╡п╟я▌ п©п╩п╬я┌п╫п╬я│я┌я▄ п╟я┐п╢п╦п╬ п╢п╬ 4\n"
-#define MSGTR_ZeroingAudioPreloadAndMaxPtsCorrection "п╓п╬я─я│п╦я─я┐я▌ п©я─п╣п╢п╥п╟пЁя─я┐п╥п╨я┐ п╟я┐п╢п╦п╬ п╡ 0, п╪п╟п╨я│п╦п╪п╟п╩я▄п╫я┐я▌ п╨п╬я─я─п╣п╨я├п╦я▌ pts п╡ 0\n"
+#define MSGTR_ZeroingAudioPreloadAndMaxPtsCorrection "п╓п╬я─я│п╦я─я┐я▌ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫я┐я▌ п╥п╟пЁя─я┐п╥п╨я┐ п╟я┐п╢п╦п╬ п╡ 0, п╪п╟п╨я│п╦п╪п╟п╩я▄п╫я┐я▌ п╨п╬я─я─п╣п╨я├п╦я▌ pts п╡ 0\n"
#define MSGTR_CBRAudioByterate "\n\nCBR п╟я┐п╢п╦п╬: %d п╠п╟п╧я┌/я│п╣п╨, %d п╠п╟п╧я┌/п╠п╩п╬п╨\n"
#define MSGTR_LameVersion "п▓п╣я─я│п╦я▐ LAME %s (%s)\n\n"
#define MSGTR_InvalidBitrateForLamePreset "п·я┬п╦п╠п╨п╟: п≈п╟п╢п╟п╫п╫я▀п╧ п╠п╦я┌п©п╬я┌п╬п╨ п╡п╫п╣ п╢п╬п©я┐я│я┌п╦п╪п╬пЁп╬ п╥п╫п╟я┤п╣п╫п╦я▐ п╢п╩я▐ п╢п╟п╫п╫п╬п╧ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨п╦.\n"\
@@ -328,7 +324,7 @@ static char help_text[]=
"п·п╫п╦ п╠я▀п╩п╦ п©я─п╣п╦п╪я┐я┴п╣я│я┌п╡п╣п╫п╫п╬ я─п╟п╥я─п╟п╠п╬я┌п╟п╫я▀ п╦ п╫п╟я│я┌я─п╬п╣п╫я▀ я│ п©п╬п╪п╬я┴я▄я▌ я┌я┴п╟я┌п╣п╩я▄п╫я▀я┘ я┌п╣я│я┌п╬п╡\n"\
"п╢п╡п╬п╧п╫п╬пЁп╬ п©я─п╬я│п╩я┐я┬п╦п╡п╟п╫п╦я▐ п╢п╩я▐ п©я─п╬п╡п╣я─п╨п╦ п╦ п╢п╬я│я┌п╦п╤п╣п╫п╦я▐ я█я┌п╬п╧ я├п╣п╩п╦.\n"\
"\n"\
-"п п╩я▌я┤п╦ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╬п╨ п©п╬я│я┌п╬я▐п╫п╫п╬ п╬п╠п╫п╬п╡п╩я▐я▌я┌я│я▐ п╢п╩я▐ я│п╬п╬я┌п╡п╣я┌я│п╡п╦я▐ п©п╬я│п╩п╣п╢п╫п╦п╪ я─п╟п╥я─п╟п╠п╬я┌п╨п╟п╪,\n"\
+"п п╩я▌я┤п╦ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╬п╨ п©п╬я│я┌п╬я▐п╫п╫п╬ п╬п╠п╫п╬п╡п╩я▐я▌я┌я│я▐ п╢п╩я▐ я│п╬п╬я┌п╡п╣я┌я│я┌п╡п╦я▐ п©п╬я│п╩п╣п╢п╫п╦п╪ я─п╟п╥я─п╟п╠п╬я┌п╨п╟п╪,\n"\
"п╡ я─п╣п╥я┐п╩я▄я┌п╟я┌п╣ я┤п╣пЁп╬ п▓я▀ п╢п╬п╩п╤п╫я▀ п©п╬п╩я┐я┤п╦я┌я▄ п©я─п╟п╨я┌п╦я┤п╣я│п╨п╦ п╫п╟п╦п╩я┐я┤я┬п╣п╣ п╨п╟я┤п╣я│я┌п╡п╬, \n"\
"п╡п╬п╥п╪п╬п╤п╫п╬п╣ п╫п╟ я┌п╣п╨я┐я┴п╦п╧ п╪п╬п╪п╣п╫я┌ п©я─п╦ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╦ LAME.\n"\
"\n"\
@@ -337,7 +333,7 @@ static char help_text[]=
" п■п╩я▐ VBR я─п╣п╤п╦п╪п╬п╡ (п╬п╠я▀я┤п╫п╬ п╩я┐я┤я┬п╣п╣ п╨п╟я┤п╣я│я┌п╡п╬):\n"\
"\n"\
" \"preset=standard\" п·п╠я▀я┤п╫п╬ я█я┌п╬п╧ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨п╦ п╢п╬п╩п╤п╫п╬ п╠я▀я┌я▄ п╢п╬я│я┌п╟я┌п╬я┤п╫п╬\n"\
-" п╢п╩я▐ п╠п╬п╩я▄я┬п╦п╫я│я┌п╡п╟ п╩я▌п╢п╣п╧ п╦ п╠п╬п╩я▄я┬п╦я│я┌п╡п╟ п╪я┐п╥я▀п╨п╦, п╦ п╬п╫п╟\n"\
+" п╢п╩я▐ п╠п╬п╩я▄я┬п╦п╫я│я┌п╡п╟ п╩я▌п╢п╣п╧ п╦ п╠п╬п╩я▄я┬п╦п╫я│я┌п╡п╟ п╪я┐п╥я▀п╨п╦, п╦ п╬п╫п╟\n"\
" я┐п╤п╣ п©я─п╣п╢п╬я│я┌п╟п╡п╩я▐п╣я┌ п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п╡я▀я│п╬п╨п╬п╣ п╨п╟я┤п╣я│я┌п╡п╬.\n"\
"\n"\
" \"preset=extreme\" п∙я│п╩п╦ п▓я▀ п╬п╠п╩п╟п╢п╟п╣я┌п╣ я┤я─п╣п╥п╡я▀я┤п╟п╧п╫п╬ я┘п╬я─п╬я┬п╦п╪ я│п╩я┐я┘п╬п╪ п╦\n"\
@@ -354,7 +350,7 @@ static char help_text[]=
"\n"\
" п■п╩я▐ ABR я─п╣п╤п╦п╪п╬п╡ (п╡я▀я│п╬п╨п╬п╣ п╨п╟я┤п╣я│я┌п╡п╬ п╢п╩я▐ п╥п╟п╢п╟п╫п╫п╬пЁп╬ п╠п╦я┌п©п╬я┌п╬п╨п╟,\nп╫п╬ п╫п╣ я┌п╟п╨п╬п╣ п╡я▀я│п╬п╨п╬п╣, п╨п╟п╨ VBR):\n"\
"\n"\
-" \"preset=<kbps>\" п≤я│п©п╬п╩п╩я▄п╥п╬п╡п╟п╫п╦п╣ я█я┌п╬п╧ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨п╦ п╬п╠я▀я┤п╫п╬ п╢п╟я▒я┌ я┘п╬я─п╬я┬п╣п╣\n"\
+" \"preset=<kbps>\" п≤я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ я█я┌п╬п╧ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨п╦ п╬п╠я▀я┤п╫п╬ п╢п╟я▒я┌ я┘п╬я─п╬я┬п╣п╣\n"\
" п╨п╟я┤п╣я│я┌п╡п╬ п╢п╩я▐ п╥п╟п╢п╟п╫п╫п╬пЁп╬ п╠п╦я┌п©п╬я┌п╬п╨п╟. п·я│п╫п╬п╡я▀п╡п╟я▐я│я▄ п╫п╟\n"\
" п╡п╡п╣п╢я▒п╫п╫п╬п╪ п╠п╦я┌п©п╬я┌п╬п╨п╣, я█я┌п╟ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨п╟ п╬п©я─п╣п╢п╣п╩п╦я┌\n"\
" п╬п©я┌п╦п╪п╟п╩я▄п╫я▀п╣ п╫п╟я│я┌я─п╬п╧п╨п╦ п╢п╩я▐ п╨п╟п╤п╢п╬п╧ п╨п╬п╫п╨я─п╣я┌п╫п╬п╧ я│п╦я┌я┐п╟я├п╦п╦.\n"\
@@ -362,7 +358,7 @@ static char help_text[]=
" п╫п╣ я┌п╟п╨п╬п╧ пЁп╦п╠п╨п╦п╧ п╨п╟п╨ VBR п╦ п╬п╠я▀я┤п╫п╬ п╫п╣ п╢п╬я│я┌п╦пЁп╟п╣я┌\n"\
" я┌п╟п╨п╬пЁп╬ п╤п╣ я┐я─п╬п╡п╫я▐ п╨п╟я┤п╣я│я┌п╡п╟ п╨п╟п╨ VBR п╫п╟ п╡я▀я│п╬п╨п╦я┘ п╠п╦я┌п©п╬я┌п╬п╨п╟я┘.\n"\
"\n"\
-"п╒п╟п╨п╤п╣ п╢п╬я│я┌я┐п©п╫я▀ я│п╩п╣п╢я┐я▌я┴п╦п╣ п╬п©я├п╦п╦ п╢п╩я▐ я│п╬п╬я┌п╡п╣я┌я│п╡я┐я▌я┴п╦я┘ п©я─п╬я└п╦п╩п╣п╧:\n"\
+"п╒п╟п╨п╤п╣ п╢п╬я│я┌я┐п©п╫я▀ я│п╩п╣п╢я┐я▌я┴п╦п╣ п╬п©я├п╦п╦ п╢п╩я▐ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐я▌я┴п╦я┘ п©я─п╬я└п╦п╩п╣п╧:\n"\
"\n"\
" <fast> standard\n"\
" <fast> extreme\n"\
@@ -405,7 +401,7 @@ static char help_text[]=
"п∙я│п╩п╦ п╡я│я▒ п╢я─я┐пЁп╬п╣ п╫п╣ п©п╬п╪п╬п╤п╣я┌, п©п╬п©я─п╬п╠я┐п╧я┌п╣ п©я─п╣п╢я┐я│я┌п╟п╫п╬п╡п╨я┐."
#define MSGTR_ConfigFileError "п╬я┬п╦п╠п╨п╟ п╡ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬п╪ я└п╟п╧п╩п╣"
#define MSGTR_ErrorParsingCommandLine "п╬я┬п╦п╠п╨п╟ п╟п╫п╟п╩п╦п╥п╟ п╨п╬п╪п╟п╫п╢п╫п╬п╧ я│я┌я─п╬п╨п╦"
-#define MSGTR_VideoStreamRequired "п²п╟п╩п╦я┤п╦п╣ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨п╟ п╬п╠я▐п╥п╟я┌п╣п╩я▄п╫п╬!\n"
+#define MSGTR_VideoStreamRequired "п²п╟п╩п╦я┤п╦п╣ п©п╬я┌п╬п╨п╟ п╡п╦п╢п╣п╬ п╬п╠я▐п╥п╟я┌п╣п╩я▄п╫п╬!\n"
#define MSGTR_ForcingInputFPS "п╡я┘п╬п╢п╫я▀п╣ п╨п╟п╢я─я▀/я│п╣п╨ п╠я┐п╢я┐я┌ п╥п╟п╪п╣п╫п╣п╫я▀ п╫п╟ %5.3f\n"
#define MSGTR_RawvideoDoesNotSupportAudio "п▓я▀я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌ я└п╟п╧п╩п╟ RAWVIDEO п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ п╟я┐п╢п╦п╬ - п╬я┌п╨п╩я▌я┤п╟я▌ п╟я┐п╢п╦п╬\n"
#define MSGTR_DemuxerDoesntSupportNosound "п╜я┌п╬я┌ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ п©п╬п╨п╟ я┤я┌п╬ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ -nosound.\n"
@@ -419,7 +415,6 @@ static char help_text[]=
#define MSGTR_CantCopyAudioFormat "п░я┐п╢п╦п╬я└п╬я─п╪п╟я┌ 0x%x п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪ я│ '-oac copy', п©п╬п©я─п╬п╠я┐п╧я┌п╣ '-oac pcm'\nп╦п╩п╦ п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ '-fafmttag' п╢п╩я▐ п╣пЁп╬ п©п╣я─п╣п╬п©я─п╣п╢п╣п╩п╣п╫п╦я▐.\n"
// cfg-mencoder.h:
-
#define MSGTR_MEncoderMP3LameHelp "\n\n"\
" vbr=<0-4> п╪п╣я┌п╬п╢ п╨п╬п╢п╦я─п╬п╡п╟п╫п╦я▐ я│ п©п╣я─п╣п╪п╣п╫п╫я▀п╪ п╠п╦я┌п©п╬я┌п╬п╨п╬п╪\n"\
" 0: cbr (п©п╬я│я┌п╬я▐п╫п╫я▀п╧ п╠п╦я┌п©п╬я┌п╬п╨)\n"\
@@ -485,7 +480,7 @@ static char help_text[]=
#define MSGTR_GetTokenMaxNotLessThanMAX_NR_TOKEN "get_token(): max >= MAX_MR_TOKEN!"
#define MSGTR_ReadingFile "п╖п╦я┌п╟я▌ '%s': "
#define MSGTR_CantOpenFileError "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ '%s': %s\n"
-#define MSGTR_CantGetMemoryForLine "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п©я▐п╪я▐я┌я▄ п╢п╩я▐ я│я┌я─п╬п╨п╦: %s\n"
+#define MSGTR_CantGetMemoryForLine "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ п╢п╩я▐ я│я┌я─п╬п╨п╦: %s\n"
#define MSGTR_CantReallocCodecsp "п²п╣ п╪п╬пЁя┐ п╡я▀п©п╬п╩п╫п╦я┌я▄ realloc п╢п╩я▐ '*codecsp': %s\n"
#define MSGTR_CodecNameNotUnique "п≤п╪я▐ п╨п╬п╢п╣п╨п╟ '%s' п╫п╣ я┐п╫п╦п╨п╟п╩я▄п╫п╬."
#define MSGTR_CantStrdupName "п²п╣ п╪п╬пЁя┐ п╡я▀п©п╬п╩п╫п╦я┌я▄ strdup -> 'name': %s\n"
@@ -493,7 +488,7 @@ static char help_text[]=
#define MSGTR_CantStrdupDriver "п²п╣ п╪п╬пЁя┐ п╡я▀п©п╬п╩п╫п╦я┌я▄ strdup -> 'driver': %s\n"
#define MSGTR_CantStrdupDLL "п²п╣ п╪п╬пЁя┐ п╡я▀п©п╬п╩п╫п╦я┌я▄ strdup -> 'dll': %s"
#define MSGTR_AudioVideoCodecTotals "%d п╟я┐п╢п╦п╬ & %d п╡п╦п╢п╣п╬ п╨п╬п╢п╣п╨п╬п╡\n"
-#define MSGTR_CodecDefinitionIncorrect "п п╬п╢п╣п╨ п╬я─п©п╣п╢п╣п╩я▒п╫ п╫п╣п╨п╬я─я─п╣п╨я┌п╫п╬."
+#define MSGTR_CodecDefinitionIncorrect "п п╬п╢п╣п╨ п╬п©я─п╣п╢п╣п╩я▒п╫ п╫п╣п╨п╬я─я─п╣п╨я┌п╫п╬."
#define MSGTR_OutdatedCodecsConf "п╜я┌п╬я┌ codecs.conf я│п╩п╦я┬п╨п╬п╪ я│я┌п╟я─ п╦ п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪ я│ п╢п╟п╫п╫я▀п╪ я─п╣п╩п╦п╥п╬п╪ MPlayer!"
// fifo.c
@@ -527,196 +522,12 @@ static char help_text[]=
#define MSGTR_PropertyListHeader "\n п≤п╪я▐ п╒п╦п© п°п╦п╫п╦п╪я┐п╪ п°п╟п╨я│п╦п╪я┐п╪\n\n"
#define MSGTR_TotalProperties "\nп▓я│п╣пЁп╬: %d я│п╡п╬п╧я│я┌п╡\n"
-// open.c, stream.c:
-#define MSGTR_CdDevNotfound "CD-ROM '%s' п╫п╣ п╫п╟п╧п╢п╣п╫!\n"
-#define MSGTR_ErrTrackSelect "п·я┬п╦п╠п╨п╟ п╡я▀п╠п╬я─п╟ п╢п╬я─п╬п╤п╨п╦ VCD!"
-#define MSGTR_ReadSTDIN "п╖я┌п╣п╫п╦п╣ п╦п╥ stdin (я│п╬ я│я┌п╟п╫п╢п╟я─я┌п╫п╬пЁп╬ п╡я┘п╬п╢п╟)...\n"
-#define MSGTR_UnableOpenURL "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ URL: %s\n"
-#define MSGTR_ConnToServer "п║п╬п╣п╢п╦п╫п╣п╫п╦п╣ я│ я│п╣я─п╡п╣я─п╬п╪: %s\n"
-#define MSGTR_FileNotFound "п╓п╟п╧п╩ п╫п╣ п╫п╟п╧п╢п╣п╫: '%s'\n"
-
-#define MSGTR_SMBInitError "п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╠п╦п╠п╩п╦п╬я┌п╣п╨я┐ libsmbclient: %d\n"
-#define MSGTR_SMBFileNotFound "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п©п╬ я│п╣я┌п╦: '%s'\n"
-#define MSGTR_SMBNotCompiled "MPlayer п╫п╣ п╠я▀п╩ я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ я│ п©п╬п╢п╢п╣я─п╤п╨п╬п╧ я┤я┌п╣п╫п╦я▐ SMB.\n"
-
-#define MSGTR_CantOpenDVD "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ DVD: %s (%s)\n"
-
-// stream_dvd.c
-#define MSGTR_DVDspeedCantOpen "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╬я┌п╨я─я▀я┌я▄ DVD я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╢п╩я▐ п╥п╟п©п╦я│п╦, п╦п╥п╪п╣п╫п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD я┌я─п╣п╠я┐п╣я┌ п╢п╬я│я┌я┐п© п╫п╟ п╥п╟п©п╦я│я▄.\n"
-#define MSGTR_DVDrestoreSpeed "п▓п╬я│я│я┌п╟п╫п╬п╡п╩п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD... "
-#define MSGTR_DVDlimitSpeed "п·пЁя─п╟п╫п╦я┤п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD п╢п╬ %dп п▒/я│... "
-#define MSGTR_DVDlimitFail "п╬я┬п╦п╠п╨п╟\n"
-#define MSGTR_DVDlimitOk "я┐я│п©п╣я┬п╫п╬\n"
-#define MSGTR_NoDVDSupport "MPlayer п╠я▀п╩ я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ п╠п╣п╥ п©п╬п╢п╢п╣я─п╤п╨п╦ DVD, п╡я▀я┘п╬п╢п╦п╪.\n"
-#define MSGTR_DVDnumTitles "п²п╟ я█я┌п╬п╪ DVD %d я─п╬п╩п╦п╨п╬п╡.\n"
-#define MSGTR_DVDinvalidTitle "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ DVD я─п╬п╩п╦п╨п╟: %d\n"
-#define MSGTR_DVDnumChapters "п▓ я█я┌п╬п╪ DVD я─п╬п╩п╦п╨п╣ %d я─п╟п╥п╢п╣п╩[п╟/п╬п╡].\n"
-#define MSGTR_DVDinvalidChapter "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ я─п╟п╥п╢п╣п╩п╟ DVD: %d\n"
-#define MSGTR_DVDinvalidChapterRange "п²п╣п╡п╣я─п╫п╬п╣ п╬п©п╦я│п╟п╫п╦п╣ п╢п╦п╟п©п╟п╥п╬п╫п╟ я─п╟п╥п╢п╣п╩п╟ %s\n"
-#define MSGTR_DVDinvalidLastChapter "п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ п©п╬я│п╩п╣п╢п╫п╣пЁп╬ я─п╟п╥п╢п╣п╩п╟ DVD: %d\n"
-#define MSGTR_DVDnumAngles "п▓ я█я┌п╬п╪ DVD я─п╬п╩п╦п╨п╣ %d я┐пЁп╩п╬п╡.\n"
-#define MSGTR_DVDinvalidAngle "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ DVD я┐пЁп╩п╟: %d\n"
-#define MSGTR_DVDnoIFO "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ IFO я└п╟п╧п╩ п╢п╩я▐ DVD я─п╬п╩п╦п╨п╟ %d.\n"
-#define MSGTR_DVDnoVMG "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ VMG п╦п╫я└п╬я─п╪п╟я├п╦я▌!\n"
-#define MSGTR_DVDnoVOBs "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ VOBS я─п╬п╩п╦п╨п╟ (VTS_%02d_1.VOB).\n"
-#define MSGTR_DVDnoMatchingAudio "п²п╣ п╫п╟п╧п╢п╣п╫ п©п╬п╢я┘п╬п╢я▐я┴п╦п╧ п╟я┐п╢п╦п╬ я▐п╥я▀п╨ DVD!\n"
-#define MSGTR_DVDaudioChannel "п▓я▀п╠я─п╟п╫п╫я▀п╧ п╟я┐п╢п╦п╬п╨п╟п╫п╟п╩ DVD: %d я▐п╥я▀п╨: %c%c\n"
-#define MSGTR_DVDaudioStreamInfo "п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %d я└п╬я─п╪п╟я┌: %s (%s) я▐п╥я▀п╨: %s aid: %d.\n"
-#define MSGTR_DVDnumAudioChannels "я┤п╦я│п╩п╬ п╟я┐п╢п╦п╬п╨п╟п╫п╟п╩п╬п╡ п╫п╟ п╢п╦я│п╨п╣: %d.\n"
-#define MSGTR_DVDnoMatchingSubtitle "п²п╣ п╫п╟п╧п╢п╣п╫ п©п╬п╢я┘п╬п╢я▐я┴п╦п╧ я▐п╥я▀п╨ я│я┐п╠я┌п╦я┌я─п╬п╡ DVD!\n"
-#define MSGTR_DVDsubtitleChannel "п▓я▀п╠я─п╟п╫п╫я▀п╧ п╨п╟п╫п╟п╩ я│я┐п╠я┌п╦я┌я─п╬п╡ DVD: %d я▐п╥я▀п╨: %c%c\n"
-#define MSGTR_DVDsubtitleLanguage "я│я┐п╠я┌п╦я┌я─я▀ ( sid ): %d я▐п╥я▀п╨: %s\n"
-#define MSGTR_DVDnumSubtitles "я┤п╦я│п╩п╬ я│я┐п╠я┌п╦я┌я─п╬п╡ п╫п╟ п╢п╦я│п╨п╣: %d\n"
-
-// muxer.c, muxer_*.c:
-#define MSGTR_TooManyStreams "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ п©п╬я┌п╬п╨п╬п╡!"
-#define MSGTR_RawMuxerOnlyOneStream "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ rawaudio п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ я┌п╬п╩я▄п╨п╬ п╬п╢п╦п╫ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨!\n"
-#define MSGTR_IgnoringVideoStream "п≤пЁп╫п╬я─п╦я─я┐я▌ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨!\n"
-#define MSGTR_UnknownStreamType "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣, п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟: %d\n"
-#define MSGTR_WarningLenIsntDivisible "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╢п╩п╦п╫п╟ п╫п╣ п╨я─п╟я┌п╫п╟ я─п╟п╥п╪п╣я─я┐ п╬п╠я─п╟п╥я├п╟!\n"
-#define MSGTR_MuxbufMallocErr "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п╫п╣ п╪п╬п╤п╣я┌ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ (malloc)!\n"
-#define MSGTR_MuxbufReallocErr "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п╫п╣ п╪п╬п╤п╣я┌ п©п╣я─п╣я─п╟я│п©я─п╣п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ (realloc)!\n"
-#define MSGTR_MuxbufSending "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п©п╬я│я▀п╩п╟п╣я┌ %d п╨п╟п╢я─(п╟/п╬п╡) п╡ п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─.\n"
-#define MSGTR_WritingHeader "п≈п╟п©п╦я│я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╟...\n"
-#define MSGTR_WritingTrailer "п≈п╟п©п╦я│я▄ п╦п╫п╢п╣п╨я│п╟...\n"
-
-// demuxer.c, demux_*.c:
-#define MSGTR_AudioStreamRedefined "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: п≈п╟пЁп╬п╩п╬п╡п╬п╨ п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨п╟ %d п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▒п╫!\n"
-#define MSGTR_VideoStreamRedefined "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: п≈п╟пЁп╬п╩п╬п╡п╬п╨ п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨п╟ %d п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▒п╫!\n"
-#define MSGTR_TooManyAudioInBuffer "\nп║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ (%d п╡ %d п╠п╟п╧я┌п╟я┘) п╟я┐п╢п╦п╬п©п╟п╨п╣я┌п╬п╡ п╡ п╠я┐я└п╣я─п╣!\n"
-#define MSGTR_TooManyVideoInBuffer "\nп║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ (%d п╡ %d п╠п╟п╧я┌п╟я┘) п╡п╦п╢п╣п╬п©п╟п╨п╣я┌п╬п╡ п╡ п╠я┐я└п╣я─п╣!\n"
-#define MSGTR_MaybeNI "п▓п╬п╥п╪п╬п╤п╫п╬ п▓я▀ п©я─п╬п╦пЁя─я▀п╡п╟п╣я┌п╣ 'п╫п╣я│п╩п╬я▒п╫я▀п╧' п©п╬я┌п╬п╨/я└п╟п╧п╩ п╦п╩п╦ п╫п╣я┐п╢п╟я┤п╫я▀п╧ п╨п╬п╢п╣п╨?\n" \
- "п■п╩я▐ AVI я└п╟п╧п╩п╬п╡ п©п╬п©я─п╬п╠я┐п╧я┌п╣ я└п╬я─я│п╦я─п╬п╡п╟я┌я▄ 'п╫п╣я│п╩п╬я▒п╫я▀п╧' я─п╣п╤п╦п╪ п╬п©я├п╦п╣п╧ -ni.\n"
-#define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: п·п╠я┘п╬п╢ п╠п╟пЁп╟ CBR-MP3 nBlockAlign п╥п╟пЁп╬п╩п╬п╡п╨п╟!\n"
-#define MSGTR_SwitchToNi "\nп·п╠п╫п╟я─я┐п╤п╣п╫ п©п╩п╬я┘п╬ 'я│п╩п╬я▒п╫я▀п╧' AVI я└п╟п╧п╩ - п©п╣я─п╣п╨п╩я▌я┤п╟я▌я│я▄ п╡ -ni я─п╣п╤п╦п╪...\n"
-#define MSGTR_InvalidAudioStreamNosound "AVI: п╫п╣п╡п╣я─п╫я▀п╧ ID п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨п╟: %d - п╦пЁп╫п╬я─п╦я─п╬п╡п╟п╫п╦п╣ (п╠п╣п╥ п╥п╡я┐п╨п╟)\n"
-#define MSGTR_InvalidAudioStreamUsingDefault "AVI: п╫п╣п╡п╣я─п╫я▀п╧ ID п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨п╟: %d - п╦пЁп╫п╬я─п╦я─п╬п╡п╟п╫п╦п╣ (п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌)\n"
-#define MSGTR_ON2AviFormat "ON2 AVI я└п╬я─п╪п╟я┌"
-#define MSGTR_Detected_XXX_FileFormat "п·п╠п╫п╟я─я┐п╤п╣п╫ %s я└п╬я─п╪п╟я┌ я└п╟п╧п╩п╟!\n"
-#define MSGTR_DetectedAudiofile "п·п╠п╫п╟я─я┐п╤п╣п╫ п╟я┐п╢п╦п╬я└п╟п╧п╩.\n"
-#define MSGTR_NotSystemStream "п²п╣ MPEG System Stream я└п╬я─п╪п╟я┌... (п╡п╬п╥п╪п╬п╤п╫п╬, Transport Stream?)\n"
-#define MSGTR_InvalidMPEGES "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ MPEG-ES п©п╬я┌п╬п╨??? я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪, я█я┌п╬ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╠п╟пЁп╬п╪ :(\n"
-#define MSGTR_FormatNotRecognized "======= п≤п╥п╡п╦п╫п╦я┌п╣, я└п╬я─п╪п╟я┌ я█я┌п╬пЁп╬ я└п╟п╧п╩п╟ п╫п╣ я─п╟я│п©п╬п╥п╫п╟п╫/п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ ==========\n"\
- "===== п∙я│п╩п╦ я█я┌п╬ AVI, ASF п╦п╩п╦ MPEG п©п╬я┌п╬п╨, п©п╬п╤п╟п╩я┐п╧я│я┌п╟ я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪! ======\n"
-#define MSGTR_SettingProcessPriority "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╦п╬я─п╦я┌п╣я┌ п©я─п╬я├п╣я│я│п╟: %s\n"
-#define MSGTR_FilefmtFourccSizeFpsFtime "[V] я└п╬я─п╪п╟я┌:%d fourcc:0x%X я─п╟п╥п╪п╣я─:%dx%d fps:%5.3f ftime:=%6.4f\n"
-#define MSGTR_CannotInitializeMuxer "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─."
-#define MSGTR_MissingVideoStream "п▓п╦п╢п╣п╬п©п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫!\n"
-#define MSGTR_MissingAudioStream "п░я┐п╢п╦п╬п©п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫ -> п╠п╣п╥ п╥п╡я┐п╨п╟\n"
-#define MSGTR_MissingVideoStreamBug "п▓п╦п╢п╣п╬п©п╬я┌п╬п╨ п©п╬я┌п╣я─я▐п╫!? я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪, я█я┌п╬ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╠п╟пЁп╬п╪ :(\n"
-
-#define MSGTR_DoesntContainSelectedStream "demux: п╡ я└п╟п╧п╩п╣ п╫п╣я┌ п╡я▀п╠я─п╟п╫п╫п╬пЁп╬ п╟я┐п╢п╦п╬ п╦п╩п╦ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨п╟\n"
-
-#define MSGTR_NI_Forced "п╓п╬я─я│п╦я─п╬п╡п╟п╫"
-#define MSGTR_NI_Detected "п·п╠п╫п╟я─я┐п╤п╣п╫"
-#define MSGTR_NI_Message "%s 'п²п∙п║п⌡п·п│п²п╚п≥' я└п╬я─п╪п╟я┌ AVI я└п╟п╧п╩п╟!\n"
-
-#define MSGTR_UsingNINI "п≤я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ 'п²п∙п║п⌡п·п│п²п·п⌠п·' п╦я│п©п╬я─я┤п╣п╫п╫п╬пЁп╬ я└п╬я─п╪п╟я┌п╟ AVI я└п╟п╧п╩п╟!\n"
-#define MSGTR_CouldntDetFNo "п²п╣ я│п╪п╬пЁ п╬п©я─п╣п╢п╣п╩п╦я┌я▄ я┤п╦я│п╩п╬ п╨п╟п╢я─п╬п╡ (п╢п╩я▐ п╟п╠я│п╬п╩я▌я┌п╫п╬пЁп╬ п©п╣я─п╣п╪п╣я┴п╣п╫п╦я▐).\n"
-#define MSGTR_CantSeekRawAVI "п²п╣ п╪п╬пЁя┐ п©п╣я─п╣п╪п╣я│я┌п╦я┌я▄я│я▐ п╡ я│я▀я─п╬п╪ п©п╬я┌п╬п╨п╣ AVI!\n(я┌я─п╣п╠я┐п╣я┌я│я▐ п╦п╫п╢п╣п╨я│, п©п╬п©я─п╬п╠я┐п╧я┌п╣ я│ п╨п╩я▌я┤п╬п╪ -idx!)\n"
-#define MSGTR_CantSeekFile "п²п╣ п╪п╬пЁя┐ п©п╣я─п╣п╪п╣я┴п╟я┌я▄я│я▐ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣!\n"
-
-#define MSGTR_MOVcomprhdr "MOV: п■п╩я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ я│п╤п╟я┌я▀я┘ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡ п╫п╣п╬п╠я┘п╬п╢п╦п╪ zlib!\n"
-#define MSGTR_MOVvariableFourCC "MOV: п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣! п·п╠п╫п╟я─я┐п╤п╣п╫ п©п╣я─п╣п╪п╣п╫п╫я▀п╧ FOURCC!?\n"
-#define MSGTR_MOVtooManyTrk "MOV: п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣! я│п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я┌я─п╣п╨п╬п╡!"
-#define MSGTR_FoundAudioStream "==> п²п╟я┬я▒п╩ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %d\n"
-#define MSGTR_FoundVideoStream "==> п²п╟я┬я▒п╩ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨: %d\n"
-#define MSGTR_DetectedTV "п²п╟п╧п╢п╣п╫ п╒п▓! ;-)\n"
-#define MSGTR_ErrorOpeningOGGDemuxer "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╢п╣п╨я│п╬я─ ogg.\n"
-#define MSGTR_ASFSearchingForAudioStream "ASF: п≤я┴я┐ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨ (id:%d).\n"
-#define MSGTR_CannotOpenAudioStream "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %s\n"
-#define MSGTR_CannotOpenSubtitlesStream "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п©п╬я┌п╬п╨ я│я┐п╠я┌п╦я┌я─п╬п╡: %s\n"
-#define MSGTR_OpeningAudioDemuxerFailed "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ п╟я┐п╢п╦п╬: %s\n"
-#define MSGTR_OpeningSubtitlesDemuxerFailed "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я│я┐п╠я┌п╦я┌я─п╬п╡: %s\n"
-#define MSGTR_TVInputNotSeekable "п÷п╬ п╒п▓ п╡я┘п╬п╢я┐ п╫п╣п╩я▄п╥я▐ п©п╣я─п╣п╪п╣я┴п╟я┌я▄я│я▐! (п▓п╬п╥п╪п╬п╤п╫п╬, п©п╣я─п╣п╪п╣я┴п╣п╫п╦п╣ п╠я┐п╢п╣я┌ п╢п╩я▐ я│п╪п╣п╫я▀ п╨п╟п╫п╟п╩п╬п╡ ;)\n"
-#define MSGTR_DemuxerInfoChanged "п≤п╫я└п╬я─п╪п╟я├п╦я▐ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─п╟ %s п╦п╥п╪п╣п╫п╣п╫п╟ п╡ %s\n"
-#define MSGTR_ClipInfo "п≤п╫я└п╬я─п╪п╟я├п╦я▐ п╬ п╨п╩п╦п©п╣:\n"
-
-#define MSGTR_LeaveTelecineMode "\ndemux_mpg: п╬п╠п╫п╟я─я┐п╤п╣п╫п╬ 30000/1001 п╨п╟п╢я─п╬п╡/я│п╣п╨ NTSC я│п╬п╢п╣я─п╤п╦п╪п╬п╣, п©п╣я─п╣п╨п╩я▌я┤п╟я▌ я┤п╟я│я┌п╬я┌я┐ п╨п╟п╢я─п╬п╡.\n"
-#define MSGTR_EnterTelecineMode "\ndemux_mpg: п╬п╠п╫п╟я─я┐п╤п╣п╫п╬ 24000/1001 п╨п╟п╢я─п╟/я│п╣п╨ NTSC я│п╬п╢п╣я─п╤п╦п╪п╬п╣ я│ п©п╬я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╬п╧,\nп©п╣я─п╣п╨п╩я▌я┤п╟я▌ я┤п╟я│я┌п╬я┌я┐ п╨п╟п╢я─п╬п╡.\n"
-
-#define MSGTR_CacheFill "\rп≈п╟п©п╬п╩п╫п╣п╫п╦п╣ п╨я█я┬п╟: %5.2f%% (%"PRId64" п╠п╟п╧я┌(п╟)) "
-#define MSGTR_NoBindFound "п²п╣ п╫п╟п╧п╢п╣п╫п╟ п©я─п╦п╡я▐п╥п╨п╟ п╨ п╨п╩п╟п╡п╦я┬п╣ '%s'."
-#define MSGTR_FailedToOpen "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s.\n"
-
-#define MSGTR_VideoID "[%s] п²п╟п╧п╢п╣п╫ п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨, -vid %d\n"
-#define MSGTR_AudioID "[%s] п²п╟п╧п╢п╣п╫ п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨, -aid %d\n"
-#define MSGTR_SubtitleID "[%s] п²п╟п╧п╢п╣п╫ п©п╬я┌п╬п╨ я│я┐п╠я┌п╦я┌я─п╬п╡, -sid %d\n"
-
-// dec_video.c & dec_audio.c:
-#define MSGTR_CantOpenCodec "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╨п╬п╢п╣п╨.\n"
-#define MSGTR_CantCloseCodec "п²п╣ п╪п╬пЁя┐ п╥п╟п╨я─я▀я┌я▄ п╨п╬п╢п╣п╨.\n"
-
-#define MSGTR_MissingDLLcodec "п·п╗п≤п▒п п░: п²п╣ я│п╪п╬пЁ п╬я┌п╨я─я▀я┌я▄ я┌я─п╣п╠я┐я▌я┴п╦п╧я│я▐ DirectShow п╨п╬п╢п╣п╨: %s\n"
-#define MSGTR_ACMiniterror "п²п╣ я│п╪п╬пЁ п╥п╟пЁя─я┐п╥п╦я┌я▄/п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ Win32/ACM п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨ (п©п╬я┌п╣я─я▐п╫ DLL я└п╟п╧п╩?)\n"
-#define MSGTR_MissingLAVCcodec "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╨п╬п╢п╣п╨ '%s' п╡ libavcodec...\n"
-
-#define MSGTR_MpegNoSequHdr "MPEG: п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п п·п²п∙п╕ п╓п░п≥п⌡п░ п©я─п╦ п©п╬п╦я│п╨п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
-#define MSGTR_CannotReadMpegSequHdr "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п²п╣ п╪п╬пЁя┐ я│я┤п╦я┌п╟я┌я▄ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
-#define MSGTR_CannotReadMpegSequHdrEx "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п²п╣ п╪п╬я┤я┐ я│я┤п╦я┌п╟я┌я▄ я─п╟я│я┬п╦я─п╣п╫п╦п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
-#define MSGTR_BadMpegSequHdr "MPEG: п÷п╩п╬я┘п╟я▐ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
-#define MSGTR_BadMpegSequHdrEx "MPEG: п÷п╩п╬я┘п╬п╣ я─п╟я│я┬п╦я─п╣п╫п╦п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
-
-#define MSGTR_ShMemAllocFail "п²п╣ п╪п╬пЁя┐ п╥п╟я─п╣п╥п╣я─п╡п╦я─п╬п╡п╟я┌я▄ я─п╟п╥п╢п╣п╩я▐п╣п╪я┐я▌ п©п╟п╪я▐я┌я▄.\n"
-#define MSGTR_CantAllocAudioBuf "п²п╣ п╪п╬пЁя┐ п╥п╟я─п╣п╥п╣я─п╡п╦я─п╬п╡п╟я┌я▄ п╡я▀я┘п╬п╢п╫п╬п╧ п╟я┐п╢п╦п╬ п╠я┐я└п╣я─.\n"
-
-#define MSGTR_UnknownAudio "п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧/п©п╬я┌п╣я─я▐п╫п╫я▀п╧ п╟я┐п╢п╦п╬ я└п╬я─п╪п╟я┌ -> п╠п╣п╥ п╥п╡я┐п╨п╟\n"
-
-#define MSGTR_UsingExternalPP "[PP] п≤я│п©п╬п╩я▄п╥я┐я▌ п╡п╫п╣я┬п╫п╦п╧ я└п╦п╩я▄я┌я─ п©п╬я│я┌п╬п╠я─п╟п╠п╬я┌п╨п╦, max q = %d.\n"
-#define MSGTR_UsingCodecPP "[PP] п≤я│п©п╬п╩я▄п╥я┐я▌ п©п╬я│я┌п╬п╠я─п╟п╠п╬я┌п╨я┐ п╦п╥ п╨п╬п╢п╣п╨п╟, max q = %d.\n"
-#define MSGTR_VideoAttributeNotSupportedByVO_VD "п▓п╦п╢п╣п╬п╟я┌я─п╦п╠я┐я┌ '%s' п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ п╡я▀п╠я─п╟п╫п╫я▀п╪п╦ vo п╦ vd.\n"
-#define MSGTR_VideoCodecFamilyNotAvailableStr "п≈п╟п©я─п╬я┬п╣п╫п╫п╬п╣ я│п╣п╪п╣п╧я│я┌п╡п╬ п╡п╦п╢п╣п╬п╨п╬п╢п╣п╨п╬п╡ [%s] (vfm=%s) п╫п╣ п╢п╬я│я┌я┐п©п╫п╬.\nп▓п╨п╩я▌я┤п╦я┌п╣ п╣пЁп╬ п╡п╬ п╡я─п╣п╪я▐ п╨п╬п╪п©п╦п╩я▐я├п╦п╦.\n"
-#define MSGTR_AudioCodecFamilyNotAvailableStr "п≈п╟п©я─п╬я┬п╣п╫п╫п╬п╣ я│п╣п╪п╣п╧я│я┌п╡п╬ п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨п╬п╡ [%s] (afm=%s) п╫п╣ п╢п╬я│я┌я┐п©п╫п╬.\nп▓п╨п╩я▌я┤п╦я┌п╣ п╣пЁп╬ п╡п╬ п╡я─п╣п╪я▐ п╨п╬п╪п©п╦п╩я▐я├п╦п╦.\n"
-#define MSGTR_OpeningVideoDecoder "п·я┌п╨я─я▀п╡п╟я▌ п╢п╣п╨п╬п╢п╣я─ п╡п╦п╢п╣п╬: [%s] %s\n"
-#define MSGTR_SelectedVideoCodec "п▓я▀п╠я─п╟п╫ п╡п╦п╢п╣п╬п╨п╬п╢п╣п╨: [%s] vfm: %s (%s)\n"
-#define MSGTR_OpeningAudioDecoder "п·я┌п╨я─я▀п╡п╟я▌ п╢п╣п╨п╬п╢п╣я─ п╟я┐п╢п╦п╬: [%s] %s\n"
-#define MSGTR_SelectedAudioCodec "п▓я▀п╠я─п╟п╫ п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨: [%s] afm: %s (%s)\n"
-#define MSGTR_BuildingAudioFilterChain "п÷п╬я│я┌я─п╬п╣п╫п╦п╣ я├п╣п©п╬я┤п╨п╦ п╟я┐п╢п╦п╬я└п╦п╩я▄я┌я─п╟ п╢п╩я▐ %dHz/%dch/%s -> %dHz/%dch/%s...\n"
-#define MSGTR_UninitVideoStr "п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ п╡п╦п╢п╣п╬: %s\n"
-#define MSGTR_UninitAudioStr "п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ п╟я┐п╢п╦п╬: %s\n"
-#define MSGTR_VDecoderInitFailed "п·я┬п╦п╠п╨п╟ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п▓п╦п╢п╣п╬ :(\n"
-#define MSGTR_ADecoderInitFailed "п·я┬п╦п╠п╨п╟ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п░я┐п╢п╦п╬ :(\n"
-#define MSGTR_ADecoderPreinitFailed "п·я┬п╦п╠п╨п╟ п©я─п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п░я┐п╢п╦п╬ :(\n"
-#define MSGTR_AllocatingBytesForInputBuffer "dec_audio: п≈п╟я┘п╡п╟я┌я▀п╡п╟я▌ %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╩я▐ п╡я┘п╬п╢п╫п╬пЁп╬ п╠я┐я└п╣я─п╟.\n"
-#define MSGTR_AllocatingBytesForOutputBuffer "dec_audio: п≈п╟я┘п╡п╟я┌я▀п╡п╟я▌ %d + %d = %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╩я▐ п╠я┐я└п╣я─п╟ п╡я▀п╡п╬п╢п╟.\n"
-
-// LIRC:
-#define MSGTR_SettingUpLIRC "пёя│я┌п╟п╫п╬п╡п╨п╟ п©п╬п╢п╢п╣я─п╤п╨п╦ LIRC...\n"
-#define MSGTR_LIRCopenfailed "п²п╣я┐п╢п╟я┤п╫п╬п╣ п╬я┌п╨я─я▀я┌п╦п╣ п©п╬п╢п╢п╣я─п╤п╨п╦ LIRC.\nп▓я▀ п╫п╣ я│п╪п╬п╤п╣я┌п╣ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п▓п╟я┬ п©я┐п╩я▄я┌ я┐п©я─п╟п╡п╩п╣п╫п╦я▐.\n"
-#define MSGTR_LIRCcfgerr "п²п╣я┐п╢п╟я┤п╫п╟я▐ п©п╬п©я▀я┌п╨п╟ я┤я┌п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ LIRC '%s'!\n"
-
-// vf.c
-#define MSGTR_CouldNotFindVideoFilter "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─ '%s'.\n"
-#define MSGTR_CouldNotOpenVideoFilter "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─ '%s'.\n"
-#define MSGTR_OpeningVideoFilter "п·я┌п╨я─я▀п╡п╟я▌ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─: "
-#define MSGTR_CannotFindColorspace "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п©п╬п╢я┘п╬п╢я▐я┴п╣п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬, п╢п╟п╤п╣ п╡я│я┌п╟п╡п╦п╡ 'scale' :(\n"
-
-// vd.c
-#define MSGTR_CodecDidNotSet "VDec: п п╬п╢п╣п╨ п╫п╣ я┐я│я┌п╟п╫п╬п╡п╦п╩ sh->disp_w п╦ sh->disp_h, п©я▀я┌п╟я▌я│я▄ п╬п╠п╬п╧я┌п╦.\n"
-#define MSGTR_VoConfigRequest "VDec: п╥п╟п©я─п╬я│ vo config - %d x %d (п©я─п╣п╢п©п╬я┤я┌п╦п╪п╬п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬: %s)\n"
-#define MSGTR_UsingXAsOutputCspNoY "VDec: п╦я│п©п╬п╩я▄п╥я┐я▌ %s п╡ п╨п╟я┤п╣я│я┌п╡п╣ п╡я▀я┘п╬п╢п╫п╬пЁп╬ csp (п╫п╣ %d)\n"
-#define MSGTR_CouldNotFindColorspace "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п©п╬п╢я┘п╬п╢я▐я┴п╣п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬ - п©п╬п©я▀я┌п╟я▌я│я▄ я│ -vf scale...\n"
-#define MSGTR_MovieAspectIsSet "Movie-Aspect - %.2f:1 - п©я─п╣п╪п╟я│я┬я┌п╟п╠п╦я─я┐я▌ п╢п╩я▐ п╨п╬я─я─п╣п╨я├п╦п╦ я│п╬п╬я┌п╫п╬я┬п╣п╫п╦я▐ я│я┌п╬я─п╬п╫ я└п╦п╩я▄п╪п╟.\n"
-#define MSGTR_MovieAspectUndefined "Movie-Aspect п╫п╣ п╬п©я─п╣п╢п╣п╩я▒п╫ - п©я─п╣п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣ п╫п╣ п©я─п╦п╪п╣п╫я▐п╣я┌я│я▐.\n"
-
-// vd_dshow.c, vd_dmo.c
-#define MSGTR_DownloadCodecPackage "п▓п╟п╪ п╫я┐п╤п╫п╬ п╬п╠п╫п╬п╡п╦я┌я▄/я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п©п╟п╨п╣я┌ п╠п╦п╫п╟я─п╫я▀я┘ п╨п╬п╢п╣п╨п╬п╡.\nп≈п╟п╧п╢п╦я┌п╣ п╫п╟ http://www.mplayerhq.hu/dload.html\n"
-#define MSGTR_DShowInitOK "п≤п²п╓п·п═п°п░п╕п≤п╞: Win32/DShow п╡п╦п╢п╣п╬ п╨п╬п╢п╣п╨ я┐я│п©п╣я┬п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫.\n"
-#define MSGTR_DMOInitOK "п≤п²п╓п·п═п°п░п╕п≤п╞: Win32/DMO п╡п╦п╢п╣п╬ п╨п╬п╢п╣п╨ я┐я│п©п╣я┬п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫.\n"
-
-// x11_common.c
-#define MSGTR_EwmhFullscreenStateFailed "\nX11: п²п╣ п╪п╬пЁя┐ п©п╬я│п╩п╟я┌я▄ я│п╬п╠я▀я┌п╦п╣ EWMH fullscreen!\n"
-#define MSGTR_CouldNotFindXScreenSaver "xscreensaver_disable: п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╬п╨п╫п╬ XScreenSaver'п╟.\n"
-#define MSGTR_SelectedVideoMode "XF86VM: п▓я▀п╠я─п╟п╫ п╡п╦п╢п╣п╬я─п╣п╤п╦п╪ %dx%d п╢п╩я▐ я─п╟п╥п╪п╣я─п╟ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ %dx%d.\n"
+// loader/ldt_keeper.c
+#define MSGTR_LOADER_DYLD_Warning "п▓п²п≤п°п░п²п≤п∙: п©п╬п©я▀я┌п╨п╟ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦я▐ DLL п╨п╬п╢п╣п╨п╬п╡ п╠п╣п╥ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫п╬п╧ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ \n п╬п╨я─я┐п╤п╣п╫п╦я▐ DYLD_BIND_AT_LAUNCH. п╜я┌п╬ я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©я─п╦п╡п╣п╢п╣я┌ п╨ п╨я─п╟я┘я┐.\n"
-#define MSGTR_InsertingAfVolume "[п°п╦п╨я┬п╣я─] п²п╣я┌ п╟п©п©п╟я─п╟я┌п╫п╬пЁп╬ п╪п╦п╨я┬п╦я─п╬п╡п╟п╫п╦я▐, п╡я│я┌п╟п╡п╩я▐я▌ я└п╦п╩я▄я┌я─ пЁя─п╬п╪п╨п╬я│я┌п╦.\n"
-#define MSGTR_NoVolume "[п°п╦п╨я┬п╣я─] п п╬п╫я┌я─п╬п╩я▄ пЁя─п╬п╪п╨п╬я│я┌п╦ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
-#define MSGTR_NoBalance "[п°п╦п╨я┬п╣я─] пёп©я─п╟п╡п╩п╣п╫п╦п╣ п╠п╟п╩п╟п╫я│п╬п╪ п╫п╣п╢п╬я│я┌я┐п©п╫п╬.\n"
// ====================== GUI messages/buttons ========================
-#ifdef CONFIG_GUI
-
// --- labels ---
#define MSGTR_About "п· я│п╣п╠п╣"
#define MSGTR_FileSelect "п▓я▀п╠я─п╟я┌я▄ я└п╟п╧п╩..."
@@ -745,8 +556,8 @@ static char help_text[]=
#define MSGTR_Add "п■п╬п╠п╟п╡п╦я┌я▄"
#define MSGTR_Remove "пёп╢п╟п╩п╦я┌я▄"
#define MSGTR_Clear "п·я┤п╦я│я┌п╦я┌я▄"
-#define MSGTR_Config "п п╬п╫я└п╦пЁя┐я─п╦я─п╬п╡п╟я┌я▄"
-#define MSGTR_ConfigDriver "п п╬п╫я└п╦пЁя┐я─п╦я─п╬п╡п╟я┌я▄ п╢я─п╟п╧п╡п╣я─"
+#define MSGTR_Config "п²п╟я│я┌я─п╬п╦я┌я▄"
+#define MSGTR_ConfigDriver "п²п╟я│я┌я─п╬п╦я┌я▄ п╢я─п╟п╧п╡п╣я─"
#define MSGTR_Browse "п÷я─п╬я│п╪п╬я┌я─п╣я┌я▄"
// --- error messages ---
@@ -757,10 +568,10 @@ static char help_text[]=
#define MSGTR_UNKNOWNWINDOWTYPE "п²п╟п╧п╢п╣п╫ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п╬п╨п╫п╟..."
// --- skin loader error messages
-#define MSGTR_SKIN_ERRORMESSAGE "[я│п╨п╦п╫] п╬я┬п╦п╠п╨п╟ п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я│п╨п╦п╫п╟ п╫п╟ я│я┌я─п╬п╨п╣ %d: %s"
-#define MSGTR_SKIN_WARNING1 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я│п╨п╦п╫п╟ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█п╩п╣п╪п╣п╫я┌ GUI п╫п╟п╧п╢п╣п╫, п╫п╬ п╢п╬ я█я┌п╬пЁп╬ п╫п╣ п╫п╟п╧п╢п╣п╫п╬ \"section\" (%s)"
-#define MSGTR_SKIN_WARNING2 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я│п╨п╦п╫п╟ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█п╩п╣п╪п╣п╫я┌ GUI п╫п╟п╧п╢п╣п╫, п╫п╬ п╢п╬ я█я┌п╬пЁп╬ п╫п╣ п╫п╟п╧п╢п╣п╫п╬ \"subsection\" (%s)"
-#define MSGTR_SKIN_WARNING3 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я│п╨п╦п╫п╟ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█я┌п╟ п©п╬п╢я│п╣п╨я├п╦я▐ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я█я┌п╦п╪ я█п╩п╣п╪п╣п╫я┌п╬п╪ GUI (%s)"
+#define MSGTR_SKIN_ERRORMESSAGE "[я│п╨п╦п╫] п╬я┬п╦п╠п╨п╟ п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я┬п╨я┐я─я▀ п╫п╟ я│я┌я─п╬п╨п╣ %d: %s"
+#define MSGTR_SKIN_WARNING1 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я┬п╨я┐я─я▀ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█п╩п╣п╪п╣п╫я┌ GUI п╫п╟п╧п╢п╣п╫, п╫п╬ п╢п╬ я█я┌п╬пЁп╬ п╫п╣ п╫п╟п╧п╢п╣п╫п╬ \"section\" (%s)"
+#define MSGTR_SKIN_WARNING2 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я┬п╨я┐я─я▀ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█п╩п╣п╪п╣п╫я┌ GUI п╫п╟п╧п╢п╣п╫, п╫п╬ п╢п╬ я█я┌п╬пЁп╬ п╫п╣ п╫п╟п╧п╢п╣п╫п╬ \"subsection\" (%s)"
+#define MSGTR_SKIN_WARNING3 "[я│п╨п╦п╫] п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╡ я└п╟п╧п╩п╣ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я┬п╨я┐я─я▀ п╫п╟ я│я┌я─п╬п╨п╣ %d:\nя█я┌п╟ п©п╬п╢я│п╣п╨я├п╦я▐ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я█я┌п╦п╪ я█п╩п╣п╪п╣п╫я┌п╬п╪ GUI (%s)"
#define MSGTR_SKIN_SkinFileNotFound "[я│п╨п╦п╫] я└п╟п╧п╩ '%s' п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
#define MSGTR_SKIN_SkinFileNotReadable "[я│п╨п╦п╫] я└п╟п╧п╩ ( %s ) п╫п╣ я┤п╦я┌п╟п╣п╪.\n"
#define MSGTR_SKIN_BITMAP_16bit "п⌠п╩я┐п╠п╦п╫п╟ п╠п╦я┌п╬п╡п╬п╧ п╪п╟я┌я─п╦я├я▀ п╡ 16 п╠п╦я┌ п╦ п╪п╣п╫я▄я┬п╣ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ (%s).\n"
@@ -780,10 +591,10 @@ static char help_text[]=
#define MSGTR_SKIN_UnknownParameter "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п©п╟я─п╟п╪п╣я┌я─ (%s)\n"
#define MSGTR_SKIN_SKINCFG_SkinNotFound "п║п╨п╦п╫ п╫п╣ п╫п╟п╧п╢п╣п╫ (%s).\n"
#define MSGTR_SKIN_SKINCFG_SelectedSkinNotFound "п▓я▀п╠я─п╟п╫п╫я▀п╧ я│п╨п╦п╫ '%s' п╫п╣ п╫п╟п╧п╢п╣п╫, п©я─п╬п╠я┐я▌ 'default'...\n"
-#define MSGTR_SKIN_SKINCFG_SkinCfgReadError "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я│п╨п╦п╫п╬п╡ (%s)\n"
-#define MSGTR_SKIN_LABEL "п║п╨п╦п╫я▀:"
+#define MSGTR_SKIN_SKINCFG_SkinCfgReadError "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ я┬п╨я┐я─ (%s)\n"
+#define MSGTR_SKIN_LABEL "п╗п╨я┐я─я▀:"
-// --- gtk menus
+// --- GTK menus
#define MSGTR_MENU_AboutMPlayer "п· MPlayer"
#define MSGTR_MENU_Open "п·я┌п╨я─я▀я┌я▄..."
#define MSGTR_MENU_PlayFile "п≤пЁя─п╟я┌я▄ я└п╟п╧п╩..."
@@ -816,7 +627,7 @@ static char help_text[]=
#define MSGTR_MENU_AudioLanguages "п░я┐п╢п╦п╬ я▐п╥я▀п╨п╦"
#define MSGTR_MENU_SubtitleLanguages "п╞п╥я▀п╨ я│я┐п╠я┌п╦я┌я─п╬п╡"
#define MSGTR_MENU_PlayList MSGTR_PlayList
-#define MSGTR_MENU_SkinBrowser "п÷я─п╬я│п╪п╬я┌я─я┴п╦п╨ я│п╨п╦п╫п╬п╡"
+#define MSGTR_MENU_SkinBrowser "п÷я─п╬я│п╪п╬я┌я─ я┬п╨я┐я─"
#define MSGTR_MENU_Preferences MSGTR_Preferences
#define MSGTR_MENU_Exit "п▓я▀я┘п╬п╢..."
#define MSGTR_MENU_Mute "п÷я─п╦пЁп╩я┐я┬п╦я┌я▄"
@@ -968,7 +779,7 @@ static char help_text[]=
#define MSGTR_ABOUT_Contributors "п═п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╦ п╨п╬п╢п╟ п╦ п╢п╬п╨я┐п╪п╣п╫я┌п╟я├п╦п╦\n"
#define MSGTR_ABOUT_Codecs_libs_contributions "п п╬п╢п╣п╨п╦ п╦ я│я┌п╬я─п╬п╫п╫п╦п╣ п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦\n"
#define MSGTR_ABOUT_Translations "п÷п╣я─п╣п╡п╬п╢я▀\n"
-#define MSGTR_ABOUT_Skins "п║п╨п╦п╫я▀\n"
+#define MSGTR_ABOUT_Skins "п╗п╨я┐я─я▀\n"
// --- messagebox
#define MSGTR_MSGBOX_LABEL_FatalError "п╓п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟!"
@@ -976,28 +787,23 @@ static char help_text[]=
#define MSGTR_MSGBOX_LABEL_Warning "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣!"
// bitmap.c
-
#define MSGTR_NotEnoughMemoryC32To1 "[c32to1] п╫п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п©п╟п╪я▐я┌п╦ п╢п╩я▐ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐\n"
#define MSGTR_NotEnoughMemoryC1To32 "[c1to32] п╫п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п©п╟п╪я▐я┌п╦ п╢п╩я▐ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐\n"
// cfg.c
-
#define MSGTR_ConfigFileReadError "[cfg] п╬я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╬п╫п╫п╬пЁп╬ я└п╟п╧п╩п╟...\n"
#define MSGTR_UnableToSaveOption "[cfg] п²п╣ п╪п╬пЁя┐ я│п╬я┘я─п╟п╫п╦я┌я▄ п╬п©я├п╦я▌ '%s'.\n"
// interface.c
-
#define MSGTR_DeletingSubtitles "[GUI] пёп╢п╟п╩я▐я▌ я│я┐п╠я┌п╦я┌я─я▀.\n"
#define MSGTR_LoadingSubtitles "[GUI] п≈п╟пЁя─я┐п╤п╟я▌ я│я┐п╠я┌п╦я┌я─я▀: %s\n"
#define MSGTR_AddingVideoFilter "[GUI] п■п╬п╠п╟п╡п╩я▐я▌ п╡п╦п╢п╣п╬я└п╦п╩я▄я┌я─: %s\n"
#define MSGTR_RemovingVideoFilter "[GUI] пёп╢п╟п╩я▐я▌ п╡п╦п╢п╣п╬я└п╦п╩я▄я┌я─: %s\n"
// mw.c
-
#define MSGTR_NotAFile "п╜я┌п╬ п╫п╣ п©п╬я┘п╬п╤п╣ п╫п╟ я└п╟п╧п╩: '%s' !\n"
// ws.c
-
#define MSGTR_WS_CouldNotOpenDisplay "[ws] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╦я│п©п╩п╣п╧.\n"
#define MSGTR_WS_RemoteDisplay "[ws] пёп╢п╟п╩я▒п╫п╫я▀п╧ п╢п╦я│п©п╩п╣п╧, п╬я┌п╨п╩я▌я┤п╟я▌ XMITSHM.\n"
#define MSGTR_WS_NoXshm "[ws] п≤п╥п╡п╦п╫п╦я┌п╣, п╡п╟я┬п╟ я│п╦я│я┌п╣п╪п╟ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ я─п╟я│я┬п╦я─п╣п╫п╦п╣ я─п╟п╥п╢п╣п╩я▐п╣п╪п╬п╧ п©п╟п╪я▐я┌п╦ X'п╬п╡.\n"
@@ -1010,13 +816,11 @@ static char help_text[]=
#define MSGTR_WS_DpmsNotEnabled "п²п╣ п╪п╬пЁя┐ п╡п╨п╩я▌я┤п╦я┌я▄ DPMS.\n"
// wsxdnd.c
-
#define MSGTR_WS_NotAFile "п╜я┌п╬ п╫п╣ п©п╬я┘п╬п╤п╣ п╫п╟ я└п╟п╧п╩...\n"
#define MSGTR_WS_DDNothing "D&D: п²п╦я┤п╣пЁп╬ п╫п╣ п╡п╬п╥п╡я─п╟я┴п╣п╫п╬!\n"
-#endif
-// ======================= VO Video Output drivers ========================
+// ======================= video output drivers ========================
#define MSGTR_VOincompCodec "п≤п╥п╡п╦п╫п╦я┌п╣, п╡я▀п╠я─п╟п╫п╫п╬п╣ я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╡п╦п╢п╣п╬п╡я▀п╡п╬п╢п╟ п╫п╣ я│п╬п╡п╪п╣я│я┌п╦п╪п╬ я│ я█я┌п╦п╪ п╨п╬п╢п╣п╨п╬п╪.\n"\
"п÷п╬п©я─п╬п╠я┐п╧я┌п╣ п╢п╬п╠п╟п╡п╦я┌я▄ я└п╦п╩я▄я┌я─ scale п╨ п╡п╟я┬п╣п╪я┐ я│п©п╦я│п╨я┐ я└п╦п╩я▄я┌я─п╬п╡.\n"\
@@ -1035,8 +839,45 @@ static char help_text[]=
#define MSGTR_VO_NoValueSpecified "п≈п╫п╟я┤п╣п╫п╦п╣ п╫п╣ я┐п╨п╟п╥п╟п╫п╬."
#define MSGTR_VO_UnknownSuboptions "п²п╣п╦п╥п╡п╣я│я┌п╫п╟я▐(я▀п╣) я│я┐п╠п╬п©я├п╦я▐(п╦)"
-// vo_aa.c
+// libvo/aspect.c
+#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п²п╣ п╫п╟п╧п╢п╣п╫п╬ п©п╬п╢я┘п╬п╢я▐я┴п╣пЁп╬ я─п╟п╥я─п╣я┬п╣п╫п╦я▐!\n"
+#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] п·я┬п╦п╠п╨п╟: п²п╣ п╫п╟п╧п╢п╣п╫ я─п╟п╥п╪п╣я─, я┐п╪п╣я┴п╟я▌я┴п╦п╧я│я▐ п╡ я█я┌п╬ я─п╟п╥я─п╣я┬п╣п╫п╦п╣!\n"
+
+// libvo/font_load_ft.c
+#define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "п║п╠п╬п╧ New_Face. п▓п╬п╥п╪п╬п╤п╫п╬ п╫п╣п╡п╣я─п╣п╫ п©я┐я┌я▄ п╨ я┬я─п╦я└я┌я┐.\nпёп╨п╟п╤п╦я┌п╣, п©п╬п╤п╟п╩я┐п╧я│я┌п╟, я└п╟п╧п╩ я┬я─п╦я└я┌п╟ п╢п╩я▐ я┌п╣п╨я│я┌п╟ (~/.mplayer/subfont.ttf).\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "п║п╠п╬п╧ New_Memory_Face.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡: я│п╠п╬п╧ load_sub_face.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡: я│п╠п╬п╧ prepare_charset.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╢пЁп╬я┌п╬п╡п╦я┌я▄ я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╢пЁп╬я┌п╬п╡п╦я┌я▄ я┬я─п╦я└я┌ OSD.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ я│пЁп╣п╫п╣я─п╦я─п╬п╡п╟я┌я▄ я┌п╟п╠п╩п╦я├я▀.\n"
+#define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "п║п╠п╬п╧ FT_Done_FreeType.\n"
+// sub.c
+#define MSGTR_VO_SUB_Seekbar "п²п╟п╡п╦пЁп╟я├п╦я▐"
+#define MSGTR_VO_SUB_Play "п▓п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣"
+#define MSGTR_VO_SUB_Pause "п÷п╟я┐п╥п╟"
+#define MSGTR_VO_SUB_Stop "п║я┌п╬п©"
+#define MSGTR_VO_SUB_Rewind "п²п╟п╥п╟п╢"
+#define MSGTR_VO_SUB_Forward "п▓п©п╣я─я▒п╢"
+#define MSGTR_VO_SUB_Clock "п▓я─п╣п╪я▐"
+#define MSGTR_VO_SUB_Contrast "п п╬п╫я┌я─п╟я│я┌"
+#define MSGTR_VO_SUB_Saturation "п²п╟я│я▀я┴п╣п╫п╫п╬я│я┌я▄"
+#define MSGTR_VO_SUB_Volume "п⌠я─п╬п╪п╨п╬я│я┌я▄"
+#define MSGTR_VO_SUB_Brightness "п╞я─п╨п╬я│я┌я▄"
+#define MSGTR_VO_SUB_Hue "п╕п╡п╣я┌"
+#define MSGTR_VO_SUB_Balance "п▒п╟п╩п╟п╫я│"
+
+// libvo/vo_3dfx.c
+#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] п÷п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┌п╬п╩я▄п╨п╬ 16bpp!"
+#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] п▓п╦п╥я┐п╟п╩я▄п╫я▀п╧ ID %lx.\n"
+#define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ /dev/3dfx.\n"
+#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] п·я┬п╦п╠п╨п╟: %d.\n"
+#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] п²п╣ п╪п╬пЁя┐ п╬я┌п╬п╠я─п╟п╥п╦я┌я▄ п╬п╠п╩п╟я│я┌п╦ п©п╟п╪я▐я┌п╦ 3dfx: %p,%p,%d.\n"
+#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] п≤п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫п╬: %p.\n"
+#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ п©п╬п╢я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
+
+// vo_aa.c
#define MSGTR_VO_AA_HelpHeader "\n\nп║я┐п╠п╬п©я├п╦п╦ vo_aa п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦ aalib:\n"
#define MSGTR_VO_AA_AdditionalOptions "п■п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫я▀п╣ п╬п©я├п╦п╦, п©я─п╣п╢п╬я│я┌п╟п╡п╩я▐п╣п╪я▀п╣ vo_aa:\n" \
" help п╡я▀п╡п╣я│я┌п╦ я█я┌п╬ я│п╬п╬п╠я┴п╣п╫п╦п╣\n" \
@@ -1045,12 +886,84 @@ static char help_text[]=
" 1 : я┌я┐я│п╨п╩я▀п╧\n 2 : п╤п╦я─п╫я▀п╧\n 3 : п╤п╦я─п╫я▀п╧ я┬я─п╦я└я┌\n" \
" 4 : п╦п╫п╡п╣я─я│п╫я▀п╧\n 5 : я│п©п╣я├п╦п╟п╩я▄п╫я▀п╧\n\n\n"
+// libvo/vo_dxr3.c
+#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟пЁя─я┐п╥п╦я┌я▄ п╫п╬п╡я┐я▌ п©п╟п╩п╦я┌я─я┐ SPU!\n"
+#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я─п╣п╤п╦п╪ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐!\n"
+#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я─п╣п╤п╦п╪ я│я┐п╠п╨п╟я─я┌п╦п╫п╨п╦!\n"
+#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
+#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] п░п╡я┌п╬п╡я▀п╠п╬я─ я─п╣п╤п╦п╪п╟ п╒п▓ п©п╬ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡: "
+#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
+#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╢п╩я▐ NTSC.\n"
+#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╢п╩я▐ PAL/SECAM.\n"
+#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo43 "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╬п©п╬я─я├п╦п╦ 4:3.\n"
+#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo169 "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╬п©п╬я─я├п╦п╦ 16:9.\n"
+#define MSGTR_LIBVO_DXR3_OutOfMemory "[VO_DXR3] п╫п╣я┘п╡п╟я┌п╨п╟ п©п╟п╪я▐я┌п╦\n"
+#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╫п╟п╥п╫п╟я┤п╦я┌я▄ п╨п╩я▌я┤п╣п╡п╬п╧ я├п╡п╣я┌!\n"
+#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╫п╟п╥п╫п╟я┤п╦я┌я▄ я┌п╬я┤п╫я▀п╧ п╨п╩я▌я┤п╣п╡п╬п╧ я├п╡п╣я┌,\nп╦я│п©п╬п╩я▄п╥я┐я▌ п╠п╩п╦п╤п╟п╧я┬п╣п╣ п©я─п╦п╠п╩п╦п╤п╣п╫п╦п╣ (0x%lx).\n"
+#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] п■п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐.\n"
+#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╡п╬я│я│я┌п╟п╫п╬п╡п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
+#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] п▓п╨п╩я▌я┤п╟я▌ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫я┐я▌ п╠я┐я└п╣я─п╦п╥п╟я├п╦я▌.\n"
+#define MSGTR_LIBVO_DXR3_UsingNewSyncEngine "[VO_DXR3] п≤я│п©п╬п╩я▄п╥я┐я▌ п╫п╬п╡я▀п╧ п╪п╣я┘п╟п╫п╦п╥п╪ я│п╦п╫я┘я─п╬п╫п╦п╥п╟я├п╦п╦.\n"
+#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] п≤я│п©п╬п╩я▄п╥я┐я▌ п╬п╡п╣я─п╩п╣п╧.\n"
+#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] п·я┬п╦п╠п╨п╟: п■п╩я▐ п╬п╡п╣я─п╩п╣я▐ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╟ п╨п╬п╪п©п╦п╩я▐я├п╦я▐ я│ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫я▀п╪п╦\nп╠п╦п╠п╩п╦п╬я┌п╣п╨п╟п╪п╦/п╥п╟пЁп╬п╩п╬п╡п╨п╟п╪п╦ X11.\n"
+#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] пёя│я┌п╟п╫п╬п╡п╩я▌ я─п╣п╤п╦п╪ п╒п▓ п╡: "
+#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "п╟п╡я┌п╬я─п╣пЁя┐п╩п╦я─п╬п╡п╨п╟ п╨ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡ я└п╦п╩я▄п╪п╟ (PAL/PAL-60)"
+#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "п╟п╡я┌п╬я─п╣пЁя┐п╩п╦я─п╬п╡п╨п╟ п╨ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡ я└п╦п╩я▄п╪п╟ (PAL/NTSC)"
+#define MSGTR_LIBVO_DXR3_UseCurrentNorm "п≤я│п©п╬п╩я▄п╥я┐я▌ я┌п╣п╨я┐я┴п╦п╧ я─п╣п╤п╦п╪."
+#define MSGTR_LIBVO_DXR3_UseUnknownNormSuppliedCurrentNorm "п÷я─п╣п╢п╩п╬п╤п╣п╫ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я─п╣п╤п╦п╪. п≤я│п©п╬п╩я▄п╥я┐я▌ я┌п╣п╨я┐я┴п╦п╧ я─п╣п╤п╦п╪."
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300 п╡п╥п╟п╪п╣п╫.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300_mv п╡п╥п╟п╪п╣п╫.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ /dev/em8300 п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ /dev/em8300_mv п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] п·я┌п╨я─я▀я┌п╬: %s.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300_sp п╡п╥п╟п╪п╣п╫.\n"
+#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ /dev/em8300_sp п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╦я│п©п╩п╣п╧ п╡ п©я─п╬я├п╣я│я│п╣ я┐я│я┌п╟п╫п╬п╡п╨п╦ я┘п╟п╨п╟ п╬п╡п╣я─п╩п╣я▐!\n"
+#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ X11!\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╟я┌я─п╦п╠я┐я┌ п╬п╡п╣я─п╩п╣я▐.\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я█п╨я─п╟п╫ п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╟п╨я┌п╦п╡п╦я─п╬п╡п╟я┌я▄ п╬п╡п╣я─п╩п╣п╧!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╦п╥п╪п╣п╫п╦я┌я▄ я─п╟п╥п╪п╣я─ п╬п╨п╫п╟ п╬п╡п╣я─п╩п╣я▐!\n"
+#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ bcs п╬п╡п╣я─п╩п╣я▐!\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ Y-я│п╪п╣я┴п╣п╫п╦п╧ п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ X-я│п╪п╣я┴п╣п╫п╦п╧ п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╨п╬я─я─п╣п╨я├п╦я▌ п╫п╟ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣ п©п╬ X п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_LIBVO_DXR3_YOffset "[VO_DXR3] я│п╪п╣я┴п╣п╫п╦п╣ п©п╬ Y: %d.\n"
+#define MSGTR_LIBVO_DXR3_XOffset "[VO_DXR3] я│п╪п╣я┴п╣п╫п╦п╣ п©п╬ X: %d.\n"
+#define MSGTR_LIBVO_DXR3_XCorrection "[VO_DXR3] п╨п╬я─я─п╣п╨я├п╦я▐ п©п╬ X: %d.\n"
+#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я│п╦пЁп╫п╟п╩ mix!\n"
+
// vo_jpeg.c
#define MSGTR_VO_JPEG_ProgressiveJPEG "п÷я─п╬пЁя─п╣я│я│п╦п╡п╫я▀п╧ JPEG п╡п╨п╩я▌я┤п╣п╫."
#define MSGTR_VO_JPEG_NoProgressiveJPEG "п÷я─п╬пЁя─п╣я│я│п╦п╡п╫я▀п╧ JPEG п╡я▀п╨п╩я▌я┤п╣п╫."
#define MSGTR_VO_JPEG_BaselineJPEG "п▒п╟п╥п╬п╡я▀п╧ JPEG п╡п╨п╩я▌я┤п╣п╫."
#define MSGTR_VO_JPEG_NoBaselineJPEG "п▒п╟п╥п╬п╡я▀п╧ JPEG п╡я▀п╨п╩я▌я┤п╣п╫."
+// libvo/vo_mga.c
+#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): п╦п╥п╪п╣п╫я▒п╫ я─п╟п╥п╪п╣я─ п╡ %dx%d.\n"
+#define MSGTR_LIBVO_MGA_Uninit "[VO] п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐!\n"
+
+// mga_common.c
+#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] п╬я┬п╦п╠п╨п╟ п╡ mga_vid_config ioctl (п╫п╣п╡п╣я─п╫п╟я▐ п╡п╣я─я│п╦я▐ mga_vid.o?)"
+#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ п╩я▌п╪я▀ п╦п╥ п╪п╬п╢я┐п╩я▐ я▐п╢я─п╟!\n"
+#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ п╩я▌п╪я▀ п╦п╥ п╪п╬п╢я┐п╩я▐ я▐п╢я─п╟!\n"
+#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] п╗п╦я─п╦п╫п╟/п╡я▀я│п╬я┌п╟ я█п╨я─п╟п╫п╟ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀!\n"
+#define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] п╫п╣п╡п╣я─п╫я▀п╧ п╡я▀я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌ %0X\n"
+#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] п▓п╣я─я│п╦я▐ п╡п╟я┬п╣пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ mga_vid п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪п╟ я│ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧ MPlayer!\n"
+#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄: %s\n"
+#define MGSTR_LIBVO_MGA_ResolutionTooHigh "[MGA] п═п╟п╥я─п╣я┬п╣п╫п╦п╣ п╦я│я┌п╬я┤п╫п╦п╨п╟, п©п╬ п╨я─п╟п╧п╫п╣п╧ п╪п╣я─п╣ п╡ п╬п╢п╫п╬п╪ п╦п╥п╪п╣я─п╣п╫п╦п╦, п╠п╬п╩я▄я┬п╣ я┤п╣п╪\n1023x1023. п÷п╣я─п╣п╪п╟я│я┬я┌п╟п╠п╦я─я┐п╧я┌п╣ п©я─п╬пЁя─п╟п╪п╪п╫п╬ п╦п╩п╦ п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -lavdopts lowres=1\n"
+#define MGSTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] п╫п╣я│п╬п╬я┌п╡п╣я┌я│я┌п╡п╦п╣ п╡п╣я─я│п╦п╧ п╢я─п╟п╧п╡п╣я─п╟ mga_vid я▐п╢я─п╟ (%u) п╦ MPlayer (%u)\n"
+
+// libvo/vo_null.c
+#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ п©п╬п╢я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
+
+// libvo/vo_png.c
+#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: я┐я─п╬п╡п╣п╫я▄ я│п╤п╟я┌п╦я▐ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫ п╡ 0, я│п╤п╟я┌п╦п╣ п╬я┌п╨п╩я▌я┤п╣п╫п╬!\n"
+#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vo png:z=<n> п╢п╩я▐ я┐я│я┌п╟п╫п╬п╡п╨п╦ я┐я─п╬п╡п╫я▐\nя│п╤п╟я┌п╦я▐ п╬я┌ 0 п╢п╬ 9.\n"
+#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] п≤п╫я└п╬я─п╪п╟я├п╦я▐: (0 = п╫п╣я┌ я│п╤п╟я┌п╦я▐, 1 = п╠я▀я│я┌я─п╬п╣, я┘я┐п╢я┬п╣п╣ - 9 п╩я┐я┤я┬п╣п╣,\nя│п╟п╪п╬п╣ п╪п╣п╢п╩п╣п╫п╫п╬п╣ я│п╤п╟я┌п╦п╣)\n"
+#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ '%s' п╢п╩я▐ п╥п╟п©п╦я│п╦!\n"
+#define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] п·я┬п╦п╠п╨п╟ п╡ create_png.\n"
+
// vo_pnm.c
#define MSGTR_VO_PNM_ASCIIMode "п═п╣п╤п╦п╪ ASCII п╡п╨п╩я▌я┤п╣п╫."
#define MSGTR_VO_PNM_RawMode "'п║я▀я─п╬п╧' я─п╣п╤п╦п╪ п╡п╨п╩я▌я┤п╣п╫."
@@ -1058,6 +971,137 @@ static char help_text[]=
#define MSGTR_VO_PNM_PGMType "п▒я┐п╢я┐я┌ п╥п╟п©п╦я│п╟п╫я▀ PGM я└п╟п╧п╩я▀."
#define MSGTR_VO_PNM_PGMYUVType "п▒я┐п╢я┐я┌ п╥п╟п©п╦я│п╟п╫я▀ PGMYUV я└п╟п╧п╩я▀."
+// libvo/vo_sdl.c
+#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╨п╟п╨п╬п╧-п╩п╦п╠п╬ п©я─п╦п╣п╪п╩п╣п╪я▀п╧ я─п╣п╤п╦п╪ SDL п╢п╩я▐ п╡я▀п╡п╬п╢п╟.\n"
+#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: п║п╠п╬п╧ SDL_SetVideoMode: %s.\n"
+#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: п║п╠п╬п╧ SDL_SetVideoMode: %s.\n"
+#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] п·я┌п╬п╠я─п╟п╤п╣п╫п╦п╣ I420 п╡ IYUV.\n"
+#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ (0x%X).\n"
+#define MSGTR_LIBVO_SDL_InfoPleaseUseVmOrZoom "[VO_SDL] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vm п╦п╩п╦ -zoom п╢п╩я▐ п©п╣я─п╣п╨п╩я▌я┤п╣п╫п╦я▐\nп╡ п╩я┐я┤я┬п╣п╣ я─п╟п╥я─п╣я┬п╣п╫п╦п╣.\n"
+#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╦п╢п╣п╬я─п╣п╤п╦п╪: %s.\n"
+#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п╬п╡п╣я─п╩п╣п╧ YUV: %s.\n"
+#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п©п╬п╡п╣я─я┘п╫п╬я│я┌я▄ RGB: %s.\n"
+#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] п≤я│п©п╬п╩я▄п╥я┐я▌ п©я─п╣п╬п╠я─п╟п╥п╬п╡п╟п╫п╦п╣ пЁп╩я┐п╠п╦п╫я▀/я├п╡п╣я┌п╬п╡п╬пЁп╬ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╟,\nя█я┌п╬ п╥п╟п╪п╣п╢п╩п╦я┌ я─п╟п╠п╬я┌я┐ (%ibpp -> %ibpp).\n"
+#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╡ draw_slice,\nя│п╡я▐п╤п╦я┌п╣я│я▄ я│ я─п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╟п╪п╦ MPlayer!\n"
+#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] п║п╠п╬п╧ blit: %s.\n"
+#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] п║п╠п╬п╧ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ SDL: %s.\n"
+#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] п≤я│п©п╬п╩я▄п╥я┐я▌ п╢я─п╟п╧п╡п╣я─: %s.\n"
+
+// libvo/vo_svga.c
+#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] п╓п╬я─я│п╦я─п╬п╡п╟п╫п╫я▀п╧ vid_mode %d (%s) п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
+#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] п╓п╬я─я│п╦я─п╬п╡п╟п╫п╫я▀п╧ vid_mode %d (%s) я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩.\n"
+#define MSGTR_LIBVO_SVGA_Vidmode "[VO_SVGA] Vid_mode: %d, %dx%d %dbpp.\n"
+#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] п║п╠п╬п╧ Vga_setmode(%d).\n"
+#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] п▓п╦п╢п╣п╬я─п╣п╤п╦п╪ п╩п╦п╫п╣п╧п╫я▀п╧ п╦ п╢п╩я▐ п©п╣я─п╣п╢п╟я┤п╦ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╪п╬п╤п╣я┌ п╠я▀я┌я▄\nп╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ memcpy.\n"
+#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] п▓п╦п╢п╣п╬я─п╣п╤п╦п╪ п╬п╠п╩п╟п╢п╟п╣я┌ п╟п©п©п╟я─п╟я┌п╫я▀п╪ я┐я│п╨п╬я─п╣п╫п╦п╣п╪ п╦ п╪п╬п╤п╣я┌ п╠я▀я┌я▄\nп╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ put_image.\n"
+#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] п∙я│п╩п╦ я█я┌п╬ я─п╟п╠п╬я┌п╟п╣я┌ я┐ п▓п╟я│, п╪п╫п╣ я┘п╬я┌п╣п╩п╬я│я▄ п╠я▀ п╥п╫п╟я┌я▄.\n[VO_SVGA] (п╬я┌п©я─п╟п╡я▄я┌п╣ п╩п╬пЁ я│ п©п╬п╪п╬я┴я▄я▌ `mplayer test.avi -v -v -v -v &> svga.log`).\nп║п©п╟я│п╦п╠п╬!\n"
+#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] пё п╡п╦п╢п╣п╬я─п╣п╤п╦п╪п╟ %d я│я┌я─п╟п╫п╦я├(п╟/я▀).\n"
+#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] п╕п╣п╫я┌я─п╦я─я┐я▌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣. п²п╟я┤п╦п╫п╟я▌ п╡ (%d,%d)\n"
+#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] п≤я│п©п╬п╩я▄п╥я┐я▌ VIDIX. w=%i h=%i mw=%i mh=%i\n"
+
+// libvo/vo_tdfx_vid.c
+#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] п╗п╟пЁ %d(%d) x %d => %d.\n"
+#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] п║п╠п╬п╧ п╬я┤п╦я│я┌п╨п╦ я█п╨я─п╟п╫п╟ я┬п╟пЁп╬п╪ AGP.\n"
+#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] п║п╠п╬п╧ blit.\n"
+#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] п■п╩я▐ п╫п╣п╥п╟п╩п╬п╤п╣п╫п╫я▀я┘ я└п╬я─п╪п╟я┌п╬п╡ п╬п╡п╣я─п╩п╣я▐ п╫я┐п╤п╫п╟ п╨п╬п╫п╡п╣я─я│п╦я▐.\n"
+#define MSGTR_LIBVO_TDFXVID_UnsupportedInputFormat "[VO_TDFXVID] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ п╡я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌ 0x%x.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] п║п╠п╬п╧ я┐я│я┌п╟п╫п╬п╡п╨п╦ п╬п╡п╣я─п╩п╣я▐.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] п║п╠п╬п╧ п╡п╨п╩я▌я┤п╣п╫п╦я▐ п╬п╡п╣я─п╩п╣я▐.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] п·п╡п╣я─п╩п╣п╧ пЁп╬я┌п╬п╡: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
+#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] п⌠п╬я┌п╬п╡ blit я┌п╣п╨я│я┌я┐я─: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
+#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] п║п╠п╬п╧ п╡я▀п╨п╩я▌я┤п╣п╫п╦я▐ п╬п╡п╣я─п╩п╣я▐\n"
+#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s: %s.\n"
+#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я┌п╣п╨я┐я┴я┐я▌ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦я▌: %s.\n"
+#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] п║п╠п╬п╧ memmap !!!!!\n"
+#define MSGTR_LIBVO_TDFXVID_GetImageTodo "п²я┐п╤п╫п╬ п╢п╬п╢п╣п╩п╟я┌я▄ п©п╬п╩я┐я┤п╣п╫п╦п╣ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP.\n"
+#define MSGTR_LIBVO_TDFXVID_SetYuvFailed "[VO_TDFXVID] п║п╠п╬п╧ я┐я│я┌п╟п╫п╬п╡п╨п╦ YUV.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ Y.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ U.\n"
+#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ V.\n"
+#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я└п╬я─п╪п╟я┌: 0x%x.\n"
+
+// libvo/vo_tdfxfb.c
+#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] п÷я─п╬п╠п╩п╣п╪п╟ я│ ioctl FBITGET_FSCREENINFO: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] п÷я─п╬п╠п╩п╣п╪п╟ я│ ioctl FBITGET_VSCREENINFO: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] п╜я┌п╬я┌ п╢я─п╟п╧п╡п╣я─ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ я┌п╬п╩я▄п╨п╬ 3Dfx Banshee, Voodoo3 п╦ Voodoo 5.\n"
+#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] %d bpp п╡я▀п╡п╬п╢ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
+#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] п²п╣ п╪п╬пЁя┐ п╬я┌п╬п╠я─п╟п╥п╦я┌я▄ п╬п╠п╩п╟я│я┌п╦ п©п╟п╪я▐я┌п╦: %s.\n"
+#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] %d bpp п╡я▀п╡п╬п╢ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐\n(п╜я┌п╬пЁп╬ п╫п╦п╨п╬пЁп╢п╟ п╫п╣ п╢п╬п╩п╤п╫п╬ п©я─п╬п╦я│я┘п╬п╢п╦я┌я▄).\n"
+#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] п·п╧! п╖я┌п╬-я┌п╬ п╫п╣ п╡ п©п╬я─я▐п╢п╨п╣ я│ control().\n"
+#define MSGTR_LIBVO_TDFXFB_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] п²п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п©п╟п╪я▐я┌п╦ п╢п╩я▐ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐ я█я┌п╬пЁп╬ я└п╦п╩я▄п╪п╟.\nп÷п╬п©я─п╬п╠я┐п╧я┌п╣ п╪п╣п╫я▄я┬п╣п╣ я─п╟п╥я─п╣я┬п╣п╫п╦п╣.\n"
+#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] п╜п╨я─п╟п╫ %dx%d п╦ %d bpp, п╡я┘п╬п╢п╫я▀п╣ п╢п╟п╫п╫я▀п╣ %dx%d п╦ %d bpp, я─п╣п╤п╦п╪ %dx%d.\n"
+
+// libvo/vo_tga.c
+#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ п©п╬п╢я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
+
+// libvo/vo_vesa.c
+#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] п▓п╬п╥п╫п╦п╨п╩п╟ я└п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟! п²п╣ п╪п╬пЁя┐ п©я─п╬п╢п╬п╩п╤п╦я┌я▄.\n"
+#define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] п╫п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ п©п╬п╢я┐я│я┌я─п╬п╧я│я┌п╡п╬: '%s'.\n"
+#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] пё п▓п╟я│ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╬ п╡п╦п╢п╣п╬п©п╟п╪я▐я┌п╦ п╢п╩я▐ я█я┌п╬пЁп╬ я─п╣п╤п╦п╪п╟:\n[VO_VESA] п²п╣п╬п╠я┘п╬п╢п╦п╪п╬: %08lX п╦п╪п╣п╣я┌я│я▐: %08lX.\n"
+#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] п▓п╟п╪ п╫я┐п╤п╫п╬ я┐п╨п╟п╥п╟я┌я▄ п╡п╬п╥п╪п╬п╤п╫п╬я│я┌п╦ п╪п╬п╫п╦я┌п╬я─п╟. п²п╣ п╦п╥п╪п╣п╫я▐я▌ я┤п╟я│я┌п╬я┌я┐ п╬п╠п╫п╬п╡п╩п╣п╫п╦я▐.\n"
+#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] п═п╣п╤п╦п╪ п╫п╣ я│п╬п╬я┌п╡п╣я┌я│я┌п╡я┐п╣я┌ п╬пЁя─п╟п╫п╦я┤п╣п╫п╦я▐п╪ п╪п╬п╫п╦я┌п╬я─п╟. п²п╣ п╦п╥п╪п╣п╫я▐я▌ я┤п╟я│я┌п╬я┌я┐ п╬п╠п╫п╬п╡п╩п╣п╫п╦я▐.\n"
+#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] п·п╠п╫п╟я─я┐п╤п╣п╫п╟ п╡п╫я┐я┌я─п╣п╫п╫я▐я▐ я└п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟: init п╡я▀п╥п╡п╟п╫ п╢п╬ preinit.\n"
+#define MSGTR_LIBVO_VESA_SwitchFlipIsNotSupported "[VO_VESA] п·п©я├п╦я▐ -flip п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
+#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] п▓п╬п╥п╪п╬п╤п╫п╟я▐ п©я─п╦я┤п╦п╫п╟: VBE2 BIOS п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
+#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] п²п╟п╧п╢п╣п╫ VESA VBE BIOS, п╡п╣я─я│п╦я▐ %x.%x, я─п╣п╡п╦п╥п╦я▐: %x.\n"
+#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] п▓п╦п╢п╣п╬п©п╟п╪я▐я┌я▄: %u п п╠.\n"
+#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] п▓п╬п╥п╪п╬п╤п╫п╬я│я┌п╦ VESA: %s %s %s %s %s.\n"
+#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!! п²п╦п╤п╣ п╠я┐п╢п╣я┌ п╡я▀п╡п╣п╢п╣п╫п╟ п╦п╫я└п╬я─п╪п╟я├п╦я▐ OEM !!!\n"
+#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] п▓я▀ п╢п╬п╩п╤п╫я▀ п╫п╦п╤п╣ п╡п╦п╢п╣я┌я▄ 5 я│я┌я─п╬п╨ п╦п╫я└п╬я─п╪п╟я├п╦п╦ OEM.\nп∙я│п╩п╦ п╫п╣я┌, я┐ п╡п╟я│ п╫п╣п╦я│п©я─п╟п╡п╫п╟я▐ vm86.\n"
+#define MSGTR_LIBVO_VESA_OemInfo "[VO_VESA] п≤п╫я└п╬я─п╪п╟я├п╦я▐ OEM: %s.\n"
+#define MSGTR_LIBVO_VESA_OemRevision "[VO_VESA] п═п╣п╡п╦п╥п╦я▐ OEM: %x.\n"
+#define MSGTR_LIBVO_VESA_OemVendor "[VO_VESA] п÷п╬я│я┌п╟п╡я┴п╦п╨ OEM: %s.\n"
+#define MSGTR_LIBVO_VESA_OemProductName "[VO_VESA] п²п╟п╦п╪п╣п╫п╬п╡п╟п╫п╦п╣ п©я─п╬п╢я┐п╨я┌п╟ OEM: %s.\n"
+#define MSGTR_LIBVO_VESA_OemProductRev "[VO_VESA] п═п╣п╡п╦п╥п╦я▐ п©я─п╬п╢я┐п╨я┌п╟ OEM: %s.\n"
+#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] п÷п╬п╢я│п╨п╟п╥п╨п╟: п■п╩я▐ я─п╟п╠п╬я┌я▀ п╒п▓-п╡я▀я┘п╬п╢п╟ п▓п╟п╪ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬ п©п╬п╢п╨п╩я▌я┤п╦я┌я▄ я─п╟п╥я┼я▒п╪ п╒п▓\n"\
+"[VO_VESA] п╢п╬ п╥п╟пЁя─я┐п╥п╨п╦, я┌.п╨. VESA BIOS п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─я┐п╣я┌я│я▐ я┌п╬п╩я▄п╨п╬ п╡ п©я─п╬я├п╣я│я│п╣ POST.\n"
+#define MSGTR_LIBVO_VESA_UsingVesaMode "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ VESA (%u) = %x [%ux%u@%u]\n"
+#define MSGTR_LIBVO_VESA_CantInitializeSwscaler "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п©я─п╬пЁя─п╟п╪п╪п╫п╬п╣ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣.\n"
+#define MSGTR_LIBVO_VESA_CantUseDga "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ DGA. п╓п╬я─я│п╦я─я┐я▌ я─п╣п╤п╦п╪ п╨п╬п╪п╪я┐я┌п╟я├п╦п╦ я│п╣пЁп╪п╣п╫я┌п╬п╡. :(\n"
+#define MSGTR_LIBVO_VESA_UsingDga "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ DGA (я└п╦п╥п╦я┤п╣я│п╨п╦п╣ я─п╣я│я┐я─я│я▀: %08lXh, %08lXh)"
+#define MSGTR_LIBVO_VESA_CantUseDoubleBuffering "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╡п╬п╧п╫я┐я▌ п╠я┐я└п╣я─п╦п╥п╟я├п╦я▌: п╫п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п╡п╦п╢п╣п╬п©п╟п╪я▐я┌п╦.\n"
+#define MSGTR_LIBVO_VESA_CantFindNeitherDga "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╫п╦ DGA п╫п╦ п©п╣я─п╣п╪п╣я│я┌п╦п╪п╬пЁп╬ я└я─п╣п╧п╪п╟ п╬п╨п╫п╟.\n"
+#define MSGTR_LIBVO_VESA_YouveForcedDga "[VO_VESA] п▓я▀ я└п╬я─я│п╦я─п╬п╡п╟п╩п╦ DGA. п▓я▀я┘п╬п╤я┐\n"
+#define MSGTR_LIBVO_VESA_CantFindValidWindowAddress "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╟п╢я─п╣я│ п╬п╨п╫п╟.\n"
+#define MSGTR_LIBVO_VESA_UsingBankSwitchingMode "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ п╨п╬п╪п╪я┐я┌п╟я├п╦п╦ я│п╣пЁп╪п╣п╫я┌п╬п╡\n(я└п╦п╥п╦я┤п╣я│п╨п╦п╣ я─п╣я│я┐я─я│я▀: %08lXh, %08lXh).\n"
+#define MSGTR_LIBVO_VESA_CantAllocateTemporaryBuffer "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╡я─п╣п╪п╣п╫п╫я▀п╧ п╠я┐я└п╣я─.\n"
+#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] п≤п╥п╡п╦п╫п╦я┌п╣, п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я─п╣п╤п╦п╪ -- п©п╬п©я─п╬п╠я┐п╧я┌п╣ -x 640 -zoom.\n"
+#define MSGTR_LIBVO_VESA_OhYouReallyHavePictureOnTv "[VO_VESA] п·, я┐ п▓п╟я│ п╢п╣п╧я│я┌п╡п╦я┌п╣п╩я▄п╫п╬ п╣я│я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╫п╟ п╒п▓!\n"
+#define MSGTR_LIBVO_VESA_CantInitialozeLinuxVideoOverlay "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п▓п╦п╢п╣п╬п╡п╣я─п╩п╣п╧ Linux.\n"
+#define MSGTR_LIBVO_VESA_UsingVideoOverlay "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ п╡п╦п╢п╣п╬п╬п╡п╣я─п╩п╣п╧: %s.\n"
+#define MSGTR_LIBVO_VESA_CantInitializeVidixDriver "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╢я─п╟п╧п╡п╣я─ VIDIX.\n"
+#define MSGTR_LIBVO_VESA_UsingVidix "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ VIDIX.\n"
+#define MSGTR_LIBVO_VESA_CantFindModeFor "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ я─п╣п╤п╦п╪ п╢п╩я▐: %ux%u@%u.\n"
+#define MSGTR_LIBVO_VESA_InitializationComplete "[VO_VESA] п≤п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ VESA п╥п╟п╡п╣я─я┬п╣п╫п╟.\n"
+
+// libvo/vesa_lvo.c
+#define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] п╜я┌п╟ п╡п╣я┌п╨п╟ п╠п╬п╩я▄я┬п╣ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n[VESA_LVO] п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vo vesa:vidix п╡п╥п╟п╪п╣п╫.\n"
+#define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄: '%s'\n"
+#define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] п²п╣п╡п╣я─п╫я▀п╧ п╡я▀я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌: %s(%0X)\n"
+#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] п▓п╣я─я│п╦я▐ п╡п╟я┬п╣пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ fb_vid п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪п╟ я│ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧ MPlayer!\n"
+
+// libvo/vo_x11.c
+#define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] п▓я▀п╥п╡п╟п╫ draw_frame()!!!!!!\n"
+
+// libvo/vo_xv.c
+#define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] п▓я▀п╥п╡п╟п╫ draw_frame()!!!!!!\n"
+#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] п═п╟п╥п╢п╣п╩я▐п╣п╪п╟я▐ п©п╟п╪я▐я┌я▄ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐\nп▓п╬п╥п╡я─п╟я┌ п╨ п╬п╠я▀я┤п╫п╬п╪я┐ Xv.\n"
+#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] п≤п╥п╡п╦п╫п╦я┌п╣, Xv п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧/п╢я─п╟п╧п╡п╣я─п╬п╪ X11\n[VO_XV] ******** п÷п╬п©я─п╬п╠я┐п╧я┌п╣ -vo x11 п╦п╩п╦ -vo sdl *********\n"
+#define MSGTR_LIBVO_XV_XvQueryAdaptorsFailed "[VO_XV] п·я┬п╦п╠п╨п╟ XvQueryAdaptors.\n"
+#define MSGTR_LIBVO_XV_InvalidPortParameter "[VO_XV] п²п╣п╡п╣я─п╫я▀п╧ п©п╟я─п╟п╪п╣я┌я─ port, п©п╣я─п╣п╬п©я─п╣п╢п╣п╩п╣п╫п╦п╣ п©п╟я─п╟п╪п╣я┌я─п╬п╪ port 0.\n"
+#define MSGTR_LIBVO_XV_CouldNotGrabPort "[VO_XV] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╥п╟я┘п╡п╟я┌п╦я┌я▄ п©п╬я─я┌ %i.\n"
+#define MSGTR_LIBVO_XV_CouldNotFindFreePort "[VO_XV] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ я│п╡п╬п╠п╬п╢п╫я▀п╧ Xvideo п©п╬я─я┌ - п╡п╬п╥п╪п╬п╤п╫п╬ п╢я─я┐пЁп╬п╣ п©я─п╦п╩п╬п╤п╣п╫п╦п╣\n"\
+"[VO_XV] я┐п╤п╣ п╣пЁп╬ п╦я│п©п╬п╩я▄п╥я┐п╣я┌. п≈п╟п╨я─п╬п╧я┌п╣ п╡я│п╣ п©я─п╬пЁя─п╟п╪п╪я▀ п╡п╦п╢п╣п╬, п╦ п©п╬п©я▀я┌п╟п╧я┌п╣я│я▄ я│п╫п╬п╡п╟. п∙я│п╩п╦ я█я┌п╬\n"\
+"[VO_XV] п╫п╣ п©п╬п╪п╬пЁп╟п╣я┌, я│п╪п╬я┌я─п╦я┌п╣ п╢я─я┐пЁп╦п╣ (п╫п╣-xv) п╢я─п╟п╧п╡п╣я─я▀ п╡ п╡я▀п╡п╬п╢п╣ 'mplayer -vo help'.\n"
+#define MSGTR_LIBVO_XV_NoXvideoSupport "[VO_XV] п÷п╬я┘п╬п╤п╣, п╡п╟я┬п╟ п╨п╟я─я┌п╟ п╫п╣ п╦п╪п╣п╣я┌ п©п╬п╢п╢п╣я─п╤п╨п╦ Xvideo.\n"\
+"[VO_XV] п≈п╟п©я┐я│я┌п╦я┌п╣ 'xvinfo', я┤я┌п╬п╠я▀ п©я─п╬п╡п╣я─п╦я┌я▄ п©п╬п╢п╢п╣я─п╤п╨я┐ Xv п╦ п©я─п╬я┤я┌п╦я┌п╣ \n"\
+"[VO_XV] DOCS/HTML/ru/video.html#xv!\n"\
+"[VO_XV] п■я─я┐пЁп╦п╣ (п╫п╣-xv) п╢я─п╟п╧п╡п╣я─я▀ п╦я┴п╦я┌п╣ п╡ п╡я▀п╡п╬п╢п╣ 'mplayer -vo help'.\n"\
+"[VO_XV] п÷п╬п©я─п╬п╠я┐п╧я┌п╣ -vo x11.\n"
+#define MSGTR_VO_XV_ImagedimTooHigh "п═п╟п╥п╪п╣я─я▀ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╦я│я┌п╬я┤п╫п╦п╨п╟ я│п╩п╦я┬п╨п╬п╪ п╡п╣п╩п╦п╨п╦: %ux%u (п╪п╟п╨я│п╦п╪я┐п╪ %ux%u)\n"
+
// vo_yuv4mpeg.c
#define MSGTR_VO_YUV4MPEG_InterlacedHeightDivisibleBy4 "п■п╩я▐ я─п╣п╤п╦п╪п╟ c я┤п╣я─п╣я│я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╬п╧ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬, я┤я┌п╬п╠я▀ п╡я▀я│п╬я┌п╟ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐\nп╢п╣п╩п╦п╩п╟я│я▄ п╫п╟ 4."
#define MSGTR_VO_YUV4MPEG_InterlacedLineBufAllocFail "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ п╢п╩я▐ п╩п╦п╫п╣п╧п╫п╬пЁп╬ п╠я┐я└п╣я─п╟ п╡ я─п╣п╤п╦п╪п╣ я┤п╣я─п╣я│я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╦."
@@ -1066,40 +1110,49 @@ static char help_text[]=
#define MSGTR_VO_YUV4MPEG_NoMemRGBFrameBuf "п²п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п©п╟п╪я▐я┌п╦ п╢п╩я▐ я─п╟п╥п╪п╣я┴п╣п╫п╦я▐ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ RGB."
#define MSGTR_VO_YUV4MPEG_OutFileOpenError "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ п╦п╩п╦ я└п╟п╧п╩п╬п╡я▀п╧ п╬п©п╦я│п╟я┌п╣п╩я▄ п╢п╩я▐ п╥п╟п©п╦я│п╦ \"%s\"!"
#define MSGTR_VO_YUV4MPEG_OutFileWriteError "п·я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╡ п╡я▀п╡п╬п╢!"
-#define MSGTR_VO_YUV4MPEG_UnknownSubDev "п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│я┐п╠я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s"
+#define MSGTR_VO_YUV4MPEG_UnknownSubDev "п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ п©п╬п╢я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s"
#define MSGTR_VO_YUV4MPEG_InterlacedTFFMode "п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ п╡я▀п╡п╬п╢п╟ я│ я┤п╣я─п╣я│я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╬п╧, п╡п╣я─я┘п╫п╣п╣ п©п╬п╩п╣ п©п╣я─п╡п╬п╣."
#define MSGTR_VO_YUV4MPEG_InterlacedBFFMode "п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ п╡я▀п╡п╬п╢п╟ я│ я┤п╣я─п╣я│я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╬п╧, п╫п╦п╤п╫п╣п╣ п©п╬п╩п╣ п©п╣я─п╡п╬п╣."
#define MSGTR_VO_YUV4MPEG_ProgressiveMode "п≤я│п©п╬п╩я▄п╥я┐я▌ (п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌) я─п╣п╤п╦п╪ п©п╬я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╦ п╨п╟п╢я─п╬п╡."
-// sub.c
-#define MSGTR_VO_SUB_Seekbar "п²п╟п╡п╦пЁп╟я├п╦я▐"
-#define MSGTR_VO_SUB_Play "п▓п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣"
-#define MSGTR_VO_SUB_Pause "п÷п╟я┐п╥п╟"
-#define MSGTR_VO_SUB_Stop "п║я┌п╬п©"
-#define MSGTR_VO_SUB_Rewind "п²п╟п╥п╟п╢"
-#define MSGTR_VO_SUB_Forward "п▓п©п╣я─я▒п╢"
-#define MSGTR_VO_SUB_Clock "п▓я─п╣п╪я▐"
-#define MSGTR_VO_SUB_Contrast "п п╬п╫я┌я─п╟я│я┌"
-#define MSGTR_VO_SUB_Saturation "п²п╟я│я▀я┴п╣п╫п╫п╬я│я┌я▄"
-#define MSGTR_VO_SUB_Volume "п⌠я─п╬п╪п╨п╬я│я┌я▄"
-#define MSGTR_VO_SUB_Brightness "п╞я─п╨п╬я│я┌я▄"
-#define MSGTR_VO_SUB_Hue "п╕п╡п╣я┌"
-#define MSGTR_VO_SUB_Balance "п▒п╟п╩п╟п╫я│"
+// vosub_vidix.c
+#define MSGTR_LIBVO_SUB_VIDIX_CantStartPlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟я┤п╟я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CantStopPlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╬я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s\n"
+#define MSGTR_LIBVO_SUB_VIDIX_InterleavedUvForYuv410pNotSupported "[VO_SUB_VIDIX] п║п╩п╬я▒п╫я▀п╧ UV п╢п╩я▐ YUV410P п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawsliceWasCalled "[VO_SUB_VIDIX] п▒я▀п╩ п╡я▀п╥п╡п╟п╫ я└п╦п╨я┌п╦п╡п╫я▀п╧ vidix_draw_slice().\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawframeWasCalled "[VO_SUB_VIDIX] п▒я▀п╩ п╡я▀п╥п╡п╟п╫ я└п╦п╨я┌п╦п╡п╫я▀п╧ vidix_draw_frame().\n"
+#define MSGTR_LIBVO_SUB_VIDIX_UnsupportedFourccForThisVidixDriver "[VO_SUB_VIDIX] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ FourCC п╢п╩я▐ я█я┌п╬пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ VIDIX: %x (%s).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedResolution "[VO_SUB_VIDIX] пё я│п╣я─п╡п╣я─п╟ п╡п╦п╢п╣п╬ я─п╟п╥я─п╣я┬п╣п╫п╦п╣ (%dx%d) п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐,\nп©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪п╬п╣: %dx%d-%dx%d.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedColorDepth "[VO_SUB_VIDIX] п║п╣я─п╡п╣я─ п╡п╦п╢п╣п╬ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ пЁп╩я┐п╠п╦п╫я┐ я├п╡п╣я┌п╟ vidix (%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DriverCantUpscaleImage "[VO_SUB_VIDIX] п■я─п╟п╧п╡п╣я─ VIDIX п╫п╣ п╪п╬п╤п╣я┌ я┐п╡п╣п╩п╦я┤п╦я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ (%d%d -> %d%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_DriverCantDownscaleImage "[VO_SUB_VIDIX] п■я─п╟п╧п╡п╣я─ VIDIX п╫п╣ п╪п╬п╤п╣я┌ я┐п╪п╣п╫я▄я┬п╦я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ (%d%d -> %d%d).\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CantConfigurePlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟я│я┌я─п╬п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_YouHaveWrongVersionOfVidixLibrary "[VO_SUB_VIDIX] пё п▓п╟я│ п╫п╣п╡п╣я─п╫п╟я▐ п╡п╣я─я│п╦я▐ п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦ VIDIX.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CouldntFindWorkingVidixDriver "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ я─п╟п╠п╬я┌п╟я▌я┴п╦п╧ п╢я─п╟п╧п╡п╣я─ VIDIX.\n"
+#define MSGTR_LIBVO_SUB_VIDIX_CouldntGetCapability "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╡п╬п╥п╪п╬п╤п╫п╬я│я┌я▄: %s.\n"
-// vo_xv.c
-#define MSGTR_VO_XV_ImagedimTooHigh "п═п╟п╥п╪п╣я─я▀ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╦я│я┌п╬я┤п╫п╦п╨п╟ я│п╩п╦я┬п╨п╬п╪ п╡п╣п╩п╦п╨п╦: %ux%u (п╪п╟п╨я│п╦п╪я┐п╪ %ux%u)\n"
+// x11_common.c
+#define MSGTR_EwmhFullscreenStateFailed "\nX11: п²п╣ п╪п╬пЁя┐ п©п╬я│п╩п╟я┌я▄ я│п╬п╠я▀я┌п╦п╣ EWMH fullscreen!\n"
+#define MSGTR_CouldNotFindXScreenSaver "xscreensaver_disable: п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╬п╨п╫п╬ XScreenSaver'п╟.\n"
+#define MSGTR_SelectedVideoMode "XF86VM: п▓я▀п╠я─п╟п╫ п╡п╦п╢п╣п╬я─п╣п╤п╦п╪ %dx%d п╢п╩я▐ я─п╟п╥п╪п╣я─п╟ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ %dx%d.\n"
-// Old vo drivers that have been replaced
+#define MSGTR_InsertingAfVolume "[п°п╦п╨я┬п╣я─] п²п╣я┌ п╟п©п©п╟я─п╟я┌п╫п╬пЁп╬ п╪п╦п╨я┬п╦я─п╬п╡п╟п╫п╦я▐, п╡я│я┌п╟п╡п╩я▐я▌ я└п╦п╩я▄я┌я─ пЁя─п╬п╪п╨п╬я│я┌п╦.\n"
+#define MSGTR_NoVolume "[п°п╦п╨я┬п╣я─] п п╬п╫я┌я─п╬п╩я▄ пЁя─п╬п╪п╨п╬я│я┌п╦ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
+#define MSGTR_NoBalance "[п°п╦п╨я┬п╣я─] пёп©я─п╟п╡п╩п╣п╫п╦п╣ п╠п╟п╩п╟п╫я│п╬п╪ п╫п╣п╢п╬я│я┌я┐п©п╫п╬.\n"
+// old vo drivers that have been replaced
#define MSGTR_VO_PGM_HasBeenReplaced "п■я─п╟п╧п╡п╣я─ п╡п╦п╢п╣п╬п╡я▀п╡п╬п╢п╟ pgm п╠я▀п╩ п╥п╟п╪п╣п╫я▒п╫ -vo pnm:pgmyuv.\n"
#define MSGTR_VO_MD5_HasBeenReplaced "п■я─п╟п╧п╡п╣я─ п╡п╦п╢п╣п╬п╡я▀п╡п╬п╢п╟ md5 п╠я▀п╩ п╥п╟п╪п╣п╫я▒п╫ -vo md5sum.\n"
-// ======================= AO Audio Output drivers ========================
-// libao2
+// ======================= audio output drivers ========================
// audio_out.c
#define MSGTR_AO_ALSA9_1x_Removed "п╟я┐п╢п╦п╬п╡я▀п╡п╬п╢: п╪п╬п╢я┐п╩п╦ alsa9 п╦ alsa1x п╠я▀п╩п╦ я┐п╢п╟п╩п╣п╫я▀, п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -ao alsa п╡п╥п╟п╪п╣п╫.\n"
+#define MSGTR_AO_TryingPreferredAudioDriver "п÷я─п╬п╠я┐я▌ п©я─п╣п╢п©п╬я┤я┌я▒п╫п╫я▀п╧ п╟я┐п╢п╦п╬ п╢я─п╟п╧п╡п╣я─ '%.*s' я│ п╬п©я├п╦я▐п╪п╦ '%s'\n"
+#define MSGTR_AO_NoSuchDriver "п·я┌я│я┐я┌я│я┌п╡я┐п╣я┌ п╟я┐п╢п╦п╬ п╢я─п╟п╧п╡п╣я─ '%.*s'\n"
+#define MSGTR_AO_FailedInit "п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╟я┐п╢п╦п╬ п╢я─п╟п╧п╡п╣я─ '%s'\n"
+#define MSGTR_AO_TryingEveryKnown "п÷я─п╬п╠я┐я▌ п╨п╟п╤п╢я▀п╧ п╦п╥п╡п╣я│я┌п╫я▀п╧ п╟я┐п╢п╦п╬ п╢я─п╟п╧п╡п╣я─...\n"
// ao_oss.c
#define MSGTR_AO_OSS_CantOpenMixer "[AO OSS] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ п╟я┐п╢п╦п╬: п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╪п╦п╨я┬п╣я─п╟ %s: %s\n"
@@ -1133,12 +1186,9 @@ static char help_text[]=
#define MSGTR_AO_MPEGPES_CantSetMixer "[AO MPEGPES] DVB п╟я┐п╢п╦п╬: п╫п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╪п╦п╨я┬п╣я─: %s\n"
#define MSGTR_AO_MPEGPES_UnsupSamplerate "[AO MPEGPES] %d п⌠я├ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐, п©п╬п©я─п╬п╠я┐п╧я┌п╣ п╦п╥п╪п╣п╫п╦я┌я▄\nя┤п╟я│я┌п╬я┌я┐ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦.\n"
-// ao_null.c
-// This one desn't even have any mp_msg nor printf's?? [CHECK]
-
// ao_pcm.c
#define MSGTR_AO_PCM_FileInfo "[AO PCM] п╓п╟п╧п╩: %s (%s)\nPCM: п╖п╟я│я┌п╬я┌п╟ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦: %i п⌠я├ п п╟п╫п╟п╩я▀: %s п╓п╬я─п╪п╟я┌ %s\n"
-#define MSGTR_AO_PCM_HintInfo "[AO PCM] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п╫п╟п╦п╠п╬п╩п╣п╣ п╠я▀я│я┌я─я▀п╧ п╢п╟п╪п©п╦п╫пЁ п╢п╬я│я┌п╦пЁп╟п╣я┌я│я▐ я│ -vc null -vo null\n[AO PCM]: п≤п╫я└п╬я─п╪п╟я├п╦я▐: -ao pcm:fast. п■п╩я▐ п╥п╟п©п╦я│п╦ WAVE я└п╟п╧п╩п╬п╡ п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣\n[AO PCM]: п≤п╫я└п╬я─п╪п╟я├п╦я▐: -ao pcm:waveheader (п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌).\n"
+#define MSGTR_AO_PCM_HintInfo "[AO PCM] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п╫п╟п╦п╠п╬п╩п╣п╣ п╠я▀я│я┌я─я▀п╧ п╢п╟п╪п© п╢п╬я│я┌п╦пЁп╟п╣я┌я│я▐ я│ -vc null -vo null\n[AO PCM]: п≤п╫я└п╬я─п╪п╟я├п╦я▐: -ao pcm:fast. п■п╩я▐ п╥п╟п©п╦я│п╦ WAVE я└п╟п╧п╩п╬п╡ п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣\n[AO PCM]: п≤п╫я└п╬я─п╪п╟я├п╦я▐: -ao pcm:waveheader (п©п╬ я┐п╪п╬п╩я┤п╟п╫п╦я▌).\n"
#define MSGTR_AO_PCM_CantOpenOutputFile "[AO PCM] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s п╢п╩я▐ п╥п╟п©п╦я│п╦!\n"
// ao_sdl.c
@@ -1157,7 +1207,7 @@ static char help_text[]=
#define MSGTR_AO_SGI_CantGetParms "[AO SGI] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: п╬я┬п╦п╠п╨п╟ п©п╬п╩я┐я┤п╣п╫п╦я▐ п©п╟я─п╟п╪п╣я┌я─п╬п╡: %s\n"
#define MSGTR_AO_SGI_SampleRateInfo "[AO SGI] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: я┤п╟я│я┌п╬я┌п╟ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦ я┌п╣п©п╣я─я▄ %lf (я┌я─п╣п╠я┐п╣п╪п╟я▐ я┤п╟я│я┌п╬я┌п╟ %lf)\n"
#define MSGTR_AO_SGI_InitConfigError "[AO SGI] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: %s\n"
-#define MSGTR_AO_SGI_InitOpenAudioFailed "[AO SGI] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: п²п╣ п╪п╬пЁя┐ п╬я┌я┐я─я▀я┌я▄ п╟я┐п╢п╦п╬п╨п╟п╫п╟п╩: %s\n"
+#define MSGTR_AO_SGI_InitOpenAudioFailed "[AO SGI] п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╨п╟п╫п╟п╩ п╟я┐п╢п╦п╬: %s\n"
#define MSGTR_AO_SGI_Uninit "[AO SGI] п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐: ...\n"
#define MSGTR_AO_SGI_Reset "[AO SGI] я│п╠я─п╬я│: ...\n"
#define MSGTR_AO_SGI_PauseInfo "[AO SGI] п©п╟я┐п╥п╟ п╟я┐п╢п╦п╬: ...\n"
@@ -1202,7 +1252,7 @@ static char help_text[]=
#define MSGTR_AO_ALSA_MixerAttachError "[AO_ALSA] п·я┬п╦п╠п╨п╟ п©я─п╦я│п╬п╣п╢п╦п╫п╣п╫п╦я▐ %s п╨ п╪п╦п╨я┬п╣я─я┐: %s\n"
#define MSGTR_AO_ALSA_MixerRegisterError "[AO_ALSA] п·я┬п╦п╠п╨п╟ я─п╣пЁп╦я│я┌я─п╟я├п╦п╦ п╪п╦п╨я┬п╣я─п╟: %s\n"
#define MSGTR_AO_ALSA_MixerLoadError "[AO_ALSA] п·я┬п╦п╠п╨п╟ п╥п╟пЁя─я┐п╥п╨п╦ п╪п╦п╨я┬п╣я─п╟: %s\n"
-#define MSGTR_AO_ALSA_UnableToFindSimpleControl "[AO_ALSA] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п©я─п╬я│я┌п╬п╧ я█п╩п╪п╣п╫я┌ я┐п©я─п╟п╡п╩п╣п╫п╦я▐ '%s',%i.\n"
+#define MSGTR_AO_ALSA_UnableToFindSimpleControl "[AO_ALSA] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п©я─п╬я│я┌п╬п╧ я█п╩п╣п╪п╣п╫я┌ я┐п©я─п╟п╡п╩п╣п╫п╦я▐ '%s',%i.\n"
#define MSGTR_AO_ALSA_ErrorSettingLeftChannel "[AO_ALSA] п·я┬п╦п╠п╨п╟ я┐я│я┌п╟п╫п╬п╡п╨п╦ п╩п╣п╡п╬пЁп╬ п╨п╟п╫п╟п╩п╟, %s\n"
#define MSGTR_AO_ALSA_ErrorSettingRightChannel "[AO_ALSA] п·я┬п╦п╠п╨п╟ я┐я│я┌п╟п╫п╬п╡п╨п╦ п©я─п╟п╡п╬пЁп╬ п╨п╟п╫п╟п╩п╟, %s\n"
#define MSGTR_AO_ALSA_CommandlineHelp "\n[AO_ALSA] п©п╬п╢я│п╨п╟п╥п╨п╟ п╨п╬п╪п╟п╫п╢п╫п╬п╧ я│я┌я─п╬п╨п╦ -ao alsa:\n"\
@@ -1245,26 +1295,25 @@ static char help_text[]=
#define MSGTR_AO_ALSA_PcmDropError "[AO_ALSA] п╬я┬п╦п╠п╨п╟ pcm drop: %s\n"
#define MSGTR_AO_ALSA_PcmResumeError "[AO_ALSA] п╬я┬п╦п╠п╨п╟ pcm resume: %s\n"
#define MSGTR_AO_ALSA_DeviceConfigurationError "[AO_ALSA] п·я┬п╦п╠п╨п╟ п╫п╟я│я┌я─п╬п╧п╨п╦ я┐я│я┌я─п╬п╧я│я┌п╡п╟."
-#define MSGTR_AO_ALSA_PcmInSuspendModeTryingResume "[AO_ALSA] Pcm п╡ п╤п╢я┐я┴п╣п╪ п╡п╣п╤п╦п╪п╣, п©п╬п©я▀я┌п╨п╟ п©я─п╬п╢п╬п╩п╤п╦я┌я▄.\n"
+#define MSGTR_AO_ALSA_PcmInSuspendModeTryingResume "[AO_ALSA] Pcm п╡ п╤п╢я┐я┴п╣п╪ я─п╣п╤п╦п╪п╣, п©п╬п©я▀я┌п╨п╟ п©я─п╬п╢п╬п╩п╤п╦я┌я▄.\n"
#define MSGTR_AO_ALSA_WriteError "[AO_ALSA] п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦: %s\n"
#define MSGTR_AO_ALSA_TryingToResetSoundcard "[AO_ALSA] п©п╬п©я▀я┌п╨п╟ я│п╠я─п╬я│п╦я┌я▄ п╥п╡я┐п╨п╬п╡я┐я▌ п╨п╟я─я┌я┐.\n"
#define MSGTR_AO_ALSA_CannotGetPcmStatus "[AO_ALSA] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╩я┐я┤п╦я┌я▄ pcm я│я┌п╟я┌я┐я│: %s\n"
// ao_plugin.c
-
#define MSGTR_AO_PLUGIN_InvalidPlugin "[AO п÷п⌡п░п⌠п≤п²] п╫п╣п╡п╣я─п╫я▀п╧ п©п╩п╟пЁп╦п╫: %s\n"
-// ======================= AF Audio Filters ================================
-// libaf
+// ======================= audio filters ================================
+
+// af_scaletempo.c
#define MSGTR_AF_ValueOutOfRange MSGTR_VO_ValueOutOfRange
// af_ladspa.c
-
#define MSGTR_AF_LADSPA_AvailableLabels "п╢п╬я│я┌я┐п©п╫я▀п╣ п╪п╣я┌п╨п╦ п╡"
-#define MSGTR_AF_LADSPA_WarnNoInputs "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙! пё я█я┌п╬пЁп╬ LADSPA п©п╩п╟пЁп╦п╫п╟ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┌ п╟я┐п╢п╦п╬п╡я┘п╬п╢я▀.\n п▓я┘п╬п╢я▐я┴п╦п╧ п╟я┐п╢п╦п╬я│п╦пЁп╫п╟п╩ п╠я┐п╢п╣я┌ п©п╬я┌п╣я─я▐п╫."
+#define MSGTR_AF_LADSPA_WarnNoInputs "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙! пё я█я┌п╬пЁп╬ LADSPA п©п╩п╟пЁп╦п╫п╟ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┌ п╟я┐п╢п╦п╬п╡я┘п╬п╢я▀.\n п▓я┘п╬п╢я▐я┴п╦п╧ я│п╦пЁп╫п╟п╩ п╟я┐п╢п╦п╬ п╠я┐п╢п╣я┌ п©п╬я┌п╣я─я▐п╫."
#define MSGTR_AF_LADSPA_ErrMultiChannel "п°я┐п╩я▄я┌п╦п╨п╟п╫п╟п╩я▄п╫я▀п╣ (>2) п©п╩п╟пЁп╦п╫я▀ п©п╬п╨п╟ я┤я┌п╬ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟я▌я┌я│я▐.\n п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ я┌п╬п╩я▄п╨п╬ п╪п╬п╫п╬- п╦ я│я┌п╣я─п╣п╬п©п╩п╟пЁп╦п╫я▀."
-#define MSGTR_AF_LADSPA_ErrNoOutputs "пё я█я┌п╬пЁп╬ LADSPA п©п╩п╟пЁп╦п╫п╟ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┌ п╟я┐п╢п╦п╬п╡я▀я┘п╬п╢я▀."
+#define MSGTR_AF_LADSPA_ErrNoOutputs "пё я█я┌п╬пЁп╬ LADSPA п©п╩п╟пЁп╦п╫п╟ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┌ п╡я▀я┘п╬п╢я▀ п╟я┐п╢п╦п╬."
#define MSGTR_AF_LADSPA_ErrInOutDiff "п╖п╦я│п╩п╬ п╟я┐п╢п╦п╬п╡я┘п╬п╢п╬п╡ п╦ п╟я┐п╢п╦п╬п╡я▀я┘п╬п╢п╬п╡ я┐ LADSPA п©п╩п╟пЁп╦п╫п╟ п╬я┌п╩п╦я┤п╟п╣я┌я│я▐."
#define MSGTR_AF_LADSPA_ErrFailedToLoad "п╫п╣ п╪п╬пЁя┐ п╥п╟пЁя─я┐п╥п╦я┌я▄"
#define MSGTR_AF_LADSPA_ErrNoDescriptor "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ я└я┐п╫п╨я├п╦я▌ ladspa_descriptor() п╡ я┐п╨п╟п╥п╟п╫п╫п╬п╪ я└п╟п╧п╩п╣ п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦."
@@ -1276,153 +1325,33 @@ static char help_text[]=
#define MSGTR_AF_LADSPA_ErrControlBelow "%s: п▓я┘п╬п╢п╫п╬п╧ п©п╟я─п╟п╪п╣я┌я─ #%d п╪п╣п╫я▄я┬п╣ п╫п╦п╤п╫п╣п╧ пЁя─п╟п╫п╦я├я▀ %0.4f.\n"
#define MSGTR_AF_LADSPA_ErrControlAbove "%s: п▓я┘п╬п╢п╫п╬п╧ п©п╟я─п╟п╪п╣я┌я─ #%d п╠п╬п╩я▄я┬п╣ п╡п╣я─я┘п╫п╣п╧ пЁя─п╟п╫п╦я├я▀ %0.4f.\n"
-
-// loader/ldt_keeper.c
-
-#define MSGTR_LOADER_DYLD_Warning "п▓п²п≤п°п░п²п≤п∙: п©п╬п©я▀я┌п╨п╟ п╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦я▐ DLL п╨п╬п╢п╣п╨п╬п╡ п╠п╣п╥ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫п╬п╧ п©п╣я─п╣п╪п╣п╫п╫п╬п╧ \n п╬п╨я─я┐п╤п╣п╫п╦я▐ DYLD_BIND_AT_LAUNCH. п╜я┌п╬ я│п╨п╬я─п╣п╣ п╡я│п╣пЁп╬ п©я─п╦п╡п╣п╢п╣я┌ п╨ п╨я─п╟я┘я┐.\n"
-
-// stream/stream_radio.c
-
-#define MSGTR_RADIO_ChannelNamesDetected "[radio] п·п╠п╫п╟я─я┐п╤п╣п╫я▀ п╦п╪п╣п╫п╟ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧.\n"
-#define MSGTR_RADIO_FreqRange "[radio] п■п╬п©я┐я│я┌п╦п╪я▀п╧ п╢п╦п╟п©п╟п╥п╬п╫ я┤п╟я│я┌п╬я┌: %.2f-%.2f п°п⌠я├.\n"
-#define MSGTR_RADIO_WrongFreqForChannel "[radio] п²п╣п╡п╣я─п╫п╟я▐ я┤п╟я│я┌п╬я┌п╟ п╢п╩я▐ я│я┌п╟п╫я├п╦п╦ %s\n"
-#define MSGTR_RADIO_WrongChannelNumberFloat "[radio] п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ я│я┌п╟п╫я├п╦п╦: %.2f\n"
-#define MSGTR_RADIO_WrongChannelNumberInt "[radio] п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ я│я┌п╟п╫я├п╦п╦: %d\n"
-#define MSGTR_RADIO_WrongChannelName "[radio] п²п╣п╡п╣я─п╫п╬п╣ п╫п╟п╥п╡п╟п╫п╦п╣ я│я┌п╟п╫я├п╦п╦: %s\n"
-#define MSGTR_RADIO_FreqParameterDetected "[radio] п▓ п©п╟я─п╟п╪п╣я┌я─п╟я┘ п╬п╠п╫п╟я─я┐п╤п╣п╫п╟ я┤п╟я│я┌п╬я┌п╟.\n"
-#define MSGTR_RADIO_DoneParsingChannels "[radio] п═п╟п╥п╠п╬я─ п╦п╪п╣п╫ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧ п╥п╟п╡п╣я─я┬п╣п╫.\n"
-#define MSGTR_RADIO_GetTunerFailed "[radio] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get tuner : %s. frac я┐я│я┌п╟п╫п╬п╡п╩п╣п╫ п╡ %d.\n"
-#define MSGTR_RADIO_NotRadioDevice "[radio] %s п╫п╣ я▐п╡п╩я▐п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪ я─п╟п╢п╦п╬!\n"
-#define MSGTR_RADIO_TunerCapLowYes "[radio] п╫п╦п╥п╨п╬я┤п╟я│я┌п╬я┌п╫я▀п╧ я┌я▌п╫п╣я─: п╢п╟ frac=%d\n"
-#define MSGTR_RADIO_TunerCapLowNo "[radio] п╫п╦п╥п╨п╬я┤п╟я│я┌п╬я┌п╫я▀п╧ я┌я▌п╫п╣я─: п╫п╣я┌ frac=%d\n"
-#define MSGTR_RADIO_SetFreqFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set frequency 0x%x (%.2f): %s\n"
-#define MSGTR_RADIO_GetFreqFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get frequency: %s\n"
-#define MSGTR_RADIO_SetMuteFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set mute: %s\n"
-#define MSGTR_RADIO_QueryControlFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl query control: %s\n"
-#define MSGTR_RADIO_GetVolumeFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get volume: %s\n"
-#define MSGTR_RADIO_SetVolumeFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set volume: %s\n"
-#define MSGTR_RADIO_DroppingFrame "\n[radio] п©п╬я┌п╣я─я▐п╫ п╟я┐п╢п╦п╬ я└я─п╣п╧п╪ (п╠п╟п╧я┌: %d)!\n"
-#define MSGTR_RADIO_BufferEmpty "[radio] grab_audio_frame: п╠я┐я└п╣я─ п©я┐я│я┌, п╬п╤п╦п╢п╟п╫п╦п╣ п╢п╟п╫п╫я▀я┘. п╠п╟п╧я┌: %d.\n"
-#define MSGTR_RADIO_AudioInitFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_init: %s\n"
-#define MSGTR_RADIO_AudioBuffer "[radio] п░я┐п╢п╦п╬ п╥п╟я┘п╡п╟я┌ - п╠я┐я└п╣я─=%d п╠п╟п╧я┌ (п╠п╩п╬п╨: %d п╠п╟п╧я┌).\n"
-#define MSGTR_RADIO_AllocateBufferFailed "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ я│п╬п╥п╢п╟я┌я▄ п╟я┐п╢п╦п╬ п╠я┐я└п╣я─ (п╠п╩п╬п╨=%d,я─п╟п╥п╪п╣я─=%d): %s\n"
-#define MSGTR_RADIO_CurrentFreq "[radio] п╒п╣п╨я┐я┴п╟я▐ я┤п╟я│я┌п╬я┌п╟: %.2f\n"
-#define MSGTR_RADIO_SelectedChannel "[radio] п▓я▀п╠я─п╟п╫п╟ я│я┌п╟п╫я├п╦я▐: %d - %s (я┤п╟я│я┌п╬я┌п╟: %.2f)\n"
-#define MSGTR_RADIO_ChangeChannelNoChannelList "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╦п╥п╪п╣п╫п╦я┌я▄ я│я┌п╟п╫я├п╦я▌: п╫п╣ п©п╣я─п╣п╢п╟п╫ я│п©п╦я│п╬п╨ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧.\n"
-#define MSGTR_RADIO_UnableOpenDevice "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╬я┌п╨я─я▀я┌я▄ '%s': %s\n"
-#define MSGTR_RADIO_RadioDevice "[radio] Radio fd: %d, %s\n"
-#define MSGTR_RADIO_InitFracFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ init_frac\n"
-#define MSGTR_RADIO_WrongFreq "[radio] п²п╣п╡п╣я─п╫п╟я▐ я┤п╟я│я┌п╬я┌п╟: %.2f\n"
-#define MSGTR_RADIO_UsingFreq "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я┤п╟я│я┌п╬я┌п╟: %.2f.\n"
-#define MSGTR_RADIO_AudioInInitFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_init\n"
-#define MSGTR_RADIO_BufferString "[radio] %s: п╡ п╠я┐я└п╣я─п╣: %d п©п╬я┌п╣я─я▐п╫п╬:%d\n"
-#define MSGTR_RADIO_AudioInSetupFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_setup: %s\n"
-#define MSGTR_RADIO_CaptureStarting "[radio] п≈п╟п©я┐я│п╨ п╪п╬п╢я┐п╩я▐ п╥п╟я┘п╡п╟я┌п╟.\n"
-#define MSGTR_RADIO_ClearBufferFailed "[radio] п·я┬п╦п╠п╨п╟ п╬я┤п╦я│я┌п╨п╦ п╠я┐я└п╣я─п╟: %s\n"
-#define MSGTR_RADIO_StreamEnableCacheFailed "[radio] п·я┬п╦п╠п╨п╟ п╡я▀п╥п╬п╡п╟ stream_enable_cache: %s\n"
-#define MSGTR_RADIO_DriverUnknownStr "[radio] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╢я─п╟п╧п╡п╣я─: %s\n"
-#define MSGTR_RADIO_DriverV4L "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ V4Lv1 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
-#define MSGTR_RADIO_DriverV4L2 "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ V4Lv2 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
-#define MSGTR_RADIO_DriverBSDBT848 "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ *BSD BT848 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
-#define MSGTR_RADIO_AvailableDrivers "[radio] п■п╬я│я┌я┐п©п╫я▀п╣ п╢я─п╟п╧п╡п╣я─я▀: "
-
-// ================================== LIBASS ====================================
-
-// ass_bitmap.c
-#define MSGTR_LIBASS_FT_Glyph_To_BitmapError "[ass] п║п╠п╬п╧ FT_Glyph_To_Bitmap %d \n"
-#define MSGTR_LIBASS_UnsupportedPixelMode "[ass] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я─п╣п╤п╦п╪ п©п╦п╨я│п╣п╩п╟: %d\n"
-#define MSGTR_LIBASS_GlyphBBoxTooLarge "[ass] п═п╟п╪п╨п╟, п╬пЁя─п╟п╫п╦я┤п╦п╡п╟я▌я┴п╟я▐ я│п╦п╪п╡п╬п╩, я│п╩п╦я┬п╨п╬п╪ п╡п╣п╩п╦п╨п╟: %dx%dpx\n"
-
-// ass.c
-#define MSGTR_LIBASS_NoStyleNamedXFoundUsingY "[ass] [%p] п▓п╫п╦п╪п╟п╫п╦п╣: я│я┌п╦п╩я▄ '%s' п╫п╣ п╫п╟п╧п╢п╣п╫, п╦я│п©п╬п╩я▄п╥я┐я▌ '%s'\n"
-#define MSGTR_LIBASS_BadTimestamp "[ass] п╫п╣п╡п╣я─п╫п╟я▐ п╡я─п╣п╪п╣п╫п╫п╟я▐ п╪п╣я┌п╨п╟\n"
-#define MSGTR_LIBASS_BadEncodedDataSize "[ass] п╫п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п╨п╬п╢п╦я─п╬п╡п╟п╫п╫я▀п╧ п╢п╟п╫п╫я▀я┘\n"
-#define MSGTR_LIBASS_FontLineTooLong "[ass] п⌡п╦п╫п╦я▐ я┬я─п╦я└я┌п╟ я│п╩п╦я┬п╨п╬п╪ п╢п╩п╦п╫п╫п╟: %d, %s\n"
-#define MSGTR_LIBASS_EventFormatHeaderMissing "[ass] п·я┌я│я┌я┐я┌я│я┌п╡я┐п╣я┌ п╥п╟пЁп╬п╩п╬п╡п╬п╨ я└п╬я─п╪п╟я┌п╟ я│п╬п╠я▀я┌п╦п╧\n"
-#define MSGTR_LIBASS_ErrorOpeningIconvDescriptor "[ass] п╬я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ п╢п╣я│п╨я─п╦п©я┌п╬я─п╟ iconv.\n"
-#define MSGTR_LIBASS_ErrorRecodingFile "[ass] п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦ я└п╟п╧п╩п╟.\n"
-#define MSGTR_LIBASS_FopenFailed "[ass] ass_read_file(%s): я│п╠п╬п╧ fopen\n"
-#define MSGTR_LIBASS_FseekFailed "[ass] ass_read_file(%s): я│п╠п╬п╧ fseek\n"
-#define MSGTR_LIBASS_RefusingToLoadSubtitlesLargerThan10M "[ass] ass_read_file(%s): п·я┌п╨п╩п╬п╫п╣п╫п╦п╣ п╥п╟пЁя─я┐п╥п╨п╦ я│я┐п╠я┌п╦я┌я─п╬п╡ п╠п╬п╩я▄я┬п╣ 10M\n"
-#define MSGTR_LIBASS_ReadFailed "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐, %d: %s\n"
-#define MSGTR_LIBASS_AddedSubtitleFileMemory "[ass] п■п╬п╠п╟п╡п╩п╣п╫ я└п╟п╧п╩ я│я┐п╠я┌п╦я┌я─п╬п╡: <п©п╟п╪я▐я┌я▄> (я│я┌п╦п╩п╣п╧: %d, я│п╬п╠я▀я┌п╦п╧: %d)\n"
-#define MSGTR_LIBASS_AddedSubtitleFileFname "[ass] п■п╬п╠п╟п╡п╩п╣п╫ я└п╟п╧п╩ я│я┐п╠я┌п╦я┌я─п╬п╡: %s (я│я┌п╦п╩п╣п╧: %d, я│п╬п╠я▀я┌п╦п╧: %d)\n"
-#define MSGTR_LIBASS_FailedToCreateDirectory "[ass] п·я┬п╦п╠п╨п╟ я│п╬п╥п╢п╟п╫п╦я▐ п╨п╟я┌п╟п╩п╬пЁп╟ %s\n"
-#define MSGTR_LIBASS_NotADirectory "[ass] п²п╣ п╨п╟я┌п╟п╩п╬пЁ: %s\n"
-
-// ass_cache.c
-#define MSGTR_LIBASS_TooManyFonts "[ass] п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я┬я─п╦я└я┌п╬п╡\n"
-#define MSGTR_LIBASS_ErrorOpeningFont "[ass] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ я┬я─п╦я└я┌п╟: %s, %d\n"
-
-// ass_fontconfig.c
-#define MSGTR_LIBASS_SelectedFontFamilyIsNotTheRequestedOne "[ass] fontconfig: п▓я▀п╠я─п╟п╫п╫я▀п╧ я┬я─п╦я└я┌ п╫п╣ я│п╬п╡п©п╟п╢п╟п╣я┌ я│ п╥п╟п©я─п╬я┬п╣п╫п╫я▀п╪: '%s' != '%s'\n"
-#define MSGTR_LIBASS_UsingDefaultFontFamily "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я│п╣п╪п╣п╧я│я┌п╡п╬ я┬я─п╦я└я┌п╬п╡ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌: (%s, %d, %d) -> %s, %d\n"
-#define MSGTR_LIBASS_UsingDefaultFont "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я┬я─п╦я└я┌ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌: (%s, %d, %d) -> %s, %d\n"
-#define MSGTR_LIBASS_UsingArialFontFamily "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я│п╣п╪п╣п╧я│я┌п╡п╬ я┬я─п╦я└я┌п╬п╡ 'Arial': (%s, %d, %d) -> %s, %d\n"
-#define MSGTR_LIBASS_FcInitLoadConfigAndFontsFailed "[ass] п║п╠п╬п╧ FcInitLoadConfigAndFonts.\n"
-#define MSGTR_LIBASS_UpdatingFontCache "[ass] п·п╠п╫п╬п╡п╩п╣п╫п╦п╣ п╨п╣я┬п╟ я┬я─п╦я└я┌п╬п╡.\n"
-#define MSGTR_LIBASS_BetaVersionsOfFontconfigAreNotSupported "[ass] п▒п╣я┌п╟ п╡п╣я─я│п╦п╦ fontconfig п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟я▌я┌я│я▐.\n[ass] п·п╠п╫п╬п╡п╦я┌п╣я│я▄ п©я─п╣п╤п╢п╣ я┤п╣п╪ п╬я┌я│я▀п╩п╟я┌я▄ п╬я┌я┤п╣я┌я▀ п╬ п╩я▌п╠я▀я┘ п╬я┬п╦п╠п╨п╟я┘.\n"
-#define MSGTR_LIBASS_FcStrSetAddFailed "[ass] п║п╠п╬п╧ FcStrSetAdd.\n"
-#define MSGTR_LIBASS_FcDirScanFailed "[ass] п║п╠п╬п╧ FcDirScan.\n"
-#define MSGTR_LIBASS_FcDirSave "[ass] п║п╠п╬п╧ FcDirSave.\n"
-#define MSGTR_LIBASS_FcConfigAppFontAddDirFailed "[ass] п║п╠п╬п╧ FcConfigAppFontAddDir\n"
-#define MSGTR_LIBASS_FontconfigDisabledDefaultFontWillBeUsed "[ass] Fontconfig п╬я┌п╨п╩я▌я┤п╣п╫, п╠я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ я┌п╬п╩я▄п╨п╬ я┬я─п╦я└я┌ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌.\n"
-#define MSGTR_LIBASS_FunctionCallFailed "[ass] п║п╠п╬п╧ %s\n"
-
-// ass_render.c
-#define MSGTR_LIBASS_NeitherPlayResXNorPlayResYDefined "[ass] п²п╣ п╬п©я─п╣п╢п╣п╩п╣п╫я▀ п╫п╦ PlayResX, п╫п╦ PlayResY. п÷я─п╣п╢п©п╬п╩п╟пЁп╟я▌ 384x288.\n"
-#define MSGTR_LIBASS_PlayResYUndefinedSettingY "[ass] PlayResY п╫п╣п╬п©я─п╣п╢п╣п╩п╣п╫п╬, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ %d.\n"
-#define MSGTR_LIBASS_PlayResXUndefinedSettingX "[ass] PlayResX п╫п╣п╬п©я─п╣п╢п╣п╩п╣п╫п╬, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ %d.\n"
-#define MSGTR_LIBASS_FT_Init_FreeTypeFailed "[ass] п║п╠п╬п╧ FT_Init_FreeType.\n"
-#define MSGTR_LIBASS_Init "[ass] п≤п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐.\n"
-#define MSGTR_LIBASS_InitFailed "[ass] п║п╠п╬п╧ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦.\n"
-#define MSGTR_LIBASS_BadCommand "[ass] п²п╣п╡п╣я─п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟: %c%c\n"
-//FIXME glyph
-#define MSGTR_LIBASS_ErrorLoadingGlyph "[ass] п·я┬п╦п╠п╨п╟ п╥п╟пЁя─я┐п╥п╨п╦ пЁп╩п╦я└п╟ [glyph].\n"
-#define MSGTR_LIBASS_FT_Glyph_Stroke_Error "[ass] п·я┬п╦п╠п╨п╟ FT_Glyph_Stroke %d \n"
-#define MSGTR_LIBASS_UnknownEffectType_InternalError "[ass] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© я█я└я└п╣п╨я┌п╟ (п╡п╫я┐я┌я─п╣п╫п╫я▐я▐ п╬я┬п╦п╠п╨п╟)\n"
-#define MSGTR_LIBASS_NoStyleFound "[ass] п║я┌п╦п╩п╦ п╫п╣ п╫п╟п╧п╢п╣п╫я▀!\n"
-#define MSGTR_LIBASS_EmptyEvent "[ass] п÷я┐я│я┌п╬п╣ я│п╬п╠я▀я┌п╦п╣!\n"
-#define MSGTR_LIBASS_MAX_GLYPHS_Reached "[ass] п■п╬я│я┌п╦пЁп╫я┐я┌п╬ п╥п╫п╟я┤п╣п╫п╦п╣ MAX_GLYPHS: я│п╬п╠я▀я┌п╦п╣ %d, п╫п╟я┤п╟п╩п╬ = %llu, п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄ = %llu\n п╒п╣п╨я│я┌ = %s\n"
-#define MSGTR_LIBASS_EventHeightHasChanged "[ass] п▓п╫п╦п╪п╟п╫п╦п╣! п▓я▀я│п╬я┌п╟ я│п╬п╠я▀я┌п╦я▐ п╦п╥п╪п╣п╫п╦п╩п╟я│я▄! \n"
-
-// ass_font.c
-#define MSGTR_LIBASS_GlyphNotFoundReselectingFont "[ass] п⌠п╩п╦я└ 0x%X п╫п╣ п╫п╟п╧п╢п╣п╫, п╡я▀п╠п╦я─п╟я▌ п╣я┴п╣ п╬п╢п╦п╫ я┬я─п╦я└я┌ п╢п╩я▐ (%s, %d, %d)\n"
-#define MSGTR_LIBASS_GlyphNotFound "[ass] п▓ я┬я─п╦я└я┌п╣ п╫п╣ п╫п╟п╧п╢п╣п╫ пЁп╩п╦я└ 0x%X п╢п╩я▐ (%s, %d, %d)\n"
-#define MSGTR_LIBASS_ErrorOpeningMemoryFont "[ass] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ я┬я─п╦я└я┌п╟ п╡ п©п╟п╪я▐я┌п╦: %s\n"
-#define MSGTR_LIBASS_NoCharmaps "[ass] я┬я─п╦я└я┌ п╠п╣п╥ я┌п╟п╠п╩п╦я├ я│п╦п╪п╡п╬п╩п╬п╡\n"
-#define MSGTR_LIBASS_NoCharmapAutodetected "[ass] п╟п╡я┌п╬п╪п╟я┌п╦я┤п╣я│п╨п╦ п╬п©я─п╣п╢п╣п╩п╦я┌я▄ я┌п╟п╠п╩п╦я├я┐ я│п╦п╪п╡п╬п╩п╬п╡ п╫п╣ я┐п╢п╟п╩п╬я│я▄, п©я─п╬п╠я┐п╣я┌я│я▐ п©п╣я─п╡п╟я▐ п╢п╬я│я┌я┐п©п╫п╟я▐\n"
-
// format.c
-
#define MSGTR_AF_FORMAT_UnknownFormat "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я└п╬я─п╪п╟я┌ "
+
// ========================== INPUT =========================================
// joystick.c
-
#define MSGTR_INPUT_JOYSTICK_Opening "п·я┌п╨я─я▀п╡п╟я▌ я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╢п╤п╬п╧я│я┌п╦п╨п╟ %s\n"
#define MSGTR_INPUT_JOYSTICK_CantOpen "п²п╣ п╪п╬пЁя┐ п╬я┌я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╢п╤п╬п╧я│я┌п╦п╨п╟ %s: %s\n"
#define MSGTR_INPUT_JOYSTICK_ErrReading "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╟ п╢п╤п╬п╧я│я┌п╦п╨п╟: %s\n"
#define MSGTR_INPUT_JOYSTICK_LoosingBytes "п■п╤п╬п╧я│я┌п╦п╨: п÷п╬я┌п╣я─я▐п╫п╬ %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╟п╫п╫я▀я┘\n"
-#define MSGTR_INPUT_JOYSTICK_WarnLostSync "п■п╤п╬п╧я│я┌п╦п╨: п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣ п╬ я│п╬п╠я▀я┌п╦п╦ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦,\nп╬я┌п╣я─я▐п╫п╟ я│п╦п╫я┘я─п╬п╫п╦п╥п╟я├п╦я▐ я│ п╢я─п╟п╧п╡п╣я─п╬п╪.\n"
+#define MSGTR_INPUT_JOYSTICK_WarnLostSync "п■п╤п╬п╧я│я┌п╦п╨: п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣ п╬ я│п╬п╠я▀я┌п╦п╦ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦,\nп©п╬я┌п╣я─я▐п╫п╟ я│п╦п╫я┘я─п╬п╫п╦п╥п╟я├п╦я▐ я│ п╢я─п╟п╧п╡п╣я─п╬п╪.\n"
#define MSGTR_INPUT_JOYSTICK_WarnUnknownEvent "п■п╤п╬п╧я│я┌п╦п╨: п©я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣ п╬ п╫п╣п╦п╥п╡п╣я│я┌п╫п╬п╪ я┌п╦п©п╣ я│п╬п╠я▀я┌п╦я▐ %d\n"
// appleir.c
-
#define MSGTR_INPUT_APPLE_IR_Init "п≤п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ Apple IR п╫п╟ %s\n"
#define MSGTR_INPUT_APPLE_IR_Detect "п·п╠п╫п╟я─я┐п╤п╣п╫ Apple IR п╫п╟ %s\n"
#define MSGTR_INPUT_APPLE_IR_CantOpen "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ Apple IR: %s\n"
// input.c
-
#define MSGTR_INPUT_INPUT_ErrCantRegister2ManyCmdFds "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ п╬п©п╦я│п╟я┌п╣п╩п╣п╧ я└п╟п╧п╩п╬п╡ п╨п╬п╪п╟п╫п╢,\nп╫п╣ п╪п╬пЁя┐ п╥п╟я─п╣пЁп╦я│я┌я─п╦я─п╬п╡п╟я┌я▄ я└п╟п╧п╩п╬п╡я▀п╧ п╬п©п╦я│п╟я┌п╣п╩я▄ %d.\n"
#define MSGTR_INPUT_INPUT_ErrCantRegister2ManyKeyFds "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ п╬п©п╦я│п╟я┌п╣п╩п╣п╧ я└п╟п╧п╩п╬п╡ п╨п╩п╟п╡п╦я┬,\nп╫п╣ п╪п╬пЁя┐ п╥п╟я─п╣пЁп╦я│я┌я─п╦я─п╬п╡п╟я┌я▄ я└п╟п╧п╩п╬п╡я▀п╧ п╬п©п╦я│п╟я┌п╣п╩я▄ %d.\n"
-#define MSGTR_INPUT_INPUT_ErrArgMustBeInt "п п╬п╪п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ я├п╣п╩п╬п╣ я┤п╦я│п╩п╬.\n"
-#define MSGTR_INPUT_INPUT_ErrArgMustBeFloat "п п╬п╪п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ п╡п╣я┴п╣я│я┌п╡п╣п╫п╫я▀п╧.\n"
-#define MSGTR_INPUT_INPUT_ErrUnterminatedArg "п п╬п╪п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ п╬п©я─п╣п╢п╣п╩я▒п╫.\n"
+#define MSGTR_INPUT_INPUT_ErrArgMustBeInt "п п╬п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ я├п╣п╩п╬п╣ я┤п╦я│п╩п╬.\n"
+#define MSGTR_INPUT_INPUT_ErrArgMustBeFloat "п п╬п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ п╡п╣я┴п╣я│я┌п╡п╣п╫п╫я▀п╧.\n"
+#define MSGTR_INPUT_INPUT_ErrUnterminatedArg "п п╬п╪п╟п╫п╢п╟ %s: п╟я─пЁя┐п╪п╣п╫я┌ %d п╫п╣ п╬п©я─п╣п╢п╣п╩я▒п╫.\n"
#define MSGTR_INPUT_INPUT_ErrUnknownArg "п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╟я─пЁя┐п╪п╣п╫я┌ %d\n"
-#define MSGTR_INPUT_INPUT_Err2FewArgs "п п╬п╪п╪п╟п╫п╢п╟ %s я┌я─п╣п╠я┐п╣я┌ п╫п╣ п╪п╣п╫п╣п╣ %d п╟я─пЁя┐п╪п╣п╫я┌п╬п╡, п╪я▀ п╫п╟я┬п╩п╦ п©п╬п╨п╟ я┌п╬п╩я▄п╨п╬ %d.\n"
+#define MSGTR_INPUT_INPUT_Err2FewArgs "п п╬п╪п╟п╫п╢п╟ %s я┌я─п╣п╠я┐п╣я┌ п╫п╣ п╪п╣п╫п╣п╣ %d п╟я─пЁя┐п╪п╣п╫я┌п╬п╡, п╪я▀ п╫п╟я┬п╩п╦ п©п╬п╨п╟ я┌п╬п╩я▄п╨п╬ %d.\n"
#define MSGTR_INPUT_INPUT_ErrReadingCmdFd "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╬п©п╦я│п╟я┌п╣п╩я▐ %d я└п╟п╧п╩п╟ п╨п╬п╪п╟п╫п╢: %s\n"
#define MSGTR_INPUT_INPUT_ErrCmdBufferFullDroppingContent "п п╬п╪п╟п╫п╢п╫я▀п╧ п╠я┐я└п╣я─ я└п╟п╧п╩п╬п╡п╬пЁп╬ п╬п©п╦я│п╟я┌п╣п╩я▐ %d п©п╬п╩п╬п╫: п©я─п╬п©я┐я│п╨п╟я▌ я│п╬п╢п╣я─п╤п╦п╪п╬п╣.\n"
#define MSGTR_INPUT_INPUT_ErrInvalidCommandForKey "п²п╣п╡п╣я─п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟ п╢п╩я▐ п©я─п╦п╡я▐п╥п╨п╦ п╨ п╨п╩п╟п╡п╦я┬п╣ %s"
@@ -1443,49 +1372,90 @@ static char help_text[]=
#define MSGTR_INPUT_INPUT_ErrCantOpenFile "п²п╣ п╪п╬пЁя┐ п╡я▀п©п╬п╩п╫п╦я┌я▄ open %s: %s\n"
#define MSGTR_INPUT_INPUT_ErrCantInitAppleRemote "п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п÷я┐п╩я▄я┌ п■пё Apple Remote.\n"
+// lirc.c
+#define MSGTR_SettingUpLIRC "пёя│я┌п╟п╫п╬п╡п╨п╟ п©п╬п╢п╢п╣я─п╤п╨п╦ LIRC...\n"
+#define MSGTR_LIRCopenfailed "п²п╣я┐п╢п╟я┤п╫п╬п╣ п╬я┌п╨я─я▀я┌п╦п╣ п©п╬п╢п╢п╣я─п╤п╨п╦ LIRC.\nп▓я▀ п╫п╣ я│п╪п╬п╤п╣я┌п╣ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п▓п╟я┬ п©я┐п╩я▄я┌ я┐п©я─п╟п╡п╩п╣п╫п╦я▐.\n"
+#define MSGTR_LIRCcfgerr "п²п╣я┐п╢п╟я┤п╫п╟я▐ п©п╬п©я▀я┌п╨п╟ я┤я┌п╣п╫п╦я▐ я└п╟п╧п╩п╟ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╦ LIRC '%s'!\n"
+
+
// ========================== LIBMPDEMUX ===================================
-// url.c
+// muxer.c, muxer_*.c:
+#define MSGTR_TooManyStreams "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ п©п╬я┌п╬п╨п╬п╡!"
+#define MSGTR_RawMuxerOnlyOneStream "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ rawaudio п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ я┌п╬п╩я▄п╨п╬ п╬п╢п╦п╫ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨!\n"
+#define MSGTR_IgnoringVideoStream "п≤пЁп╫п╬я─п╦я─я┐я▌ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨!\n"
+#define MSGTR_UnknownStreamType "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣, п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟: %d\n"
+#define MSGTR_WarningLenIsntDivisible "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п╢п╩п╦п╫п╟ п╫п╣ п╨я─п╟я┌п╫п╟ я─п╟п╥п╪п╣я─я┐ п╬п╠я─п╟п╥я├п╟!\n"
+#define MSGTR_MuxbufMallocErr "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п╫п╣ п╪п╬п╤п╣я┌ п╡я▀п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ (malloc)!\n"
+#define MSGTR_MuxbufReallocErr "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п╫п╣ п╪п╬п╤п╣я┌ п©п╣я─п╣я─п╟я│п©я─п╣п╢п╣п╩п╦я┌я▄ п©п╟п╪я▐я┌я▄ (realloc)!\n"
+#define MSGTR_MuxbufSending "п°я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я└я─п╣п╧п╪п╠я┐я└п╣я─п╟ п©п╬я│я▀п╩п╟п╣я┌ %d п╨п╟п╢я─(п╟/п╬п╡) п╡ п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─.\n"
+#define MSGTR_WritingHeader "п≈п╟п©п╦я│я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╟...\n"
+#define MSGTR_WritingTrailer "п≈п╟п©п╦я│я▄ п╦п╫п╢п╣п╨я│п╟...\n"
-#define MSGTR_MPDEMUX_URL_StringAlreadyEscaped "п÷п╬я┘п╬п╤п╣, я┤я┌п╬ я│я┌я─п╬п╨п╟ я┐п╤п╣ п©я─п╬п©я┐я┴п╣п╫п╟ п╡ url_escape %c%c1%c2\n"
+// demuxer.c, demux_*.c:
+#define MSGTR_AudioStreamRedefined "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: п≈п╟пЁп╬п╩п╬п╡п╬п╨ п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨п╟ %d п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▒п╫!\n"
+#define MSGTR_VideoStreamRedefined "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙: п≈п╟пЁп╬п╩п╬п╡п╬п╨ п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨п╟ %d п©п╣я─п╣п╬п©я─п╣п╢п╣п╩я▒п╫!\n"
+#define MSGTR_TooManyAudioInBuffer "\nп║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ (%d п╡ %d п╠п╟п╧я┌п╟я┘) п╟я┐п╢п╦п╬п©п╟п╨п╣я┌п╬п╡ п╡ п╠я┐я└п╣я─п╣!\n"
+#define MSGTR_TooManyVideoInBuffer "\nп║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ (%d п╡ %d п╠п╟п╧я┌п╟я┘) п╡п╦п╢п╣п╬п©п╟п╨п╣я┌п╬п╡ п╡ п╠я┐я└п╣я─п╣!\n"
+#define MSGTR_MaybeNI "п▓п╬п╥п╪п╬п╤п╫п╬ п▓я▀ п©я─п╬п╦пЁя─я▀п╡п╟п╣я┌п╣ 'п╫п╣я│п╩п╬я▒п╫я▀п╧' п©п╬я┌п╬п╨/я└п╟п╧п╩ п╦п╩п╦ п╫п╣я┐п╢п╟я┤п╫я▀п╧ п╨п╬п╢п╣п╨?\n" \
+ "п■п╩я▐ AVI я└п╟п╧п╩п╬п╡ п©п╬п©я─п╬п╠я┐п╧я┌п╣ я└п╬я─я│п╦я─п╬п╡п╟я┌я▄ 'п╫п╣я│п╩п╬я▒п╫я▀п╧' я─п╣п╤п╦п╪ п╬п©я├п╦п╣п╧ -ni.\n"
+#define MSGTR_WorkAroundBlockAlignHeaderBug "AVI: п·п╠я┘п╬п╢ п╬я┬п╦п╠п╨п╦ CBR-MP3 nBlockAlign п╥п╟пЁп╬п╩п╬п╡п╨п╟!\n"
+#define MSGTR_SwitchToNi "\nп·п╠п╫п╟я─я┐п╤п╣п╫ п©п╩п╬я┘п╬ 'я│п╩п╬я▒п╫я▀п╧' AVI я└п╟п╧п╩ - п©п╣я─п╣п╨п╩я▌я┤п╟я▌я│я▄ п╡ -ni я─п╣п╤п╦п╪...\n"
+#define MSGTR_InvalidAudioStreamNosound "AVI: п╫п╣п╡п╣я─п╫я▀п╧ ID п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨п╟: %d - п╦пЁп╫п╬я─п╦я─п╬п╡п╟п╫п╦п╣ (п╠п╣п╥ п╥п╡я┐п╨п╟)\n"
+#define MSGTR_InvalidAudioStreamUsingDefault "AVI: п╫п╣п╡п╣я─п╫я▀п╧ ID п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨п╟: %d - п╦пЁп╫п╬я─п╦я─п╬п╡п╟п╫п╦п╣ (п╦я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╥п╫п╟я┤п╣п╫п╦п╣ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌)\n"
+#define MSGTR_ON2AviFormat "ON2 AVI я└п╬я─п╪п╟я┌"
+#define MSGTR_Detected_XXX_FileFormat "п·п╠п╫п╟я─я┐п╤п╣п╫ %s я└п╬я─п╪п╟я┌ я└п╟п╧п╩п╟!\n"
+#define MSGTR_DetectedAudiofile "п·п╠п╫п╟я─я┐п╤п╣п╫ п╟я┐п╢п╦п╬я└п╟п╧п╩.\n"
+#define MSGTR_NotSystemStream "п²п╣ MPEG System Stream я└п╬я─п╪п╟я┌... (п╡п╬п╥п╪п╬п╤п╫п╬, Transport Stream?)\n"
+#define MSGTR_InvalidMPEGES "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ MPEG-ES п©п╬я┌п╬п╨??? я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪, я█я┌п╬ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╬я┬п╦п╠п╨п╬п╧ :(\n"
+#define MSGTR_FormatNotRecognized "======= п≤п╥п╡п╦п╫п╦я┌п╣, я└п╬я─п╪п╟я┌ я█я┌п╬пЁп╬ я└п╟п╧п╩п╟ п╫п╣ я─п╟я│п©п╬п╥п╫п╟п╫/п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ ==========\n"\
+ "===== п∙я│п╩п╦ я█я┌п╬ AVI, ASF п╦п╩п╦ MPEG п©п╬я┌п╬п╨, п©п╬п╤п╟п╩я┐п╧я│я┌п╟ я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪! ======\n"
+#define MSGTR_SettingProcessPriority "пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╦п╬я─п╦я┌п╣я┌ п©я─п╬я├п╣я│я│п╟: %s\n"
+#define MSGTR_FilefmtFourccSizeFpsFtime "[V] я└п╬я─п╪п╟я┌:%d fourcc:0x%X я─п╟п╥п╪п╣я─:%dx%d fps:%5.3f ftime:=%6.4f\n"
+#define MSGTR_CannotInitializeMuxer "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─."
+#define MSGTR_MissingVideoStream "п▓п╦п╢п╣п╬п©п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫!\n"
+#define MSGTR_MissingAudioStream "п░я┐п╢п╦п╬п©п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫ -> п╠п╣п╥ п╥п╡я┐п╨п╟\n"
+#define MSGTR_MissingVideoStreamBug "п▓п╦п╢п╣п╬п©п╬я┌п╬п╨ п©п╬я┌п╣я─я▐п╫!? я│п╡я▐п╤п╦я┌п╣я│я▄ я│ п╟п╡я┌п╬я─п╬п╪, я█я┌п╬ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п╬я┬п╦п╠п╨п╬п╧ :(\n"
-// ai_alsa1x.c
+#define MSGTR_DoesntContainSelectedStream "demux: п╡ я└п╟п╧п╩п╣ п╫п╣я┌ п╡я▀п╠я─п╟п╫п╫п╬пЁп╬ п╟я┐п╢п╦п╬ п╦п╩п╦ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨п╟\n"
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetSamplerate "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦.\n"
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetBufferTime "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╡я─п╣п╪я▐ п╠я┐я└п╣я─п╦п╥п╟я├п╦п╦.\n"
-#define MSGTR_MPDEMUX_AIALSA1X_CannotSetPeriodTime "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╡я─п╣п╪я▐ п©п╣я─п╦п╬п╢п╟.\n"
+#define MSGTR_NI_Forced "п╓п╬я─я│п╦я─п╬п╡п╟п╫"
+#define MSGTR_NI_Detected "п·п╠п╫п╟я─я┐п╤п╣п╫"
+#define MSGTR_NI_Message "%s 'п²п∙п║п⌡п·п│п²п╚п≥' я└п╬я─п╪п╟я┌ AVI я└п╟п╧п╩п╟!\n"
-// ai_alsa1x.c / ai_alsa.c
+#define MSGTR_UsingNINI "п≤я│п©п╬п╩я▄п╥п╬п╡п╟п╫п╦п╣ 'п²п∙п║п⌡п·п│п²п·п⌠п·' п╦я│п©п╬я─я┤п╣п╫п╫п╬пЁп╬ я└п╬я─п╪п╟я┌п╟ AVI я└п╟п╧п╩п╟!\n"
+#define MSGTR_CouldntDetFNo "п²п╣ я│п╪п╬пЁ п╬п©я─п╣п╢п╣п╩п╦я┌я▄ я┤п╦я│п╩п╬ п╨п╟п╢я─п╬п╡ (п╢п╩я▐ п╟п╠я│п╬п╩я▌я┌п╫п╬пЁп╬ п©п╣я─п╣п╪п╣я┴п╣п╫п╦я▐).\n"
+#define MSGTR_CantSeekRawAVI "п²п╣ п╪п╬пЁя┐ п©п╣я─п╣п╪п╣я│я┌п╦я┌я▄я│я▐ п╡ я│я▀я─п╬п╪ п©п╬я┌п╬п╨п╣ AVI!\n(я┌я─п╣п╠я┐п╣я┌я│я▐ п╦п╫п╢п╣п╨я│, п©п╬п©я─п╬п╠я┐п╧я┌п╣ я│ п╨п╩я▌я┤п╬п╪ -idx!)\n"
+#define MSGTR_CantSeekFile "п²п╣ п╪п╬пЁя┐ п©п╣я─п╣п╪п╣я┴п╟я┌я▄я│я▐ п╡ я█я┌п╬п╪ я└п╟п╧п╩п╣!\n"
-#define MSGTR_MPDEMUX_AIALSA_PcmBrokenConfig "п²п╣п╨п╬я─я─п╣п╨я┌п╫п╟я▐ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦я▐ п╢п╩я▐ п╢п╟п╫п╫п╬пЁп╬ PCM: п╫п╣я┌ п╢п╬я│я┌я┐п©п╫я▀я┘ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╧.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableAccessType "п╒п╦п© п╢п╬я│я┌я┐п©п╟ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableSampleFmt "п╓п╬я─п╪п╟я┌ п╬п╠я─п╟п╥я├п╟ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
-#define MSGTR_MPDEMUX_AIALSA_UnavailableChanCount "п╖п╦я│п╩п╬ п╨п╟п╫п╟п╩п╬п╡ п╫п╣ п╢п╬я│я┌я┐п©п╫п╬ - п╡п╬п╥п╡я─п╟я┴п╟я▌я│я▄ п╨ я┐п╪п╬п╩я┤п╟п╫п╦я▌: %d\n"
-#define MSGTR_MPDEMUX_AIALSA_CannotInstallHWParams "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╟п©п©п╟я─п╟я┌п╫я▀п╣ п©п╟я─п╟п╪п╣я┌я─я▀: %s"
-#define MSGTR_MPDEMUX_AIALSA_PeriodEqualsBufferSize "п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п©п╣я─п╦п╬п╢, я─п╟п╡п╫я▀п╧ я─п╟п╥п╪п╣я─я┐ п╠я┐я└п╣я─п╟ (%u == %lu)\n"
-#define MSGTR_MPDEMUX_AIALSA_CannotInstallSWParams "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п©я─п╬пЁя─п╟п╪п╪п╫я▀п╣ п©п╟я─п╟п╪п╣я┌я─я▀:\n"
-#define MSGTR_MPDEMUX_AIALSA_ErrorOpeningAudio "п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ п╟я┐п╢п╦п╬: %s\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaStatusError "п·я┬п╦п╠п╨п╟ я│я┌п╟я┌я┐я│п╟ ALSA: %s"
-#define MSGTR_MPDEMUX_AIALSA_AlsaXRUN "ALSA xrun!!! (п╨п╟п╨ п╪п╦п╫п╦п╪я┐п╪ п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄я▌ %.3f п╪я│)\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaStatus "п║я┌п╟я┌я┐я│ ALSA:\n"
-#define MSGTR_MPDEMUX_AIALSA_AlsaXRUNPrepareError "ALSA xrun: п╬я┬п╦п╠п╨п╟ п©п╬п╢пЁп╬я┌п╬п╡п╨п╦: %s"
-#define MSGTR_MPDEMUX_AIALSA_AlsaReadWriteError "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐/п╥п╟п©п╦я│п╦ ALSA"
+#define MSGTR_MOVcomprhdr "MOV: п■п╩я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ я│п╤п╟я┌я▀я┘ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡ п╫п╣п╬п╠я┘п╬п╢п╦п╪ zlib!\n"
+#define MSGTR_MOVvariableFourCC "MOV: п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣! п·п╠п╫п╟я─я┐п╤п╣п╫ п©п╣я─п╣п╪п╣п╫п╫я▀п╧ FOURCC!?\n"
+#define MSGTR_MOVtooManyTrk "MOV: п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣! я│п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я┌я─п╣п╨п╬п╡!"
+#define MSGTR_FoundAudioStream "==> п²п╟я┬я▒п╩ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %d\n"
+#define MSGTR_FoundVideoStream "==> п²п╟я┬я▒п╩ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨: %d\n"
+#define MSGTR_DetectedTV "п²п╟п╧п╢п╣п╫ п╒п▓! ;-)\n"
+#define MSGTR_ErrorOpeningOGGDemuxer "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ ogg.\n"
+#define MSGTR_ASFSearchingForAudioStream "ASF: п≤я┴я┐ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨ (id:%d).\n"
+#define MSGTR_CannotOpenAudioStream "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %s\n"
+#define MSGTR_CannotOpenSubtitlesStream "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п©п╬я┌п╬п╨ я│я┐п╠я┌п╦я┌я─п╬п╡: %s\n"
+#define MSGTR_OpeningAudioDemuxerFailed "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ п╟я┐п╢п╦п╬: %s\n"
+#define MSGTR_OpeningSubtitlesDemuxerFailed "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─ я│я┐п╠я┌п╦я┌я─п╬п╡: %s\n"
+#define MSGTR_TVInputNotSeekable "п÷п╬ п╒п▓ п╡я┘п╬п╢я┐ п╫п╣п╩я▄п╥я▐ п©п╣я─п╣п╪п╣я┴п╟я┌я▄я│я▐! (п▓п╬п╥п╪п╬п╤п╫п╬, п©п╣я─п╣п╪п╣я┴п╣п╫п╦п╣ п╠я┐п╢п╣я┌ п╢п╩я▐ я│п╪п╣п╫я▀ п╨п╟п╫п╟п╩п╬п╡ ;)\n"
+#define MSGTR_DemuxerInfoChanged "п≤п╫я└п╬я─п╪п╟я├п╦я▐ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─п╟ %s п╦п╥п╪п╣п╫п╣п╫п╟ п╡ %s\n"
+#define MSGTR_ClipInfo "п≤п╫я└п╬я─п╪п╟я├п╦я▐ п╬ п╨п╩п╦п©п╣:\n"
-// ai_oss.c
+#define MSGTR_LeaveTelecineMode "\ndemux_mpg: п╬п╠п╫п╟я─я┐п╤п╣п╫п╬ 30000/1001 п╨п╟п╢я─п╬п╡/я│п╣п╨ NTSC я│п╬п╢п╣я─п╤п╦п╪п╬п╣, п©п╣я─п╣п╨п╩я▌я┤п╟я▌ я┤п╟я│я┌п╬я┌я┐ п╨п╟п╢я─п╬п╡.\n"
+#define MSGTR_EnterTelecineMode "\ndemux_mpg: п╬п╠п╫п╟я─я┐п╤п╣п╫п╬ 24000/1001 п╨п╟п╢я─п╟/я│п╣п╨ NTSC я│п╬п╢п╣я─п╤п╦п╪п╬п╣ я│ п©п╬я│я┌я─п╬я┤п╫п╬п╧ я─п╟п╥п╡я▒я─я┌п╨п╬п╧,\nп©п╣я─п╣п╨п╩я▌я┤п╟я▌ я┤п╟я│я┌п╬я┌я┐ п╨п╟п╢я─п╬п╡.\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetChanCount "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╦я│п╩п╬ п╨п╟п╫п╟п╩п╬п╡: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetStereo "п²п╣ п╪п╬пЁя┐ п╡п╨п╩я▌я┤п╦я┌я▄ я│я┌п╣я─п╣п╬: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2Open "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ '%s': %s\n"
-#define MSGTR_MPDEMUX_AIOSS_UnsupportedFmt "п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetAudioFmt "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╟я┐п╢п╦п╬я└п╬я─п╪п╟я┌."
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetSamplerate "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2SetTrigger "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я┌я─п╦пЁпЁп╣я─: %d\n"
-#define MSGTR_MPDEMUX_AIOSS_Unable2GetBlockSize "п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я─п╟п╥п╪п╣я─ п╠п╩п╬п╨п╟!\n"
-#define MSGTR_MPDEMUX_AIOSS_AudioBlockSizeZero "п═п╟п╥п╪п╣я─ п╟я┐п╢п╦п╬п╠п╩п╬п╨п╟ п╫я┐п╩п╣п╡п╬п╧, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╡ %d!\n"
-#define MSGTR_MPDEMUX_AIOSS_AudioBlockSize2Low "п═п╟п╥п╪п╣я─ п╟я┐п╢п╦п╬п╠п╩п╬п╨п╟ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╡ %d!\n"
+#define MSGTR_CacheFill "\rп≈п╟п©п╬п╩п╫п╣п╫п╦п╣ п╨я█я┬п╟: %5.2f%% (%"PRId64" п╠п╟п╧я┌(п╟)) "
+#define MSGTR_NoBindFound "п²п╣ п╫п╟п╧п╢п╣п╫п╟ п©я─п╦п╡я▐п╥п╨п╟ п╨ п╨п╩п╟п╡п╦я┬п╣ '%s'."
+#define MSGTR_FailedToOpen "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s.\n"
-// asfheader.c
+#define MSGTR_VideoID "[%s] п²п╟п╧п╢п╣п╫ п╡п╦п╢п╣п╬ п©п╬я┌п╬п╨, -vid %d\n"
+#define MSGTR_AudioID "[%s] п²п╟п╧п╢п╣п╫ п╟я┐п╢п╦п╬ п©п╬я┌п╬п╨, -aid %d\n"
+#define MSGTR_SubtitleID "[%s] п²п╟п╧п╢п╣п╫ п©п╬я┌п╬п╨ я│я┐п╠я┌п╦я┌я─п╬п╡, -sid %d\n"
+// asfheader.c
#define MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: я─п╟п╥п╪п╣я─ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╠п╬п╩п╣п╣ 1 MB (%d)!\nп÷п╬п╤п╟п╩я┐п╧я│я┌п╟, п╬п╠я─п╟я┌п╦я┌п╣я│я▄ п╨ я─п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╟п╪ MPlayer п╦ п╥п╟пЁя─я┐п╥п╦я┌п╣/п╬я┌п╬я┬п╩п╦я┌п╣ я█я┌п╬я┌ я└п╟п╧п╩.\n"
#define MSGTR_MPDEMUX_ASFHDR_HeaderMallocFailed "п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╩я▐ п╥п╟пЁп╬п╩п╬п╡п╨п╟.\n"
#define MSGTR_MPDEMUX_ASFHDR_EOFWhileReadingHeader "EOF п©я─п╦ я┤я┌п╣п╫п╦п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╟ ASF, п╦я│п©п╬я─я┤п╣п╫п╫я▀п╧/п╫п╣п©п╬п╩п╫я▀п╧ я└п╟п╧п╩?\n"
@@ -1496,69 +1466,7 @@ static char help_text[]=
#define MSGTR_MPDEMUX_ASFHDR_DRMLicenseURL "URL DRM п╩п╦я├п╣п╫п╥п╦п╦: %s\n"
#define MSGTR_MPDEMUX_ASFHDR_DRMProtected "п╓п╟п╧п╩ п╠я▀п╩ п╬п╠я─п╣п╪п╣п╫п╣п╫ DRM я┬п╦я└я─п╬п╡п╟п╫п╦п╣п╪, п╬п╫ п╫п╣ п╠я┐п╢п╣я┌ п╡п╬я│п©я─п╬п╦п╥п╡п╬п╢п╦я┌я▄я│я▐ п╡ MPlayer!\n"
-// asf_mmst_streaming.c
-
-#define MSGTR_MPDEMUX_MMST_WriteError "п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦\n"
-#define MSGTR_MPDEMUX_MMST_EOFAlert "\nп╒я─п╣п╡п╬пЁп╟! EOF\n"
-#define MSGTR_MPDEMUX_MMST_PreHeaderReadFailed "я┤я┌п╣п╫п╦п╣ п©я─п╣п╢п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╫п╣ я┐п╢п╟п╩п╬я│я▄\n"
-#define MSGTR_MPDEMUX_MMST_InvalidHeaderSize "п²п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п╥п╟пЁп╬п╩п╬п╡п╨п╟, п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
-#define MSGTR_MPDEMUX_MMST_HeaderDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ п╢п╟п╫п╫я▀п╣ п╥п╟пЁп╬п╩п╬п╡п╨п╟.\n"
-#define MSGTR_MPDEMUX_MMST_packet_lenReadFailed "п╫п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ packet_len.\n"
-#define MSGTR_MPDEMUX_MMST_InvalidRTSPPacketSize "п²п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п©п╟п╨п╣я┌п╟ RTSP, п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
-#define MSGTR_MPDEMUX_MMST_CmdDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ я┐п©я─п╟п╡п╩я▐я▌я┴п╦п╣ п╢п╟п╫п╫я▀п╣.\n"
-#define MSGTR_MPDEMUX_MMST_HeaderObject "п╬п╠я┼п╣п╨я┌ п╥п╟пЁп╬п╩п╬п╡п╨п╟\n"
-#define MSGTR_MPDEMUX_MMST_DataObject "п╬п╠я┼п╣п╨я┌ п╢п╟п╫п╫я▀я┘\n"
-#define MSGTR_MPDEMUX_MMST_FileObjectPacketLen "я└п╟п╧п╩п╬п╡я▀п╧ п╬п╠я┼п╣п╨я┌, п╢п╩п╦п╫п╟ п©п╟п╨п╣я┌п╟ = %d (%d)\n"
-#define MSGTR_MPDEMUX_MMST_StreamObjectStreamID "п©п╬я┌п╬п╨п╬п╡я▀п╧ п╬п╠я┼п╣п╨я┌, ID п©п╬я┌п╬п╨п╟: %d\n"
-#define MSGTR_MPDEMUX_MMST_2ManyStreamID "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ ID, п©п╬я┌п╬п╨ п©я─п╬п©я┐я┴п╣п╫."
-#define MSGTR_MPDEMUX_MMST_UnknownObject "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╬п╠я┼п╣п╨я┌\n"
-#define MSGTR_MPDEMUX_MMST_MediaDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ п╪п╣п╢п╦п╟п╢п╟п╫п╫я▀п╣.\n"
-#define MSGTR_MPDEMUX_MMST_MissingSignature "п©я─п╬п©я┐я┴п╣п╫п╟ п©п╬п╢п©п╦я│я▄\n"
-#define MSGTR_MPDEMUX_MMST_PatentedTechnologyJoke "п▓я│я▒ я│п╢п╣п╩п╟п╫п╬. п║п©п╟я│п╦п╠п╬ п╥п╟ п╥п╟пЁя─я┐п╥п╨я┐ п╪п╣п╢п╦п╟я└п╟п╧п╩п╟,\nя│п╬п╢п╣я─п╤п╟я┴п╣пЁп╬ п©я─п╬п©я─п╦п╣я┌п╟я─п╫я┐я▌ п╦ п╥п╟п©п╟я┌п╣п╫я┌п╬п╡п╟п╫п╫я┐я▌ я┌п╣я┘п╫п╬п╩п╬пЁп╦я▌.\n"
-#define MSGTR_MPDEMUX_MMST_UnknownCmd "п╫п╣п╦п╥п╡п╣я│я┌п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟ %02x\n"
-#define MSGTR_MPDEMUX_MMST_GetMediaPacketErr "п╬я┬п╦п╠п╨п╟ get_media_packet : %s\n"
-#define MSGTR_MPDEMUX_MMST_Connected "п║п╬п╣п╢п╦п╫п╦п╩п╦я│я▄\n"
-
-// asf_streaming.c
-
-#define MSGTR_MPDEMUX_ASF_StreamChunkSize2Small "п╜я┘, я─п╟п╥п╪п╣я─ stream_chunck я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩: %d\n"
-#define MSGTR_MPDEMUX_ASF_SizeConfirmMismatch "п╫п╣я│п╬п╬я┌п╡п╣я┌я│п╡п╦п╣ size_confirm!: %d %d\n"
-#define MSGTR_MPDEMUX_ASF_WarnDropHeader "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п©я─п╬п©я┐я│п╨ п╥п╟пЁп╬п╩п╬п╡п╨п╟ ????\n"
-#define MSGTR_MPDEMUX_ASF_ErrorParsingChunkHeader "п·я┬п╦п╠п╨п╟ я─п╟п╥п╠п╬я─п╟ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╥п╡п╣п╫п╟\n"
-#define MSGTR_MPDEMUX_ASF_NoHeaderAtFirstChunk "п²п╣ п©п╬п╩я┐я┤п╦п╩ п╥п╟пЁп╬п╩п╬п╡п╬п╨ п╨п╟п╨ п©п╣я─п╡п╬п╣ п╥п╡п╣п╫п╬ !!!!\n"
-#define MSGTR_MPDEMUX_ASF_BufferMallocFailed "п·я┬п╦п╠п╨п╟: п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╠я┐я└п╣я─ п╡ %d п╠п╟п╧я┌(п╟/п╬п╡).\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingNetworkStream "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ я│п╣я┌п╣п╡п╬пЁп╬ п©п╬я┌п╬п╨п╟.\n"
-#define MSGTR_MPDEMUX_ASF_ErrChunk2Small "п·я┬п╦п╠п╨п╟: п≈п╡п╣п╫п╬ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╬.\n"
-#define MSGTR_MPDEMUX_ASF_ErrSubChunkNumberInvalid "п·я┬п╦п╠п╨п╟: п²п╬п╪п╣я─ п©п╬п╢я├п╣п©п╬я┤п╨п╦ п╫п╣п╡п╣я─п╣п╫.\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallCannotPlay "Cп╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, я└п╟п╧п╩ п╫п╣ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п©я─п╬п╦пЁя─п╟п╫!\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedAudio "Cп╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, п╬я┌п╨п╩я▌я┤п╟я▌ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨.\n"
-#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedVideo "Cп╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, п╬я┌п╨п╩я▌я┤п╟я▌ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨.\n"
-#define MSGTR_MPDEMUX_ASF_InvalidLenInHeader "п²п╣п╡п╣я─п╫п╟я▐ п╢п╩п╦п╫п╟ п╡ п╥п╟пЁп╬п╩п╬п╡п╨п╣ ASF!\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingChunkHeader "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╥п╡п╣п╫п╟.\n"
-#define MSGTR_MPDEMUX_ASF_ErrChunkBiggerThanPacket "п·я┬п╦п╠п╨п╟: chunk_size > packet_size\n"
-#define MSGTR_MPDEMUX_ASF_ErrReadingChunk "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╥п╡п╣п╫п╟.\n"
-#define MSGTR_MPDEMUX_ASF_ASFRedirector "=====> п÷п╣я─п╣п╫п╟п©я─п╟п╡п╦я┌п╣п╩я▄ ASF\n"
-#define MSGTR_MPDEMUX_ASF_InvalidProxyURL "п╫п╣п╡п╣я─п╫я▀п╧ URL п©я─п╬п╨я│п╦\n"
-#define MSGTR_MPDEMUX_ASF_UnknownASFStreamType "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟ ASF\n"
-#define MSGTR_MPDEMUX_ASF_Failed2ParseHTTPResponse "п²п╣ п╪п╬пЁя┐ п©я─п╬п╟п╫п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╬я┌п╡п╣я┌ HTTP.\n"
-#define MSGTR_MPDEMUX_ASF_ServerReturn "п║п╣я─п╡п╣я─ п╡п╣я─п╫я┐п╩ %d:%s\n"
-#define MSGTR_MPDEMUX_ASF_ASFHTTPParseWarnCuttedPragma "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙ п░п²п░п⌡п≤п≈п░п╒п·п═п░ HTTP ASF : Pragma %s я┐я─п╣п╥п╟п╫п╟ п╬я┌ %d п╠п╟п╧я┌ п╢п╬ %d\n"
-#define MSGTR_MPDEMUX_ASF_SocketWriteError "п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦ я│п╬п╨п╣я┌п╟: %s\n"
-#define MSGTR_MPDEMUX_ASF_HeaderParseFailed "п²п╣ п╪п╬пЁя┐ я─п╟п╥п╬п╠я─п╟я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╬п╨.\n"
-#define MSGTR_MPDEMUX_ASF_NoStreamFound "п÷п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
-#define MSGTR_MPDEMUX_ASF_UnknownASFStreamingType "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟ ASF\n"
-#define MSGTR_MPDEMUX_ASF_InfoStreamASFURL "STREAM_ASF, URL: %s\n"
-#define MSGTR_MPDEMUX_ASF_StreamingFailed "п║п╠п╬п╧, п╡я▀я┘п╬п╤я┐.\n"
-
-// audio_in.c
-
-#define MSGTR_MPDEMUX_AUDIOIN_ErrReadingAudio "\nп·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╟я┐п╢п╦п╬: %s\n"
-#define MSGTR_MPDEMUX_AUDIOIN_XRUNSomeFramesMayBeLeftOut "п▓п╬я│я│я┌п╟п╫п╬п╡п╩п╣п╫п╦п╣ п©п╬я│п╩п╣ п©п╣я─п╣я│п╨п╬п╨п╟, п╫п╣п╨п╬я┌п╬я─я▀п╣ п╨п╟п╢я─я▀ п╪п╬пЁя┐я┌ п╠я▀я┌я▄ п©п╬я┌п╣я─я▐п╫я▀!\n"
-#define MSGTR_MPDEMUX_AUDIOIN_ErrFatalCannotRecover "п╓п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟, п╫п╣ п╪п╬пЁя┐ п╡п╬я│я│я┌п╟п╫п╬п╡п╦я┌я▄я│я▐!\n"
-#define MSGTR_MPDEMUX_AUDIOIN_NotEnoughSamples "\nп²п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п╟я┐п╢п╦п╬п╬п╠я─п╟п╥я├п╬п╡!\n"
-
// aviheader.c
-
#define MSGTR_MPDEMUX_AVIHDR_EmptyList "** п©я┐я│я┌п╬п╧ я│п©п╦я│п╬п╨?!\n"
#define MSGTR_MPDEMUX_AVIHDR_FoundMovieAt "п²п╟п╧п╢п╣п╫ я└п╦п╩я▄п╪ п╫п╟ 0x%X - 0x%X\n"
#define MSGTR_MPDEMUX_AVIHDR_FoundBitmapInfoHeader "п²п╟п╧п╢п╣п╫ 'bih', я─п╟п╥п╪п╣я─ п╥п╡п╣п╫п╟ %u п╠п╟п╧я┌(п╟/п╬п╡), я─п╟п╥п╪п╣я─ 'bih' %d п╠п╟п╧я┌(п╟/п╬п╡)\n"
@@ -1580,61 +1488,24 @@ static char help_text[]=
#define MSGTR_MPDEMUX_AVIHDR_IdxFileLoaded "п≈п╟пЁя─я┐п╤п╟я▌ п╦п╫п╢п╣п╨я│п╫я▀п╧ я└п╟п╧п╩: %s\n"
#define MSGTR_MPDEMUX_AVIHDR_GeneratingIdx "п║п╬п╥п╢п╟я▌ п≤п╫п╢п╣п╨я│: %3lu %s \r"
#define MSGTR_MPDEMUX_AVIHDR_IdxGeneratedForHowManyChunks "AVI: п║п╬п╥п╢п╟п╫п╟ п╦п╫п╢п╣п╨я│п╫п╟я▐ я┌п╟п╠п╩п╦я├п╟ п╢п╩я▐ %d п╥п╡п╣п╫я▄п╣п╡!\n"
-#define MSGTR_MPDEMUX_AVIHDR_Failed2WriteIdxFile "п²п╣ п╪п╬пЁя┐ п╥п╟п©п╦я│п╟я┌я▄ я└п╟п╧п╩ п╦п╫п╢п╣я│п╟ %s: %s\n"
+#define MSGTR_MPDEMUX_AVIHDR_Failed2WriteIdxFile "п²п╣ п╪п╬пЁя┐ п╥п╟п©п╦я│п╟я┌я▄ я└п╟п╧п╩ п╦п╫п╢п╣п╨я│п╟ %s: %s\n"
#define MSGTR_MPDEMUX_AVIHDR_IdxFileSaved "п║п╬я┘я─п╟п╫я▒п╫ п╦п╫п╢п╣п╨я│п╫я▀п╧ я└п╟п╧п╩: %s\n"
-// cache2.c
-
-#define MSGTR_MPDEMUX_CACHE2_NonCacheableStream "\rп╜я┌п╬я┌ п©п╬я┌п╬п╨ п╫п╣ п╨я█я┬п╦я─я┐п╣п╪.\n"
-#define MSGTR_MPDEMUX_CACHE2_ReadFileposDiffers "!!! read_filepos я─п╟п╥п╩п╦я┤п╟я▌я┌я│я▐!!! п║п╬п╬п╠я┴п╦я┌п╣ п╬п╠ я█я┌п╬п╧ п╬я┬п╦п╠п╨п╣...\n"
-
-// cdda.c
-
-#define MSGTR_MPDEMUX_CDDA_CantOpenCDDADevice "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ CDDA.\n"
-#define MSGTR_MPDEMUX_CDDA_CantOpenDisc "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╦я│п╨.\n"
-#define MSGTR_MPDEMUX_CDDA_AudioCDFoundWithNTracks "п²п╟п╧п╢п╣п╫ п╟я┐п╢п╦п╬ CD я│ %ld п╢п╬я─п╬п╤п╨п╟п╪п╦.\n"
-
-// cddb.c
-
-#define MSGTR_MPDEMUX_CDDB_FailedToReadTOC "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ TOC.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToOpenDevice "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ %s.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAValidURL "п╫п╣п╡п╣я─п╫я▀п╧ URL\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToSendHTTPRequest "п²п╣ п╪п╬пЁя┐ п╬я┌п©я─п╟п╡п╦я┌я▄ HTTP п╥п╟п©я─п╬я│.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToReadHTTPResponse "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╣я│я┌я▄ HTTP п╬я┌п╡п╣я┌.\n"
-#define MSGTR_MPDEMUX_CDDB_HTTPErrorNOTFOUND "п²п╣ п╫п╟п╧п╢п╣п╫.\n"
-#define MSGTR_MPDEMUX_CDDB_HTTPErrorUnknown "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╨п╬п╢ п╬я┬п╦п╠п╨п╦\n"
-#define MSGTR_MPDEMUX_CDDB_NoCacheFound "п я█я┬ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenRead "п²п╣ п╡я│п╣ xmcd я└п╟п╧п╩я▀ п╠я▀п╩п╦ п©я─п╬я┤п╦я┌п╟п╫я▀.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToCreateDirectory "п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п╨п╟я┌п╟п╩п╬пЁ %s.\n"
-#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenWritten "п²п╣ п╡я│п╣ xmcd я└п╟п╧п╩я▀ п╠я▀п╩п╦ п╥п╟п©п╦я│п╟п╫я▀.\n"
-#define MSGTR_MPDEMUX_CDDB_InvalidXMCDDatabaseReturned "п▓п╬п╥п╡я─п╟я┴я▒п╫ п╫п╣п╡п╣я─п╫я▀п╧ я└п╟п╧п╩ п╠п╟п╥я▀ п╢п╟п╫п╫я▀я┘ xmcd.\n"
-#define MSGTR_MPDEMUX_CDDB_UnexpectedFIXME "п╫п╣п╬п╤п╦п╢п╟п╫п╫п╬п╣ FIXME\n"
-#define MSGTR_MPDEMUX_CDDB_UnhandledCode "п╫п╣п╬п╠я─п╟п╠п╬я┌п╟п╫п╫я▀п╧ п╨п╬п╢\n"
-#define MSGTR_MPDEMUX_CDDB_UnableToFindEOL "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п╨п╬п╫п╣я├ я│я┌я─п╬п╨п╦.\n"
-#define MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle "п░п╫п╟п╩п╦п╥ я┐я│п©п╣я┬п╣п╫, п╫п╟п╧п╢п╣п╫п╬: %s\n"
-#define MSGTR_MPDEMUX_CDDB_AlbumNotFound "п░п╩я▄п╠п╬п╪ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
-#define MSGTR_MPDEMUX_CDDB_ServerReturnsCommandSyntaxErr "п║п╣я─п╡п╣я─ п╡п╣я─п╫я┐п╩: п╬я┬п╦п╠п╨п╟ я│п╦п╫я┌п╟п╨я│п╦я│п╟ п╨п╬п╪п╟п╫п╢я▀\n"
-#define MSGTR_MPDEMUX_CDDB_NoSitesInfoAvailable "п²п╣п╢п╬я│я┌я┐п©п╫п╟ п╦п╫я└п╬я─п╪п╟я├п╦я▐ п╬ я│п╟п╧я┌п╣.\n"
-#define MSGTR_MPDEMUX_CDDB_FailedToGetProtocolLevel "п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я┐я─п╬п╡п╣п╫я▄ п©я─п╬я┌п╬п╨п╬п╩п╟.\n"
-#define MSGTR_MPDEMUX_CDDB_NoCDInDrive "п²п╣я┌ CD п╡ п©я─п╦п╡п╬п╢п╣.\n"
+// open.c, stream.c:
+#define MSGTR_CdDevNotfound "CD-ROM '%s' п╫п╣ п╫п╟п╧п╢п╣п╫!\n"
+#define MSGTR_ErrTrackSelect "п·я┬п╦п╠п╨п╟ п╡я▀п╠п╬я─п╟ п╢п╬я─п╬п╤п╨п╦ VCD!"
+#define MSGTR_ReadSTDIN "п╖я┌п╣п╫п╦п╣ п╦п╥ stdin (я│п╬ я│я┌п╟п╫п╢п╟я─я┌п╫п╬пЁп╬ п╡я┘п╬п╢п╟)...\n"
+#define MSGTR_UnableOpenURL "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ URL: %s\n"
+#define MSGTR_ConnToServer "п║п╬п╣п╢п╦п╫п╣п╫п╦п╣ я│ я│п╣я─п╡п╣я─п╬п╪: %s\n"
+#define MSGTR_FileNotFound "п╓п╟п╧п╩ п╫п╣ п╫п╟п╧п╢п╣п╫: '%s'\n"
-// cue_read.c
+#define MSGTR_SMBInitError "п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╠п╦п╠п╩п╦п╬я┌п╣п╨я┐ libsmbclient: %d\n"
+#define MSGTR_SMBFileNotFound "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п©п╬ я│п╣я┌п╦: '%s'\n"
+#define MSGTR_SMBNotCompiled "MPlayer п╫п╣ п╠я▀п╩ я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ я│ п©п╬п╢п╢п╣я─п╤п╨п╬п╧ я┤я┌п╣п╫п╦я▐ SMB.\n"
-#define MSGTR_MPDEMUX_CUEREAD_UnexpectedCuefileLine "[bincue] п²п╣п╬п╤п╦п╢п╟п╫п╫я▀я▐ я│я┌я─п╬п╨п╟ я└п╟п╧п╩п╟ cue: %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_BinFilenameTested "[bincue] п©я─п╬п╡п╣я─п╣п╫п╫п╬п╣ п╦п╪я▐ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟: %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotFindBinFile "[bincue] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╠п╦п╫п╟я─п╫я▀п╧ я└п╟п╧п╩ - п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
-#define MSGTR_MPDEMUX_CUEREAD_UsingBinFile "[bincue] п≤я│п©п╬п╩я▄п╥я┐я▌ п╠п╦п╫п╟я─п╫я▀п╧ я└п╟п╧п╩ %s.\n"
-#define MSGTR_MPDEMUX_CUEREAD_UnknownModeForBinfile "[bincue] п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я─п╣п╤п╦п╪ п╢п╩я▐ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟.\nп╜я┌п╬пЁп╬ п╫п╣ п╢п╬п╩п╤п╫п╬ п©я─п╬п╦я│я┘п╬п╢п╦я┌я▄. п▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotOpenCueFile "[bincue] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s.\n"
-#define MSGTR_MPDEMUX_CUEREAD_ErrReadingFromCueFile "[bincue] п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╦п╥ %s\n"
-#define MSGTR_MPDEMUX_CUEREAD_ErrGettingBinFileSize "[bincue] п·я┬п╦п╠п╨п╟ п©п╬п╩я┐я┤п╣п╫п╦я▐ я─п╟п╥п╪п╣я─п╟ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟.\n"
-#define MSGTR_MPDEMUX_CUEREAD_InfoTrackFormat "п╢п╬я─п╬п╤п╨п╟ %02d: я└п╬я─п╪п╟я┌=%d %02d:%02d:%02d\n"
-#define MSGTR_MPDEMUX_CUEREAD_UnexpectedBinFileEOF "[bincue] п╫п╣п╬п╤п╦п╢п╟п╫п╫я▀п╧ п╨п╬п╫п╣я├ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟\n"
-#define MSGTR_MPDEMUX_CUEREAD_CannotReadNBytesOfPayload "[bincue] п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ %d п╠п╟п╧я┌(п╟/п╬п╡) п©п╬п╩п╣п╥п╫п╬п╧ п╫п╟пЁя─я┐п╥п╨п╦.\n"
-#define MSGTR_MPDEMUX_CUEREAD_CueStreamInfo_FilenameTrackTracksavail "CUE п╬я┌п╨я─я▀я┌п╦п╣_п©п╬я┌п╬п╨п╟, п╦п╪я▐ я└п╟п╧п╩п╟=%s, п╢п╬я─п╬п╤п╨п╟=%d, п╢п╬я│я┌я┐п©п╫я▀п╣ п╢п╬я─п╬п╤п╨п╦: %d -> %d\n"
+#define MSGTR_CantOpenDVD "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ DVD: %s (%s)\n"
// network.c
-
#define MSGTR_MPDEMUX_NW_UnknownAF "п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│п╣п╪п╣п╧я│я┌п╡п╬ п╟п╢я─п╣я│п╬п╡ %d\n"
#define MSGTR_MPDEMUX_NW_ResolvingHostForAF "п═п╟п╥я─п╣я┬п╟я▌ %s п╢п╩я▐ %s...\n"
#define MSGTR_MPDEMUX_NW_CantResolv "п²п╣ п╪п╬пЁя┐ я─п╟п╥я─п╣я┬п╦я┌я▄ п╦п╪я▐ п╢п╩я▐ %s: %s\n"
@@ -1659,11 +1530,9 @@ static char help_text[]=
#define MSGTR_MPDEMUX_NW_CacheSizeSetTo "пёя│я┌п╟п╫п╬п╡п╩п╣п╫ я─п╟п╥п╪п╣я─ п╨я█я┬п╟ %d п п▒п╟п╧я┌(п╟/п╬п╡)\n"
// demux_audio.c
-
#define MSGTR_MPDEMUX_AUDIO_UnknownFormat "п■п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─: п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я└п╬я─п╪п╟я┌ %d.\n"
// demux_demuxers.c
-
#define MSGTR_MPDEMUX_DEMUXERS_FillBufferError "п╬я┬п╦п╠п╨п╟ п╥п╟п©п╬п╩п╫п╣п╫п╦я▐_п╠я┐я└п╣я─п╟: п©п╩п╬я┘п╬п╧ п╢п╣п╪я┐п╩я▄я┌п╦п©п╩п╣п╨я│п╬я─: п╫п╣ vd, ad п╦п╩п╦ sd.\n"
// demux_mkv.c
@@ -1674,35 +1543,33 @@ static char help_text[]=
#define MSGTR_MPDEMUX_MKV_TrackEncrypted "[mkv] п■п╬я─п╬п╤п╨п╟ п╫п╬п╪п╣я─ %u п╥п╟я┬п╦я└я─п╬п╡п╟п╫п╟, п╟ я─п╟я│я┬п╦я└я─п╬п╡п╨п╟ п╣я┴п╣ п╫п╣ \n[mkv] я─п╣п╟п╩п╦п╥п╬п╡п╟п╫п╟. п÷я─п╬п©я┐я│п╨ п╢п╬я─п╬п╤п╨п╦.\n"
#define MSGTR_MPDEMUX_MKV_UnknownContentEncoding "[mkv] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© я┬п╦я└я─п╬п╡п╟п╫п╦я▐ я│п╬п╢п╣я─п╤п╦п╪п╬пЁп╬ п╢п╩я▐ п╢п╬я─п╬п╤п╨п╦ %u. п÷я─п╬п©я┐я│п╨ п╢п╬я─п╬п╤п╨п╦.\n"
#define MSGTR_MPDEMUX_MKV_UnknownCompression "[mkv] п■п╬я─п╬п╤п╨п╟ %u я│п╤п╟я┌п╟ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╪/п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╪ \n[mkv] п╟п╩пЁп╬я─п╦я┌п╪п╬п╪ (%u). п÷я─п╬п©я┐я│п╨ п╢п╬я─п╬п╤п╨п╦.\n"
-#define MSGTR_MPDEMUX_MKV_ZlibCompressionUnsupported "[mkv] п■п╬я─п╤п╨п╟ %u я│п╤п╟я┌п╟ zlib, п╫я─ mplayer я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ \n[mkv] п╠п╣п╥ п©п╬п╢п╢п╣я─п╢п╨п╦ я│п╤п╟я┌п╦я▐ zlib. п÷я─п╬п©я┐я│п╨ п╢п╬я─п╬п╤п╨п╦.\n"
+#define MSGTR_MPDEMUX_MKV_ZlibCompressionUnsupported "[mkv] п■п╬я─п╬п╤п╨п╟ %u я│п╤п╟я┌п╟ zlib, п╫п╬ mplayer я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ \n[mkv] п╠п╣п╥ п©п╬п╢п╢п╣я─п╤п╨п╦ я│п╤п╟я┌п╦я▐ zlib. п÷я─п╬п©я┐я│п╨ п╢п╬я─п╬п╤п╨п╦.\n"
#define MSGTR_MPDEMUX_MKV_TrackIDName "[mkv] ID п╢п╬я─п╬п╤п╨п╦ %u: %s (%s) \"%s\", %s\n"
#define MSGTR_MPDEMUX_MKV_TrackID "[mkv] ID п╢п╬я─п╬п╤п╨п╦ %u: %s (%s), %s\n"
#define MSGTR_MPDEMUX_MKV_UnknownCodecID "[mkv] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧/п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ CodecID (%s) п╦п╩п╦ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┴п╦п╣/п©п╩п╬я┘п╦п╣\n[mkv] п╢п╟п╫п╫я▀п╣ CodecPrivate (п╢п╬я─п╬п╤п╨п╟ %u).\n"
#define MSGTR_MPDEMUX_MKV_FlacTrackDoesNotContainValidHeaders "[mkv] п■п╬я─п╬п╤п╨п╟ FLAC п╫п╣ я│п╬п╢п╣я─п╤п╦я┌ п©я─п╟п╡п╦п╩я▄п╫я▀я┘ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
#define MSGTR_MPDEMUX_MKV_UnknownAudioCodec "[mkv] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧/п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ ID п╟я┐п╢п╦п╬ п╨п╬п╢п╣п╨п╟ '%s' п╢п╩я▐ п╢п╬я─п╬п╤п╨п╦ %u п╦п╩п╦ п╬я┌я│я┐я┌я│я┌п╡я┐я▌я┴п╦п╣/п╫п╣п╡п╣я─п╫я▀п╣\n[mkv] я┤п╟я│я┌п╫я▀п╣ п╢п╟п╫п╫я▀п╣ п╨п╬п╢п╣п╨п╟.\n"
-#define MSGTR_MPDEMUX_MKV_SubtitleTypeNotSupported "[mkv] п╒п╦п© я│я┐п╠я┌п╦я┌я─п╬п╡ '%s' п╫п╣ п©п╬п╢п╢п╣я─п╢п╦п╡п╟п╣я┌я│я▐.\n"
-#define MSGTR_MPDEMUX_MKV_WillPlayVideoTrack "[mkv] п▒я┐п╢п╣я┌ п╡п╬я│п©я─п╬п╦п╥п╡п╬п╦я┌я▄я│я▐ п╢п╬я─п╬п╤п╨п╟ %u.\n"
+#define MSGTR_MPDEMUX_MKV_SubtitleTypeNotSupported "[mkv] п╒п╦п© я│я┐п╠я┌п╦я┌я─п╬п╡ '%s' п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
+#define MSGTR_MPDEMUX_MKV_WillPlayVideoTrack "[mkv] п▒я┐п╢п╣я┌ п╡п╬я│п©я─п╬п╦п╥п╡п╬п╢п╦я┌я▄я│я▐ п╢п╬я─п╬п╤п╨п╟ %u.\n"
#define MSGTR_MPDEMUX_MKV_NoVideoTrackFound "[mkv] п²п╣ п╫п╟п╧п╢п╣п╫п╟/п╫п╣ я┌я─п╣п╠я┐п╣я┌я│я▐ п╡п╦п╢п╣п╬ п╢п╬я─п╬п╤п╨п╟.\n"
#define MSGTR_MPDEMUX_MKV_NoAudioTrackFound "[mkv] п²п╣ п╫п╟п╧п╢п╣п╫п╟/п╫п╣ я┌я─п╣п╠я┐п╣я┌я│я▐ п╟я┐п╢п╦п╬ п╢п╬я─п╬п╤п╨п╟.\n"
#define MSGTR_MPDEMUX_MKV_WillDisplaySubtitleTrack "[mkv] п▒я┐п╢п╣я┌ п╬я┌п╬п╠я─п╟п╤п╟я┌я▄я│я▐ п╢п╬я─п╬п╤п╨п╟ я│я┐п╠я┌п╦я┌я─п╬п╡ %u.\n"
-#define MSGTR_MPDEMUX_MKV_NoBlockDurationForSubtitleTrackFound "[mkv] п▓п╫п╦п╪п╟п╫п╦п╣: п■п╩я▐ я│я┐п╠я┌п╦я┌я─п╬п╡ п╫п╣ п╫п╟п╧п╢п╣п╫п╬ BlockDuration.\n"
+#define MSGTR_MPDEMUX_MKV_NoBlockDurationForSubtitleTrackFound "[mkv] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п²п╣ п╫п╟п╧п╢п╣п╫п╟ п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄ п╠п╩п╬п╨п╟ я┌я─п╣п╨п╟ я│я┐п╠я┌п╦я┌я─п╬п╡.\n"
#define MSGTR_MPDEMUX_MKV_TooManySublines "[mkv] п▓п╫п╦п╪п╟п╫п╦п╣: я│п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я│я┌я─п╬п╨ п╢п╩я▐ я─п╣п╫п╢п╣я─п╦п╫пЁп╟, п©я─п╬п©я┐я┴п╣п╫я▀.\n"
-#define MSGTR_MPDEMUX_MKV_TooManySublinesSkippingAfterFirst "\n[mkv] п▓п╫п╦п╪п╟п╫п╦п╣: я│п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я│я┌я─п╬п╨ п╢п╩я▐ я─п╣п╫п╢п╣я─п╦п╫пЁп╟, п©я─п╬п©я┐я┴п╣п╫я▀ п╡я│п╣ п╨я─п╬п╪п╣ п©п╣я─п╡п╬п╧ %i.\n"
+#define MSGTR_MPDEMUX_MKV_TooManySublinesSkippingAfterFirst "\n[mkv] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: я│п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я│я┌я─п╬п╨ п╢п╩я▐ я─п╣п╫п╢п╣я─п╦п╫пЁп╟,\nп©я─п╬п©я┐я┴п╣п╫я▀ п╡я│п╣ п╨я─п╬п╪п╣ п©п╣я─п╡п╬п╧ %i.\n"
// demux_nuv.c
-
-#define MSGTR_MPDEMUX_NUV_NoVideoBlocksInFile "п▓ я└п╟п╧п╩п╣ п╫п╣я┌ п╡п╦п╢п╣п╬п╠п╩п╬п╨п╬п╡.\n"
+#define MSGTR_MPDEMUX_NUV_NoVideoBlocksInFile "п▓ я└п╟п╧п╩п╣ п╫п╣я┌ п╠п╩п╬п╨п╬п╡ п╡п╦п╢п╣п╬.\n"
// demux_xmms.c
-
#define MSGTR_MPDEMUX_XMMS_FoundPlugin "п²п╟п╧п╢п╣п╫ п©п╩п╟пЁп╦п╫: %s (%s).\n"
#define MSGTR_MPDEMUX_XMMS_ClosingPlugin "п≈п╟п╨я─я▀п╡п╟я▌ п©п╩п╟пЁп╦п╫: %s.\n"
#define MSGTR_MPDEMUX_XMMS_WaitForStart "п·п╤п╦п╢п╟п╫п╦п╣ п╫п╟я┤п╟п╩п╟ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐ '%s' п©п╩п╟пЁп╦п╫п╬п╪ XMMS...\n"
-// ========================== LIBMPMENU ===================================
-// common
+// ========================== LIBMENU ===================================
+// common
#define MSGTR_LIBMENU_NoEntryFoundInTheMenuDefinition "[п°п∙п²п╝] п²п╣ п╫п╟п╧п╢п╣п╫п╬ п╡я┘п╬п╤п╢п╣п╫п╦п╧ п╡ п╬п©п╦я│п╟п╫п╦п╦ п╪п╣п╫я▌.\n"
// libmenu/menu.c
@@ -1757,11 +1624,65 @@ static char help_text[]=
#define MSGTR_LIBMENU_UnknownMenuCommand "[п°п∙п²п╝] п²п╣п╦п╥п╡п╣я│я┌п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟: '%s'.\n"
#define MSGTR_LIBMENU_FailedToOpenMenu "[п°п∙п²п╝] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╪п╣п╫я▌: '%s'.\n"
+
// ========================== LIBMPCODECS ===================================
+// dec_video.c & dec_audio.c:
+#define MSGTR_CantOpenCodec "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╨п╬п╢п╣п╨.\n"
+#define MSGTR_CantCloseCodec "п²п╣ п╪п╬пЁя┐ п╥п╟п╨я─я▀я┌я▄ п╨п╬п╢п╣п╨.\n"
+
+#define MSGTR_MissingDLLcodec "п·п╗п≤п▒п п░: п²п╣ я│п╪п╬пЁ п╬я┌п╨я─я▀я┌я▄ я┌я─п╣п╠я┐я▌я┴п╦п╧я│я▐ DirectShow п╨п╬п╢п╣п╨: %s\n"
+#define MSGTR_ACMiniterror "п²п╣ я│п╪п╬пЁ п╥п╟пЁя─я┐п╥п╦я┌я▄/п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ Win32/ACM п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨ (п©п╬я┌п╣я─я▐п╫ DLL я└п╟п╧п╩?)\n"
+#define MSGTR_MissingLAVCcodec "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╨п╬п╢п╣п╨ '%s' п╡ libavcodec...\n"
+
+#define MSGTR_MpegNoSequHdr "MPEG: п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п п·п²п∙п╕ п╓п░п≥п⌡п░ п©я─п╦ п©п╬п╦я│п╨п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
+#define MSGTR_CannotReadMpegSequHdr "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п²п╣ п╪п╬пЁя┐ я│я┤п╦я┌п╟я┌я▄ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
+#define MSGTR_CannotReadMpegSequHdrEx "п╓п░п╒п░п⌡п╛п²п░п╞ п·п╗п≤п▒п п░: п²п╣ п╪п╬я┤я┐ я│я┤п╦я┌п╟я┌я▄ я─п╟я│я┬п╦я─п╣п╫п╦п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
+#define MSGTR_BadMpegSequHdr "MPEG: п÷п╩п╬я┘п╟я▐ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
+#define MSGTR_BadMpegSequHdrEx "MPEG: п÷п╩п╬я┘п╬п╣ я─п╟я│я┬п╦я─п╣п╫п╦п╣ п©п╬я│п╩п╣п╢п╬п╡п╟я┌п╣п╩я▄п╫п╬я│я┌п╦ п╥п╟пЁп╬п╩п╬п╡п╨п╬п╡.\n"
+
+#define MSGTR_ShMemAllocFail "п²п╣ п╪п╬пЁя┐ п╥п╟я─п╣п╥п╣я─п╡п╦я─п╬п╡п╟я┌я▄ я─п╟п╥п╢п╣п╩я▐п╣п╪я┐я▌ п©п╟п╪я▐я┌я▄.\n"
+#define MSGTR_CantAllocAudioBuf "п²п╣ п╪п╬пЁя┐ п╥п╟я─п╣п╥п╣я─п╡п╦я─п╬п╡п╟я┌я▄ п╡я▀я┘п╬п╢п╫п╬п╧ п╟я┐п╢п╦п╬ п╠я┐я└п╣я─.\n"
+
+#define MSGTR_UnknownAudio "п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧/п©п╬я┌п╣я─я▐п╫п╫я▀п╧ п╟я┐п╢п╦п╬ я└п╬я─п╪п╟я┌ -> п╠п╣п╥ п╥п╡я┐п╨п╟\n"
+
+#define MSGTR_UsingExternalPP "[PP] п≤я│п©п╬п╩я▄п╥я┐я▌ п╡п╫п╣я┬п╫п╦п╧ я└п╦п╩я▄я┌я─ п©п╬я│я┌п╬п╠я─п╟п╠п╬я┌п╨п╦, max q = %d.\n"
+#define MSGTR_UsingCodecPP "[PP] п≤я│п©п╬п╩я▄п╥я┐я▌ п©п╬я│я┌п╬п╠я─п╟п╠п╬я┌п╨я┐ п╦п╥ п╨п╬п╢п╣п╨п╟, max q = %d.\n"
+#define MSGTR_VideoAttributeNotSupportedByVO_VD "п▓п╦п╢п╣п╬п╟я┌я─п╦п╠я┐я┌ '%s' п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ п╡я▀п╠я─п╟п╫п╫я▀п╪п╦ vo п╦ vd.\n"
+#define MSGTR_VideoCodecFamilyNotAvailableStr "п≈п╟п©я─п╬я┬п╣п╫п╫п╬п╣ я│п╣п╪п╣п╧я│я┌п╡п╬ п╡п╦п╢п╣п╬п╨п╬п╢п╣п╨п╬п╡ [%s] (vfm=%s) п╫п╣ п╢п╬я│я┌я┐п©п╫п╬.\nп▓п╨п╩я▌я┤п╦я┌п╣ п╣пЁп╬ п╡п╬ п╡я─п╣п╪я▐ п╨п╬п╪п©п╦п╩я▐я├п╦п╦.\n"
+#define MSGTR_AudioCodecFamilyNotAvailableStr "п≈п╟п©я─п╬я┬п╣п╫п╫п╬п╣ я│п╣п╪п╣п╧я│я┌п╡п╬ п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨п╬п╡ [%s] (afm=%s) п╫п╣ п╢п╬я│я┌я┐п©п╫п╬.\nп▓п╨п╩я▌я┤п╦я┌п╣ п╣пЁп╬ п╡п╬ п╡я─п╣п╪я▐ п╨п╬п╪п©п╦п╩я▐я├п╦п╦.\n"
+#define MSGTR_OpeningVideoDecoder "п·я┌п╨я─я▀п╡п╟я▌ п╢п╣п╨п╬п╢п╣я─ п╡п╦п╢п╣п╬: [%s] %s\n"
+#define MSGTR_SelectedVideoCodec "п▓я▀п╠я─п╟п╫ п╡п╦п╢п╣п╬п╨п╬п╢п╣п╨: [%s] vfm: %s (%s)\n"
+#define MSGTR_OpeningAudioDecoder "п·я┌п╨я─я▀п╡п╟я▌ п╢п╣п╨п╬п╢п╣я─ п╟я┐п╢п╦п╬: [%s] %s\n"
+#define MSGTR_SelectedAudioCodec "п▓я▀п╠я─п╟п╫ п╟я┐п╢п╦п╬п╨п╬п╢п╣п╨: [%s] afm: %s (%s)\n"
+#define MSGTR_BuildingAudioFilterChain "п÷п╬я│я┌я─п╬п╣п╫п╦п╣ я├п╣п©п╬я┤п╨п╦ п╟я┐п╢п╦п╬я└п╦п╩я▄я┌я─п╟ п╢п╩я▐ %dHz/%dch/%s -> %dHz/%dch/%s...\n"
+#define MSGTR_UninitVideoStr "п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ п╡п╦п╢п╣п╬: %s\n"
+#define MSGTR_UninitAudioStr "п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ п╟я┐п╢п╦п╬: %s\n"
+#define MSGTR_VDecoderInitFailed "п·я┬п╦п╠п╨п╟ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п▓п╦п╢п╣п╬ :(\n"
+#define MSGTR_ADecoderInitFailed "п·я┬п╦п╠п╨п╟ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п░я┐п╢п╦п╬ :(\n"
+#define MSGTR_ADecoderPreinitFailed "п·я┬п╦п╠п╨п╟ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫п╬п╧ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ п■п╣п╨п╬п╢п╣я─п╟ п░я┐п╢п╦п╬ :(\n"
+#define MSGTR_AllocatingBytesForInputBuffer "dec_audio: п≈п╟я┘п╡п╟я┌я▀п╡п╟я▌ %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╩я▐ п╡я┘п╬п╢п╫п╬пЁп╬ п╠я┐я└п╣я─п╟.\n"
+#define MSGTR_AllocatingBytesForOutputBuffer "dec_audio: п≈п╟я┘п╡п╟я┌я▀п╡п╟я▌ %d + %d = %d п╠п╟п╧я┌(п╟/п╬п╡) п╢п╩я▐ п╠я┐я└п╣я─п╟ п╡я▀п╡п╬п╢п╟.\n"
+
+// libmpcodecs/ad_dvdpcm.c:
+#define MSGTR_SamplesWanted "п■п╩я▐ я┐п╩я┐я┤я┬п╣п╫п╦я▐ п©п╬п╢п╢п╣я─п╤п╨п╦ п╫п╣п╬п╠я┘п╬п╢п╦п╪я▀ п╬п╠я─п╟п╥я├я▀ я█я┌п╬пЁп╬ я└п╬я─п╪п╟я┌п╟.\nп÷п╬п╤п╟п╩я┐п╧я│я┌п╟, я│п╡я▐п╤п╦я┌п╣я│я▄ я│ я─п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╟п╪п╦.\n"
+
// libmpcodecs/ad_libdv.c
#define MSGTR_MPCODECS_AudioFramesizeDiffers "[AD_LIBDV] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣! п═п╟п╥п╪п╣я─ я└я─п╣п╧п╪п╟ п╟я┐п╢п╦п╬ п╬я┌п╩п╦я┤п╟п╣я┌я│я▐! read=%d hdr=%d.\n"
+// vd.c
+#define MSGTR_CodecDidNotSet "VDec: п п╬п╢п╣п╨ п╫п╣ я┐я│я┌п╟п╫п╬п╡п╦п╩ sh->disp_w п╦ sh->disp_h, п©я▀я┌п╟я▌я│я▄ п╬п╠п╬п╧я┌п╦.\n"
+#define MSGTR_VoConfigRequest "VDec: п╥п╟п©я─п╬я│ vo config - %d x %d (п©я─п╣п╢п©п╬я┤п╦я┌п╟п╣п╪п╬п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬: %s)\n"
+#define MSGTR_UsingXAsOutputCspNoY "VDec: п╦я│п©п╬п╩я▄п╥я┐я▌ %s п╡ п╨п╟я┤п╣я│я┌п╡п╣ п╡я▀я┘п╬п╢п╫п╬пЁп╬ csp (п╫п╣ %d)\n"
+#define MSGTR_CouldNotFindColorspace "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п©п╬п╢я┘п╬п╢я▐я┴п╣п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬ - п©п╬п©я▀я┌п╟я▌я│я▄ я│ -vf scale...\n"
+#define MSGTR_MovieAspectIsSet "Movie-Aspect - %.2f:1 - п╡я▀п©п╬п╩п╫я▐я▌ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫п╬п╣ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣\nп╢п╩я▐ п╨п╬я─я─п╣п╨я├п╦п╦ я│п╬п╬я┌п╫п╬я┬п╣п╫п╦я▐ я│я┌п╬я─п╬п╫ я└п╦п╩я▄п╪п╟.\n"
+#define MSGTR_MovieAspectUndefined "Movie-Aspect п╫п╣ п╬п©я─п╣п╢п╣п╩я▒п╫ - п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫п╬п╣ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣ п╫п╣ п©я─п╦п╪п╣п╫я▐п╣я┌я│я▐.\n"
+
+// vd_dshow.c, vd_dmo.c
+#define MSGTR_DownloadCodecPackage "п▓п╟п╪ п╫я┐п╤п╫п╬ п╬п╠п╫п╬п╡п╦я┌я▄/я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п©п╟п╨п╣я┌ п╠п╦п╫п╟я─п╫я▀я┘ п╨п╬п╢п╣п╨п╬п╡.\nп≈п╟п╧п╢п╦я┌п╣ п╫п╟ http://www.mplayerhq.hu/dload.html\n"
+#define MSGTR_DShowInitOK "п≤п²п╓п·п═п°п░п╕п≤п╞: Win32/DShow п╡п╦п╢п╣п╬ п╨п╬п╢п╣п╨ я┐я│п©п╣я┬п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫.\n"
+#define MSGTR_DMOInitOK "п≤п²п╓п·п═п°п░п╕п≤п╞: Win32/DMO п╡п╦п╢п╣п╬ п╨п╬п╢п╣п╨ я┐я│п©п╣я┬п╫п╬ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫.\n"
+
// libmpcodecs/vd_dmo.c vd_dshow.c vd_vfw.c
#define MSGTR_MPCODECS_CouldntAllocateImageForCinepakCodec "[VD_DMO] п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╢п╩я▐ п╨п╬п╢п╣п╨п╟ cinepak.\n"
@@ -1785,6 +1706,12 @@ static char help_text[]=
#define MSGTR_MPCODECS_OutputWithFourccNotSupported "[VE_RAW] п║я▀я─п╬п╧ п╡я▀п╡п╬п╢ я│ FourCC [%x] п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐!\n"
#define MSGTR_MPCODECS_NoVfwCodecSpecified "[VE_RAW] п²п╣п╬п╠я┘п╬п╢п╦п╪я▀п╧ VfW п╨п╬п╢п╣п╨ п╫п╣ п╬п©я─п╣п╢п╣п╩я▒п╫!!\n"
+// vf.c
+#define MSGTR_CouldNotFindVideoFilter "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─ '%s'.\n"
+#define MSGTR_CouldNotOpenVideoFilter "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─ '%s'.\n"
+#define MSGTR_OpeningVideoFilter "п·я┌п╨я─я▀п╡п╟я▌ п╡п╦п╢п╣п╬ я└п╦п╩я▄я┌я─: "
+#define MSGTR_CannotFindColorspace "п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п©п╬п╢я┘п╬п╢я▐я┴п╣п╣ я├п╡п╣я┌п╬п╡п╬п╣ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╬, п╢п╟п╤п╣ п╡я│я┌п╟п╡п╦п╡ 'scale' :(\n"
+
// libmpcodecs/vf_crop.c
#define MSGTR_MPCODECS_CropBadPositionWidthHeight "[CROP] п÷п╩п╬я┘п╟я▐ п©п╬п╥п╦я├п╦я▐/я┬п╦я─п╦п╫п╟/п╡я▀я│п╬я┌п╟ - я┐я─п╣п╥п╟п╫п╫п╟я▐ п╬п╠п╩п╟я│я┌я▄ п╡п╫п╣ п╬я─п╦пЁп╦п╫п╟п╩п╟!\n"
@@ -1807,269 +1734,288 @@ static char help_text[]=
// libmpcodecs/vf_expand.c
#define MSGTR_MPCODECS_FullDRNotPossible "п÷п╬п╩п╫я▀п╧ DR п╫п╣п╡п╬п╥п╪п╬п╤п╣п╫, п©я─п╬п╠я┐я▌ SLICES п╡п╥п╟п╪п╣п╫!\n"
#define MSGTR_MPCODECS_WarnNextFilterDoesntSupportSlices "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙! п║п╩п╣п╢я┐я▌я┴п╦п╧ я└п╦п╩я▄я┌я─ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ SLICES,\nп©я─п╦пЁп╬я┌п╬п╡я▄я┌п╣я│я▄ п╨ п╬я┬п╦п╠п╨п╣ я│п╣пЁп╪п╣п╫я┌п╟я├п╦п╦ п©п╟п╪я▐я┌п╦ (sig11)...\n"
-#define MSGTR_MPCODECS_FunWhydowegetNULL "п÷п╬я┤п╣п╪я▀ п╪я▀ п©п╬п╩я┐я┤п╦п╩п╦ NULL??\n"
+#define MSGTR_MPCODECS_FunWhydowegetNULL "п÷п╬я┤п╣п╪я┐ п╪я▀ п©п╬п╩я┐я┤п╦п╩п╦ NULL??\n"
// libmpcodecs/vf_test.c, vf_yuy2.c, vf_yvu9.c
#define MSGTR_MPCODECS_WarnNextFilterDoesntSupport "%s п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я│п╩п╣п╢я┐я▌я┴п╦п╪ я└п╦п╩я▄я┌я─п╬п╪/п╡п╦п╢п╣п╬п╡я▀п╡п╬п╢п╬п╪ :(\n"
-// ================================== LIBMPVO ====================================
-
-// mga_common.c
-
-#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] п╬я┬п╦п╠п╨п╟ п╡ mga_vid_config ioctl (п╫п╣п╡п╣я─п╫п╟я▐ п╡п╣я─я│п╦я▐ mga_vid.o?)"
-#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ п╩я▌п╪я▀ п╦п╥ п╪п╬п╢я┐п╩я▐ я▐п╢я─п╟!\n"
-#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ п╩я▌п╪я▀ п╦п╥ п╪п╬п╢я┐п╩я▐ я▐п╢я─п╟!\n"
-#define MSGTR_LIBVO_MGA_ScreenWidthHeightUnknown "[MGA] п╗п╦я─п╦п╫п╟/п╡я▀я│п╬я┌п╟ я█п╨я─п╟п╫п╟ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀!\n"
-#define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] п╫п╣п╡п╣я─п╫я▀п╧ п╡я▀я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌ %0X\n"
-#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] п▓п╣я─я│п╦я▐ п╡п╟я┬п╣пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ mga_vid п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪п╟ я│ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧ MPlayer!\n"
-#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄: %s\n"
-#define MGSTR_LIBVO_MGA_ResolutionTooHigh "[MGA] п═п╟п╥я─п╣я┬п╣п╫п╦п╣ п╦я│я┌п╬я┤п╫п╦п╨п╟, п©п╬ п╨я─п╟п╧п╫п╣п╧ п╪п╣я─п╣ п╡ п╬п╢п╫п╬п╪ п╦п╥п╪п╣я─п╣п╫п╦п╦, п╠п╬п╩я▄я┬п╣ я┤п╣п╪\n1023x1023. п÷п╣я─п╣п╪п╟я│я┬я┌п╟п╠п╦я─я┐п╧я┌п╣ п©я─п╬пЁя─п╟п╪п╪п╫п╬ п╦п╩п╦ п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -lavdopts lowres=1\n"
-
-// libvo/vesa_lvo.c
-
-#define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] п╜я┌п╟ п╡п╣я┌п╨п╟ п╠п╬п╩я▄я┬п╣ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n[VESA_LVO] п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vo vesa:vidix п╡п╥п╟п╪п╣п╫.\n"
-#define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄: '%s'\n"
-#define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] п²п╣п╡п╣я─п╫я▀п╧ п╡я▀я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌: %s(%0X)\n"
-#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] п▓п╣я─я│п╦я▐ п╡п╟я┬п╣пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ fb_vid п╫п╣я│п╬п╡п╪п╣я│я┌п╦п╪п╟ я│ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧ MPlayer!\n"
-
-// libvo/vo_3dfx.c
-
-#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] п÷п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┌п╬п╩я▄п╨п╬ 16bpp!"
-#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] п▓п╦п╥я┐п╟п╩я▄п╫я▀п╧ ID %lx.\n"
-#define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ /dev/3dfx.\n"
-#define MSGTR_LIBVO_3DFX_Error "[VO_3DFX] п·я┬п╦п╠п╨п╟: %d.\n"
-#define MSGTR_LIBVO_3DFX_CouldntMapMemoryArea "[VO_3DFX] п²п╣ п╪п╬пЁя┐ п╬я┌п╬п╠я─п╟п╥п╦я┌я▄ п╬п╠п╩п╟я│я┌п╦ п©п╟п╪я▐я┌п╦ 3dfx: %p,%p,%d.\n"
-#define MSGTR_LIBVO_3DFX_DisplayInitialized "[VO_3DFX] п≤п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟п╫п╬: %p.\n"
-#define MSGTR_LIBVO_3DFX_UnknownSubdevice "[VO_3DFX] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│я┐п╠я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
-
-// libvo/aspect.c
-#define MSGTR_LIBVO_ASPECT_NoSuitableNewResFound "[ASPECT] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п²п╣ п╫п╟п╧п╢п╣п╫п╬ п©п╬п╢я┘п╬п╢я▐я┴п╣пЁп╬ я─п╟п╥я─п╣я┬п╣п╫п╦я▐!\n"
-#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] п·я┬п╦п╠п╨п╟: п²п╣ п╫п╟п╧п╢п╣п╫ я─п╟п╥п╪п╣я─, я┐п╪п╣я┴п╟я▌я┴п╦п╧я│я▐ п╡ я█я┌п╬ я─п╟п╥я─п╣я┬п╣п╫п╦п╣!\n"
-
-// libvo/vo_dxr3.c
-#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟пЁя─я┐п╥п╦я┌я▄ п╫п╬п╡я┐я▌ п©п╟п╩п╦я┌я─я┐ SPU!\n"
-#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я─п╣п╤п╦п╪ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐!\n"
-#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я─п╣п╤п╦п╪ я│я┐п╠п╨п╟я─я┌п╦п╫п╨п╦!\n"
-#define MSGTR_LIBVO_DXR3_UnableToGetTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
-#define MSGTR_LIBVO_DXR3_AutoSelectedTVNormByFrameRate "[VO_DXR3] п░п╡я┌п╬п╡я▀п╠п╬я─ я─п╣п╤п╦п╪п╟ п╒п▓ п©п╬ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡: "
-#define MSGTR_LIBVO_DXR3_UnableToSetTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
-#define MSGTR_LIBVO_DXR3_SettingUpForNTSC "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╢п╩я▐ NTSC.\n"
-#define MSGTR_LIBVO_DXR3_SettingUpForPALSECAM "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╢п╩я▐ PAL/SECAM.\n"
-#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo43 "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╬п©п╬я─я├п╦п╦ 4:3.\n"
-#define MSGTR_LIBVO_DXR3_SettingAspectRatioTo169 "[VO_DXR3] пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п©я─п╬п©п╬я─я├п╦п╦ 16:9.\n"
-#define MSGTR_LIBVO_DXR3_OutOfMemory "[VO_DXR3] п╫п╣я┘п╡п╟я┌п╨п╟ п©п╟п╪я▐я┌п╦\n"
-#define MSGTR_LIBVO_DXR3_UnableToAllocateKeycolor "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╫п╟п╥п╫п╟я┤п╦я┌я▄ п╨п╩я▌я┤п╣п╡п╬п╧ я├п╡п╣я┌!\n"
-#define MSGTR_LIBVO_DXR3_UnableToAllocateExactKeycolor "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╫п╟п╥п╫п╟я┤п╦я┌я▄ я┌п╬я┤п╫я▀п╧ п╨п╩я▌я┤п╣п╡п╬п╧ я├п╡п╣я┌,\nп╦я│п©п╬п╩я▄п╥я┐я▌ п╠п╩п╦п╤п╟п╧я┬п╣п╣ п©я─п╦п╠п╩п╦п╤п╣п╫п╦п╣ (0x%lx).\n"
-#define MSGTR_LIBVO_DXR3_Uninitializing "[VO_DXR3] п■п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐.\n"
-#define MSGTR_LIBVO_DXR3_FailedRestoringTVNorm "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╡п╬я│я│я┌п╟п╫п╬п╡п╦я┌я▄ я─п╣п╤п╦п╪ п╒п▓!\n"
-#define MSGTR_LIBVO_DXR3_EnablingPrebuffering "[VO_DXR3] п▓п╨п╩я▌я┤п╟я▌ п©я─п╣п╢п╠я┐я└п╣я─п╦п╥п╟я├п╦я▌.\n"
-#define MSGTR_LIBVO_DXR3_UsingNewSyncEngine "[VO_DXR3] п≤я│п©п╬п╩я▄п╥я┐я▌ п╫п╬п╡я▀п╧ п╪п╣я┘п╟п╫п╦п╥п╪ я│п╦п╫я┘я─п╬п╫п╦п╥п╟я├п╦п╦.\n"
-#define MSGTR_LIBVO_DXR3_UsingOverlay "[VO_DXR3] п≤я│п©п╬п╩я▄п╥я┐я▌ п╬п╡п╣я─п╩п╣п╧.\n"
-#define MSGTR_LIBVO_DXR3_ErrorYouNeedToCompileMplayerWithX11 "[VO_DXR3] п·я┬п╦п╠п╨п╟: п■п╩я▐ п╬п╡п╣я─п╩п╣я▐ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╟ п╨п╬п╪п©п╦п╩я▐я├п╦я▐ я│ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫п╫я▀п╪п╦\nп╠п╦п╠п╩п╦п╬я┌п╣п╨п╟п╪п╦/п╥п╟пЁп╬п╩п╬п╡п╨п╟п╪п╦ X11.\n"
-#define MSGTR_LIBVO_DXR3_WillSetTVNormTo "[VO_DXR3] пёя│я┌п╟п╫п╬п╡п╩я▌ я─п╣п╤п╦п╪ п╒п▓ п╡: "
-#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALPAL60 "п╟п╡я┌п╬я─п╣пЁя┐п╩п╦я─п╬п╡п╨п╟ п╨ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡ я└п╦п╩я▄п╪п╟ (PAL/PAL-60)"
-#define MSGTR_LIBVO_DXR3_AutoAdjustToMovieFrameRatePALNTSC "п╟п╡я┌п╬я─п╣пЁя┐п╩п╦я─п╬п╡п╨п╟ п╨ я┤п╟я│я┌п╬я┌п╣ п╨п╟п╢я─п╬п╡ я└п╦п╩я▄п╪п╟ (PAL/NTSC)"
-#define MSGTR_LIBVO_DXR3_UseCurrentNorm "п≤я│п©п╬п╩я▄п╥я┐я▌ я┌п╣п╨я┐я┴п╦п╧ я─п╣п╤п╦п╪."
-#define MSGTR_LIBVO_DXR3_UseUnknownNormSuppliedCurrentNorm "п÷я─п╣п╢п╩п╬п╤п╣п╫ п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я─п╣п╤п╦п╪. п≤я│п©п╬п╩я▄п╥я┐я▌ я┌п╣п╨я┐я┴п╦п╧ я─п╣п╤п╦п╪."
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTrying "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300 п╡п╥п╟п╪п╣п╫.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingMV "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300_mv п╡п╥п╟п╪п╣п╫.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWell "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌я─я▀я┌п╦я▐ /dev/em8300 п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellMV "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌я─я▀я┌п╦я▐ /dev/em8300_mv п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_Opened "[VO_DXR3] п·я┌п╨я─я▀я┌п╬: %s.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingTryingSP "[VO_DXR3] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ %s п╢п╩я▐ п╥п╟п©п╦я│п╦, п©я─п╬п╠я┐я▌ /dev/em8300_sp п╡п╥п╟п╪п╣п╫.\n"
-#define MSGTR_LIBVO_DXR3_ErrorOpeningForWritingAsWellSP "[VO_DXR3] п╒п╟п╨п╤п╣ п╬я┬п╦п╠п╨п╟ п╬я┌я─я▀я┌п╦я▐ /dev/em8300_sp п╢п╩я▐ п╥п╟п©п╦я│п╦!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_UnableToOpenDisplayDuringHackSetup "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╦я│п©п╩п╣п╧ п╡ п©я─п╬я├п╣я│я│п╣ я┐я│я┌п╟п╫п╬п╡п╨п╦ я┘п╟п╨п╟ п╬п╡п╣я─п╩п╣я▐!\n"
-#define MSGTR_LIBVO_DXR3_UnableToInitX11 "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ X11!\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayAttribute "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╟я┌я─п╦п╠я┐я┌ п╬п╡п╣я─п╩п╣я▐.\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayScreen "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я█п╨я─п╟п╫ п╬п╡п╣я─п╢п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_FailedEnablingOverlay "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╟п╨я┌п╦п╡п╦я─п╬п╡п╟я┌я▄ п╬п╡п╣я─п╩п╣п╧!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_FailedResizingOverlayWindow "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п╦п╥п╪п╣п╫п╦я┌я▄ я─п╟п╥п╪п╣я─ п╬п╨п╫п╟ п╬п╡п╣я─п╩п╣я▐!\n"
-#define MSGTR_LIBVO_DXR3_FailedSettingOverlayBcs "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ bcs п╬п╡п╣я─п╩п╣я▐!\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayYOffsetValues "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ Y-я│п╪п╣я┴п╣п╫п╦п╧ п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXOffsetValues "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╥п╫п╟я┤п╣п╫п╦я▐ X-я│п╪п╣я┴п╣п╫п╦п╧ п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_FailedGettingOverlayXScaleCorrection "[VO_DXR3] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╨п╬я─я─п╣п╨я├п╦я▌ п╫п╟ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣ п©п╬ X п╬п╡п╣я─п╩п╣я▐!\nп▓я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_DXR3_YOffset "[VO_DXR3] я│п╪п╣я┴п╣п╫п╦п╣ п©п╬ Y: %d.\n"
-#define MSGTR_LIBVO_DXR3_XOffset "[VO_DXR3] я│п╪п╣я┴п╣п╫п╦п╣ п©п╬ X: %d.\n"
-#define MSGTR_LIBVO_DXR3_XCorrection "[VO_DXR3] п╨п╬я─я─п╣п╨я├п╦я▐ п©п╬ X: %d.\n"
-#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я│п╦пЁп╫п╟п╩ mix!\n"
-
-// libvo/font_load_ft.c
-
-#define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "п║п╠п╬п╧ New_Face. п▓п╬п╥п╪п╬п╤п╫п╬ п╫п╣п╡п╣я─п╣п╫ п©я┐я┌я▄ п╨ я┬я─п╦я└я┌я┐.\nпёп╨п╟п╤п╦я┌п╣, п©п╬п╤п╟п╩я┐п╧я│я┌п╟, я└п╟п╧п╩ я┬я─п╦я└я┌п╟ п╢п╩я▐ я┌п╣п╨я│я┌п╟ (~/.mplayer/subfont.ttf).\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "п║п╠п╬п╧ New_Memory_Face.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡: я│п╠п╬п╧ load_sub_face.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡: я│п╠п╬п╧ prepare_charset.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╢пЁп╬я┌п╬п╡п╦я┌я▄ я┬я─п╦я└я┌ я│я┐п╠я┌п╦я┌я─п╬п╡.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╢пЁп╬я┌п╬п╡п╦я┌я▄ я┬я─п╦я└я┌ OSD.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ я│пЁп╣п╫п╣я─п╦я─п╬п╡п╟я┌я▄ я┌п╟п╠п╩п╦я├я▀.\n"
-#define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "п║п╠п╬п╧ FT_Done_FreeType.\n"
-
-// libvo/vo_mga.c
-
-#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): п╦п╥п╪п╣п╫я▒п╫ я─п╟п╥п╪п╣я─ п╡ %dx%d.\n"
-#define MSGTR_LIBVO_MGA_Uninit "[VO] п╢п╣п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐!\n"
-
-// libvo/vo_null.c
-
-#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│я┐п╠я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
+// ================================== LIBASS ====================================
-// libvo/vo_png.c
+// ass_bitmap.c
+#define MSGTR_LIBASS_FT_Glyph_To_BitmapError "[ass] п║п╠п╬п╧ FT_Glyph_To_Bitmap %d \n"
+#define MSGTR_LIBASS_UnsupportedPixelMode "[ass] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ п©п╦п╨я│п╣п╩я▄п╫я▀п╧ я─п╣п╤п╦п╪: %d\n"
+#define MSGTR_LIBASS_GlyphBBoxTooLarge "[ass] п═п╟п╪п╨п╟, п╬пЁя─п╟п╫п╦я┤п╦п╡п╟я▌я┴п╟я▐ я│п╦п╪п╡п╬п╩, я│п╩п╦я┬п╨п╬п╪ п╡п╣п╩п╦п╨п╟: %dx%dpx\n"
-#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: я┐я─п╬п╡п╣п╫я▄ я│п╤п╟я┌п╦я▐ я┐я│я┌п╟п╫п╬п╡п╩п╣п╫ п╡ 0, я│п╤п╟я┌п╦п╣ п╬я┌п╨п╩я▌я┤п╣п╫п╬!\n"
-#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п≤я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vo png:z=<n> п╢п╩я▐ я┐я│я┌п╟п╫п╬п╡п╨п╦ я┐я─п╬п╡п╫я▐\nя│п╤п╟я┌п╦я▐ п╬я┌ 0 п╢п╬ 9.\n"
-#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] п≤п╫я└п╬я─п╪п╟я├п╦я▐: (0 = п╫п╣я┌ я│п╤п╟я┌п╦я▐, 1 = п╠я▀я│я┌я─п╬п╣, я┘я┐п╢я┬п╣п╣ - 9 п╩я┐я┤я┬п╣п╣,\nя│п╟п╪п╬п╣ п╪п╣п╢п╩п╣п╫п╫п╬п╣ я│п╤п╟я┌п╦п╣)\n"
-#define MSGTR_LIBVO_PNG_ErrorOpeningForWriting "\n[VO_PNG] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ '%s' п╢п╩я▐ п╥п╟п©п╦я│п╦!\n"
-#define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] п·я┬п╦п╠п╨п╟ п╡ create_png.\n"
+// ass.c
+#define MSGTR_LIBASS_NoStyleNamedXFoundUsingY "[ass] [%p] п▓п╫п╦п╪п╟п╫п╦п╣: я│я┌п╦п╩я▄ '%s' п╫п╣ п╫п╟п╧п╢п╣п╫, п╦я│п©п╬п╩я▄п╥я┐я▌ '%s'\n"
+#define MSGTR_LIBASS_BadTimestamp "[ass] п╫п╣п╡п╣я─п╫п╟я▐ п╡я─п╣п╪п╣п╫п╫п╟я▐ п╪п╣я┌п╨п╟\n"
+#define MSGTR_LIBASS_BadEncodedDataSize "[ass] п╫п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п╨п╬п╢п╦я─п╬п╡п╟п╫п╫я▀п╧ п╢п╟п╫п╫я▀я┘\n"
+#define MSGTR_LIBASS_FontLineTooLong "[ass] п⌡п╦п╫п╦я▐ я┬я─п╦я└я┌п╟ я│п╩п╦я┬п╨п╬п╪ п╢п╩п╦п╫п╫п╟: %d, %s\n"
+#define MSGTR_LIBASS_EventFormatHeaderMissing "[ass] п·я┌я│я┐я┌я│я┌п╡я┐п╣я┌ п╥п╟пЁп╬п╩п╬п╡п╬п╨ я└п╬я─п╪п╟я┌п╟ я│п╬п╠я▀я┌п╦п╧\n"
+#define MSGTR_LIBASS_ErrorOpeningIconvDescriptor "[ass] п╬я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ п╢п╣я│п╨я─п╦п©я┌п╬я─п╟ iconv\n"
+#define MSGTR_LIBASS_ErrorRecodingFile "[ass] п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦ я└п╟п╧п╩п╟.\n"
+#define MSGTR_LIBASS_FopenFailed "[ass] ass_read_file(%s): я│п╠п╬п╧ fopen\n"
+#define MSGTR_LIBASS_FseekFailed "[ass] ass_read_file(%s): я│п╠п╬п╧ fseek\n"
+#define MSGTR_LIBASS_RefusingToLoadSubtitlesLargerThan10M "[ass] ass_read_file(%s): п·я┌п╨п╩п╬п╫п╣п╫п╦п╣ п╥п╟пЁя─я┐п╥п╨п╦ я│я┐п╠я┌п╦я┌я─п╬п╡ п╠п╬п╩я▄я┬п╣ 10M\n"
+#define MSGTR_LIBASS_ReadFailed "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐, %d: %s\n"
+#define MSGTR_LIBASS_AddedSubtitleFileMemory "[ass] п■п╬п╠п╟п╡п╩п╣п╫ я└п╟п╧п╩ я│я┐п╠я┌п╦я┌я─п╬п╡: <п©п╟п╪я▐я┌я▄> (я│я┌п╦п╩п╣п╧: %d, я│п╬п╠я▀я┌п╦п╧: %d)\n"
+#define MSGTR_LIBASS_AddedSubtitleFileFname "[ass] п■п╬п╠п╟п╡п╩п╣п╫ я└п╟п╧п╩ я│я┐п╠я┌п╦я┌я─п╬п╡: %s (я│я┌п╦п╩п╣п╧: %d, я│п╬п╠я▀я┌п╦п╧: %d)\n"
+#define MSGTR_LIBASS_FailedToCreateDirectory "[ass] п·я┬п╦п╠п╨п╟ я│п╬п╥п╢п╟п╫п╦я▐ п╨п╟я┌п╟п╩п╬пЁп╟ %s\n"
+#define MSGTR_LIBASS_NotADirectory "[ass] п²п╣ п╨п╟я┌п╟п╩п╬пЁ: %s\n"
-// libvo/vo_sdl.c
+// ass_cache.c
+#define MSGTR_LIBASS_TooManyFonts "[ass] п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ я┬я─п╦я└я┌п╬п╡\n"
+#define MSGTR_LIBASS_ErrorOpeningFont "[ass] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ я┬я─п╦я└я┌п╟: %s, %d\n"
-#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╨п╟п╨п╬п╧-п╩п╦п╠п╬ п©я─п╦п╣п╪п╩п╣п╪я▀п╧ я─п╣п╤п╦п╪ SDL п╢п╩я▐ п╡я▀п╡п╬п╢п╟.\n"
-#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: п║п╠п╬п╧ SDL_SetVideoMode: %s.\n"
-#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: п║п╠п╬п╧ SDL_SetVideoMode: %s.\n"
-#define MSGTR_LIBVO_SDL_MappingI420ToIYUV "[VO_SDL] п·я┌п╬п╠я─п╟п╤п╣п╫п╦п╣ I420 п╡ IYUV.\n"
-#define MSGTR_LIBVO_SDL_UnsupportedImageFormat "[VO_SDL] п²п╣п©п╬п╢п╢п╣я─п╢п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ (0x%X).\n"
-#define MSGTR_LIBVO_SDL_InfoPleaseUseVmOrZoom "[VO_SDL] п≤п╫я└п╬я─п╪п╟я├п╦я▐: п╦я│п©п╬п╩я▄п╥я┐п╧я┌п╣ -vm п╦п╩п╦ -zoom п╢п╩я▐ п©п╣я─п╣п╨п╩я▌я┤п╣п╫п╦я▐\nп╡ п╩я┐я┤я┬п╣п╣ я─п╟п╥я─п╣я┬п╣п╫п╦п╣.\n"
-#define MSGTR_LIBVO_SDL_FailedToSetVideoMode "[VO_SDL] п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╦п╢п╣п╬я─п╣п╤п╦п╪: %s.\n"
-#define MSGTR_LIBVO_SDL_CouldntCreateAYUVOverlay "[VO_SDL] п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п╬п╡п╣я─п╩п╣п╧ YUV: %s.\n"
-#define MSGTR_LIBVO_SDL_CouldntCreateARGBSurface "[VO_SDL] п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п©п╬п╡п╣я─я┘п╫п╬я│я┌я▄ RGB: %s.\n"
-#define MSGTR_LIBVO_SDL_UsingDepthColorspaceConversion "[VO_SDL] п≤я│п©п╬п╩я▄п╥я┐я▌ п©я─п╣п╬п╠я─п╟п╥п╬п╡п╟п╫п╦п╣ пЁп╩я┐п╠п╦п╫я▀/я├п╡п╣я┌п╬п╡п╬пЁп╬ п©я─п╬я│я┌я─п╟п╫я│я┌п╡п╟,\nя█я┌п╬ п╥п╟п╪п╣п╢п╩п╦я┌ я─п╟п╠п╬я┌я┐ (%ibpp -> %ibpp).\n"
-#define MSGTR_LIBVO_SDL_UnsupportedImageFormatInDrawslice "[VO_SDL] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╡ draw_slice,\nя│п╡я▐п╤п╦я┌п╣я│я▄ я│ я─п╟п╥я─п╟п╠п╬я┌я┤п╦п╨п╟п╪п╦ MPlayer!\n"
-#define MSGTR_LIBVO_SDL_BlitFailed "[VO_SDL] п║п╠п╬п╧ blit: %s.\n"
-#define MSGTR_LIBVO_SDL_InitializationFailed "[VO_SDL] п║п╠п╬п╧ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦ SDL: %s.\n"
-#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] п≤я│п©п╬п╩я▄п╥я┐я▌ п╢я─п╟п╧п╡п╣я─: %s.\n"
+// ass_fontconfig.c
+#define MSGTR_LIBASS_SelectedFontFamilyIsNotTheRequestedOne "[ass] fontconfig: п▓я▀п╠я─п╟п╫п╫я▀п╧ я┬я─п╦я└я┌ п╫п╣ я│п╬п╡п©п╟п╢п╟п╣я┌ я│ п╥п╟п©я─п╬я┬п╣п╫п╫я▀п╪: '%s' != '%s'\n"
+#define MSGTR_LIBASS_UsingDefaultFontFamily "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я│п╣п╪п╣п╧я│я┌п╡п╬ я┬я─п╦я└я┌п╬п╡ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌: (%s, %d, %d) -> %s, %d\n"
+#define MSGTR_LIBASS_UsingDefaultFont "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я┬я─п╦я└я┌ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌: (%s, %d, %d) -> %s, %d\n"
+#define MSGTR_LIBASS_UsingArialFontFamily "[ass] fontconfig_select: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я│п╣п╪п╣п╧я│я┌п╡п╬ я┬я─п╦я└я┌п╬п╡ 'Arial': (%s, %d, %d) -> %s, %d\n"
+#define MSGTR_LIBASS_FcInitLoadConfigAndFontsFailed "[ass] п║п╠п╬п╧ FcInitLoadConfigAndFonts.\n"
+#define MSGTR_LIBASS_UpdatingFontCache "[ass] п·п╠п╫п╬п╡п╩п╣п╫п╦п╣ п╨п╣я┬п╟ я┬я─п╦я└я┌п╬п╡.\n"
+#define MSGTR_LIBASS_BetaVersionsOfFontconfigAreNotSupported "[ass] п▒п╣я┌п╟ п╡п╣я─я│п╦п╦ fontconfig п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟я▌я┌я│я▐.\n[ass] п·п╠п╫п╬п╡п╦я┌п╣я│я▄ п©я─п╣п╤п╢п╣ я┤п╣п╪ п╬я┌я│я▀п╩п╟я┌я▄ п╬я┌я┤п╣я┌я▀ п╬ п╩я▌п╠я▀я┘ п╬я┬п╦п╠п╨п╟я┘.\n"
+#define MSGTR_LIBASS_FcStrSetAddFailed "[ass] п║п╠п╬п╧ FcStrSetAdd.\n"
+#define MSGTR_LIBASS_FcDirScanFailed "[ass] п║п╠п╬п╧ FcDirScan.\n"
+#define MSGTR_LIBASS_FcDirSave "[ass] п║п╠п╬п╧ FcDirSave.\n"
+#define MSGTR_LIBASS_FcConfigAppFontAddDirFailed "[ass] п║п╠п╬п╧ FcConfigAppFontAddDir\n"
+#define MSGTR_LIBASS_FontconfigDisabledDefaultFontWillBeUsed "[ass] Fontconfig п╬я┌п╨п╩я▌я┤п╣п╫, п╠я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ я┌п╬п╩я▄п╨п╬ я┬я─п╦я└я┌ п©п╬-я┐п╪п╬п╩я┤п╟п╫п╦я▌.\n"
+#define MSGTR_LIBASS_FunctionCallFailed "[ass] п║п╠п╬п╧ %s\n"
-// libvo/vobsub_vidix.c
+// ass_render.c
+#define MSGTR_LIBASS_NeitherPlayResXNorPlayResYDefined "[ass] п²п╣ п╬п©я─п╣п╢п╣п╩п╣п╫я▀ п╫п╦ PlayResX, п╫п╦ PlayResY. п÷я─п╣п╢п©п╬п╩п╟пЁп╟я▌ 384x288.\n"
+#define MSGTR_LIBASS_PlayResYUndefinedSettingY "[ass] PlayResY п╫п╣ п╬п©я─п╣п╢п╣п╩п╣п╫п╬, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ %d.\n"
+#define MSGTR_LIBASS_PlayResXUndefinedSettingX "[ass] PlayResX п╫п╣ п╬п©я─п╣п╢п╣п╩п╣п╫п╬, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ %d.\n"
+#define MSGTR_LIBASS_FT_Init_FreeTypeFailed "[ass] п║п╠п╬п╧ FT_Init_FreeType.\n"
+#define MSGTR_LIBASS_Init "[ass] п≤п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐.\n"
+#define MSGTR_LIBASS_InitFailed "[ass] п║п╠п╬п╧ п╦п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦п╦.\n"
+#define MSGTR_LIBASS_BadCommand "[ass] п²п╣п╡п╣я─п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟: %c%c\n"
+//FIXME glyph
+#define MSGTR_LIBASS_ErrorLoadingGlyph "[ass] п·я┬п╦п╠п╨п╟ п╥п╟пЁя─я┐п╥п╨п╦ пЁп╩п╦я└п╟ [glyph].\n"
+#define MSGTR_LIBASS_FT_Glyph_Stroke_Error "[ass] п·я┬п╦п╠п╨п╟ FT_Glyph_Stroke %d \n"
+#define MSGTR_LIBASS_UnknownEffectType_InternalError "[ass] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© я█я└я└п╣п╨я┌п╟ (п╡п╫я┐я┌я─п╣п╫п╫я▐я▐ п╬я┬п╦п╠п╨п╟)\n"
+#define MSGTR_LIBASS_NoStyleFound "[ass] п║я┌п╦п╩п╦ п╫п╣ п╫п╟п╧п╢п╣п╫я▀!\n"
+#define MSGTR_LIBASS_EmptyEvent "[ass] п÷я┐я│я┌п╬п╣ я│п╬п╠я▀я┌п╦п╣!\n"
+#define MSGTR_LIBASS_MAX_GLYPHS_Reached "[ass] п■п╬я│я┌п╦пЁп╫я┐я┌п╬ п╥п╫п╟я┤п╣п╫п╦п╣ MAX_GLYPHS: я│п╬п╠я▀я┌п╦п╣ %d, п╫п╟я┤п╟п╩п╬ = %llu, п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄ = %llu\n п╒п╣п╨я│я┌ = %s\n"
+#define MSGTR_LIBASS_EventHeightHasChanged "[ass] п▓п╫п╦п╪п╟п╫п╦п╣! п▓я▀я│п╬я┌п╟ я│п╬п╠я▀я┌п╦я▐ п╦п╥п╪п╣п╫п╦п╩п╟я│я▄! \n"
-#define MSGTR_LIBVO_SUB_VIDIX_CantStartPlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟я┤п╟я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CantStopPlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╬я│я┌п╟п╫п╬п╡п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s\n"
-#define MSGTR_LIBVO_SUB_VIDIX_InterleavedUvForYuv410pNotSupported "[VO_SUB_VIDIX] п║п╩п╬я▒п╫я▀п╧ UV п╢п╩я▐ YUV410P п╫п╣ п©п╬п╢п╢п╣я─п╢п╦п╡п╟п╣я┌я│я▐.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawsliceWasCalled "[VO_SUB_VIDIX] п▒я▀п╩ п╡я▀п╥п╡п╟п╫ я└п╦п╨я┌п╦п╡п╫я▀п╧ vidix_draw_slice().\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawframeWasCalled "[VO_SUB_VIDIX] п▒я▀п╩ п╡я▀п╥п╡п╟п╫ я└п╦п╨я┌п╦п╡п╫я▀п╧ vidix_draw_frame().\n"
-#define MSGTR_LIBVO_SUB_VIDIX_UnsupportedFourccForThisVidixDriver "[VO_SUB_VIDIX] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ FourCC п╢п╩я▐ я█я┌п╬пЁп╬ п╢я─п╟п╧п╡п╣я─п╟ VIDIX: %x (%s).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedResolution "[VO_SUB_VIDIX] пё п╡п╦п╢п╣п╬я│п╣я─п╡п╣я─п╟ я─п╟п╥я─п╣я┬п╣п╫п╦п╣ (%dx%d) п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐,\nп©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪п╬п╣: %dx%d-%dx%d.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_VideoServerHasUnsupportedColorDepth "[VO_SUB_VIDIX] п▓п╦п╢п╣п╬я│п╣я─п╡п╣я─ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ пЁп╩я┐п╠п╦п╫я┐ я├п╡п╣я┌п╟ vidix (%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DriverCantUpscaleImage "[VO_SUB_VIDIX] п■я─п╟п╧п╡п╣я─ VIDIX п╫п╣ п╪п╬п╤п╣я┌ я┐п╡п╣п╩п╦я┤п╦я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ (%d%d -> %d%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_DriverCantDownscaleImage "[VO_SUB_VIDIX] п■я─п╟п╧п╡п╣я─ VIDIX п╫п╣ п╪п╬п╤п╣я┌ я┐п╪п╣п╫я▄я┬п╦я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ (%d%d -> %d%d).\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CantConfigurePlayback "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟я│я┌я─п╬п╦я┌я▄ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦п╣: %s.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_YouHaveWrongVersionOfVidixLibrary "[VO_SUB_VIDIX] пё п▓п╟я│ п╫п╣п╡п╣я─п╫п╟я▐ п╡п╣я─я│п╦я▐ п╠п╦п╠п╩п╦п╬я┌п╣п╨п╦ VIDIX.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CouldntFindWorkingVidixDriver "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ я─п╟п╠п╬я┌п╟я▌я┴п╦п╧ п╢я─п╟п╧п╡п╣я─ VIDIX.\n"
-#define MSGTR_LIBVO_SUB_VIDIX_CouldntGetCapability "[VO_SUB_VIDIX] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ п╡п╬п╥п╪п╬п╤п╫п╬я│я┌я▄: %s.\n"
+// ass_font.c
+#define MSGTR_LIBASS_GlyphNotFoundReselectingFont "[ass] п⌠п╩п╦я└ 0x%X п╫п╣ п╫п╟п╧п╢п╣п╫, п╡я▀п╠п╦я─п╟я▌ п╣я┴п╣ п╬п╢п╦п╫ я┬я─п╦я└я┌ п╢п╩я▐ (%s, %d, %d)\n"
+#define MSGTR_LIBASS_GlyphNotFound "[ass] п▓ я┬я─п╦я└я┌п╣ п╫п╣ п╫п╟п╧п╢п╣п╫ пЁп╩п╦я└ 0x%X п╢п╩я▐ (%s, %d, %d)\n"
+#define MSGTR_LIBASS_ErrorOpeningMemoryFont "[ass] п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ я┬я─п╦я└я┌п╟ п╡ п©п╟п╪я▐я┌п╦: %s\n"
+#define MSGTR_LIBASS_NoCharmaps "[ass] я┬я─п╦я└я┌ п╠п╣п╥ я┌п╟п╠п╩п╦я├ я│п╦п╪п╡п╬п╩п╬п╡\n"
+#define MSGTR_LIBASS_NoCharmapAutodetected "[ass] п╟п╡я┌п╬п╪п╟я┌п╦я┤п╣я│п╨п╦ п╬п©я─п╣п╢п╣п╩п╦я┌я▄ я┌п╟п╠п╩п╦я├я┐ я│п╦п╪п╡п╬п╩п╬п╡ п╫п╣ я┐п╢п╟п╩п╬я│я▄, п©я─п╬п╠я┐п╣я┌я│я▐ п©п╣я─п╡п╟я▐ п╢п╬я│я┌я┐п©п╫п╟я▐\n"
-// libvo/vo_svga.c
-#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] п╓п╬я─я│п╦я─п╬п╡п╟п╫п╫я▀п╧ vid_mode %d (%s) п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
-#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] п╓п╬я─я│п╦я─п╬п╡п╟п╫п╫я▀п╧ vid_mode %d (%s) я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩.\n"
-#define MSGTR_LIBVO_SVGA_Vidmode "[VO_SVGA] Vid_mode: %d, %dx%d %dbpp.\n"
-#define MSGTR_LIBVO_SVGA_VgasetmodeFailed "[VO_SVGA] п║п╠п╬п╧ Vga_setmode(%d).\n"
-#define MSGTR_LIBVO_SVGA_VideoModeIsLinearAndMemcpyCouldBeUsed "[VO_SVGA] п▓п╦п╢п╣п╬я─п╣п╤п╦п╪ п╩п╦п╫п╣п╧п╫я▀п╧ п╦ п╢п╩я▐ п©п╣я─п╣п╢п╟я┤п╦ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐ п╪п╬п╤п╣я┌ п╠я▀я┌я▄\nп╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ memcpy.\n"
-#define MSGTR_LIBVO_SVGA_VideoModeHasHardwareAcceleration "[VO_SVGA] п▓п╦п╢п╣п╬я─п╣п╤п╦п╪ п╬п╠п╩п╟п╢п╟п╣я┌ п╟п©п©п╟я─п╟я┌п╫я▀п╪ я┐я│п╨п╬я─п╣п╫п╦п╣п╪ п╦ п╪п╬п╤п╣я┌ п╠я▀я┌я▄\nп╦я│п©п╬п╩я▄п╥п╬п╡п╟п╫ put_image.\n"
-#define MSGTR_LIBVO_SVGA_IfItWorksForYouIWouldLikeToKnow "[VO_SVGA] п∙я│п╩п╦ я█я┌п╬ я─п╟п╠п╬я┌п╟п╣я┌ я┐ п▓п╟я│, п╪п╫п╣ я┘п╬я┌п╣п╩п╬я│я▄ п╠я▀ п╥п╫п╟я┌я▄.\n[VO_SVGA] (п╬я┌п©я─п╟п╡я▄я┌п╣ п╩п╬пЁ я│ п©п╬п╪п╬я┴я▄я▌ `mplayer test.avi -v -v -v -v &> svga.log`).\nп║п©п╟я│п╦п╠п╬!\n"
-#define MSGTR_LIBVO_SVGA_VideoModeHas "[VO_SVGA] пё п╡п╦п╢п╣п╬я─п╣п╤п╦п╪п╟ %d я│я┌я─п╟п╫п╦я├(п╟/я▀).\n"
-#define MSGTR_LIBVO_SVGA_CenteringImageStartAt "[VO_SVGA] п╕п╣п╫я┌я─п╦я─я┐я▌ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣. п²п╟я┤п╦п╫п╟я▌ п╡ (%d,%d)\n"
-#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] п≤я│п©п╬п╩я▄п╥я┐я▌ VIDIX. w=%i h=%i mw=%i mh=%i\n"
+// ================================== stream ====================================
-// libvo/vo_tdfxfb.c
+// ai_alsa1x.c
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetSamplerate "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦.\n"
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetBufferTime "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╡я─п╣п╪я▐ п╠я┐я└п╣я─п╦п╥п╟я├п╦п╦.\n"
+#define MSGTR_MPDEMUX_AIALSA1X_CannotSetPeriodTime "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╡я─п╣п╪я▐ п©п╣я─п╦п╬п╢п╟.\n"
-#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] п÷я─п╬п╠п╩п╣п╪п╟ я│ ioctl FBITGET_FSCREENINFO: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] п÷я─п╬п╠п╩п╣п╪п╟ я│ ioctl FBITGET_VSCREENINFO: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_ThisDriverOnlySupports "[VO_TDFXFB] п╜я┌п╬я┌ п╢я─п╟п╧п╡п╣я─ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌ я┌п╬п╩я▄п╨п╬ 3Dfx Banshee, Voodoo3 п╦ Voodoo 5.\n"
-#define MSGTR_LIBVO_TDFXFB_OutputIsNotSupported "[VO_TDFXFB] %d bpp п╡я▀п╡п╬п╢ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
-#define MSGTR_LIBVO_TDFXFB_CouldntMapMemoryAreas "[VO_TDFXFB] п²п╣ п╪п╬пЁя┐ п╬я┌п╬п╠я─п╟п╥п╦я┌я▄ п╬п╠п╩п╟я│я┌п╦ п©п╟п╪я▐я┌п╦: %s.\n"
-#define MSGTR_LIBVO_TDFXFB_BppOutputIsNotSupported "[VO_TDFXFB] %d bpp п╡я▀п╡п╬п╢ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐\n(п╜я┌п╬пЁп╬ п╫п╦п╨п╬пЁп╢п╟ п╫п╣ п╢п╬п╩п╤п╫п╬ п©я─п╬п╦я│я┘п╬п╢п╦я┌я▄).\n"
-#define MSGTR_LIBVO_TDFXFB_SomethingIsWrongWithControl "[VO_TDFXFB] п·п╧! п╖я┌п╬-я┌п╬ п╫п╣ п╡ п©п╬я─я▐п╢п╨п╣ я│ control().\n"
-#define MSGTR_LIBVO_TDFXFB_NotEnoughVideoMemoryToPlay "[VO_TDFXFB] п²п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п©я▐п╪я▐я┌п╦ п╢п╩я▐ п╡п╬я│п©я─п╬п╦п╥п╡п╣п╢п╣п╫п╦я▐ я█я┌п╬пЁп╬ я└п╦п╩я▄п╪п╟.\nп÷п╬п©я─п╬п╠я┐п╧я┌п╣ п╪п╣п╫я▄я┬п╣п╣ я─п╟п╥я─п╣я┬п╣п╫п╦п╣.\n"
-#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] п╜п╨я─п╟п╫ %dx%d п╦ %d bpp, п╡я┘п╬п╢п╫я▀п╣ п╢п╟п╫п╫я▀п╣ %dx%d п╦ %d bpp, я─п╣п╤п╦п╪ %dx%d.\n"
+// ai_alsa1x.c / ai_alsa.c
+#define MSGTR_MPDEMUX_AIALSA_PcmBrokenConfig "п²п╣п╨п╬я─я─п╣п╨я┌п╫п╟я▐ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦я▐ п╢п╩я▐ п╢п╟п╫п╫п╬пЁп╬ PCM: п╫п╣я┌ п╢п╬я│я┌я┐п©п╫я▀я┘ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦п╧.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableAccessType "п╒п╦п© п╢п╬я│я┌я┐п©п╟ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableSampleFmt "п╓п╬я─п╪п╟я┌ п╬п╠я─п╟п╥я├п╟ п╫п╣ п╢п╬я│я┌я┐п©п╣п╫.\n"
+#define MSGTR_MPDEMUX_AIALSA_UnavailableChanCount "п╖п╦я│п╩п╬ п╨п╟п╫п╟п╩п╬п╡ п╫п╣ п╢п╬я│я┌я┐п©п╫п╬ - п╡п╬п╥п╡я─п╟я┴п╟я▌я│я▄ п╨ я┐п╪п╬п╩я┤п╟п╫п╦я▌: %d\n"
+#define MSGTR_MPDEMUX_AIALSA_CannotInstallHWParams "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п╟п©п©п╟я─п╟я┌п╫я▀п╣ п©п╟я─п╟п╪п╣я┌я─я▀: %s"
+#define MSGTR_MPDEMUX_AIALSA_PeriodEqualsBufferSize "п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п©п╣я─п╦п╬п╢, я─п╟п╡п╫я▀п╧ я─п╟п╥п╪п╣я─я┐ п╠я┐я└п╣я─п╟ (%u == %lu)\n"
+#define MSGTR_MPDEMUX_AIALSA_CannotInstallSWParams "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ п©я─п╬пЁя─п╟п╪п╪п╫я▀п╣ п©п╟я─п╟п╪п╣я┌я─я▀:\n"
+#define MSGTR_MPDEMUX_AIALSA_ErrorOpeningAudio "п·я┬п╦п╠п╨п╟ п╬я┌п╨я─я▀я┌п╦я▐ п╟я┐п╢п╦п╬: %s\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaStatusError "п·я┬п╦п╠п╨п╟ я│я┌п╟я┌я┐я│п╟ ALSA: %s"
+#define MSGTR_MPDEMUX_AIALSA_AlsaXRUN "ALSA xrun!!! (п╨п╟п╨ п╪п╦п╫п╦п╪я┐п╪ п╢п╩п╦я┌п╣п╩я▄п╫п╬я│я┌я▄я▌ %.3f п╪я│)\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaStatus "п║я┌п╟я┌я┐я│ ALSA:\n"
+#define MSGTR_MPDEMUX_AIALSA_AlsaXRUNPrepareError "ALSA xrun: п╬я┬п╦п╠п╨п╟ п©п╬п╢пЁп╬я┌п╬п╡п╨п╦: %s"
+#define MSGTR_MPDEMUX_AIALSA_AlsaReadWriteError "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐/п╥п╟п©п╦я│п╦ ALSA"
-// libvo/vo_tdfx_vid.c
+// ai_oss.c
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetChanCount "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╦я│п╩п╬ п╨п╟п╫п╟п╩п╬п╡: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetStereo "п²п╣ п╪п╬пЁя┐ п╡п╨п╩я▌я┤п╦я┌я▄ я│я┌п╣я─п╣п╬: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2Open "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ '%s': %s\n"
+#define MSGTR_MPDEMUX_AIOSS_UnsupportedFmt "п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я└п╬я─п╪п╟я┌\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetAudioFmt "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ п╟я┐п╢п╦п╬я└п╬я─п╪п╟я┌."
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetSamplerate "п²п╣ п╪п╬пЁя┐ п╥п╟п╢п╟я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2SetTrigger "п²п╣ п╪п╬пЁя┐ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я┌я─п╦пЁпЁп╣я─: %d\n"
+#define MSGTR_MPDEMUX_AIOSS_Unable2GetBlockSize "п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я─п╟п╥п╪п╣я─ п╠п╩п╬п╨п╟!\n"
+#define MSGTR_MPDEMUX_AIOSS_AudioBlockSizeZero "п═п╟п╥п╪п╣я─ п╠п╩п╬п╨п╟ п╟я┐п╢п╦п╬ п╫я┐п╩п╣п╡п╬п╧, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╡ %d!\n"
+#define MSGTR_MPDEMUX_AIOSS_AudioBlockSize2Low "п═п╟п╥п╪п╣я─ п╠п╩п╬п╨п╟ п╟я┐п╢п╦п╬ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟я▌ п╡ %d!\n"
-#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] п╗п╟пЁ %d(%d) x %d => %d.\n"
-#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] п║п╠п╬п╧ п╬я┤п╦я│я┌п╨п╦ я█п╨я─п╟п╫п╟ я┬п╟пЁп╬п╪ AGP.\n"
-#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] п║п╠п╬п╧ blit.\n"
-#define MSGTR_LIBVO_TDFXVID_NonNativeOverlayFormatNeedConversion "[VO_TDFXVID] п■п╩я▐ п╫п╣п╥п╟п╩п╬п╤п╣п╫п╫я▀я┘ я└п╬я─п╪п╟я┌п╬п╡ п╬п╡п╣я─п╩п╣я▐ п╫я┐п╤п╫п╟ п╨п╬п╫п╡п╣я─я│п╦я▐.\n"
-#define MSGTR_LIBVO_TDFXVID_UnsupportedInputFormat "[VO_TDFXVID] п²п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ п╡я┘п╬п╢п╫п╬п╧ я└п╬я─п╪п╟я┌ 0x%x.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlaySetupFailed "[VO_TDFXVID] п║п╠п╬п╧ я┐я│я┌п╟п╫п╬п╡п╨п╦ п╬п╡п╣я─п╩п╣я▐.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayOnFailed "[VO_TDFXVID] п║п╠п╬п╧ п╡п╨п╩я▌я┤п╣п╫п╦я▐ п╬п╡п╣я─п╩п╣я▐.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayReady "[VO_TDFXVID] п·п╡п╣я─п╩п╣п╧ пЁп╬я┌п╬п╡: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
-#define MSGTR_LIBVO_TDFXVID_TextureBlitReady "[VO_TDFXVID] п⌠п╬я┌п╬п╡ blit я┌п╣п╨я│я┌я┐я─: %d(%d) x %d @ %d => %d(%d) x %d @ %d.\n"
-#define MSGTR_LIBVO_TDFXVID_OverlayOffFailed "[VO_TDFXVID] п║п╠п╬п╧ п╡я▀п╨п╩я▌я┤п╣п╫п╦я▐ п╬п╡п╣я─п╩п╣я▐\n"
-#define MSGTR_LIBVO_TDFXVID_CantOpen "[VO_TDFXVID] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s: %s.\n"
-#define MSGTR_LIBVO_TDFXVID_CantGetCurrentCfg "[VO_TDFXVID] п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я┌п╣п╨я┐я┴я┐я▌ п╨п╬п╫я└п╦пЁя┐я─п╟я├п╦я▌: %s.\n"
-#define MSGTR_LIBVO_TDFXVID_MemmapFailed "[VO_TDFXVID] п║п╠п╬п╧ memmap !!!!!\n"
-#define MSGTR_LIBVO_TDFXVID_GetImageTodo "п²я┐п╤п╫п╬ п╢п╬п╢п╣п╩п╟я┌я▄ п©п╬п╩я┐я┤п╣п╫п╦п╣ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦я▐.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailed "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP.\n"
-#define MSGTR_LIBVO_TDFXVID_SetYuvFailed "[VO_TDFXVID] п║п╠п╬п╧ я┐я│я┌п╟п╫п╬п╡п╨п╦ YUV.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnYPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ Y.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnUPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ U.\n"
-#define MSGTR_LIBVO_TDFXVID_AgpMoveFailedOnVPlane "[VO_TDFXVID] п║п╠п╬п╧ я┬п╟пЁп╟ AGP п╫п╟ п©я─п╬п╣п╨я├п╦п╦ V.\n"
-#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я└п╬я─п╪п╟я┌: 0x%x.\n"
+// asf_mmst_streaming.c
+#define MSGTR_MPDEMUX_MMST_WriteError "п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦\n"
+#define MSGTR_MPDEMUX_MMST_EOFAlert "\nп╒я─п╣п╡п╬пЁп╟! EOF\n"
+#define MSGTR_MPDEMUX_MMST_PreHeaderReadFailed "я┤я┌п╣п╫п╦п╣ п©я─п╣п╢п╡п╟я─п╦я┌п╣п╩я▄п╫п╬пЁп╬ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╫п╣ я┐п╢п╟п╩п╬я│я▄\n"
+#define MSGTR_MPDEMUX_MMST_InvalidHeaderSize "п²п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п╥п╟пЁп╬п╩п╬п╡п╨п╟, п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
+#define MSGTR_MPDEMUX_MMST_HeaderDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ п╢п╟п╫п╫я▀п╣ п╥п╟пЁп╬п╩п╬п╡п╨п╟.\n"
+#define MSGTR_MPDEMUX_MMST_packet_lenReadFailed "п╫п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ packet_len.\n"
+#define MSGTR_MPDEMUX_MMST_InvalidRTSPPacketSize "п²п╣п╡п╣я─п╫я▀п╧ я─п╟п╥п╪п╣я─ п©п╟п╨п╣я┌п╟ RTSP, п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
+#define MSGTR_MPDEMUX_MMST_CmdDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ я┐п©я─п╟п╡п╩я▐я▌я┴п╦п╣ п╢п╟п╫п╫я▀п╣.\n"
+#define MSGTR_MPDEMUX_MMST_HeaderObject "п╬п╠я┼п╣п╨я┌ п╥п╟пЁп╬п╩п╬п╡п╨п╟\n"
+#define MSGTR_MPDEMUX_MMST_DataObject "п╬п╠я┼п╣п╨я┌ п╢п╟п╫п╫я▀я┘\n"
+#define MSGTR_MPDEMUX_MMST_FileObjectPacketLen "я└п╟п╧п╩п╬п╡я▀п╧ п╬п╠я┼п╣п╨я┌, п╢п╩п╦п╫п╟ п©п╟п╨п╣я┌п╟ = %d (%d)\n"
+#define MSGTR_MPDEMUX_MMST_StreamObjectStreamID "п©п╬я┌п╬п╨п╬п╡я▀п╧ п╬п╠я┼п╣п╨я┌, ID п©п╬я┌п╬п╨п╟: %d\n"
+#define MSGTR_MPDEMUX_MMST_2ManyStreamID "п║п╩п╦я┬п╨п╬п╪ п╪п╫п╬пЁп╬ ID, п©п╬я┌п╬п╨ п©я─п╬п©я┐я┴п╣п╫."
+#define MSGTR_MPDEMUX_MMST_UnknownObject "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╬п╠я┼п╣п╨я┌\n"
+#define MSGTR_MPDEMUX_MMST_MediaDataReadFailed "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ п╪п╣п╢п╦п╟п╢п╟п╫п╫я▀п╣.\n"
+#define MSGTR_MPDEMUX_MMST_MissingSignature "п©я─п╬п©я┐я┴п╣п╫п╟ п©п╬п╢п©п╦я│я▄\n"
+#define MSGTR_MPDEMUX_MMST_PatentedTechnologyJoke "п▓я│я▒ я│п╢п╣п╩п╟п╫п╬. п║п©п╟я│п╦п╠п╬ п╥п╟ п╥п╟пЁя─я┐п╥п╨я┐ п╪п╣п╢п╦п╟я└п╟п╧п╩п╟,\nя│п╬п╢п╣я─п╤п╟я┴п╣пЁп╬ п©я─п╬п©я─п╦п╣я┌п╟я─п╫я┐я▌ п╦ п╥п╟п©п╟я┌п╣п╫я┌п╬п╡п╟п╫п╫я┐я▌ я┌п╣я┘п╫п╬п╩п╬пЁп╦я▌ =).\n"
+#define MSGTR_MPDEMUX_MMST_UnknownCmd "п╫п╣п╦п╥п╡п╣я│я┌п╫п╟я▐ п╨п╬п╪п╟п╫п╢п╟ %02x\n"
+#define MSGTR_MPDEMUX_MMST_GetMediaPacketErr "п╬я┬п╦п╠п╨п╟ get_media_packet : %s\n"
+#define MSGTR_MPDEMUX_MMST_Connected "п║п╬п╣п╢п╦п╫п╦п╩п╦я│я▄\n"
-// libvo/vo_tga.c
+// asf_streaming.c
+#define MSGTR_MPDEMUX_ASF_StreamChunkSize2Small "п╜я┘, я─п╟п╥п╪п╣я─ stream_chunck я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩: %d\n"
+#define MSGTR_MPDEMUX_ASF_SizeConfirmMismatch "п╫п╣я│п╬п╬я┌п╡п╣я┌я│я┌п╡п╦п╣ size_confirm!: %d %d\n"
+#define MSGTR_MPDEMUX_ASF_WarnDropHeader "п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: п©я─п╬п©я┐я│п╨ п╥п╟пЁп╬п╩п╬п╡п╨п╟ ????\n"
+#define MSGTR_MPDEMUX_ASF_ErrorParsingChunkHeader "п·я┬п╦п╠п╨п╟ я─п╟п╥п╠п╬я─п╟ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╥п╡п╣п╫п╟\n"
+#define MSGTR_MPDEMUX_ASF_NoHeaderAtFirstChunk "п²п╣ п©п╬п╩я┐я┤п╦п╩ п╥п╟пЁп╬п╩п╬п╡п╬п╨ п╨п╟п╨ п©п╣я─п╡п╬п╣ п╥п╡п╣п╫п╬ !!!!\n"
+#define MSGTR_MPDEMUX_ASF_BufferMallocFailed "п·я┬п╦п╠п╨п╟: п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╠я┐я└п╣я─ п╡ %d п╠п╟п╧я┌(п╟/п╬п╡).\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingNetworkStream "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ я│п╣я┌п╣п╡п╬пЁп╬ п©п╬я┌п╬п╨п╟.\n"
+#define MSGTR_MPDEMUX_ASF_ErrChunk2Small "п·я┬п╦п╠п╨п╟: п≈п╡п╣п╫п╬ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╬.\n"
+#define MSGTR_MPDEMUX_ASF_ErrSubChunkNumberInvalid "п·я┬п╦п╠п╨п╟: п²п╬п╪п╣я─ п©п╬п╢я├п╣п©п╬я┤п╨п╦ п╫п╣п╡п╣я─п╣п╫.\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallCannotPlay "п║п╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, я└п╟п╧п╩ п╫п╣ п╪п╬п╤п╣я┌ п╠я▀я┌я▄ п©я─п╬п╦пЁя─п╟п╫!\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedAudio "п║п╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, п╬я┌п╨п╩я▌я┤п╟я▌ п╟я┐п╢п╦п╬п©п╬я┌п╬п╨.\n"
+#define MSGTR_MPDEMUX_ASF_Bandwidth2SmallDeselectedVideo "п║п╨п╬я─п╬я│я┌я▄ п©п╣я─п╣п╢п╟я┤п╦ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╟, п╬я┌п╨п╩я▌я┤п╟я▌ п╡п╦п╢п╣п╬п©п╬я┌п╬п╨.\n"
+#define MSGTR_MPDEMUX_ASF_InvalidLenInHeader "п²п╣п╡п╣я─п╫п╟я▐ п╢п╩п╦п╫п╟ п╡ п╥п╟пЁп╬п╩п╬п╡п╨п╣ ASF!\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingChunkHeader "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╥п╟пЁп╬п╩п╬п╡п╨п╟ п╥п╡п╣п╫п╟.\n"
+#define MSGTR_MPDEMUX_ASF_ErrChunkBiggerThanPacket "п·я┬п╦п╠п╨п╟: chunk_size > packet_size\n"
+#define MSGTR_MPDEMUX_ASF_ErrReadingChunk "п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╥п╡п╣п╫п╟.\n"
+#define MSGTR_MPDEMUX_ASF_ASFRedirector "=====> п÷п╣я─п╣п╫п╟п©я─п╟п╡п╦я┌п╣п╩я▄ ASF\n"
+#define MSGTR_MPDEMUX_ASF_InvalidProxyURL "п╫п╣п╡п╣я─п╫я▀п╧ URL п©я─п╬п╨я│п╦\n"
+#define MSGTR_MPDEMUX_ASF_UnknownASFStreamType "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟ ASF\n"
+#define MSGTR_MPDEMUX_ASF_Failed2ParseHTTPResponse "п²п╣ п╪п╬пЁя┐ п©я─п╬п╟п╫п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╬я┌п╡п╣я┌ HTTP.\n"
+#define MSGTR_MPDEMUX_ASF_ServerReturn "п║п╣я─п╡п╣я─ п╡п╣я─п╫я┐п╩ %d:%s\n"
+#define MSGTR_MPDEMUX_ASF_ASFHTTPParseWarnCuttedPragma "п÷п═п∙п■пёп÷п═п∙п√п■п∙п²п≤п∙ п░п²п░п⌡п≤п≈п░п╒п·п═п░ HTTP ASF : Pragma %s я┐я─п╣п╥п╟п╫п╟ п╬я┌ %d п╠п╟п╧я┌ п╢п╬ %d\n"
+#define MSGTR_MPDEMUX_ASF_SocketWriteError "п╬я┬п╦п╠п╨п╟ п╥п╟п©п╦я│п╦ я│п╬п╨п╣я┌п╟: %s\n"
+#define MSGTR_MPDEMUX_ASF_HeaderParseFailed "п²п╣ п╪п╬пЁя┐ я─п╟п╥п╬п╠я─п╟я┌я▄ п╥п╟пЁп╬п╩п╬п╡п╬п╨.\n"
+#define MSGTR_MPDEMUX_ASF_NoStreamFound "п÷п╬я┌п╬п╨ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
+#define MSGTR_MPDEMUX_ASF_UnknownASFStreamingType "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я┌п╦п© п©п╬я┌п╬п╨п╟ ASF\n"
+#define MSGTR_MPDEMUX_ASF_InfoStreamASFURL "STREAM_ASF, URL: %s\n"
+#define MSGTR_MPDEMUX_ASF_StreamingFailed "п║п╠п╬п╧, п╡я▀я┘п╬п╤я┐.\n"
-#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] п²п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│я┐п╠я┐я│я┌я─п╬п╧я│я┌п╡п╬: %s.\n"
+// audio_in.c
+#define MSGTR_MPDEMUX_AUDIOIN_ErrReadingAudio "\nп·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╟я┐п╢п╦п╬: %s\n"
+#define MSGTR_MPDEMUX_AUDIOIN_XRUNSomeFramesMayBeLeftOut "п▓п╬я│я│я┌п╟п╫п╬п╡п╩п╣п╫п╦п╣ п©п╬я│п╩п╣ п©п╣я─п╣я│п╨п╬п╨п╟, п╫п╣п╨п╬я┌п╬я─я▀п╣ п╨п╟п╢я─я▀ п╪п╬пЁя┐я┌ п╠я▀я┌я▄ п©п╬я┌п╣я─я▐п╫я▀!\n"
+#define MSGTR_MPDEMUX_AUDIOIN_ErrFatalCannotRecover "п╓п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟, п╫п╣ п╪п╬пЁя┐ п╡п╬я│я│я┌п╟п╫п╬п╡п╦я┌я▄я│я▐!\n"
+#define MSGTR_MPDEMUX_AUDIOIN_NotEnoughSamples "\nп²п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╟я▐ п╡я▀п╠п╬я─п╨п╟ п╟я┐п╢п╦п╬!\n"
-// libvo/vo_vesa.c
+// cache2.c
+#define MSGTR_MPDEMUX_CACHE2_NonCacheableStream "\rп╜я┌п╬я┌ п©п╬я┌п╬п╨ п╫п╣ п╨я█я┬п╦я─я┐п╣п╪.\n"
+#define MSGTR_MPDEMUX_CACHE2_ReadFileposDiffers "!!! read_filepos я─п╟п╥п╩п╦я┤п╟я▌я┌я│я▐!!! п║п╬п╬п╠я┴п╦я┌п╣ п╬п╠ я█я┌п╬п╧ п╬я┬п╦п╠п╨п╣...\n"
-#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] п▓п╬п╥п╫п╦п╨п╩п╟ я└п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟! п²п╣ п╪п╬пЁя┐ п©я─п╬п╢п╬п╩п╤п╦я┌я▄.\n"
-#define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] п╫п╣п╦п╥п╡п╣я│я┌п╫п╬п╣ я│я┐п╠я┐я│я┌я─п╬п╧я│я┌п╡п╬: '%s'.\n"
-#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] пё п▓п╟я│ я│п╩п╦я┬п╨п╬п╪ п╪п╟п╩п╬ п╡п╦п╢п╣п╬п©п╟п╪я▐я┌п╦ п╢п╩я▐ я█я┌п╬пЁп╬ я─п╣п╤п╦п╪п╟:\n[VO_VESA] п²п╣п╬п╠я┘п╬п╢п╦п╪п╬: %08lX п╦п╪п╣п╣я┌я│я▐: %08lX.\n"
-#define MSGTR_LIBVO_VESA_YouHaveToSpecifyTheCapabilitiesOfTheMonitor "[VO_VESA] п▓п╟п╪ п╫я┐п╤п╫п╬ я┐п╨п╟п╥п╟я┌я▄ п╡п╬п╥п╪п╬п╤п╫п╬я│я┌п╦ п╪п╬п╫п╦я┌п╬я─п╟. п²п╣ п╦п╥п╪п╣п╫я▐я▌ я┤п╟я│я┌п╬я┌я┐ п╬п╠п╫п╬п╡п╩п╣п╫п╦я▐.\n"
-#define MSGTR_LIBVO_VESA_UnableToFitTheMode "[VO_VESA] п═п╣п╤п╦п╪ п╫п╣ я│п╬п╬я┌п╡п╣я┌я│п╡я┐п╣я┌ п╬пЁя─п╟п╫п╦я┤п╣п╫п╦я▐п╪ п╪п╬п╫п╦я┌п╬я─п╟. п²п╣ п╦п╥п╪п╣п╫я▐я▌ я┤п╟я│я┌п╬я┌я┐ п╬п╠п╫п╬п╡п╩п╣п╫п╦я▐.\n"
-#define MSGTR_LIBVO_VESA_DetectedInternalFatalError "[VO_VESA] п·п╠п╫п╟я─я┐п╤п╣п╫п╟ п╡п╫я┐я┌я─п╣п╫п╫я▐я▐ я└п╟я┌п╟п╩я▄п╫п╟я▐ п╬я┬п╦п╠п╨п╟: init п╡я▀п╥п╡п╟п╫ п╢п╬ preinit.\n"
-#define MSGTR_LIBVO_VESA_SwitchFlipIsNotSupported "[VO_VESA] п·п©я├п╦я▐ -flip п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐.\n"
-#define MSGTR_LIBVO_VESA_PossibleReasonNoVbe2BiosFound "[VO_VESA] п▓п╬п╥п╪п╬п╤п╫п╟я▐ п©я─п╦я┤п╦п╫п╟: VBE2 BIOS п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
-#define MSGTR_LIBVO_VESA_FoundVesaVbeBiosVersion "[VO_VESA] п²п╟п╧п╢п╣п╫ VESA VBE BIOS, п╡п╣я─я│п╦я▐ %x.%x, я─п╣п╡п╦п╥п╦я▐: %x.\n"
-#define MSGTR_LIBVO_VESA_VideoMemory "[VO_VESA] п▓п╦п╢п╣п╬п©п╟п╪я▐я┌я▄: %u п п╠.\n"
-#define MSGTR_LIBVO_VESA_Capabilites "[VO_VESA] п▓я─п╥п╪п╬п╤п╫п╬я│я┌п╦ VESA: %s %s %s %s %s.\n"
-#define MSGTR_LIBVO_VESA_BelowWillBePrintedOemInfo "[VO_VESA] !!! п²п╦п╤п╣ п╠я┐п╢п╣я┌ п╡я▀п╡п╣п╢п╣п╫п╟ п╦п╫я└п╬я─п╪п╟я├п╦я▐ OEM !!!\n"
-#define MSGTR_LIBVO_VESA_YouShouldSee5OemRelatedLines "[VO_VESA] п▓я▀ п╢п╬п╩п╤п╫я▀ п╫п╦п╤п╣ п╡п╦п╢п╣я┌я▄ 5 я│я┌я─п╬п╨ п╦п╫я└п╬я─п╪п╟я├п╦п╦ OEM.\nп∙я│п╩п╦ п╫п╣я┌, я┐ п╡п╟я│ п╫п╣п╦я│п©я─п╟п╡п╫п╟я▐ vm86.\n"
-#define MSGTR_LIBVO_VESA_OemInfo "[VO_VESA] п≤п╫я└п╬я─п╪п╟я├п╦я▐ OEM: %s.\n"
-#define MSGTR_LIBVO_VESA_OemRevision "[VO_VESA] п═п╣п╡п╦п╥п╦я▐ OEM: %x.\n"
-#define MSGTR_LIBVO_VESA_OemVendor "[VO_VESA] п÷п╬я│я┌п╟п╡я┴п╦п╨ OEM: %s.\n"
-#define MSGTR_LIBVO_VESA_OemProductName "[VO_VESA] п²п╟п╦п╪п╣п╫п╬п╡п╟п╫п╦п╣ п©я─п╬п╢я┐п╨я┌п╟ OEM: %s.\n"
-#define MSGTR_LIBVO_VESA_OemProductRev "[VO_VESA] п═п╣п╡п╦п╥п╦я▐ п©я─п╬п╢я┐п╨я┌п╟ OEM: %s.\n"
-#define MSGTR_LIBVO_VESA_Hint "[VO_VESA] п÷п╬п╢я│п╨п╟п╥п╨п╟: п■п╩я▐ я─п╟п╠п╬я┌я▀ п╒п▓-п╡я▀я┘п╬п╢п╟ п▓п╟п╪ п╫п╣п╬п╠я┘п╬п╢п╦п╪п╬ п©п╬п╢п╨п╩я▌я┤п╦я┌я▄ я─п╟п╥я┼я▒п╪ п╒п▓\n"\
-"[VO_VESA] п╢п╬ п╥п╟пЁя─я┐п╥п╨п╦, я┌.п╨. VESA BIOS п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─я┐п╣я┌я│я▐ я┌п╬п╩я▄п╨п╬ п╡ п©я─п╬я├п╣я│я│п╣ POST.\n"
-#define MSGTR_LIBVO_VESA_UsingVesaMode "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ VESA (%u) = %x [%ux%u@%u]\n"
-#define MSGTR_LIBVO_VESA_CantInitializeSwscaler "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п©я─п╬пЁя─п╟п╪п╪п╫п╬п╣ п╪п╟я│я┬я┌п╟п╠п╦я─п╬п╡п╟п╫п╦п╣.\n"
-#define MSGTR_LIBVO_VESA_CantUseDga "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ DGA. п╓п╬я─я│п╦я─я┐я▌ я─п╣п╤п╦п╪ п╨п╬п╪п╪я┐я┌п╟я├п╦п╦ я│п╣пЁп╪п╣п╫я┌п╬п╡. :(\n"
-#define MSGTR_LIBVO_VESA_UsingDga "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ DGA (я└п╦п╥п╦я┤п╣я│п╨п╦п╣ я─п╣я│я┐я─я│я▀: %08lXh, %08lXh)"
-#define MSGTR_LIBVO_VESA_CantUseDoubleBuffering "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄ п╢п╡п╬п╧п╫я┐я▌ п╠я┐я└п╣я─п╦п╥п╟я├п╦я▌: п╫п╣п╢п╬я│я┌п╟я┌п╬я┤п╫п╬ п╡п╦п╢п╣п╬п©п╟п╪я▐я┌п╦.\n"
-#define MSGTR_LIBVO_VESA_CantFindNeitherDga "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╫п╦ DGA п╫п╦ п©п╣я─п╣п╪п╣я│я┌п╦п╪п╬пЁп╬ я└я─п╣п╧п╪п╟ п╬п╨п╫п╟.\n"
-#define MSGTR_LIBVO_VESA_YouveForcedDga "[VO_VESA] п▓я▀ я└п╬я─я│п╦я─п╬п╡п╟п╩п╦ DGA. п▓я▀я┘п╬п╤я┐\n"
-#define MSGTR_LIBVO_VESA_CantFindValidWindowAddress "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╟п╢я─п╣я│ п╬п╨п╫п╟.\n"
-#define MSGTR_LIBVO_VESA_UsingBankSwitchingMode "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ я─п╣п╤п╦п╪ п╨п╬п╪п╪я┐я┌п╟я├п╦п╦ я│п╣пЁп╪п╣п╫я┌п╬п╡\n(я└п╦п╥п╦я┤п╣я│п╨п╦п╣ я─п╣я│я┐я─я│я▀: %08lXh, %08lXh).\n"
-#define MSGTR_LIBVO_VESA_CantAllocateTemporaryBuffer "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╡я▀п╢п╣п╩п╦я┌я▄ п╡я─п╣п╪п╣п╫п╫я▀п╧ п╠я┐я└п╣я─.\n"
-#define MSGTR_LIBVO_VESA_SorryUnsupportedMode "[VO_VESA] п≤п╥п╡п╦п╫п╦я┌п╣, п╫п╣п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╧ я─п╣п╤п╦п╪ -- п©п╬п©я─п╬п╠я┐п╧я┌п╣ -x 640 -zoom.\n"
-#define MSGTR_LIBVO_VESA_OhYouReallyHavePictureOnTv "[VO_VESA] п·, я┐ п▓п╟я│ п╢п╣п╧я│я┌п╡п╦я┌п╣п╩я▄п╫п╬ п╣я│я┌я▄ п╦п╥п╬п╠я─п╟п╤п╣п╫п╦п╣ п╫п╟ п╒п▓!\n"
-#define MSGTR_LIBVO_VESA_CantInitialozeLinuxVideoOverlay "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п▓п╦п╢п╣п╬п╡п╣я─п╩п╣п╧ Linux.\n"
-#define MSGTR_LIBVO_VESA_UsingVideoOverlay "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ п╡п╦п╢п╣п╬п╬п╡п╣я─п╩п╣п╧: %s.\n"
-#define MSGTR_LIBVO_VESA_CantInitializeVidixDriver "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╦п╫п╦я├п╦п╟п╩п╦п╥п╦я─п╬п╡п╟я┌я▄ п╢я─п╟п╧п╡п╣я─ VIDIX.\n"
-#define MSGTR_LIBVO_VESA_UsingVidix "[VO_VESA] п≤я│п©п╬п╩я▄п╥я┐я▌ VIDIX.\n"
-#define MSGTR_LIBVO_VESA_CantFindModeFor "[VO_VESA] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ я─п╣п╤п╦п╪ п╢п╩я▐: %ux%u@%u.\n"
-#define MSGTR_LIBVO_VESA_InitializationComplete "[VO_VESA] п≤п╫п╦я├п╦п╟п╩п╦п╥п╟я├п╦я▐ VESA п╥п╟п╡п╣я─я┬п╣п╫п╟.\n"
+// stream_cdda.c
+#define MSGTR_MPDEMUX_CDDA_CantOpenCDDADevice "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ CDDA.\n"
+#define MSGTR_MPDEMUX_CDDA_CantOpenDisc "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ п╢п╦я│п╨.\n"
+#define MSGTR_MPDEMUX_CDDA_AudioCDFoundWithNTracks "п²п╟п╧п╢п╣п╫ п╟я┐п╢п╦п╬ CD я│ %ld п╢п╬я─п╬п╤п╨п╟п╪п╦.\n"
-// libvo/vo_x11.c
+// stream_cddb.c
+#define MSGTR_MPDEMUX_CDDB_FailedToReadTOC "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ TOC.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToOpenDevice "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ я┐я│я┌я─п╬п╧я│я┌п╡п╬ %s.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAValidURL "п╫п╣п╡п╣я─п╫я▀п╧ URL\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToSendHTTPRequest "п²п╣ п╪п╬пЁя┐ п╬я┌п©я─п╟п╡п╦я┌я▄ HTTP п╥п╟п©я─п╬я│.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToReadHTTPResponse "п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╣я│я┌я▄ HTTP п╬я┌п╡п╣я┌.\n"
+#define MSGTR_MPDEMUX_CDDB_HTTPErrorNOTFOUND "п²п╣ п╫п╟п╧п╢п╣п╫.\n"
+#define MSGTR_MPDEMUX_CDDB_HTTPErrorUnknown "п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╨п╬п╢ п╬я┬п╦п╠п╨п╦\n"
+#define MSGTR_MPDEMUX_CDDB_NoCacheFound "п я█я┬ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenRead "п²п╣ п╡я│п╣ xmcd я└п╟п╧п╩я▀ п╠я▀п╩п╦ п©я─п╬я┤п╦я┌п╟п╫я▀.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToCreateDirectory "п²п╣ п╪п╬пЁя┐ я│п╬п╥п╢п╟я┌я▄ п╨п╟я┌п╟п╩п╬пЁ %s.\n"
+#define MSGTR_MPDEMUX_CDDB_NotAllXMCDFileHasBeenWritten "п²п╣ п╡я│п╣ xmcd я└п╟п╧п╩я▀ п╠я▀п╩п╦ п╥п╟п©п╦я│п╟п╫я▀.\n"
+#define MSGTR_MPDEMUX_CDDB_InvalidXMCDDatabaseReturned "п▓п╬п╥п╡я─п╟я┴я▒п╫ п╫п╣п╡п╣я─п╫я▀п╧ я└п╟п╧п╩ п╠п╟п╥я▀ п╢п╟п╫п╫я▀я┘ xmcd.\n"
+#define MSGTR_MPDEMUX_CDDB_UnexpectedFIXME "п╫п╣п╬п╤п╦п╢п╟п╫п╫п╬п╣ FIXME\n"
+#define MSGTR_MPDEMUX_CDDB_UnhandledCode "п╫п╣п╬п╠я─п╟п╠п╬я┌п╟п╫п╫я▀п╧ п╨п╬п╢\n"
+#define MSGTR_MPDEMUX_CDDB_UnableToFindEOL "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ п╨п╬п╫п╣я├ я│я┌я─п╬п╨п╦.\n"
+#define MSGTR_MPDEMUX_CDDB_ParseOKFoundAlbumTitle "п░п╫п╟п╩п╦п╥ я┐я│п©п╣я┬п╣п╫, п╫п╟п╧п╢п╣п╫п╬: %s\n"
+#define MSGTR_MPDEMUX_CDDB_AlbumNotFound "п░п╩я▄п╠п╬п╪ п╫п╣ п╫п╟п╧п╢п╣п╫.\n"
+#define MSGTR_MPDEMUX_CDDB_ServerReturnsCommandSyntaxErr "п║п╣я─п╡п╣я─ п╡п╣я─п╫я┐п╩: п╬я┬п╦п╠п╨п╟ я│п╦п╫я┌п╟п╨я│п╦я│п╟ п╨п╬п╪п╟п╫п╢я▀\n"
+#define MSGTR_MPDEMUX_CDDB_NoSitesInfoAvailable "п²п╣п╢п╬я│я┌я┐п©п╫п╟ п╦п╫я└п╬я─п╪п╟я├п╦я▐ п╬ я│п╟п╧я┌п╣.\n"
+#define MSGTR_MPDEMUX_CDDB_FailedToGetProtocolLevel "п²п╣ п╪п╬пЁя┐ п©п╬п╩я┐я┤п╦я┌я▄ я┐я─п╬п╡п╣п╫я▄ п©я─п╬я┌п╬п╨п╬п╩п╟.\n"
+#define MSGTR_MPDEMUX_CDDB_NoCDInDrive "п²п╣я┌ CD п╡ п©я─п╦п╡п╬п╢п╣.\n"
-#define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] п▓я▀п╥п╡п╟п╫ draw_frame()!!!!!!\n"
+// stream_cue.c
+#define MSGTR_MPDEMUX_CUEREAD_UnexpectedCuefileLine "[bincue] п²п╣п╬п╤п╦п╢п╟п╫п╫п╟я▐ я│я┌я─п╬п╨п╟ я└п╟п╧п╩п╟ cue: %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_BinFilenameTested "[bincue] п©я─п╬п╡п╣я─п╣п╫п╫п╬п╣ п╦п╪я▐ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟: %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotFindBinFile "[bincue] п²п╣ п╪п╬пЁя┐ п╫п╟п╧я┌п╦ п╠п╦п╫п╟я─п╫я▀п╧ я└п╟п╧п╩ - п╠п╣п╥п╫п╟п╢я▒п╤п╫п╬.\n"
+#define MSGTR_MPDEMUX_CUEREAD_UsingBinFile "[bincue] п≤я│п©п╬п╩я▄п╥я┐я▌ п╠п╦п╫п╟я─п╫я▀п╧ я└п╟п╧п╩ %s.\n"
+#define MSGTR_MPDEMUX_CUEREAD_UnknownModeForBinfile "[bincue] п╫п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ я─п╣п╤п╦п╪ п╢п╩я▐ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟.\nп╜я┌п╬пЁп╬ п╫п╣ п╢п╬п╩п╤п╫п╬ п©я─п╬п╦я│я┘п╬п╢п╦я┌я▄. п▓я▀я┘п╬п╤я┐.\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotOpenCueFile "[bincue] п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ %s.\n"
+#define MSGTR_MPDEMUX_CUEREAD_ErrReadingFromCueFile "[bincue] п·я┬п╦п╠п╨п╟ я┤я┌п╣п╫п╦я▐ п╦п╥ %s\n"
+#define MSGTR_MPDEMUX_CUEREAD_ErrGettingBinFileSize "[bincue] п·я┬п╦п╠п╨п╟ п©п╬п╩я┐я┤п╣п╫п╦я▐ я─п╟п╥п╪п╣я─п╟ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟.\n"
+#define MSGTR_MPDEMUX_CUEREAD_InfoTrackFormat "п╢п╬я─п╬п╤п╨п╟ %02d: я└п╬я─п╪п╟я┌=%d %02d:%02d:%02d\n"
+#define MSGTR_MPDEMUX_CUEREAD_UnexpectedBinFileEOF "[bincue] п╫п╣п╬п╤п╦п╢п╟п╫п╫я▀п╧ п╨п╬п╫п╣я├ п╠п╦п╫п╟я─п╫п╬пЁп╬ я└п╟п╧п╩п╟\n"
+#define MSGTR_MPDEMUX_CUEREAD_CannotReadNBytesOfPayload "[bincue] п²п╣ п╪п╬пЁя┐ п©я─п╬я┤п╦я┌п╟я┌я▄ %d п╠п╟п╧я┌(п╟/п╬п╡) п©п╬п╩п╣п╥п╫п╬п╧ п╫п╟пЁя─я┐п╥п╨п╦.\n"
+#define MSGTR_MPDEMUX_CUEREAD_CueStreamInfo_FilenameTrackTracksavail "CUE п╬я┌п╨я─я▀я┌п╦п╣_п©п╬я┌п╬п╨п╟, п╦п╪я▐ я└п╟п╧п╩п╟=%s, п╢п╬я─п╬п╤п╨п╟=%d, п╢п╬я│я┌я┐п©п╫я▀п╣ п╢п╬я─п╬п╤п╨п╦: %d -> %d\n"
-// libvo/vo_xv.c
+// stream_dvd.c
+#define MSGTR_DVDspeedCantOpen "п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╬я┌п╨я─я▀я┌я▄ DVD я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╢п╩я▐ п╥п╟п©п╦я│п╦, п╦п╥п╪п╣п╫п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD я┌я─п╣п╠я┐п╣я┌ п╢п╬я│я┌я┐п© п╫п╟ п╥п╟п©п╦я│я▄.\n"
+#define MSGTR_DVDrestoreSpeed "п▓п╬я│я│я┌п╟п╫п╬п╡п╩п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD... "
+#define MSGTR_DVDlimitSpeed "п·пЁя─п╟п╫п╦я┤п╣п╫п╦п╣ я│п╨п╬я─п╬я│я┌п╦ DVD п╢п╬ %dп п▒/я│... "
+#define MSGTR_DVDlimitFail "п╬я┬п╦п╠п╨п╟\n"
+#define MSGTR_DVDlimitOk "я┐я│п©п╣я┬п╫п╬\n"
+#define MSGTR_NoDVDSupport "MPlayer п╠я▀п╩ я│п╨п╬п╪п©п╦п╩п╦я─п╬п╡п╟п╫ п╠п╣п╥ п©п╬п╢п╢п╣я─п╤п╨п╦ DVD, п╡я▀я┘п╬п╢п╦п╪.\n"
+#define MSGTR_DVDnumTitles "п²п╟ я█я┌п╬п╪ DVD %d я─п╬п╩п╦п╨п╬п╡.\n"
+#define MSGTR_DVDinvalidTitle "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ DVD я─п╬п╩п╦п╨п╟: %d\n"
+#define MSGTR_DVDnumChapters "п▓ я█я┌п╬п╪ DVD я─п╬п╩п╦п╨п╣ %d я─п╟п╥п╢п╣п╩[п╟/п╬п╡].\n"
+#define MSGTR_DVDinvalidChapter "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ я─п╟п╥п╢п╣п╩п╟ DVD: %d\n"
+#define MSGTR_DVDinvalidChapterRange "п²п╣п╡п╣я─п╫п╬п╣ п╬п©п╦я│п╟п╫п╦п╣ п╢п╦п╟п©п╟п╥п╬п╫п╟ я─п╟п╥п╢п╣п╩п╟ %s\n"
+#define MSGTR_DVDinvalidLastChapter "п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ п©п╬я│п╩п╣п╢п╫п╣пЁп╬ я─п╟п╥п╢п╣п╩п╟ DVD: %d\n"
+#define MSGTR_DVDnumAngles "п▓ я█я┌п╬п╪ DVD я─п╬п╩п╦п╨п╣ %d я┐пЁп╩п╬п╡.\n"
+#define MSGTR_DVDinvalidAngle "п²п╣п╢п╬п©я┐я│я┌п╦п╪я▀п╧ п╫п╬п╪п╣я─ DVD я┐пЁп╩п╟: %d\n"
+#define MSGTR_DVDnoIFO "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ IFO я└п╟п╧п╩ п╢п╩я▐ DVD я─п╬п╩п╦п╨п╟ %d.\n"
+#define MSGTR_DVDnoVMG "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ VMG п╦п╫я└п╬я─п╪п╟я├п╦я▌!\n"
+#define MSGTR_DVDnoVOBs "п²п╣ п╪п╬пЁя┐ п╬я┌п╨я─я▀я┌я▄ VOBS я─п╬п╩п╦п╨п╟ (VTS_%02d_1.VOB).\n"
+#define MSGTR_DVDnoMatchingAudio "п²п╣ п╫п╟п╧п╢п╣п╫ п©п╬п╢я┘п╬п╢я▐я┴п╦п╧ п╟я┐п╢п╦п╬ я▐п╥я▀п╨ DVD!\n"
+#define MSGTR_DVDaudioChannel "п▓я▀п╠я─п╟п╫п╫я▀п╧ п╟я┐п╢п╦п╬п╨п╟п╫п╟п╩ DVD: %d я▐п╥я▀п╨: %c%c\n"
+#define MSGTR_DVDaudioStreamInfo "п╟я┐п╢п╦п╬п©п╬я┌п╬п╨: %d я└п╬я─п╪п╟я┌: %s (%s) я▐п╥я▀п╨: %s aid: %d.\n"
+#define MSGTR_DVDnumAudioChannels "я┤п╦я│п╩п╬ п╟я┐п╢п╦п╬п╨п╟п╫п╟п╩п╬п╡ п╫п╟ п╢п╦я│п╨п╣: %d.\n"
+#define MSGTR_DVDnoMatchingSubtitle "п²п╣ п╫п╟п╧п╢п╣п╫ п©п╬п╢я┘п╬п╢я▐я┴п╦п╧ я▐п╥я▀п╨ я│я┐п╠я┌п╦я┌я─п╬п╡ DVD!\n"
+#define MSGTR_DVDsubtitleChannel "п▓я▀п╠я─п╟п╫п╫я▀п╧ п╨п╟п╫п╟п╩ я│я┐п╠я┌п╦я┌я─п╬п╡ DVD: %d я▐п╥я▀п╨: %c%c\n"
+#define MSGTR_DVDsubtitleLanguage "я│я┐п╠я┌п╦я┌я─я▀ ( sid ): %d я▐п╥я▀п╨: %s\n"
+#define MSGTR_DVDnumSubtitles "я┤п╦я│п╩п╬ я│я┐п╠я┌п╦я┌я─п╬п╡ п╫п╟ п╢п╦я│п╨п╣: %d\n"
-#define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] п▓я▀п╥п╡п╟п╫ draw_frame()!!!!!!\n"
-#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] п═п╟п╥п╢п╣п╩я▐п╣п╪п╟я▐ п©п╟п╪я▐я┌я▄ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐\nп▓п╬п╥п╡я─п╟я┌ п╨ п╬п╠я▀я┤п╫п╬п╪я┐ Xv.\n"
-#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] п≤п╥п╡п╦п╫п╦я┌п╣, Xv п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я█я┌п╬п╧ п╡п╣я─я│п╦п╣п╧/п╢я─п╟п╧п╡п╣я─п╬п╪ X11\n[VO_XV] ******** п÷п╬п©я─п╬п╠я┐п╧я┌п╣ -vo x11 п╦п╩п╦ -vo sdl *********\n"
-#define MSGTR_LIBVO_XV_XvQueryAdaptorsFailed "[VO_XV] п·я┬п╦п╠п╨п╟ XvQueryAdaptors.\n"
-#define MSGTR_LIBVO_XV_InvalidPortParameter "[VO_XV] п²п╣п╡п╣я─п╫я▀п╧ п©п╟я─п╟п╪п╣я┌я─ port, п©п╣я─п╣п╬п©я─п╣п╢п╣п╩п╣п╫п╦п╣ п©п╟я─п╟п╪п╣я┌я─п╬п╪ port 0.\n"
-#define MSGTR_LIBVO_XV_CouldNotGrabPort "[VO_XV] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╥п╟я┘п╡п╟я┌п╦я┌я▄ п©п╬я─я┌ %i.\n"
-#define MSGTR_LIBVO_XV_CouldNotFindFreePort "[VO_XV] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ я│п╡п╬п╠п╬п╢п╫я▀п╧ Xvideo п©п╬я─я┌ - п╡п╬п╥п╪п╬п╤п╫п╬ п╢я─я┐пЁп╬п╣ п©я─п╦п╩п╬п╤п╣п╫п╦п╣\n"\
-"[VO_XV] я┐п╤п╣ п╣пЁп╬ п╦я│п©п╬п╩я▄п╥я┐п╣я┌. п≈п╟п╨я─п╬п╧я┌п╣ п╡я│п╣ п©я─п╬пЁя─п╟п╪п╪я▀ п╡п╦п╢п╣п╬, п╦ п©п╬п©я▀я┌п╟п╧я┌п╣я│я▄ я│п╫п╬п╡п╟. п∙я│п╩п╦ я█я┌п╬\n"\
-"[VO_XV] п╫п╣ п©п╬п╪п╬пЁп╟п╣я┌, я│п╪п╬я┌я─п╦я┌п╣ п╢я─я┐пЁп╦п╣ (п╫п╣-xv) п╢я─п╟п╧п╡п╣я─я▀ п╡ п╡я▀п╡п╬п╢п╣ 'mplayer -vo help'.\n"
-#define MSGTR_LIBVO_XV_NoXvideoSupport "[VO_XV] п÷п╬я┘п╬п╤п╣, п╡п╟я┬п╟ п╨п╟я─я┌п╟ п╫п╣ п╦п╪п╣п╣я┌ п©п╬п╢п╢п╣я─п╤п╨п╦ Xvideo.\n"\
-"[VO_XV] п≈п╟п©я┐я│я┌п╦я┌п╣ 'xvinfo', я┤я┌п╬п╠я▀ п©я─п╬п╡п╣я─п╦я┌я▄ п©п╬п╢п╢п╣я─п╤п╨я┐ Xv п╦ п©я─п╬я┤я┌п╦я┌п╣ \n"\
-"[VO_XV] DOCS/HTML/ru/video.html#xv!\n"\
-"[VO_XV] п■я─я┐пЁп╦п╣ (п╫п╣-xv) п╢я─п╟п╧п╡п╣я─я▀ п╦я┴п╦я┌п╣ п╡ п╡я▀п╡п╬п╢п╣ 'mplayer -vo help'.\n"\
-"[VO_XV] п÷п╬п©я─п╬п╠я┐п╧я┌п╣ -vo x11.\n"
+// stream/stream_radio.c
+#define MSGTR_RADIO_ChannelNamesDetected "[radio] п·п╠п╫п╟я─я┐п╤п╣п╫я▀ п╦п╪п╣п╫п╟ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧.\n"
+#define MSGTR_RADIO_FreqRange "[radio] п■п╬п©я┐я│я┌п╦п╪я▀п╧ п╢п╦п╟п©п╟п╥п╬п╫ я┤п╟я│я┌п╬я┌: %.2f-%.2f п°п⌠я├.\n"
+#define MSGTR_RADIO_WrongFreqForChannel "[radio] п²п╣п╡п╣я─п╫п╟я▐ я┤п╟я│я┌п╬я┌п╟ п╢п╩я▐ я│я┌п╟п╫я├п╦п╦ %s\n"
+#define MSGTR_RADIO_WrongChannelNumberFloat "[radio] п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ я│я┌п╟п╫я├п╦п╦: %.2f\n"
+#define MSGTR_RADIO_WrongChannelNumberInt "[radio] п²п╣п╡п╣я─п╫я▀п╧ п╫п╬п╪п╣я─ я│я┌п╟п╫я├п╦п╦: %d\n"
+#define MSGTR_RADIO_WrongChannelName "[radio] п²п╣п╡п╣я─п╫п╬п╣ п╫п╟п╥п╡п╟п╫п╦п╣ я│я┌п╟п╫я├п╦п╦: %s\n"
+#define MSGTR_RADIO_FreqParameterDetected "[radio] п▓ п©п╟я─п╟п╪п╣я┌я─п╟я┘ п╬п╠п╫п╟я─я┐п╤п╣п╫п╟ я┤п╟я│я┌п╬я┌п╟.\n"
+#define MSGTR_RADIO_DoneParsingChannels "[radio] п═п╟п╥п╠п╬я─ п╦п╪п╣п╫ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧ п╥п╟п╡п╣я─я┬п╣п╫.\n"
+#define MSGTR_RADIO_GetTunerFailed "[radio] п÷я─п╣п╢я┐п©я─п╣п╤п╢п╣п╫п╦п╣: я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get tuner : %s. frac я┐я│я┌п╟п╫п╬п╡п╩п╣п╫ п╡ %d.\n"
+#define MSGTR_RADIO_NotRadioDevice "[radio] %s п╫п╣ я▐п╡п╩я▐п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪ я─п╟п╢п╦п╬!\n"
+#define MSGTR_RADIO_TunerCapLowYes "[radio] п╫п╦п╥п╨п╬я┤п╟я│я┌п╬я┌п╫я▀п╧ я┌я▌п╫п╣я─: п╢п╟ frac=%d\n"
+#define MSGTR_RADIO_TunerCapLowNo "[radio] п╫п╦п╥п╨п╬я┤п╟я│я┌п╬я┌п╫я▀п╧ я┌я▌п╫п╣я─: п╫п╣я┌ frac=%d\n"
+#define MSGTR_RADIO_SetFreqFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set frequency 0x%x (%.2f): %s\n"
+#define MSGTR_RADIO_GetFreqFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get frequency: %s\n"
+#define MSGTR_RADIO_SetMuteFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set mute: %s\n"
+#define MSGTR_RADIO_QueryControlFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl query control: %s\n"
+#define MSGTR_RADIO_GetVolumeFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl get volume: %s\n"
+#define MSGTR_RADIO_SetVolumeFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ ioctl set volume: %s\n"
+#define MSGTR_RADIO_DroppingFrame "\n[radio] п©п╬я┌п╣я─я▐п╫ п╟я┐п╢п╦п╬ я└я─п╣п╧п╪ (п╠п╟п╧я┌: %d)!\n"
+#define MSGTR_RADIO_BufferEmpty "[radio] grab_audio_frame: п╠я┐я└п╣я─ п©я┐я│я┌, п╬п╤п╦п╢п╟п╫п╦п╣ п╢п╟п╫п╫я▀я┘. п╠п╟п╧я┌: %d.\n"
+#define MSGTR_RADIO_AudioInitFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_init: %s\n"
+#define MSGTR_RADIO_AudioBuffer "[radio] п░я┐п╢п╦п╬ п╥п╟я┘п╡п╟я┌ - п╠я┐я└п╣я─=%d п╠п╟п╧я┌ (п╠п╩п╬п╨: %d п╠п╟п╧я┌).\n"
+#define MSGTR_RADIO_AllocateBufferFailed "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ я│п╬п╥п╢п╟я┌я▄ п╟я┐п╢п╦п╬ п╠я┐я└п╣я─ (п╠п╩п╬п╨=%d,я─п╟п╥п╪п╣я─=%d): %s\n"
+#define MSGTR_RADIO_CurrentFreq "[radio] п╒п╣п╨я┐я┴п╟я▐ я┤п╟я│я┌п╬я┌п╟: %.2f\n"
+#define MSGTR_RADIO_SelectedChannel "[radio] п▓я▀п╠я─п╟п╫п╟ я│я┌п╟п╫я├п╦я▐: %d - %s (я┤п╟я│я┌п╬я┌п╟: %.2f)\n"
+#define MSGTR_RADIO_ChangeChannelNoChannelList "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╦п╥п╪п╣п╫п╦я┌я▄ я│я┌п╟п╫я├п╦я▌: п╫п╣ п©п╣я─п╣п╢п╟п╫ я│п©п╦я│п╬п╨ я─п╟п╢п╦п╬я│я┌п╟п╫я├п╦п╧.\n"
+#define MSGTR_RADIO_UnableOpenDevice "[radio] п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╬я┌п╨я─я▀я┌я▄ '%s': %s\n"
+#define MSGTR_RADIO_RadioDevice "[radio] Radio fd: %d, %s\n"
+#define MSGTR_RADIO_InitFracFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ init_frac\n"
+#define MSGTR_RADIO_WrongFreq "[radio] п²п╣п╡п╣я─п╫п╟я▐ я┤п╟я│я┌п╬я┌п╟: %.2f\n"
+#define MSGTR_RADIO_UsingFreq "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я┤п╟я│я┌п╬я┌п╟: %.2f.\n"
+#define MSGTR_RADIO_AudioInInitFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_init\n"
+#define MSGTR_RADIO_BufferString "[radio] %s: п╡ п╠я┐я└п╣я─п╣: %d п©п╬я┌п╣я─я▐п╫п╬:%d\n"
+#define MSGTR_RADIO_AudioInSetupFailed "[radio] я│п╠п╬п╧ п╡я▀п╥п╬п╡п╟ audio_in_setup: %s\n"
+#define MSGTR_RADIO_CaptureStarting "[radio] п≈п╟п©я┐я│п╨ п╪п╬п╢я┐п╩я▐ п╥п╟я┘п╡п╟я┌п╟.\n"
+#define MSGTR_RADIO_ClearBufferFailed "[radio] п·я┬п╦п╠п╨п╟ п╬я┤п╦я│я┌п╨п╦ п╠я┐я└п╣я─п╟: %s\n"
+#define MSGTR_RADIO_StreamEnableCacheFailed "[radio] п·я┬п╦п╠п╨п╟ п╡я▀п╥п╬п╡п╟ stream_enable_cache: %s\n"
+#define MSGTR_RADIO_DriverUnknownStr "[radio] п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п╢я─п╟п╧п╡п╣я─: %s\n"
+#define MSGTR_RADIO_DriverV4L "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ V4Lv1 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
+#define MSGTR_RADIO_DriverV4L2 "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ V4Lv2 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
+#define MSGTR_RADIO_DriverBSDBT848 "[radio] п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ *BSD BT848 я─п╟п╢п╦п╬ п╦п╫я┌п╣я─я└п╣п╧я│.\n"
+#define MSGTR_RADIO_AvailableDrivers "[radio] п■п╬я│я┌я┐п©п╫я▀п╣ п╢я─п╟п╧п╡п╣я─я▀: "
//tv.c
#define MSGTR_TV_BogusNormParameter "tv.c: norm_from_string(%s): п²п╣п╦п╥п╡п╣я│я┌п╫я▀п╧ п©п╟я─п╟п╪п╣я┌я─ norm, я┐я│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌я│я▐ %s.\n"
@@ -2132,9 +2078,9 @@ static char help_text[]=
#define MSGTR_TVI_DS_UnableStartGraph "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╥п╟п©я┐я│я┌п╦я┌я▄ пЁя─п╟я└! п·я┬п╦п╠п╨п╟:0x%x\n"
#define MSGTR_TVI_DS_DeviceNotFound "tvi_dshow: пёя│я┌я─п╬п╧я│я┌п╡п╬ #%d п╫п╣ п╫п╟п╧п╢п╣п╫п╬\n"
#define MSGTR_TVI_DS_UnableGetDeviceName "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╩я┐я┤п╦я┌я▄ п╫п╟п╥п╡п╟п╫п╦п╣ я┐я│я┌я─п╬п╧я│я┌п╡п╟ #%d\n"
-#define MSGTR_TVI_DS_UsingDevice "tvi_dshow: п≤я│п©п╬п╩я▄п╥п╨п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬ #%d: %s\n"
+#define MSGTR_TVI_DS_UsingDevice "tvi_dshow: п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬ #%d: %s\n"
#define MSGTR_TVI_DS_DeviceName "tvi_dshow: пёя│я┌я─п╬п╧я│я┌п╡п╬ #%d: %s\n"
-#define MSGTR_TVI_DS_DirectGetFreqFailed "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╩я┐я┤п╦я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╫п╟п©я─я▐п╪я┐я▌. п▒я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╬п╡п╟я┌я▄я│я▐ я┌п╟п╠п╩п╦я├п╟ п╨п╟п╫п╟п╩п╬п╡ п·п║.\n"
+#define MSGTR_TVI_DS_DirectGetFreqFailed "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╩я┐я┤п╦я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╫п╟п©я─я▐п╪я┐я▌. п▒я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ я┌п╟п╠п╩п╦я├п╟ п╨п╟п╫п╟п╩п╬п╡ п·п║.\n"
#define MSGTR_TVI_DS_DirectSetFreqFailed "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ я┐я│я┌п╟п╫п╬п╡п╦я┌я▄ я┤п╟я│я┌п╬я┌я┐ п╫п╟п©я─я▐п╪я┐я▌. п▒я┐п╢п╣я┌ п╦я│п©п╬п╩я▄п╥п╬п╡п╟я┌я▄я│я▐ я┌п╟п╠п╩п╦я├п╟ п╨п╟п╫п╟п╩п╬п╡ п·п║.\n"
#define MSGTR_TVI_DS_SupportedNorms "tvi_dshow: п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣п╪я▀п╣ я│я┌п╟п╫п╢п╟я─я┌я▀:"
#define MSGTR_TVI_DS_AvailableVideoInputs "tvi_dshow: п╢п╬я│я┌я┐п©п╫я▀п╣ п╡п╦п╢п╣п╬ п╡я┘п╬п╢я▀:"
@@ -2147,7 +2093,7 @@ static char help_text[]=
#define MSGTR_TVI_DS_WrongADeviceParam "tvi_dshow: п²п╣п╡п╣я─п╫я▀п╧ п©п╟я─п╟п╪п╣я┌я─ adevice: %s\n"
#define MSGTR_TVI_DS_WrongADeviceIndex "tvi_dshow: п²п╣п╡п╣я─п╫я▀п╧ п╦п╫п╢п╣п╨я│ adevice: %d\n"
-#define MSGTR_TVI_DS_SamplerateNotsupported "tvi_dshow: п╖п╟я│я┌п╬я┌п╟ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦ %d п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪. пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌я│я▐ п©п╣я─п╡п╟я▐ п╢п╬я│я┌я┐п©пЁп╟я▐.\n"
+#define MSGTR_TVI_DS_SamplerateNotsupported "tvi_dshow: п╖п╟я│я┌п╬я┌п╟ п╢п╦я│п╨я─п╣я┌п╦п╥п╟я├п╦п╦ %d п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪. пёя│я┌п╟п╫п╟п╡п╩п╦п╡п╟п╣я┌я│я▐ п©п╣я─п╡п╟я▐ п╢п╬я│я┌я┐п©п╫п╟я▐.\n"
#define MSGTR_TVI_DS_VideoAdjustigNotSupported "tvi_dshow: п÷п╬п╢я│я┌я─п╬п╧п╨п╟ я▐я─п╨п╬я│я┌п╦/я├п╡п╣я┌п╫п╬я│я┌п╦/п╫п╟я│я▀я┴п╣п╫п╫п╬я│я┌п╦/п╨п╬п╫я┌я─п╟я│я┌п╟ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪\n"
#define MSGTR_TVI_DS_ChangingWidthHeightNotSupported "tvi_dshow: п≤п╥п╪п╣п╫п╣п╫п╦п╣ я┬п╦я─п╦п╫я▀/п╡я▀я│п╬я┌я▀ п╡п╦п╢п╣п╬ п╫п╣ п©п╬п╢п╢п╣я─п╤п╦п╡п╟п╣я┌я│я▐ я┐я│я┌я─п╬п╧я│я┌п╡п╬п╪.\n"
@@ -2170,3 +2116,6 @@ static char help_text[]=
#define MSGTR_TVI_DS_NoAudioCaptureDevice "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п╫п╟п╧я┌п╦ я┐я│я┌я─п╬п╧я│я┌п╡п╬ п╥п╟я┘п╡п╟я┌п╟ п╟я┐п╢п╦п╬\n"
#define MSGTR_TVI_DS_GetActualMediatypeFailed "tvi_dshow: п²п╣п╡п╬п╥п╪п╬п╤п╫п╬ п©п╬п╩я┐я┤п╦я┌я▄ я┌п╣п╨я┐я┴п╦п╧ п╪п╣п╢п╦п╟ я└п╬я─п╪п╟я┌ (п·я┬п╦п╠п╨п╟:0x%x). п÷я─п╣п╢п©п╬п╩п╟пЁп╟п╣я┌я│я▐ я│п╬п╡п©п╟п╢п╟я▌я┴п╦п╧ я│ п╥п╟п©я─п╬я┬п╣п╫п╫я▀п╪.\n"
+// url.c
+#define MSGTR_MPDEMUX_URL_StringAlreadyEscaped "п÷п╬я┘п╬п╤п╣, я┤я┌п╬ я│я┌я─п╬п╨п╟ я┐п╤п╣ п©я─п╬п©я┐я┴п╣п╫п╟ п╡ url_escape %c%c1%c2\n"
+
diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c
index a1371aa5f1..f75a4d6da6 100644
--- a/libmpdemux/demux_audio.c
+++ b/libmpdemux/demux_audio.c
@@ -605,7 +605,7 @@ static void high_res_mp3_seek(demuxer_t *demuxer,float time) {
static void demux_audio_seek(demuxer_t *demuxer,float rel_seek_secs,float audio_delay,int flags){
sh_audio_t* sh_audio;
stream_t* s;
- int base,pos;
+ int64_t base,pos;
float len;
da_priv_t* priv;
diff --git a/libswscale/swscale_template.c b/libswscale/swscale_template.c
index 5754c10871..4c8bc6e066 100644
--- a/libswscale/swscale_template.c
+++ b/libswscale/swscale_template.c
@@ -1826,11 +1826,12 @@ static inline void RENAME(rgb24ToY)(uint8_t *dst, uint8_t *src, long width, uint
static inline void RENAME(rgb24ToUV)(uint8_t *dstU, uint8_t *dstV, uint8_t *src1, uint8_t *src2, long width, uint32_t *unused)
{
- int i;
- assert(src1==src2);
#ifdef HAVE_MMX
+ assert(src1==src2);
RENAME(bgr24ToUV_mmx)(dstU, dstV, src1, width, PIX_FMT_RGB24);
#else
+ int i;
+ assert(src1==src2);
for (i=0; i<width; i++)
{
int r= src1[3*i + 0];
diff --git a/libvo/gl_common.c b/libvo/gl_common.c
index 65592932e6..cd75bdb706 100644
--- a/libvo/gl_common.c
+++ b/libvo/gl_common.c
@@ -1608,13 +1608,7 @@ int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win)
// set new values
vo_window = win;
- {
- Window root;
- int tmp;
- unsigned utmp;
- XGetGeometry(mDisplay, vo_window, &root, &tmp, &tmp,
- (unsigned *)&vo_dwidth, (unsigned *)&vo_dheight, &utmp, &utmp);
- }
+ vo_x11_update_geometry();
if (!keep_context) {
void *(*getProcAddress)(const GLubyte *);
const char *(*glXExtStr)(Display *, int);
diff --git a/libvo/vo_dxr3.c b/libvo/vo_dxr3.c
index 69038ae0eb..3fa0ed9c6d 100644
--- a/libvo/vo_dxr3.c
+++ b/libvo/vo_dxr3.c
@@ -540,9 +540,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_
overlay_set_mode(overlay_data, EM8300_OVERLAY_MODE_OVERLAY);
overlay_set_mode(overlay_data, EM8300_OVERLAY_MODE_RECTANGLE);
}
-
- if (vo_ontop) vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
#endif
return 0;
diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c
index dedbac75cc..cfd908b615 100644
--- a/libvo/vo_gl.c
+++ b/libvo/vo_gl.c
@@ -170,6 +170,7 @@ static void texSize(int w, int h, int *texw, int *texh) {
while (*texh < h)
*texh *= 2;
}
+ if (ati_hack) *texw = (*texw + 511) & ~511;
}
//! maximum size of custom fragment program
@@ -689,12 +690,8 @@ static uint32_t get_image(mp_image_t *mpi) {
}
if (mpi->flags & MP_IMGFLAG_READABLE) return VO_FALSE;
if (ati_hack) {
- int s = 1;
- // for unexplainable reasons, with width < 512 chroma tends to be messed up
- // (after ca. 2/3 the previous line repeats all over)
- if (mpi->width < 512) return VO_FALSE;
- while (s < mpi->width) s *= 2;
- mpi->width = s;
+ mpi->width = texture_width;
+ mpi->height = texture_height;
}
if (!gl_buffer)
GenBuffers(1, &gl_buffer);
@@ -734,6 +731,8 @@ static uint32_t draw_image(mp_image_t *mpi) {
int stride[3];
unsigned char *planes[3];
mp_image_t mpi2 = *mpi;
+ int w = mpi->w, h = mpi->h;
+ if (ati_hack) { w = texture_width; h = texture_height; }
if (mpi->flags & MP_IMGFLAG_DRAW_CALLBACK)
goto skip_upload;
mpi2.flags = 0; mpi2.type = MP_IMGTYPE_TEMP;
@@ -763,14 +762,14 @@ static uint32_t draw_image(mp_image_t *mpi) {
slice = 0; // always "upload" full texture
}
glUploadTex(gl_target, gl_format, gl_type, planes[0], stride[0],
- mpi->x, mpi->y, mpi->w, mpi->h, slice);
+ mpi->x, mpi->y, w, h, slice);
if (mpi->imgfmt == IMGFMT_YV12) {
ActiveTexture(GL_TEXTURE1);
glUploadTex(gl_target, gl_format, gl_type, planes[1], stride[1],
- mpi->x / 2, mpi->y / 2, mpi->w / 2, mpi->h / 2, slice);
+ mpi->x / 2, mpi->y / 2, w / 2, h / 2, slice);
ActiveTexture(GL_TEXTURE2);
glUploadTex(gl_target, gl_format, gl_type, planes[2], stride[2],
- mpi->x / 2, mpi->y / 2, mpi->w / 2, mpi->h / 2, slice);
+ mpi->x / 2, mpi->y / 2, w / 2, h / 2, slice);
ActiveTexture(GL_TEXTURE0);
}
if (mpi->flags & MP_IMGFLAG_DIRECT)
diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c
index b2c7e49d25..d957337540 100644
--- a/libvo/vo_gl2.c
+++ b/libvo/vo_gl2.c
@@ -670,9 +670,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
if (initGl(vo_dwidth, vo_dheight) == -1)
return -1;
-#ifndef GL_WIN32
- if (vo_ontop) vo_x11_setlayer(mDisplay,vo_window, vo_ontop);
-#endif
return 0;
}
diff --git a/libvo/vo_png.c b/libvo/vo_png.c
index 3c5f109aa2..ac0e99587e 100644
--- a/libvo/vo_png.c
+++ b/libvo/vo_png.c
@@ -191,8 +191,8 @@ static int
query_format(uint32_t format)
{
switch(format){
- case IMGFMT_RGB|24:
- case IMGFMT_BGR|24:
+ case IMGFMT_RGB24:
+ case IMGFMT_BGR24:
return VFCAP_CSP_SUPPORTED|VFCAP_CSP_SUPPORTED_BY_HW|VFCAP_ACCEPT_STRIDE;
}
return 0;
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 18861e1266..3c8d672734 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -304,7 +304,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
{
// int screen;
int fullscreen = 0;
- int vm = 0;
// int interval, prefer_blank, allow_exp, nothing;
unsigned int fg, bg;
@@ -315,15 +314,14 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
const struct fmt2Xfmtentry_s *fmte = fmt2Xfmt;
#ifdef CONFIG_XF86VM
- unsigned int modeline_width, modeline_height;
- static uint32_t vm_width;
- static uint32_t vm_height;
+ int vm = 0;
#endif
vo_mouse_autohide = 1;
old_vo_dwidth = -1;
old_vo_dheight = -1;
+ int_pause = 0;
if (!title)
title = "MPlayer X11 (XImage/Shm) render";
@@ -333,13 +331,14 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
if (flags & (VOFLAG_FULLSCREEN|VOFLAG_MODESWITCHING))
fullscreen = 1;
+#ifdef CONFIG_XF86VM
if (flags & VOFLAG_MODESWITCHING)
vm = 1;
+#endif
if (flags & VOFLAG_FLIPPING)
Flip_Flag = 1;
zoomFlag = flags & VOFLAG_SWSCALE;
- int_pause = 0;
// if(!fullscreen) zoomFlag=1; //it makes no sense to avoid zooming on windowd mode
//printf( "w: %d h: %d\n\n",vo_dwidth,vo_dheight );
@@ -375,21 +374,7 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
#ifdef CONFIG_XF86VM
if (vm)
{
- if ((d_width == 0) && (d_height == 0))
- {
- vm_width = image_width;
- vm_height = image_height;
- } else
- {
- vm_width = d_width;
- vm_height = d_height;
- }
- vo_vm_switch(vm_width, vm_height, &modeline_width,
- &modeline_height);
- vo_dx = (vo_screenwidth - modeline_width) / 2;
- vo_dy = (vo_screenheight - modeline_height) / 2;
- vo_dwidth = modeline_width;
- vo_dheight = modeline_height;
+ vo_vm_switch();
}
#endif
bg = WhitePixel(mDisplay, mScreen);
@@ -415,7 +400,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
vo_window = WinID ? ((Window) WinID) : mRootWin;
if (WinID)
{
- int border;
XUnmapWindow(mDisplay, vo_window);
XChangeWindowAttributes(mDisplay, vo_window, xswamask,
&xswa);
@@ -428,27 +412,20 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
ButtonReleaseMask |
ExposureMask);
XMapWindow(mDisplay, vo_window);
- XGetGeometry(mDisplay, vo_window, &mRootWin,
- &vo_dx, &vo_dy, &vo_dwidth, &vo_dheight,
- &border, &depth);
+ depth = vo_x11_update_geometry();
} else
XSelectInput(mDisplay, vo_window, ExposureMask);
} else
{
- vo_x11_create_vo_window(&vinfo, vo_dx, vo_dy, d_width, d_height,
+ vo_x11_create_vo_window(&vinfo, vo_dx, vo_dy, vo_dwidth, vo_dheight,
flags, theCmap, "x11", title);
}
+ if (vo_gc != None)
+ XFreeGC(mDisplay, vo_gc);
+ vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
XSync(mDisplay, False);
- vo_x11_selectinput_witherr(mDisplay, vo_window,
- StructureNotifyMask | KeyPressMask |
- PropertyChangeMask | ExposureMask |
- ((WinID ==
- 0) ? 0 : (ButtonPressMask |
- ButtonReleaseMask |
- PointerMotionMask)));
-
#ifdef CONFIG_XF86VM
if (vm)
{
@@ -462,10 +439,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
#endif
}
- if (vo_gc != None)
- XFreeGC(mDisplay, vo_gc);
- vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
-
if (myximage)
{
freeMyXImage();
@@ -473,12 +446,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
}
getMyXImage();
- if (!WinID)
- {
- vo_dwidth = vo_screenwidth;
- vo_dheight = vo_screenheight;
- }
-
while (fmte->mpfmt) {
int depth = IMGFMT_RGB_DEPTH(fmte->mpfmt);
/* bits_per_pixel in X seems to be set to 16 for 15 bit formats
@@ -540,30 +507,31 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
dst_width = width;
//printf( "X11 bpp: %d color mask: R:%lX G:%lX B:%lX\n",bpp,myximage->red_mask,myximage->green_mask,myximage->blue_mask );
- if (vo_ontop)
- vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
return 0;
}
static void Display_Image(XImage * myximage, uint8_t * ImageData)
{
+ int x = (vo_dwidth - dst_width) / 2;
+ int y = (vo_dheight - myximage->height) / 2;
+ if (WinID == 0) {
+ x = vo_dx;
+ y = vo_dy;
+ }
myximage->data += out_offset;
#ifdef HAVE_SHM
if (Shmem_Flag)
{
XShmPutImage(mDisplay, vo_window, vo_gc, myximage,
0, 0,
- (vo_dwidth - dst_width) / 2,
- (vo_dheight - myximage->height) / 2, dst_width,
+ x, y, dst_width,
myximage->height, True);
} else
#endif
{
XPutImage(mDisplay, vo_window, vo_gc, myximage,
0, 0,
- (vo_dwidth - dst_width) / 2,
- (vo_dheight - myximage->height) / 2, dst_width,
+ x, y, dst_width,
myximage->height);
}
myximage->data -= out_offset;
@@ -637,27 +605,7 @@ static int draw_slice(uint8_t * src[], int stride[], int w, int h,
static int draw_frame(uint8_t * src[])
{
-#if 0
- int stride[3] = { 0, 0, 0 };
-
- if (in_format == IMGFMT_YUY2)
- stride[0] = srcW * 2;
- else if (in_format == IMGFMT_BGR8)
- stride[0] = srcW;
- else if (in_format == IMGFMT_BGR15)
- stride[0] = srcW * 2;
- else if (in_format == IMGFMT_BGR16)
- stride[0] = srcW * 2;
- else if (in_format == IMGFMT_BGR24)
- stride[0] = srcW * 3;
- else if (in_format == IMGFMT_BGR32)
- stride[0] = srcW * 4;
-
- return draw_slice(src, stride, srcW, srcH, 0, 0);
-#else
- mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_X11_DrawFrameCalled);
- return -1;
-#endif
+ return VO_ERROR;
}
static uint32_t get_image(mp_image_t * mpi)
@@ -729,7 +677,7 @@ static void uninit(void)
freeMyXImage();
#ifdef CONFIG_XF86VM
- vo_vm_close(mDisplay);
+ vo_vm_close();
#endif
zoomFlag = 0;
@@ -761,10 +709,14 @@ static int control(uint32_t request, void *data)
return int_pause = 0;
case VOCTRL_QUERY_FORMAT:
return query_format(*((uint32_t *) data));
- case VOCTRL_GUISUPPORT:
- return VO_TRUE;
case VOCTRL_GET_IMAGE:
return get_image(data);
+ case VOCTRL_GUISUPPORT:
+ return VO_TRUE;
+ case VOCTRL_FULLSCREEN:
+ vo_x11_fullscreen();
+ vo_x11_clearwindow(mDisplay, vo_window);
+ return VO_TRUE;
case VOCTRL_SET_EQUALIZER:
{
struct voctrl_set_equalizer_args *args = data;
@@ -778,12 +730,6 @@ static int control(uint32_t request, void *data)
case VOCTRL_ONTOP:
vo_x11_ontop();
return VO_TRUE;
- case VOCTRL_FULLSCREEN:
- {
- vo_x11_fullscreen();
- vo_x11_clearwindow(mDisplay, vo_window);
- }
- return VO_TRUE;
case VOCTRL_UPDATE_SCREENINFO:
update_xinerama_info();
return VO_TRUE;
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index 0a91b57415..96d400866b 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -248,9 +248,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
set_window(); // set up mga_vid_config.dest_width etc
- if (vo_ontop)
- vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
XSync(mDisplay, False);
ioctl(f, MGA_VID_ON, 0);
diff --git a/libvo/vo_xover.c b/libvo/vo_xover.c
index 38a3a585e6..3feb5d8da7 100644
--- a/libvo/vo_xover.c
+++ b/libvo/vo_xover.c
@@ -188,8 +188,6 @@ static void set_window(int force_update)
XFillRectangle(mDisplay, vo_window, vo_gc, drwX, drwY, drwWidth,
(vo_fs ? drwHeight - 1 : drwHeight));
- if (vo_ontop) vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
/* flush, update drawable */
XFlush(mDisplay);
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 6dfd8a8cf4..51afa2a693 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -181,7 +181,6 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
{
struct MPOpts *opts = vo->opts;
struct vo_x11_state *x11 = vo->x11;
- XSizeHints hint;
XVisualInfo vinfo;
XGCValues xgcv;
XSetWindowAttributes xswa;
@@ -223,44 +222,18 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
#ifdef CONFIG_GUI
if (use_gui)
- guiGetEvent(guiSetShVideo, 0); // let the GUI to setup/resize our window
+ guiGetEvent(guiSetShVideo, 0); // the GUI will set up / resize the window
else
#endif
{
- hint.x = vo->dx;
- hint.y = vo->dy;
- hint.width = d_width;
- hint.height = d_height;
#ifdef CONFIG_XF86VM
- unsigned int modeline_width, modeline_height;
- uint32_t vm_width;
- uint32_t vm_height;
int vm = flags & VOFLAG_MODESWITCHING;
if (vm)
{
- if ((d_width == 0) && (d_height == 0))
- {
- vm_width = ctx->image_width;
- vm_height = ctx->image_height;
- } else
- {
- vm_width = d_width;
- vm_height = d_height;
- }
- vo_vm_switch(vo, vm_width, vm_height, &modeline_width,
- &modeline_height);
+ vo_vm_switch(vo);
ctx->mode_switched = 1;
- hint.x = (opts->vo_screenwidth - modeline_width) / 2;
- hint.y = (opts->vo_screenheight - modeline_height) / 2;
- hint.width = modeline_width;
- hint.height = modeline_height;
- aspect_save_screenres(vo, modeline_width, modeline_height);
- } else
-#warning This "else" makes no sense
+ }
#endif
- hint.flags = PPosition | PSize /* | PBaseSize */ ;
- hint.base_width = hint.width;
- hint.base_height = hint.height;
XGetWindowAttributes(x11->display, DefaultRootWindow(x11->display),
&attribs);
depth = attribs.depth;
@@ -293,18 +266,13 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
ButtonReleaseMask |
ExposureMask);
XMapWindow(x11->display, x11->window);
- Window mRoot;
- uint32_t drwBorderWidth, drwDepth;
- XGetGeometry(x11->display, x11->window, &mRoot,
- &ctx->drwX, &ctx->drwY, &vo->dwidth, &vo->dheight,
- &drwBorderWidth, &drwDepth);
- if (vo->dwidth <= 0) vo->dwidth = d_width;
- if (vo->dheight <= 0) vo->dheight = d_height;
+ vo_x11_update_geometry(vo);
aspect_save_prescale(vo, vo->dwidth, vo->dheight);
- }
+ } else
+ XSelectInput(x11->display, x11->window, ExposureMask);
} else
{
- vo_x11_create_vo_window(vo, &vinfo, vo->dx, vo->dy, d_width, d_height,
+ vo_x11_create_vo_window(vo, &vinfo, vo->dx, vo->dy, vo->dwidth, vo->dheight,
flags, CopyFromParent, "xv", title);
XChangeWindowAttributes(x11->display, x11->window, xswamask, &xswa);
}
@@ -360,10 +328,6 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
ctx->current_buf = 0;
ctx->current_ip_buf = 0;
-#if 0
- set_gamma_correction();
-#endif
-
aspect(vo, &vo->dwidth, &vo->dheight, A_NOZOOM);
if ((flags & VOFLAG_FULLSCREEN) && WinID <= 0) vo_fs = 1;
calc_drwXY(vo, &ctx->drwX, &ctx->drwY);
@@ -378,9 +342,6 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
mp_msg(MSGT_VO, MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n", ctx->drwX,
ctx->drwY, vo->dwidth, vo->dheight);
- if (opts->vo_ontop)
- vo_x11_setlayer(vo, x11->window, opts->vo_ontop);
-
return 0;
}
@@ -480,16 +441,7 @@ static void check_events(struct vo *vo)
int e = vo_x11_check_events(vo);
if (e & VO_EVENT_RESIZE)
- {
- Window mRoot;
- uint32_t drwBorderWidth, drwDepth;
- XGetGeometry(x11->display, x11->window, &mRoot, &ctx->drwX, &ctx->drwY,
- &vo->dwidth, &vo->dheight, &drwBorderWidth, &drwDepth);
- mp_msg(MSGT_VO, MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n", ctx->drwX,
- ctx->drwY, vo->dwidth, vo->dheight);
-
calc_drwXY(vo, &ctx->drwX, &ctx->drwY);
- }
if (e & VO_EVENT_EXPOSE || e & VO_EVENT_RESIZE)
{
@@ -577,8 +529,7 @@ static int draw_slice(struct vo *vo, uint8_t * image[], int stride[], int w,
static int draw_frame(struct vo *vo, uint8_t * src[])
{
- mp_msg(MSGT_VO,MSGL_INFO, MSGTR_LIBVO_XV_DrawFrameCalled);
- return -1;
+ return VO_ERROR;
}
static uint32_t draw_image(struct vo *vo, mp_image_t * mpi)
diff --git a/libvo/vo_xvidix.c b/libvo/vo_xvidix.c
index 04c8bea4b7..27c9eb0bce 100644
--- a/libvo/vo_xvidix.c
+++ b/libvo/vo_xvidix.c
@@ -340,9 +340,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
panscan_calc();
- if (vo_ontop)
- vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
return 0;
}
diff --git a/libvo/vo_xvmc.c b/libvo/vo_xvmc.c
index dbf5483434..4eba5b2fcb 100644
--- a/libvo/vo_xvmc.c
+++ b/libvo/vo_xvmc.c
@@ -454,7 +454,6 @@ int i,mode_id,rez;
int numblocks,blocks_per_macroblock;//bpmb we have 6,8,12
//from vo_xv
-XSizeHints hint;
XVisualInfo vinfo;
XGCValues xgcv;
XSetWindowAttributes xswa;
@@ -463,9 +462,6 @@ unsigned long xswamask;
int depth;
#ifdef CONFIG_XF86VM
int vm=0;
-unsigned int modeline_width, modeline_height;
-static uint32_t vm_width;
-static uint32_t vm_height;
#endif
//end of vo_xv
@@ -649,28 +645,13 @@ skip_surface_allocation:
else
#endif
{
- hint.x = vo_dx;
- hint.y = vo_dy;
- hint.width = d_width;
- hint.height = d_height;
#ifdef CONFIG_XF86VM
if ( vm )
{
- if ((d_width==0) && (d_height==0))
- { vm_width=image_width; vm_height=image_height; }
- else
- { vm_width=d_width; vm_height=d_height; }
- vo_vm_switch(vm_width, vm_height,&modeline_width, &modeline_height);
- hint.x=(vo_screenwidth-modeline_width)/2;
- hint.y=(vo_screenheight-modeline_height)/2;
- hint.width=modeline_width;
- hint.height=modeline_height;
- aspect_save_screenres(modeline_width,modeline_height);
+ vo_vm_switch();
}
else
#endif
- hint.flags = PPosition | PSize /* | PBaseSize */;
- hint.base_width = hint.width; hint.base_height = hint.height;
XGetWindowAttributes(mDisplay, DefaultRootWindow(mDisplay), &attribs);
depth=attribs.depth;
if (depth != 15 && depth != 16 && depth != 24 && depth != 32) depth = 24;
@@ -726,8 +707,6 @@ skip_surface_allocation:
mp_msg(MSGT_VO,MSGL_V, "[xvmc] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight );
- if (vo_ontop) vo_x11_setlayer(mDisplay, vo_window, vo_ontop);
-
//end vo_xv
/* store image dimesions for displaying */
@@ -1085,11 +1064,6 @@ int e=vo_x11_check_events(mDisplay);
{
e |= VO_EVENT_EXPOSE;
- XGetGeometry( mDisplay,vo_window,&mRoot,&drwX,&drwY,&vo_dwidth,&vo_dheight,
- &drwBorderWidth,&drwDepth );
- mp_msg(MSGT_VO,MSGL_V, "[xvmc] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,
- vo_dwidth,vo_dheight );
-
calc_drwXY(&drwX, &drwY);
}
if ( e & VO_EVENT_EXPOSE )
@@ -1152,7 +1126,7 @@ static void uninit(void){
xvmc_free();
//from vo_xv
#ifdef CONFIG_XF86VM
- vo_vm_close(mDisplay);
+ vo_vm_close();
#endif
vo_x11_uninit();
}
diff --git a/libvo/w32_common.c b/libvo/w32_common.c
index 1346f50a7f..ff5312af6a 100644
--- a/libvo/w32_common.c
+++ b/libvo/w32_common.c
@@ -46,8 +46,6 @@ static BOOL (WINAPI* myEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARA
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
RECT r;
POINT p;
- if (WinID < 0 || message == WM_PAINT || message == WM_ERASEBKGND ||
- message == WM_SIZE) {
switch (message) {
case WM_ERASEBKGND: // no need to erase background seperately
return 1;
@@ -150,19 +148,6 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l
break;
}
}
- } else switch (message) {
- case WM_MOUSEMOVE:
- case WM_LBUTTONDOWN:
- case WM_LBUTTONUP:
- case WM_LBUTTONDBLCLK:
- case WM_MBUTTONDOWN:
- case WM_MBUTTONUP:
- case WM_MBUTTONDBLCLK:
- case WM_RBUTTONDOWN:
- case WM_RBUTTONUP:
- case WM_RBUTTONDBLCLK:
- SendNotifyMessage(WinID, message, wParam, lParam);
- }
return DefWindowProc(hWnd, message, wParam, lParam);
}
@@ -397,6 +382,7 @@ int vo_w32_init(void) {
vo_window = CreateWindowEx(WS_EX_NOPARENTNOTIFY, classname, classname,
WS_CHILD | WS_VISIBLE,
0, 0, vo_dwidth, vo_dheight, WinID, 0, hInstance, 0);
+ EnableWindow(vo_window, 0);
} else
vo_window = CreateWindowEx(0, classname, classname,
vo_border ? (WS_OVERLAPPEDWINDOW | WS_SIZEBOX) : WS_POPUP,
diff --git a/libvo/x11_common.c b/libvo/x11_common.c
index 674f5d3af9..5557704c6c 100644
--- a/libvo/x11_common.c
+++ b/libvo/x11_common.c
@@ -3,6 +3,7 @@
#include <stdlib.h>
#include <math.h>
#include <inttypes.h>
+#include <limits.h>
#include "config.h"
#include "options.h"
@@ -1008,25 +1009,7 @@ int vo_x11_check_events(struct vo *vo)
// if (vo_fs && Event.xconfigure.width != opts->vo_screenwidth && Event.xconfigure.height != opts->vo_screenheight) break;
if (x11->window == None)
break;
- vo->dwidth = Event.xconfigure.width;
- vo->dheight = Event.xconfigure.height;
-#if 0
- /* when resizing, x and y are zero :( */
- vo->dx = Event.xconfigure.x;
- vo->dy = Event.xconfigure.y;
-#else
- {
- Window root;
- int foo;
- Window win;
-
- XGetGeometry(display, x11->window, &root, &foo, &foo,
- &foo /*width */ , &foo /*height */ , &foo,
- &foo);
- XTranslateCoordinates(display, x11->window, root, 0, 0,
- &vo->dx, &vo->dy, &win);
- }
-#endif
+ vo_x11_update_geometry(vo);
ret |= VO_EVENT_RESIZE;
break;
case KeyPress:
@@ -1479,6 +1462,27 @@ static int vo_x11_get_fs_type(int supported)
return type;
}
+/**
+ * \brief update vo->dx, vo->dy, vo->dwidth and vo->dheight with current values of vo->x11->window
+ * \return returns current color depth of vo->x11->window
+ */
+int vo_x11_update_geometry(struct vo *vo)
+{
+ struct vo_x11_state *x11 = vo->x11;
+ unsigned depth, w, h;
+ int dummy_int;
+ Window dummy_win;
+ XGetGeometry(x11->display, x11->window, &dummy_win, &dummy_int, &dummy_int,
+ &w, &h, &dummy_int, &depth);
+ if (w <= INT_MAX && h <= INT_MAX) {
+ vo->dwidth = w;
+ vo->dheight = h;
+ }
+ XTranslateCoordinates(x11->display, x11->window, x11->rootwin, 0, 0,
+ &vo->dx, &vo->dy, &dummy_win);
+ return depth <= INT_MAX ? depth : 0;
+}
+
void vo_x11_fullscreen(struct vo *vo)
{
struct MPOpts *opts = vo->opts;
@@ -1731,8 +1735,7 @@ void vo_x11_selectinput_witherr(Display * display, Window w,
}
#ifdef CONFIG_XF86VM
-void vo_vm_switch(struct vo *vo, uint32_t X, uint32_t Y, int *modeline_width,
- int *modeline_height)
+void vo_vm_switch(struct vo *vo)
{
struct vo_x11_state *x11 = vo->x11;
struct MPOpts *opts = vo->opts;
@@ -1740,6 +1743,8 @@ void vo_vm_switch(struct vo *vo, uint32_t X, uint32_t Y, int *modeline_width,
int vm_event, vm_error;
int vm_ver, vm_rev;
int i, j, have_vm = 0;
+ int X = vo->dwidth, Y = vo->dheight;
+ int modeline_width, modeline_height;
int modecount;
@@ -1749,9 +1754,10 @@ void vo_vm_switch(struct vo *vo, uint32_t X, uint32_t Y, int *modeline_width,
mp_msg(MSGT_VO, MSGL_V, "XF86VidMode extension v%i.%i\n", vm_ver,
vm_rev);
have_vm = 1;
- } else
+ } else {
mp_msg(MSGT_VO, MSGL_WARN,
"XF86VidMode extension not available.\n");
+ }
if (have_vm)
{
@@ -1759,28 +1765,35 @@ void vo_vm_switch(struct vo *vo, uint32_t X, uint32_t Y, int *modeline_width,
XF86VidModeGetAllModeLines(mDisplay, x11->screen, &modecount,
&vidmodes);
j = 0;
- *modeline_width = vidmodes[0]->hdisplay;
- *modeline_height = vidmodes[0]->vdisplay;
+ modeline_width = vidmodes[0]->hdisplay;
+ modeline_height = vidmodes[0]->vdisplay;
for (i = 1; i < modecount; i++)
if ((vidmodes[i]->hdisplay >= X)
&& (vidmodes[i]->vdisplay >= Y))
- if ((vidmodes[i]->hdisplay <= *modeline_width)
- && (vidmodes[i]->vdisplay <= *modeline_height))
+ if ((vidmodes[i]->hdisplay <= modeline_width)
+ && (vidmodes[i]->vdisplay <= modeline_height))
{
- *modeline_width = vidmodes[i]->hdisplay;
- *modeline_height = vidmodes[i]->vdisplay;
+ modeline_width = vidmodes[i]->hdisplay;
+ modeline_height = vidmodes[i]->vdisplay;
j = i;
}
mp_msg(MSGT_VO, MSGL_INFO, MSGTR_SelectedVideoMode,
- *modeline_width, *modeline_height, X, Y);
+ modeline_width, modeline_height, X, Y);
XF86VidModeLockModeSwitch(mDisplay, x11->screen, 0);
XF86VidModeSwitchToMode(mDisplay, x11->screen, vidmodes[j]);
XF86VidModeSwitchToMode(mDisplay, x11->screen, vidmodes[j]);
- X = (opts->vo_screenwidth - *modeline_width) / 2;
- Y = (opts->vo_screenheight - *modeline_height) / 2;
+
+ // FIXME: all this is more of a hack than proper solution
+ X = (opts->vo_screenwidth - modeline_width) / 2;
+ Y = (opts->vo_screenheight - modeline_height) / 2;
XF86VidModeSetViewPort(mDisplay, x11->screen, X, Y);
+ vo->dx = X;
+ vo->dy = Y;
+ vo->dwidth = modeline_width;
+ vo->dheight = modeline_height;
+ aspect_save_screenres(vo, modeline_width, modeline_height);
}
}
@@ -1795,9 +1808,6 @@ void vo_vm_close(struct vo *vo)
#endif
{
int i, modecount;
- int screen;
-
- screen = DefaultScreen(dpy);
free(vidmodes);
vidmodes = NULL;
@@ -1813,8 +1823,8 @@ void vo_vm_close(struct vo *vo)
break;
}
- XF86VidModeSwitchToMode(dpy, screen, vidmodes[i]);
- XF86VidModeSwitchToMode(dpy, screen, vidmodes[i]);
+ XF86VidModeSwitchToMode(dpy, vo->x11->screen, vidmodes[i]);
+ XF86VidModeSwitchToMode(dpy, vo->x11->screen, vidmodes[i]);
free(vidmodes);
vidmodes = NULL;
}
diff --git a/libvo/x11_common.h b/libvo/x11_common.h
index 70f1231a7d..e145c5b5a0 100644
--- a/libvo/x11_common.h
+++ b/libvo/x11_common.h
@@ -94,18 +94,19 @@ extern int mLocalDisplay;
struct vo_x11_state *vo_x11_init_state(void);
int vo_init(struct vo *vo);
void vo_uninit(struct vo_x11_state *x11);
-extern void vo_x11_decoration(struct vo *vo, int d );
+void vo_x11_decoration(struct vo *vo, int d );
void vo_x11_classhint(struct vo *vo, Window window, char *name);
void vo_x11_sizehint(struct vo *vo, int x, int y, int width, int height, int max);
int vo_x11_check_events(struct vo *vo);
-extern void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask);
+void vo_x11_selectinput_witherr(Display *display, Window w, long event_mask);
void vo_x11_fullscreen(struct vo *vo);
+int vo_x11_update_geometry(struct vo *vo);
void vo_x11_setlayer(struct vo *vo, Window vo_window, int layer);
void vo_x11_uninit(struct vo *vo);
Colormap vo_x11_create_colormap(struct vo *vo, XVisualInfo *vinfo);
uint32_t vo_x11_set_equalizer(struct vo *vo, char *name, int value);
-extern uint32_t vo_x11_get_equalizer(char *name, int *value);
-extern void fstype_help(void);
+uint32_t vo_x11_get_equalizer(char *name, int *value);
+void fstype_help(void);
void vo_x11_create_vo_window(struct vo *vo, XVisualInfo *vis,
int x, int y, unsigned int width, unsigned int height, int flags,
Colormap col_map, const char *classname, const char *title);
@@ -113,7 +114,7 @@ void vo_x11_clearwindow_part(struct vo *vo, Window vo_window,
int img_width, int img_height, int use_fs);
void vo_x11_clearwindow(struct vo *vo, Window vo_window);
void vo_x11_ontop(struct vo *vo);
-extern void vo_x11_border(struct vo *vo);
+void vo_x11_border(struct vo *vo);
void vo_x11_ewmh_fullscreen(struct vo_x11_state *x11, int action);
#endif
@@ -146,7 +147,7 @@ int xv_test_ckm( void * arg );
void vo_x11_putkey(struct vo *vo, int key);
#ifdef CONFIG_XF86VM
-void vo_vm_switch(struct vo *vo, uint32_t, uint32_t, int*, int*);
+void vo_vm_switch(struct vo *vo);
void vo_vm_close(struct vo *vo);
#endif
@@ -161,6 +162,7 @@ void xscreensaver_heartbeat(struct vo_x11_state *x11);
#ifdef IS_OLD_VO
#define vo_x11_create_vo_window(...) vo_x11_create_vo_window(global_vo, __VA_ARGS__)
#define vo_x11_fullscreen() vo_x11_fullscreen(global_vo)
+#define vo_x11_update_geometry() vo_x11_update_geometry(global_vo)
#define vo_x11_ontop() vo_x11_ontop(global_vo)
#define vo_init() vo_init(global_vo)
#define vo_x11_ewmh_fullscreen(action) vo_x11_ewmh_fullscreen(global_vo->x11->display, action)
@@ -168,7 +170,7 @@ void xscreensaver_heartbeat(struct vo_x11_state *x11);
#define vo_x11_uninit() vo_x11_uninit(global_vo)
#define vo_x11_check_events(display) vo_x11_check_events(global_vo)
#define vo_x11_sizehint(...) vo_x11_sizehint(global_vo, __VA_ARGS__)
-#define vo_vm_switch(...) vo_vm_switch(global_vo, __VA_ARGS__)
+#define vo_vm_switch() vo_vm_switch(global_vo)
#define vo_x11_create_colormap(vinfo) vo_x11_create_colormap(global_vo, vinfo)
#define vo_x11_set_equalizer(...) vo_x11_set_equalizer(global_vo, __VA_ARGS__)
#define vo_xv_set_eq(...) vo_xv_set_eq(global_vo, __VA_ARGS__)
@@ -178,7 +180,7 @@ void xscreensaver_heartbeat(struct vo_x11_state *x11);
#define vo_xv_init_colorkey() vo_xv_init_colorkey(global_vo)
#define vo_xv_draw_colorkey(...) vo_xv_draw_colorkey(global_vo, __VA_ARGS__)
#define vo_x11_clearwindow_part(display, ...) vo_x11_clearwindow_part(global_vo, __VA_ARGS__)
-#define vo_vm_close(display) vo_vm_close(global_vo)
+#define vo_vm_close() vo_vm_close(global_vo)
#define vo_x11_clearwindow(display, window) vo_x11_clearwindow(global_vo, window)
#define vo_x11_classhint(display, window, name) vo_x11_classhint(global_vo, window, name)
#define vo_x11_setlayer(display, window, layer) vo_x11_setlayer(global_vo, window, layer)
diff --git a/stream/cache2.c b/stream/cache2.c
index 209b2bdfd5..f212d479b0 100644
--- a/stream/cache2.c
+++ b/stream/cache2.c
@@ -16,16 +16,22 @@
#include <sys/types.h>
#include <unistd.h>
-#include "cache2.h"
+#ifdef __CYGWIN__
+#define PTHREAD_CACHE 1
+#endif
+
#include "osdep/shmem.h"
#include "osdep/timer.h"
-#if defined(__MINGW32__) || defined(__CYGWIN__)
+#if defined(__MINGW32__)
#include <windows.h>
static void ThreadProc( void *s );
#elif defined(__OS2__)
#define INCL_DOS
#include <os2.h>
static void ThreadProc( void *s );
+#elif defined(PTHREAD_CACHE)
+#include <pthread.h>
+static void *ThreadProc(void *s);
#else
#include <sys/wait.h>
#endif
@@ -34,6 +40,7 @@ static void ThreadProc( void *s );
#include "help_mp.h"
#include "stream.h"
+#include "cache2.h"
extern int use_gui;
typedef struct {
@@ -242,7 +249,7 @@ static int cache_execute_control(cache_vars_t *s) {
static cache_vars_t* cache_init(int size,int sector){
int num;
-#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__OS2__)
+#if !defined(__MINGW32__) && !defined(PTHREAD_CACHE) && !defined(__OS2__)
cache_vars_t* s=shmem_alloc(sizeof(cache_vars_t));
#else
cache_vars_t* s=malloc(sizeof(cache_vars_t));
@@ -256,14 +263,14 @@ static cache_vars_t* cache_init(int size,int sector){
}//32kb min_size
s->buffer_size=num*sector;
s->sector_size=sector;
-#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__OS2__)
+#if !defined(__MINGW32__) && !defined(PTHREAD_CACHE) && !defined(__OS2__)
s->buffer=shmem_alloc(s->buffer_size);
#else
s->buffer=malloc(s->buffer_size);
#endif
if(s->buffer == NULL){
-#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__OS2__)
+#if !defined(__MINGW32__) && !defined(PTHREAD_CACHE) && !defined(__OS2__)
shmem_free(s,sizeof(cache_vars_t));
#else
free(s);
@@ -279,14 +286,14 @@ static cache_vars_t* cache_init(int size,int sector){
void cache_uninit(stream_t *s) {
cache_vars_t* c = s->cache_data;
if(!s->cache_pid) return;
-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__OS2__)
+#if defined(__MINGW32__) || defined(PTHREAD_CACHE) || defined(__OS2__)
cache_do_control(s, -2, NULL);
#else
kill(s->cache_pid,SIGKILL);
waitpid(s->cache_pid,NULL,0);
#endif
if(!c) return;
-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__OS2__)
+#if defined(__MINGW32__) || defined(PTHREAD_CACHE) || defined(__OS2__)
free(c->stream);
free(c->buffer);
free(s->cache_data);
@@ -327,17 +334,23 @@ int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
min = s->buffer_size - s->fill_limit;
}
-#if !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__OS2__)
+#if !defined(__MINGW32__) && !defined(PTHREAD_CACHE) && !defined(__OS2__)
if((stream->cache_pid=fork())){
#else
{
stream_t* stream2=malloc(sizeof(stream_t));
memcpy(stream2,s->stream,sizeof(stream_t));
s->stream=stream2;
-#if defined(__MINGW32__) || defined(__CYGWIN__)
+#if defined(__MINGW32__)
stream->cache_pid = _beginthread( ThreadProc, 0, s );
-#else
+#elif defined(__OS2__)
stream->cache_pid = _beginthread( ThreadProc, NULL, 256 * 1024, s );
+#else
+ {
+ pthread_t tid;
+ pthread_create(&tid, NULL, ThreadProc, s);
+ stream->cache_pid = 1;
+ }
#endif
#endif
// wait until cache is filled at least prefill_init %
@@ -356,10 +369,14 @@ int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
return 1; // parent exits
}
-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__OS2__)
+#if defined(__MINGW32__) || defined(PTHREAD_CACHE) || defined(__OS2__)
}
+#ifdef PTHREAD_CACHE
+static void *ThreadProc( void *s ){
+#else
static void ThreadProc( void *s ){
#endif
+#endif
#ifdef CONFIG_GUI
use_gui = 0; // mp_msg may not use gui stuff in forked code
@@ -372,9 +389,12 @@ static void ThreadProc( void *s ){
}
// cache_stats(s->cache_data);
} while (cache_execute_control(s));
-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__OS2__)
+#if defined(__MINGW32__) || defined(__OS2__)
_endthread();
#endif
+#ifdef PTHREAD_CACHE
+ return NULL;
+#endif
}
int cache_stream_fill_buffer(stream_t *s){