mirror of
https://github.com/mpv-player/mpv
synced 2025-04-01 00:07:33 +00:00
Merge svn changes up to r27184
This commit is contained in:
commit
7de350c673
@ -7,8 +7,10 @@ MPlayer (1.0)
|
||||
* support for DTS WAV/DTS-CD passthrough by ad_hwac3
|
||||
* Apple's raw YUV2 in MOV
|
||||
* LATM over LOAS AAC decoding via internal libfaad2
|
||||
* video game codecs: BFI video
|
||||
* video game codecs: BFI video, Playstation MDEC video, ADPCM XA audio,
|
||||
EA Maxis XA ADPCM audio, RL2 video, Beam Software SIFF video, V.Flash PTX video
|
||||
* AVOption support for libavcodec-based decoders
|
||||
* image decoders: Sun rasterfile, PCX image
|
||||
|
||||
Demuxers:
|
||||
* -lavfdopts cryptokey allows decrypting MXF and ASF files
|
||||
@ -23,6 +25,7 @@ MPlayer (1.0)
|
||||
* support VOBsub in lavf demuxer
|
||||
* support MOV subtitle format
|
||||
* support for attachments in lavf demuxer
|
||||
* support for chapters in lavf demuxer
|
||||
|
||||
Filters:
|
||||
* vf_ow new overcomplete wavelet denoiser
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -872,7 +872,7 @@ Currently the following drivers are fixed-vo compliant: gl, gl2, mga, svga, x11,
|
||||
xmga, xv, xvidix and dfbmga.
|
||||
.
|
||||
.TP
|
||||
.B \-framedrop (also see \-hardframedrop, experimental without \-no\-correct\-pts)
|
||||
.B \-framedrop (also see \-hardframedrop, experimental without \-nocorrect\-pts)
|
||||
Skip displaying some frames to maintain A/V sync on slow systems.
|
||||
Video filters are not applied to such frames.
|
||||
For B-frames even decoding is skipped completely.
|
||||
@ -888,10 +888,10 @@ Does not work as a config-file option.
|
||||
Show short summary of options.
|
||||
.
|
||||
.TP
|
||||
.B \-hardframedrop (experimental without \-no\-correct\-pts)
|
||||
.B \-hardframedrop (experimental without \-nocorrect\-pts)
|
||||
More intense frame dropping (breaks decoding).
|
||||
Leads to image distortion!
|
||||
Note that especially the libmpeg2 decoder may crash with this,
|
||||
Note that especially the libmpeg2 decoder may crash with this,
|
||||
so consider using "\-vc ffmpeg12,".
|
||||
.
|
||||
.TP
|
||||
@ -2006,7 +2006,7 @@ Will help if video freezes but audio does not.
|
||||
.I NOTE:
|
||||
May not work with \-vo directx and \-vf crop combination.
|
||||
.IPs "hidden_vp_renderer (dshow only)"
|
||||
Terminate VideoPort pin stream with video renderer
|
||||
Terminate VideoPort pin stream with video renderer
|
||||
instead of removing it from the graph (default: off).
|
||||
Useful if your card has a VideoPort pin and video is choppy.
|
||||
.I NOTE:
|
||||
@ -5342,7 +5342,7 @@ speed (default).
|
||||
.br
|
||||
This works by playing \'stride\' ms of audio at normal speed then
|
||||
consuming \'stride*scale\' ms of input audio.
|
||||
It pieces the strides together by blending 'overlap'% of stride with
|
||||
It pieces the strides together by blending \'overlap\'% of stride with
|
||||
audio following the previous stride.
|
||||
It optionally performs a short statistical analysis on the next \'search\'
|
||||
ms of audio to determine the best overlap position.
|
||||
@ -5372,7 +5372,7 @@ On slow systems, you will probably want to set this very low.
|
||||
Set response to speed change.
|
||||
.RSss
|
||||
.IPs tempo
|
||||
Scale tempo in sync with speed (default)
|
||||
Scale tempo in sync with speed (default).
|
||||
.IPs pitch
|
||||
Reverses effect of filter.
|
||||
Scales pitch without altering tempo.
|
||||
@ -5381,9 +5381,9 @@ to your input.conf to step by musical semi-tones.
|
||||
.I WARNING:
|
||||
Loses sync with video.
|
||||
.IPs both
|
||||
Scale both tempo and pitch
|
||||
Scale both tempo and pitch.
|
||||
.IPs none
|
||||
Ignore speed changes
|
||||
Ignore speed changes.
|
||||
.RE
|
||||
.RE
|
||||
.sp 1
|
||||
@ -5494,8 +5494,12 @@ Use 2 to get only even dimensions (needed for 4:2:2 video).
|
||||
.
|
||||
.TP
|
||||
.B rectangle[=w:h:x:y]
|
||||
The plugin responds to the input.conf directive 'change_rectangle'
|
||||
that takes two parameters.
|
||||
Draws a rectangle of the requested width and height at the specified
|
||||
coordinates over the image and prints current rectangle parameters
|
||||
to the console.
|
||||
This can be used to find optimal cropping parameters.
|
||||
If you bind the input.conf directive 'change_rectangle' to keystrokes,
|
||||
you can move and resize the rectangle on the fly.
|
||||
.PD 0
|
||||
.RSs
|
||||
.IPs <w>,<h>
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" synced with r27057
|
||||
.\" synced with r27182
|
||||
.\" Encoding: iso-8859-1
|
||||
.\" MPlayer (C) 2000-2008 MPlayer Team
|
||||
.\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
|
||||
@ -133,7 +133,7 @@ tivo://h
|
||||
.br
|
||||
.B mencoder
|
||||
[options] fichier
|
||||
[fichier|URL|\-] [\-o fichier | file://fichier | smb://[utilisateur:mot_de_passe@]hôte/chemin/vers/le/fichier]
|
||||
[fichier|URL|\-] [\-o fichier | file://fichier | smb://[utilisateur:mot_de_passe@]hôte/chemin/vers/le/fichier]
|
||||
.
|
||||
.br
|
||||
.B mencoder
|
||||
@ -160,7 +160,7 @@ Un autre gros atout de MPlayer est la grande vari
|
||||
sortie audio et vidéos gérés.
|
||||
Il fonctionne avec X11, XV, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca,
|
||||
DirectFB, Quartz, Mac OS X CoreVideo, mais vous pouvez aussi utiliser
|
||||
GGI, SDL (et de cette façon tous leurs drivers), VESA (sur n'importe
|
||||
GGI, SDL (et de cette façon tous leurs drivers), VESA (sur n'importe
|
||||
quelle carte compatible VESA, même sans X11), quelques drivers spécifiques à
|
||||
certaines cartes (pour Matrox, 3dfx et ATI) et certaines cartes de
|
||||
décompression MPEG, telles que les Siemens DVB, Hauppauge PVR (IVTV), DXR2 et DXR3/\:Hollywood+.
|
||||
@ -910,7 +910,7 @@ Actuellement les pilotes suivants fonctionnent avec fixed-vo: gl, gl2, mga,
|
||||
svga, x11, xmga, xv, xvidix et dfbmga.
|
||||
.
|
||||
.TP
|
||||
.B \-framedrop (voir aussi \-hardframedrop, expérimental sans \-no\-correct\-pts)
|
||||
.B \-framedrop (voir aussi \-hardframedrop, expérimental sans \-nocorrect\-pts)
|
||||
Saute l'affichage de certaines trames pour maintenir la synchro A/V sur
|
||||
les machines lentes.
|
||||
Les filtres vidéo ne sont pas appliqués sur de telles trames.
|
||||
@ -931,7 +931,7 @@ Ne fonctionne pas en tant qu'option de fichier de configuration.
|
||||
Affiche un court résumé des options.
|
||||
.
|
||||
.TP
|
||||
.B \-hardframedrop (expérimental sans \-no\-correct\-pts)
|
||||
.B \-hardframedrop (expérimental sans \-nocorrect\-pts)
|
||||
Saute les trames de façon plus brutale (casse le décodage).
|
||||
Mène à des distorsions d'image!
|
||||
.
|
||||
@ -1690,7 +1690,7 @@ cbr: Taux binaire constant.
|
||||
.IPs vpeak=<valeur>
|
||||
Spécifie le taux binaire maximum d'encodage vidéo (utile uniquement dans le
|
||||
cas du mode VBR).
|
||||
La valeur par défaut est de 9.6 Mbps.
|
||||
La valeur par défaut est de 9.6 Mbps.
|
||||
.IPs fmt=<valeur>
|
||||
Détermine le format MPEG utilisé pour l'encodage\ :
|
||||
.RSss
|
||||
@ -2915,7 +2915,7 @@ pilote de sortie audio natif de Mac OS X
|
||||
Pilote de sortie audio OpenAL expérimental.
|
||||
.
|
||||
.TP
|
||||
+.B "pulse\ \ "
|
||||
.B "pulse\ \ "
|
||||
Pilote de sortie audio PulseAudio
|
||||
.PD 0
|
||||
.RSs
|
||||
@ -5131,7 +5131,7 @@ canaux, pour que ce filtre puisse alors coder les N canaux en AC-3.
|
||||
.PD 0
|
||||
.RSs
|
||||
.IPs <vers_spdif>
|
||||
Sort au flux AC-3 brut si égal à 0 ou non spécifié, sort
|
||||
Sort au flux AC-3 brut si égal à 0 ou non spécifié, sort
|
||||
transit vers S/PDIF quand <vers_spdif> est différent de 0.
|
||||
.IPs <débit>
|
||||
Le débit de codage du flux AC-3.
|
||||
@ -5628,7 +5628,7 @@ optionnellement synchronis
|
||||
.br
|
||||
Cela fonctionne en jouant \'stride\' ms de son à vitesse normale
|
||||
puis \'stride*scale\' ms de son d'entrée.
|
||||
Les échantillons sont ensuite joints en combinant 'overlap'% de
|
||||
Les échantillons sont ensuite joints en combinant \'overlap\'% de
|
||||
stride avec les échantillons du stride précédent.
|
||||
Optionnellement, il détermine statistiquement sur les \'search\' ms de son
|
||||
à venir la meilleure position d'overlap.
|
||||
@ -5656,7 +5656,7 @@ valeur.
|
||||
Défini la réponse à un changement de vitesse.
|
||||
.RSss
|
||||
.IPs tempo
|
||||
Ajuste le tempo pour rester synchronisé (par défaut)
|
||||
Ajuste le tempo pour rester synchronisé (par défaut).
|
||||
.IPs pitch
|
||||
Inverse l'effet de ce filtre.
|
||||
Ajuste le ton sans changer le tempo.
|
||||
@ -5780,8 +5780,13 @@ Prenez 2 pour avoir des dimensions paires (obligatoire pour les vid
|
||||
.
|
||||
.TP
|
||||
.B rectangle[=l:h:x:y]
|
||||
Ce plugin répond à la directive 'change_rectangle' de input.conf qui prend
|
||||
deux paramètres.
|
||||
Dessine, par-dessus l'image, un rectangle de la largeur et hauteur demandée,
|
||||
aux coordonnées données, et affiche les paramètres courants de rectangle sur
|
||||
la console.
|
||||
Peut être utilisé pour affiner la recherche des paramètre de découpage (cropping)
|
||||
optimals.
|
||||
Si vous associiez la directive input.conf 'change_rectangle' à une touche, vous
|
||||
pourriez alors déplacer et re-dimentionner le rectangle à la volée.
|
||||
.PD 0
|
||||
.RSs
|
||||
.IPs <l>,<h>
|
||||
@ -6294,7 +6299,7 @@ rend l'image plus lisse mais plus floue
|
||||
.
|
||||
.TP
|
||||
.B pp7[=qp[:mode]]
|
||||
Variante du filtre spp, similaire à pp=6 avec 7 points de DCT
|
||||
Variante du filtre spp, similaire à pp=6 avec 7 points de DCT
|
||||
où uniquement l'échantillon du centre est utilisé après la IDCT.
|
||||
.RSs
|
||||
.IPs <qp>
|
||||
@ -7008,7 +7013,7 @@ Si non-nul, le mode deghosting est utilis
|
||||
Ceci est destiné aux vidéos ayant été désentrelacées en fusionnant les champs
|
||||
ensemble au lieu d'en jeter un.
|
||||
Le deghosting amplifie les artefacts de compression des champs fusionnés,
|
||||
et la valeur du paramètre est celle du seuil pour exclure les pixels
|
||||
et la valeur du paramètre est celle du seuil pour exclure les pixels
|
||||
du filtre deghosting s'il diffère moins que ce seuil de la trame
|
||||
précédente.
|
||||
En mode 2-passes, une valeur négative peut être donnée pour que le filtre
|
||||
@ -7159,7 +7164,7 @@ Utilisez \-field\-dominance
|
||||
0: sort une trame pour chaque trame d'entrée
|
||||
1: sort une trame pour chaque champ d'entrée
|
||||
2: comme 0 mais ne vérifie pas l'entrelacement spatial
|
||||
3: comme 3 mais ne vérifie pas l'entrelacement spatial
|
||||
3: comme 3 mais ne vérifie pas l'entrelacement spatial
|
||||
.IPs <dominance de champ> (DEPRECATED/À ÉVITER)
|
||||
cf tfields
|
||||
.br
|
||||
@ -8291,7 +8296,7 @@ intervalle de recherche de l'estimation de mouvement
|
||||
.B mbd=<0\-2> (voir aussi *cmp, qpel)
|
||||
Algorithme de décision de macro-block (mode haute qualité), encode chaque
|
||||
macro-block dans tous les modes et choisit le meilleur.
|
||||
C'est lent mais permet d'améliorer la qualité visuelle et réduire la taille
|
||||
C'est lent mais permet d'améliorer la qualité visuelle et réduire la taille
|
||||
du fichier.
|
||||
Quand mbd est mis à 1 ou 2, la valeur de de mbcmp est ignoré quand les
|
||||
macro-blocks sont comparés entre eux (la valeur de mbcmp reste utilisée dans
|
||||
@ -9183,7 +9188,7 @@ somme des diff
|
||||
.IPs "1 (SSE)"
|
||||
somme des erreurs au carré
|
||||
.IPs "2 (SATD)"
|
||||
somme des différences absolues de la transformée de Hadamard
|
||||
somme des différences absolues de la transformée de Hadamard
|
||||
.IPs "3 (DCT)"
|
||||
somme des différences absolues de la transformée DCT
|
||||
.IPs "4 (PSNR)"
|
||||
@ -9202,7 +9207,7 @@ somme des diff
|
||||
somme des différences au carré préservant le bruit
|
||||
.IPs "11 (W53)"
|
||||
ondelette 5/3, utilisé par Snow
|
||||
+.IPs "12 (W97)"
|
||||
.IPs "12 (W97)"
|
||||
ondelette 9/7, utilisé par Snow
|
||||
.IPs "+256\ "
|
||||
Utilise également le chroma, ne fonctionne pour le moment pas (correctement)
|
||||
@ -9810,7 +9815,7 @@ D
|
||||
conserver plus de détails.
|
||||
À faible débit binaire, H.263 adoucit plus les traits de l'image et donnera une
|
||||
image où les macro-blocs se verront moins.
|
||||
Si vous utilisez vos propres matrices de quantification, vous
|
||||
Si vous utilisez vos propres matrices de quantification, vous
|
||||
.B devez
|
||||
utiliser la quantification MPEG.
|
||||
.
|
||||
@ -11112,9 +11117,10 @@ de tampons "buffer underflows".
|
||||
.
|
||||
.TP
|
||||
.B packetsize=<taille>
|
||||
Size, expressed in bytes, of the unitary packet for the chosen format.
|
||||
+When muxing to MPEG[12] implementations the default values are:
|
||||
+2324 for [S]VCD, 2048 for all others formats.
|
||||
Taille, exprimée en octets, du paquet unitaire du format donné.
|
||||
Lorsque le format de sortie est l'une des implémentations de MPEG[12],
|
||||
les valeurs par défaut sont\ :
|
||||
2324 pour [S]VCD, et 2048 pour tous les autres formats.
|
||||
.
|
||||
.TP
|
||||
.B preload=<distance>
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" sync with en/mplayer.1 r26909
|
||||
.\" sync with en/mplayer.1 r27132
|
||||
.\" Encoding: UTF-8
|
||||
.\" Reminder of hard terms which need better/final solution later:
|
||||
.\" /capture; playtree in parent list; colorkey; retrace; desync; downmix;
|
||||
@ -794,7 +794,7 @@ xover, xv (参见 \-vo xv:ck), xvmc (参见 \-vo xv:ck) 和 directx 支持。
|
||||
xover, xv (参见 \-vo xv:ck), xvmc (参见 \-vo xv:ck) 和 directx 支持。
|
||||
.
|
||||
.TP
|
||||
.B \-correct\-pts(用于试验)
|
||||
.B \-correct\-pts(处于测试阶段)
|
||||
切换 MPlayer 到试验模式,
|
||||
其中视频帧的时戳计算不同, 且支持视频过滤器添加新的帧或修改已有的时戳。
|
||||
可以看到更精确的时戳, 例如通过 \-ass 选项修改播放字幕与镜头同步。
|
||||
@ -802,7 +802,7 @@ xover, xv (参见 \-vo xv:ck), xvmc (参见 \-vo xv:ck) 和 directx 支持。
|
||||
此选项不能与某些分路器和编解码器一起正常工作。
|
||||
.
|
||||
.TP
|
||||
.B \-crash\-debug (调试代码)
|
||||
.B \-crash\-debug(调试代码)
|
||||
一旦崩溃或 SIGTRAP 自动联上 gdb 调试程序。
|
||||
此支持必须已编译进配置 \-\-enable\-crash\-debug。
|
||||
.
|
||||
@ -862,13 +862,13 @@ xv, xvidix 和 dfbmga。
|
||||
MPlayer 执行此命令时不加以检查,所以你有责任确保该命令不造成任何安全问题(例
|
||||
如,如果“.”就像在 Windows 中那样是在你的路径中,则确保使用完整路径)。
|
||||
.sp 1
|
||||
该选项可能被“误用”于禁用不支持正确的 X API 的屏幕保护程序。
|
||||
如果你觉得这太复杂了,请要求屏幕保护程序的作者提供对于正确 X API 的支持。
|
||||
该选项可能被“误用”以禁用不提供对于适当的 X API 接口的支持的屏幕保护程序。
|
||||
如果你觉得这太复杂了,请要求屏幕保护程序的作者提供对于适当的 X API 的支持。
|
||||
.sp 1
|
||||
.I 用于 xscreensaver 的示例:
|
||||
mplayer \-heartbeat\-cmd "xscreensaver\-command \-deactivate" file
|
||||
.sp 1
|
||||
.I 用于 gnome screensaver 的示例:
|
||||
.I 用于 GNOME screensaver 的示例:
|
||||
mplayer \-heartbeat\-cmd "gnome\-screensaver\-command \-p" file
|
||||
.RE
|
||||
.PD 1
|
||||
@ -1561,7 +1561,8 @@ dvd: DVD compatible stream (DVD 可兼容流)
|
||||
允许的最小频率(默认值:87.50)
|
||||
.IPs "freq_max=<value>(仅适用于*BSD BT848)"
|
||||
允许的最大频率(默认值:108.00)
|
||||
.IPs channels=<频率>\-<名称>,<频率>\-<名称>,...
|
||||
.IPs
|
||||
channels=<频率>\-<名称>[=<常规值>],<频率>\-<名称>[=<常规值>],...
|
||||
设置频道列表。
|
||||
在名称中用“_”代替空格(或使用引号)。
|
||||
频道名字就会以OSD方式显示出来,而从命令radio_step_channel和radio_set_channel
|
||||
@ -5129,7 +5130,11 @@ Completely empties the filter list.
|
||||
.
|
||||
.TP
|
||||
.B rectangle[=w:h:x:y]
|
||||
该插件响应 input.conf 中的两参数指令‘change_rectangle’。
|
||||
在图像之上于指定坐标画一个所要求宽度和高度的矩形,并且将当前矩形的参数输出至
|
||||
控制台窗口。
|
||||
该选项可用来找到最优的切割参数。
|
||||
如果你将 input.conf 中的指令‘change_rectangle’与按键绑定,那么你可以实时
|
||||
移动和调整矩阵。
|
||||
.PD 0
|
||||
.RSs
|
||||
.IPs <w>,<h>
|
||||
@ -6898,7 +6903,7 @@ h参数值。
|
||||
你可以使用以下的句法指定特定编解码器专用的参数:
|
||||
.
|
||||
.TP
|
||||
.B \-<codec>opts <option1[=value],option2,...>
|
||||
.B \-<codec>opts <option1[=value1]:option2[=value2]:...>
|
||||
.
|
||||
.PP
|
||||
这里<codec>可以是:lavc、xvidenc、lame、toolame、twolame、nuv、xvfw、faac、
|
||||
@ -9979,6 +9984,11 @@ FIXME: 待解释。
|
||||
.B VIDIX_CRT
|
||||
FIXME: 待解释。
|
||||
.
|
||||
.TP
|
||||
.B VIDIXIVTVALPHA
|
||||
将该选项设为‘disable’可以阻止 VIDIX 驱动控制阿尔法混合的参数。
|
||||
然后你就可以自己使用‘ivtvfbctl’操作这一参数。
|
||||
.
|
||||
.SS osdep:
|
||||
.
|
||||
.TP
|
||||
|
@ -46,6 +46,8 @@ Small improvements:
|
||||
|
||||
* ability to cycle switch_aspect
|
||||
|
||||
* ability to rename vo_jpeg,vo_gif,vo_png output filename
|
||||
|
||||
Cleanup:
|
||||
|
||||
* integrate dvdnav into mplayer structure
|
||||
@ -133,7 +135,7 @@ Enhancements:
|
||||
|
||||
* rotate/position osd
|
||||
|
||||
* support all image formats in mf:// (tiff, jpeg2000)
|
||||
* support all image formats in mf:// (psd, jpeg2000)
|
||||
|
||||
* make -noborder work with all video outputs
|
||||
|
||||
|
@ -83,8 +83,9 @@ fonts, and the onscreen display (OSD)?
|
||||
|
||||
<para>
|
||||
The player is rock solid playing damaged MPEG files (useful for some VCDs),
|
||||
and it plays bad AVI files which are unplayable with the famous windows
|
||||
media player. Even AVI files without index chunk are playable, and you can
|
||||
and it plays bad AVI files which are unplayable with the famous
|
||||
<application>Windows Media Player</application>.
|
||||
Even AVI files without index chunk are playable, and you can
|
||||
temporarily rebuild their indexes with the <option>-idx</option> option, or
|
||||
permanently with <application>MEncoder</application>, thus enabling
|
||||
seeking! As you see, stability and quality are the most important things,
|
||||
|
@ -60,14 +60,13 @@ il y a beaucoup d'informations intéressantes à y trouver.
|
||||
|
||||
<para>
|
||||
<application>MPlayer</application> est un lecteur de vidéos pour GNU/Linux
|
||||
(fonctionne sur de nombreux autres Un*x, et processeurs
|
||||
<emphasis role="bold">non-x86</emphasis>, voir la section <xref linkend="ports"/>).
|
||||
(fonctionne sur de nombreux autres Un*x, et processeurs non-x86, voir la
|
||||
section <xref linkend="ports"/>).
|
||||
Il lit la majorité des fichiers MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV,
|
||||
QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska supportés
|
||||
par de nombreux codecs natifs, XAnim, RealPlayer et les DLLs Win32.
|
||||
Vous pouvez regarder les <emphasis role="bold">VideoCD, SVCD, DVD, 3ivx,
|
||||
RealMedia, Sorenson, Theora</emphasis>, ainsi que les vidéos au format
|
||||
<emphasis role="bold">MPEG-4 (DivX)</emphasis>.
|
||||
Vous pouvez regarder les VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson,
|
||||
Theora, ainsi que les vidéos au format MPEG-4 (DivX).
|
||||
L'autre point fort de <application>MPlayer</application> est la grande
|
||||
variété de pilotes de sortie supportée.
|
||||
Il fonctionne avec X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca,
|
||||
@ -79,8 +78,8 @@ matériel, vous pouvez donc apprécier les films en plein écran.
|
||||
<application>MPlayer</application> supporte la décompression matérielle
|
||||
fournie par certaines cartes MPEG, telles que la <link linkend="dvb">DVB</link>
|
||||
et la <link linkend="dxr3">DXR3/Hollywood+</link>.
|
||||
Et que dire de ces superbes sous-titres ombrés et lissés (<emphasis role="bold">14
|
||||
types supportés</emphasis>) avec des polices européennes/ISO 8859-1,2
|
||||
Et que dire de ces superbes sous-titres ombrés et lissés (14
|
||||
types supportés) avec des polices européennes/ISO 8859-1,2
|
||||
(Hongrois, Anglais, Tchèque, etc.), Cyrilliques, Coréennes, ainsi que de
|
||||
l'Affichage Sur Ecran (ou OSD = On Screen Display) ?
|
||||
</para>
|
||||
@ -103,12 +102,12 @@ vidéo et audio.
|
||||
<application>MEncoder</application> (Le Movie Encoder de
|
||||
<application>MPlayer</application>) est un simple encodeur de vidéos, conçu
|
||||
pour encoder des vidéos jouables par <application>MPlayer</application>
|
||||
(<emphasis role="bold">AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA</emphasis>)
|
||||
(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA)
|
||||
dans d'autres formats jouables par <application>MPlayer</application>
|
||||
(voir plus bas).
|
||||
Il peut encoder avec des codecs variés comme <emphasis role="bold">MPEG-4 (DivX4)</emphasis>
|
||||
Il peut encoder avec des codecs variés comme MPEG-4 (DivX4)
|
||||
(1 ou 2 passes),<systemitem class="library">libavcodec</systemitem>,
|
||||
audio <emphasis role="bold">PCM/MP3/MP3 VBR</emphasis>.
|
||||
audio PCM/MP3/MP3 VBR.
|
||||
</para>
|
||||
|
||||
|
||||
@ -121,10 +120,10 @@ et de décodeurs de <application>MPlayer</application></para></listitem>
|
||||
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> de FFmpeg
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Encodage vidéo depuis <emphasis role="bold">les tuners TV compatibles V4L</emphasis>
|
||||
Encodage vidéo depuis les tuners TV compatibles V4L
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Encodage/multiplexage vers fichiers AVI intercalés avec index propre
|
||||
Encodage/multiplexage vers fichiers AVI entrelacés avec index propre
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Création de fichiers à partir de flux audio externes
|
||||
@ -133,10 +132,7 @@ et de décodeurs de <application>MPlayer</application></para></listitem>
|
||||
Encodage 1, 2 ou 3 passes
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
MP3 audio <emphasis role="bold">VBR</emphasis>
|
||||
<important><para>
|
||||
L'audio MP3 VBR peut ne pas toujours être bien lu par les lecteurs Windows!
|
||||
</para></important>
|
||||
MP3 audio VBR
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
PCM audio
|
||||
@ -150,14 +146,14 @@ et de décodeurs de <application>MPlayer</application></para></listitem>
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Correction FPS avec l'option <option>-ofps</option> (utile
|
||||
pour l'encodage d'un VOB 29.97fps en AVI 24fps)
|
||||
pour l'encodage d'un VOB 30000/1001 fps en AVI 24000/1001 fps)
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Utilise notre très puissant système de plugins (crop, expand,
|
||||
flip, postprocess, rotate, scale, conversion rgb/yuv)
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
Peut encoder les sous-titres DVD/VOBsub <emphasis role="bold">ET</emphasis>
|
||||
Peut encoder les sous-titres DVD/VOBsub et
|
||||
le texte des sous-titres dans le fichier de destination
|
||||
</para></listitem>
|
||||
<listitem><para>
|
||||
|
5
Makefile
5
Makefile
@ -738,8 +738,9 @@ dep depend: $(DEPS)
|
||||
|
||||
ALLPARTLIBS = $(foreach part, $(PARTS), $(part)/$(notdir $(part)).a)
|
||||
|
||||
$(ALLPARTLIBS): recurse
|
||||
$(ALLPARTLIBS): ffmpeg/libavutil/*.[ch] ffmpeg/libavcodec/*.[ch] ffmpeg/libavcodec/*/*.[chS] ffmpeg/libavformat/*.[ch] ffmpeg/libpostproc/*.[ch] libswscale/*.[chS] libvo/fastmemcpy.h config.h
|
||||
$(MAKE) -C $(@D)
|
||||
touch $@
|
||||
|
||||
mplayer$(EXESUF): $(MPLAYER_DEPS)
|
||||
$(CC) -o $@ $^ $(LDFLAGS_MPLAYER)
|
||||
@ -1054,5 +1055,5 @@ dhahelperwinclean:
|
||||
|
||||
-include $(DEPS)
|
||||
|
||||
.PHONY: all doxygen *install* recurse *tools drivers dhahelper*
|
||||
.PHONY: all doxygen *install* *tools drivers dhahelper*
|
||||
.PHONY: checkheaders *clean dep depend tests
|
||||
|
5
configure
vendored
5
configure
vendored
@ -3643,6 +3643,7 @@ if test "$_apple_ir" = auto ; then
|
||||
#include <linux/input.h>
|
||||
int main(void) {
|
||||
struct input_event ev;
|
||||
struct input_id id;
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
@ -7814,8 +7815,8 @@ HAVE_XVMC = $_xvmc
|
||||
|
||||
DEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,\$^) | sed "s,[0-9a-z._-]*: \(\$(SRC_DIR)/\)*\([a-z0-9]*/\)[^/]* ,\\2&,"
|
||||
|
||||
MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,$^) | sed "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&,"
|
||||
MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.h,$^) | sed "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&,"
|
||||
MPDEPEND_CMD = \$(CC) -MM \$(CFLAGS) \$(filter-out %.h,$^) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
|
||||
MPDEPEND_CMD_CXX = \$(CC) -MM \$(CXXFLAGS) \$(filter-out %.h,$^) | sed -e "s,[0-9a-z._-]*: \([a-z0-9/]*/\)[^/]* ,\1&," -e "s,\(.*\)\.o: ,\1.d &,"
|
||||
|
||||
EOF
|
||||
|
||||
|
@ -259,10 +259,10 @@ typedef struct voodoo_yuv_fb_t voodoo_yuv_fb;
|
||||
#define BIT(x) (1UL << (x))
|
||||
|
||||
/* COMMAND_2D reg. values */
|
||||
#define ROP_COPY 0xcc // src
|
||||
#define ROP_INVERT 0x55 // NOT dst
|
||||
#define ROP_XOR 0x66 // src XOR dst
|
||||
#define ROP_OR (0xee) /* src | dst */
|
||||
#define TDFXFB_ROP_COPY 0xcc // src
|
||||
#define TDFXFB_ROP_INVERT 0x55 // NOT dst
|
||||
#define TDFXFB_ROP_XOR 0x66 // src XOR dst
|
||||
#define TDFXFB_ROP_OR 0xee // src | dst
|
||||
|
||||
#define AUTOINC_DSTX BIT(10)
|
||||
#define AUTOINC_DSTY BIT(11)
|
||||
|
@ -9,6 +9,14 @@ release 20070930
|
||||
; VIDEO CODECS
|
||||
;=============================================================================
|
||||
|
||||
videocodec ffmdec
|
||||
info "FFmpeg Sony PlayStation MDEC (Motion DECoder)"
|
||||
status working
|
||||
fourcc MDEC ; internal MPlayer FourCC
|
||||
driver ffmpeg
|
||||
dll mdec
|
||||
out YV12
|
||||
|
||||
videocodec ffsiff
|
||||
info "FFmpeg Beam Software SIFF decoder"
|
||||
status working
|
||||
@ -2813,6 +2821,13 @@ audiocodec ffadpcmeamaxis
|
||||
driver ffmpeg
|
||||
dll adpcm_ea_maxis_xa
|
||||
|
||||
audiocodec ffadpcmxa
|
||||
info "FFmpeg XA ADPCM audio"
|
||||
status working
|
||||
fourcc PSXA ; internal MPlayer FourCC
|
||||
driver ffmpeg
|
||||
dll adpcm_xa
|
||||
|
||||
audiocodec ffxandpcm
|
||||
info "FFmpeg XAN DPCM audio"
|
||||
comment "only works with libavformat demuxer"
|
||||
|
@ -4,9 +4,11 @@
|
||||
// Alexander Strasser <eclipse7@gmx.net>
|
||||
// Sebastian Krämer <mail@kraymer.de>
|
||||
|
||||
// In sync with r24423
|
||||
// In sync with r27123
|
||||
// TODO: cosmetic commit 27072
|
||||
// FIXME: improve wording/meaning of periodsize|timer.. for ao_alsa.c strings
|
||||
|
||||
|
||||
// ========================= MPlayer help ===========================
|
||||
|
||||
#ifdef HELP_MP_DEFINE_STATIC
|
||||
@ -22,8 +24,8 @@ static char help_text[]=
|
||||
#endif
|
||||
#ifdef USE_DVDREAD
|
||||
" dvd://<titelnr> Spiele DVD-Titel direkt vom Gerät anstelle einer Datei\n"
|
||||
" -alang/-slang Wähle DVD Audio/Untertitel Sprache (2-Zeichen-Ländercode)\n"
|
||||
#endif
|
||||
" -alang/-slang Wähle DVD Audio/Untertitel Sprache (2-Zeichen-Ländercode)\n"
|
||||
" -ss <Position> Spiele ab Position (Sekunden oder hh:mm:ss)\n"
|
||||
" -nosound Ohne Ton abspielen\n"
|
||||
" -fs Im Vollbildmodus abspielen (oder -vm, -zoom, siehe Manpage)\n"
|
||||
@ -55,9 +57,10 @@ static char help_text[]=
|
||||
// libmpcodecs/ad_dvdpcm.c:
|
||||
#define MSGTR_SamplesWanted "Beispiele für dieses Format werden gebraucht, um die Unterstützung zu verbessern. Bitte kontaktiere die Entwickler.\n"
|
||||
|
||||
|
||||
// ========================= MPlayer Ausgaben ===========================
|
||||
|
||||
// mplayer.c:
|
||||
// mplayer.c:
|
||||
#define MSGTR_Exiting "\nBeenden...\n"
|
||||
#define MSGTR_ExitingHow "\nBeenden... (%s)\n"
|
||||
#define MSGTR_Exit_quit "Ende"
|
||||
@ -156,6 +159,8 @@ static char help_text[]=
|
||||
" Wir können und werden dir nicht helfen, wenn du nicht alle dort aufgeführten\n"\
|
||||
" Informationen zur Verfügung stellst.\n"
|
||||
#define MSGTR_LoadingConfig "Lade Konfiguration '%s'\n"
|
||||
#define MSGTR_LoadingProtocolProfile "Lade protokolleigenes Profil '%s'\n"
|
||||
#define MSGTR_LoadingExtensionProfile "Lade erweiterungseigenes Profil '%s'\n"
|
||||
#define MSGTR_AddedSubtitleFile "SUB: Untertiteldatei (%d) hinzugefügt: %s\n"
|
||||
#define MSGTR_RemovedSubtitleFile "SUB: Untertiteldatei (%d) entfernt: %s\n"
|
||||
#define MSGTR_ErrorOpeningOutputFile "Fehler beim Öffnen von Datei [%s] zum Schreiben!\n"
|
||||
@ -207,7 +212,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPEndposNoSizeBased "Die Option -endpos unterstützt für MPlayer noch keine Größenangaben.\n"
|
||||
|
||||
// mplayer.c OSD
|
||||
|
||||
#define MSGTR_OSDenabled "aktiviert"
|
||||
#define MSGTR_OSDdisabled "deaktiviert"
|
||||
#define MSGTR_OSDAudio "Ton: %s"
|
||||
@ -217,8 +221,9 @@ static char help_text[]=
|
||||
#define MSGTR_OSDSpeed "Geschwindigkeit: x %6.2f"
|
||||
#define MSGTR_OSDosd "OSD: %s"
|
||||
#define MSGTR_OSDChapter "Kapitel: (%d) %s"
|
||||
#define MSGTR_OSDAngle "Winkel: %d/%d"
|
||||
|
||||
// property values
|
||||
// Werte für Eigenschaften
|
||||
#define MSGTR_Enabled "aktiviert"
|
||||
#define MSGTR_EnabledEdl "aktiviert (EDL)"
|
||||
#define MSGTR_Disabled "deaktiviert"
|
||||
@ -227,8 +232,11 @@ static char help_text[]=
|
||||
#define MSGTR_Bottom "unten"
|
||||
#define MSGTR_Center "mittig"
|
||||
#define MSGTR_Top "oben"
|
||||
#define MSGTR_SubSourceFile "Datei"
|
||||
#define MSGTR_SubSourceVobsub "vobsub"
|
||||
#define MSGTR_SubSourceDemux "eingebettet"
|
||||
|
||||
// osd bar names
|
||||
// Balkennamen für OSD
|
||||
#define MSGTR_Volume "Lautstärke"
|
||||
#define MSGTR_Panscan "Panscan"
|
||||
#define MSGTR_Gamma "Gamma"
|
||||
@ -238,7 +246,7 @@ static char help_text[]=
|
||||
#define MSGTR_Hue "Farbton"
|
||||
#define MSGTR_Balance "Balance"
|
||||
|
||||
// property state
|
||||
// Eigenschaftenzustände
|
||||
#define MSGTR_LoopStatus "Endloswiederholung: %s"
|
||||
#define MSGTR_MuteStatus "Stumm: %s"
|
||||
#define MSGTR_AVDelayStatus "A/V-Verzögerung: %s"
|
||||
@ -248,6 +256,7 @@ static char help_text[]=
|
||||
#define MSGTR_FramedroppingStatus "Framedropping: %s"
|
||||
#define MSGTR_VSyncStatus "VSync: %s"
|
||||
#define MSGTR_SubSelectStatus "Untertitel: %s"
|
||||
#define MSGTR_SubSourceStatus "Untertitelquelle: %s"
|
||||
#define MSGTR_SubPosStatus "Untertitelposition: %s/100"
|
||||
#define MSGTR_SubAlignStatus "Untertitelausrichtung: %s"
|
||||
#define MSGTR_SubDelayStatus "Untertitelverzögerung: %s"
|
||||
@ -256,7 +265,6 @@ static char help_text[]=
|
||||
#define MSGTR_SubForcedOnlyStatus "Erzwungene Untertitel: %s"
|
||||
|
||||
// mencoder.c:
|
||||
|
||||
#define MSGTR_UsingPass3ControlFile "Verwende Pass 3 Kontrolldatei: %s\n"
|
||||
#define MSGTR_MissingFilename "\nDateiname nicht angegeben.\n\n"
|
||||
#define MSGTR_CannotOpenFile_Device "Kann Datei/Gerät nicht öffnen.\n"
|
||||
@ -726,9 +734,8 @@ static char help_text[]=
|
||||
#define MSGTR_NoVolume "[Mixer] Keine Lautstärkeregelung verfügbar.\n"
|
||||
#define MSGTR_NoBalance "[Mixer] Keine Regelung für Balance verfügbar.\n"
|
||||
|
||||
// ====================== GUI messages/buttons ========================
|
||||
|
||||
#ifdef HAVE_NEW_GUI
|
||||
// ====================== GUI-Nachrichten/-Buttons ========================
|
||||
|
||||
// --- labels ---
|
||||
#define MSGTR_About "Über..."
|
||||
@ -770,7 +777,7 @@ static char help_text[]=
|
||||
#define MSGTR_UNKNOWNWINDOWTYPE "Unbekannten Fenstertyp gefunden ..."
|
||||
|
||||
// --- skin loader error messages
|
||||
#define MSGTR_SKIN_ERRORMESSAGE "[Skin] Fehler in Skin-Konfigurationsdatei in Zeile %d: %s"
|
||||
#define MSGTR_SKIN_ERRORMESSAGE "[Skin] Fehler in Skin-Konfigurationsdatei in Zeile %d: %s"
|
||||
#define MSGTR_SKIN_WARNING1 "[Skin] Warnung: in Skin-Konfigurationsdatei in Zeile %d:\nWidget (%s) gefunden, aber davor wurde \"section\" nicht gefunden"
|
||||
#define MSGTR_SKIN_WARNING2 "[Skin] Warnung: in Skin-Konfigurationsdatei in Zeile %d:\nWidget (%s) gefunden, aber davor wurde \"subsection\" nicht gefunden."
|
||||
#define MSGTR_SKIN_WARNING3 "[skin] Warnung: in Skin-Konfigurationsdatei in Zeile %d:\nDiese Untersektion wird vom Widget nicht unterstützt (%s)."
|
||||
@ -796,7 +803,7 @@ static char help_text[]=
|
||||
#define MSGTR_SKIN_SKINCFG_SkinCfgReadError "Skin-Konfigurationsdatei: Lesefehler (%s)\n"
|
||||
#define MSGTR_SKIN_LABEL "Skins:"
|
||||
|
||||
// --- gtk menus
|
||||
// --- GTK-Menüs
|
||||
#define MSGTR_MENU_AboutMPlayer "Über MPlayer"
|
||||
#define MSGTR_MENU_Open "Öffnen..."
|
||||
#define MSGTR_MENU_PlayFile "Spiele Datei..."
|
||||
@ -952,6 +959,7 @@ static char help_text[]=
|
||||
#define MSGTR_PREFERENCES_FontEncoding20 "Thailändische Schriftzeichen (CP874)"
|
||||
#define MSGTR_PREFERENCES_FontEncoding21 "Kyrillisch Windows (CP1251)"
|
||||
#define MSGTR_PREFERENCES_FontEncoding22 "Slavisch / Zentraleuropäisch Windows (CP1250)"
|
||||
#define MSGTR_PREFERENCES_FontEncoding23 "Arabisch Windows (CP1256)"
|
||||
#define MSGTR_PREFERENCES_FontNoAutoScale "Keine automatische Skalierung"
|
||||
#define MSGTR_PREFERENCES_FontPropWidth "Proportional zur Breite des Films"
|
||||
#define MSGTR_PREFERENCES_FontPropHeight "Proportional zur Höhe des Films"
|
||||
@ -989,28 +997,23 @@ static char help_text[]=
|
||||
#define MSGTR_MSGBOX_LABEL_Warning "Warnung!"
|
||||
|
||||
// bitmap.c
|
||||
|
||||
#define MSGTR_NotEnoughMemoryC32To1 "[c32to1] Für das Bild ist nicht genügend Speicher vorhanden.\n"
|
||||
#define MSGTR_NotEnoughMemoryC1To32 "[c1to32] Für das Bild ist nicht genügend Speicher vorhanden.\n"
|
||||
|
||||
// cfg.c
|
||||
|
||||
#define MSGTR_ConfigFileReadError "[cfg] Fehler beim Lesen der Konfigurationsdatei ...\n"
|
||||
#define MSGTR_UnableToSaveOption "[cfg] Kann die Option '%s' nicht speichern.\n"
|
||||
|
||||
// interface.c
|
||||
|
||||
#define MSGTR_DeletingSubtitles "[GUI] Lösche Untertitel.\n"
|
||||
#define MSGTR_LoadingSubtitles "[GUI] Lade Untertitel: %s\n"
|
||||
#define MSGTR_AddingVideoFilter "[GUI] Füge Videofilter %s hinzu.\n"
|
||||
#define MSGTR_RemovingVideoFilter "[GUI] Entferne Videofilter: %s\n"
|
||||
|
||||
// mw.c
|
||||
|
||||
#define MSGTR_NotAFile "Dies scheint keine Datei zu sein: %s !\n"
|
||||
|
||||
// ws.c
|
||||
|
||||
#define MSGTR_WS_CouldNotOpenDisplay "[ws] Konnte das Display nicht öffnen.\n"
|
||||
#define MSGTR_WS_RemoteDisplay "[ws] Ferngesteuertes Display, deaktiviere XMITSHM.\n"
|
||||
#define MSGTR_WS_NoXshm "[ws] Sorry, dein System unterstützt die Shared-Memory-Erweiterung von X nicht.\n"
|
||||
@ -1023,13 +1026,12 @@ static char help_text[]=
|
||||
#define MSGTR_WS_DpmsNotEnabled "Konnte DPMS nicht aktivieren.\n"
|
||||
|
||||
// wsxdnd.c
|
||||
|
||||
#define MSGTR_WS_NotAFile "Dies scheint keine Datei zu sein...\n"
|
||||
#define MSGTR_WS_DDNothing "D&D: Nichts zurückgegeben!\n"
|
||||
|
||||
#endif
|
||||
|
||||
// ======================= VO Videoausgabetreiber ========================
|
||||
|
||||
// ======================= Videoausgabetreiber ========================
|
||||
|
||||
#define MSGTR_VOincompCodec \
|
||||
"Der ausgewählte Videoausgabetreiber ist nicht kompatibel mit diesem Codec.\n"\
|
||||
@ -1050,7 +1052,6 @@ static char help_text[]=
|
||||
#define MSGTR_VO_UnknownSuboptions "unbekannte Unteroption(en)"
|
||||
|
||||
// vo_aa.c
|
||||
|
||||
#define MSGTR_VO_AA_HelpHeader "\n\nDies sind die Unteroptionen von aalib vo_aa:\n"
|
||||
#define MSGTR_VO_AA_AdditionalOptions \
|
||||
"Zusätzlich von vo_aa bereitgestellte Optionen:\n" \
|
||||
@ -1065,7 +1066,7 @@ static char help_text[]=
|
||||
" 4 : reverse\n" \
|
||||
" 5 : special\n\n\n"
|
||||
|
||||
// vo_jpeg.c
|
||||
// vo_jpeg.c
|
||||
#define MSGTR_VO_JPEG_ProgressiveJPEG "Progressives JPEG aktiviert."
|
||||
#define MSGTR_VO_JPEG_NoProgressiveJPEG "Progressives JPEG deaktiviert."
|
||||
#define MSGTR_VO_JPEG_BaselineJPEG "Baseline-JPEG aktiviert."
|
||||
@ -1110,19 +1111,21 @@ static char help_text[]=
|
||||
// vo_xv.c
|
||||
#define MSGTR_VO_XV_ImagedimTooHigh "Dimensionen des Quellbildes sind zu groß: %ux%u (Maximalgröße ist %ux%u)\n"
|
||||
|
||||
// Old vo drivers that have been replaced
|
||||
|
||||
// alte Videoausgabetreiber, die ersetzt wurden
|
||||
#define MSGTR_VO_PGM_HasBeenReplaced "Der pgm-Videoausgabetreiber wurde ersetzt durch -vo pnm:pgmyuv.\n"
|
||||
#define MSGTR_VO_MD5_HasBeenReplaced "Der md5-Videoausgabetreiber wurde ersetzt durch -vo md5sum.\n"
|
||||
|
||||
// ======================= AO Audio Output drivers ========================
|
||||
|
||||
// libao2
|
||||
// ======================= Audioausgabetreiber ========================
|
||||
|
||||
// audio_out.c
|
||||
#define MSGTR_AO_ALSA9_1x_Removed \
|
||||
"audio_out: Die Module alsa9 und alsa1x wurden entfernt, benutze stattdessen \n" \
|
||||
"-ao alsa.\n"
|
||||
#define MSGTR_AO_TryingPreferredAudioDriver "Probiere bevorzugten Audiotreiber '%.*s', Optionen '%s'\n"
|
||||
#define MSGTR_AO_NoSuchDriver "Kein Audiotreiber '%.*s'\n"
|
||||
#define MSGTR_AO_FailedInit "Konnte Audiotreiber '%s' nicht initialisieren\n"
|
||||
#define MSGTR_AO_TryingEveryKnown "Probiere jeden bekannten Audiotreiber...\n"
|
||||
|
||||
// ao_oss.c
|
||||
#define MSGTR_AO_OSS_CantOpenMixer "[AO OSS] audio_setup: Kann Mixer %s: %s nicht öffnen.\n"
|
||||
@ -1156,9 +1159,6 @@ static char help_text[]=
|
||||
#define MSGTR_AO_MPEGPES_CantSetMixer "[AO MPEGPES] Setzen des DVB-Audiomixers fehlgeschlagen: %s\n"
|
||||
#define MSGTR_AO_MPEGPES_UnsupSamplerate "[AO MPEGPES] %d Hz nicht unterstützt, versuche Resampling.\n"
|
||||
|
||||
// ao_null.c
|
||||
// Der hier hat weder mp_msg noch printf's?? [CHECK]
|
||||
|
||||
// ao_pcm.c
|
||||
#define MSGTR_AO_PCM_FileInfo "[AO PCM] Datei: %s (%s)\nPCM: Samplerate: %iHz Kanäle: %s Format %s\n"
|
||||
#define MSGTR_AO_PCM_HintInfo \
|
||||
@ -1282,15 +1282,15 @@ static char help_text[]=
|
||||
#define MSGTR_AO_ALSA_CannotGetPcmStatus "[AO_ALSA] Kann pcm-Status nicht ermitteln: %s\n"
|
||||
|
||||
// ao_plugin.c
|
||||
|
||||
#define MSGTR_AO_PLUGIN_InvalidPlugin "[AO PLUGIN] ungültiges Plugin: %s\n"
|
||||
|
||||
// ======================= AF Audio Filters ================================
|
||||
|
||||
// libaf
|
||||
// ======================= Audiofilter ================================
|
||||
|
||||
// af_scaletempo.c
|
||||
#define MSGTR_AF_ValueOutOfRange MSGTR_VO_ValueOutOfRange
|
||||
|
||||
// af_ladspa.c
|
||||
|
||||
#define MSGTR_AF_LADSPA_AvailableLabels "verfügbare Label in"
|
||||
#define MSGTR_AF_LADSPA_WarnNoInputs "WARNUNG! Dieses LADSPA-Plugin hat keine Audio-Inputs.\n Das eingehende Audiosignal wird verlorengehen."
|
||||
#define MSGTR_AF_LADSPA_ErrMultiChannel "Multichannel-Plugins (>2) werden (noch) nicht unterstützt.\n Benutze nur Mono- und Stereo-Plugins."
|
||||
@ -1310,10 +1310,10 @@ static char help_text[]=
|
||||
|
||||
#define MSGTR_AF_FORMAT_UnknownFormat "unbekanntes Format "
|
||||
|
||||
|
||||
// ========================== INPUT =========================================
|
||||
|
||||
// joystick.c
|
||||
|
||||
#define MSGTR_INPUT_JOYSTICK_Opening "Öffne Joystick-Gerätedatei '%s'.\n"
|
||||
#define MSGTR_INPUT_JOYSTICK_CantOpen "Konnte Joystick-Gerätedatei '%s' nicht öffnen: %s\n"
|
||||
#define MSGTR_INPUT_JOYSTICK_ErrReading "Fehler beim Lesen von Joystick-Gerätedatei: %s\n"
|
||||
@ -1321,8 +1321,12 @@ static char help_text[]=
|
||||
#define MSGTR_INPUT_JOYSTICK_WarnLostSync "Joystick: Warnung: Initialisierungsereignis, Synchronisierung mit Treiber verloren.\n"
|
||||
#define MSGTR_INPUT_JOYSTICK_WarnUnknownEvent "Joystick: Warnung: Unbekannter Ereignistyp %d.\n"
|
||||
|
||||
// input.c
|
||||
// appleir.c
|
||||
#define MSGTR_INPUT_APPLE_IR_Init "Initialisiere Apple-Fernbedienung auf %s\n"
|
||||
#define MSGTR_INPUT_APPLE_IR_Detect "Apple-Fernbedienung auf %s erkannt\n"
|
||||
#define MSGTR_INPUT_APPLE_IR_CantOpen "Kann Gerät für Apple-Fernbedienung nicht öffnen: %s\n"
|
||||
|
||||
// input.c
|
||||
#define MSGTR_INPUT_INPUT_ErrCantRegister2ManyCmdFds "Zu viele Kommandodateideskriptoren, konnte Deskriptor %d nicht registrieren.\n"
|
||||
#define MSGTR_INPUT_INPUT_ErrCantRegister2ManyKeyFds "Zu viele Tastendateidesktriptoren, konnte Deskriptor %d nicht registrieren.\n"
|
||||
#define MSGTR_INPUT_INPUT_ErrArgMustBeInt "Kommando %s: Argument %d ist keine Integerzahl.\n"
|
||||
@ -1350,20 +1354,18 @@ static char help_text[]=
|
||||
#define MSGTR_INPUT_INPUT_ErrCantOpenFile "Konnte Datei '%s' nicht öffnen: %s\n"
|
||||
#define MSGTR_INPUT_INPUT_ErrCantInitAppleRemote "Konnte Apple Remote Fernbedienung nicht initialisieren.\n"
|
||||
|
||||
|
||||
// ========================== LIBMPDEMUX ===================================
|
||||
|
||||
// url.c
|
||||
|
||||
#define MSGTR_MPDEMUX_URL_StringAlreadyEscaped "Zeichenkette scheint bereits im URL-Format %c%c1%c2 'escaped' zu sein.\n"
|
||||
|
||||
// ai_alsa1x.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AIALSA1X_CannotSetSamplerate "Konnte Samplingrate nicht setzen.\n"
|
||||
#define MSGTR_MPDEMUX_AIALSA1X_CannotSetBufferTime "Konnte Pufferzeit nicht setzen.\n"
|
||||
#define MSGTR_MPDEMUX_AIALSA1X_CannotSetPeriodTime "Konnte Periode nicht setzen.\n"
|
||||
|
||||
// ai_alsa.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AIALSA_PcmBrokenConfig "Kaputte Konfiguration für diesen PCM-Kanal: Keine Konfiguration verfügbar.\n"
|
||||
#define MSGTR_MPDEMUX_AIALSA_UnavailableAccessType "Zugriffstyp nicht verfügbar.\n"
|
||||
#define MSGTR_MPDEMUX_AIALSA_UnavailableSampleFmt "Sampleformat nicht verfügbar.\n"
|
||||
@ -1379,7 +1381,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_AIALSA_AlsaReadWriteError "ALSA-Ein/Ausgabefehler."
|
||||
|
||||
// ai_oss.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AIOSS_Unable2SetChanCount "Konnte Kanalzahl nicht setzen: %d\n"
|
||||
#define MSGTR_MPDEMUX_AIOSS_Unable2SetStereo "Konnte Stereo nicht setzen: %d\n"
|
||||
#define MSGTR_MPDEMUX_AIOSS_Unable2Open "Konnte '%s' nicht öffnen: %s\n"
|
||||
@ -1392,7 +1393,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_AIOSS_AudioBlockSize2Low "Blockgröße des Tons ist zu klein, setze auf %d!\n"
|
||||
|
||||
// asfheader.c
|
||||
|
||||
#define MSGTR_MPDEMUX_ASFHDR_HeaderSizeOver1MB \
|
||||
"FATAL: Dateikopf größer als 1 MB (%d)!\n" \
|
||||
"Setze dich mit den MPlayer-Autoren in Verbindung und sende oder \n" \
|
||||
@ -1407,7 +1407,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_ASFHDR_DRMProtected "Diese Datei wurde mit DRM-Verschlüsselung versehen, MPlayer wird sie nicht abspielen!\n"
|
||||
|
||||
// asf_mmst_streaming.c
|
||||
|
||||
#define MSGTR_MPDEMUX_MMST_WriteError "Schreibfehler\n"
|
||||
#define MSGTR_MPDEMUX_MMST_EOFAlert "\nAchtung! Dateiende.\n"
|
||||
#define MSGTR_MPDEMUX_MMST_PreHeaderReadFailed "Konnte 'pre-header' nicht lesen.\n"
|
||||
@ -1430,7 +1429,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_MMST_Connected "Verbunden.\n"
|
||||
|
||||
// asf_streaming.c
|
||||
|
||||
#define MSGTR_MPDEMUX_ASF_StreamChunkSize2Small "Ahhhh, stream_chunk-Größe ist zu klein: %d\n"
|
||||
#define MSGTR_MPDEMUX_ASF_SizeConfirmMismatch "size_confirm passt nicht!: %d %d\n"
|
||||
#define MSGTR_MPDEMUX_ASF_WarnDropHeader "Warnung: 'header' verloren ????\n"
|
||||
@ -1461,14 +1459,12 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_ASF_StreamingFailed "Fehlgeschlagen, beende.\n"
|
||||
|
||||
// audio_in.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AUDIOIN_ErrReadingAudio "\nFehler beim Lesen des Tons: %s\n"
|
||||
#define MSGTR_MPDEMUX_AUDIOIN_XRUNSomeFramesMayBeLeftOut "Es gab einen 'cross-run', einige Frames könnten fehlen!\n"
|
||||
#define MSGTR_MPDEMUX_AUDIOIN_ErrFatalCannotRecover "Fataler Fehler, Rettung nicht möglich!\n"
|
||||
#define MSGTR_MPDEMUX_AUDIOIN_NotEnoughSamples "\nNicht genug Tonsamples!\n"
|
||||
|
||||
// aviheader.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AVIHDR_EmptyList "** leere Liste?!\n"
|
||||
#define MSGTR_MPDEMUX_AVIHDR_FoundMovieAt "Film von 0x%X - 0x%X gefunden.\n"
|
||||
#define MSGTR_MPDEMUX_AVIHDR_FoundBitmapInfoHeader "'bih' gefunden, %u Byte von %d.\n"
|
||||
@ -1494,18 +1490,15 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_AVIHDR_IdxFileSaved "Indexdatei '%s' gespeichert.\n"
|
||||
|
||||
// cache2.c
|
||||
|
||||
#define MSGTR_MPDEMUX_CACHE2_NonCacheableStream "\rDieser Datenstrom lässt sich nicht zwischenspeichern.\n"
|
||||
#define MSGTR_MPDEMUX_CACHE2_ReadFileposDiffers "!!!Unterschied in read_filepos!!! Melde diesen Fehler...\n"
|
||||
|
||||
// cdda.c
|
||||
|
||||
#define MSGTR_MPDEMUX_CDDA_CantOpenCDDADevice "Kann CDDA-Gerät nicht öffnen.\n"
|
||||
#define MSGTR_MPDEMUX_CDDA_CantOpenDisc "Kann CD nicht öffnen.\n"
|
||||
#define MSGTR_MPDEMUX_CDDA_AudioCDFoundWithNTracks "Musik-CD mit %ld Titeln gefunden.\n"
|
||||
|
||||
// cddb.c
|
||||
|
||||
#define MSGTR_MPDEMUX_CDDB_FailedToReadTOC "Konnte Inhaltsverzeichnis der CD nicht lesen.\n"
|
||||
#define MSGTR_MPDEMUX_CDDB_FailedToOpenDevice "Konnte Gerät '%s' nicht öffnen.\n"
|
||||
#define MSGTR_MPDEMUX_CDDB_NotAValidURL "ungültige URL\n"
|
||||
@ -1529,7 +1522,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_CDDB_NoCDInDrive "Keine CD im Laufwerk.\n"
|
||||
|
||||
// cue_read.c
|
||||
|
||||
#define MSGTR_MPDEMUX_CUEREAD_UnexpectedCuefileLine "[bincue] Unerwartete Zeile in der Cue-Datei: %s\n"
|
||||
#define MSGTR_MPDEMUX_CUEREAD_BinFilenameTested "[bincue] Zugehörige Bin-Datei unter dem Namen '%s' nicht gefunden.\n"
|
||||
#define MSGTR_MPDEMUX_CUEREAD_CannotFindBinFile "[bincue] Konnte Bin-Datei nicht finden. Gebe auf.\n"
|
||||
@ -1544,7 +1536,6 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_CUEREAD_CueStreamInfo_FilenameTrackTracksavail "CUE stream_open: Dateiname='%s', Titel=%d, verfügbare Titel: %d -> %d\n"
|
||||
|
||||
// network.c
|
||||
|
||||
#define MSGTR_MPDEMUX_NW_UnknownAF "Unbekannte Adressfamilie %d\n"
|
||||
#define MSGTR_MPDEMUX_NW_ResolvingHostForAF "Löse %s auf für %s...\n"
|
||||
#define MSGTR_MPDEMUX_NW_CantResolv "Konnte Namen für %s nicht auflösen: %s\n"
|
||||
@ -1570,11 +1561,9 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_NW_CacheSizeSetTo "Cache-Größe auf %d KByte gesetzt.\n"
|
||||
|
||||
// demux_audio.c
|
||||
|
||||
#define MSGTR_MPDEMUX_AUDIO_UnknownFormat "Audiodemuxer: unbekanntes Format %d.\n"
|
||||
|
||||
// demux_demuxers.c
|
||||
|
||||
#define MSGTR_MPDEMUX_DEMUXERS_FillBufferError "fill_buffer-Fehler: schlechter Demuxer: weder vd noch ad oder sd.\n"
|
||||
|
||||
// demux_mkv.c
|
||||
@ -1601,19 +1590,17 @@ static char help_text[]=
|
||||
#define MSGTR_MPDEMUX_MKV_TooManySublinesSkippingAfterFirst "\n[mkv] Warnung: Zu viele anzuzeigende Sublines, überspringe nach den ersten %i.\n"
|
||||
|
||||
// demux_nuv.c
|
||||
|
||||
#define MSGTR_MPDEMUX_NUV_NoVideoBlocksInFile "Datei enthält keine Videoblöcke.\n"
|
||||
|
||||
// demux_xmms.c
|
||||
|
||||
#define MSGTR_MPDEMUX_XMMS_FoundPlugin "Plugin gefunden: %s (%s).\n"
|
||||
#define MSGTR_MPDEMUX_XMMS_ClosingPlugin "Plugin geschlossen: %s.\n"
|
||||
#define MSGTR_MPDEMUX_XMMS_WaitForStart "Warte auf die Wiedergabe des XMMS-Plugins von '%s'...\n"
|
||||
|
||||
// ========================== LIBMPMENU ===================================
|
||||
|
||||
// ========================== LIBMENU ===================================
|
||||
|
||||
// common
|
||||
|
||||
#define MSGTR_LIBMENU_NoEntryFoundInTheMenuDefinition "[MENU] Kein Eintrag in der Menüdefinition gefunden.\n"
|
||||
|
||||
// libmenu/menu.c
|
||||
@ -1668,6 +1655,7 @@ static char help_text[]=
|
||||
#define MSGTR_LIBMENU_UnknownMenuCommand "[MENU] Unbekannter Befehl: '%s'.\n"
|
||||
#define MSGTR_LIBMENU_FailedToOpenMenu "[MENU] Konnte folgendes Menü nicht öffnen: '%s'.\n"
|
||||
|
||||
|
||||
// ========================== LIBMPCODECS ===================================
|
||||
|
||||
// libmpcodecs/ad_libdv.c
|
||||
@ -1725,10 +1713,10 @@ static char help_text[]=
|
||||
// libmpcodecs/vf_test.c, vf_yuy2.c, vf_yvu9.c
|
||||
#define MSGTR_MPCODECS_WarnNextFilterDoesntSupport "%s vom nächsten Filter/vo nicht unterstützt :(\n"
|
||||
|
||||
// ================================== LIBMPVO ====================================
|
||||
|
||||
// ================================== LIBVO ====================================
|
||||
|
||||
// mga_common.c
|
||||
|
||||
#define MSGTR_LIBVO_MGA_ErrorInConfigIoctl "[MGA] Fehler im ioctl von mga_vid_config (falsche mga_vid.o-Version?)"
|
||||
#define MSGTR_LIBVO_MGA_CouldNotGetLumaValuesFromTheKernelModule "[MGA] Konnte die Helligkeitswerte vom Kernelmodul nicht ermitteln!\n"
|
||||
#define MSGTR_LIBVO_MGA_CouldNotSetLumaValuesFromTheKernelModule "[MGA] Konnte die Helligkeitswerte vom Kernelmodul nicht setzen!\n"
|
||||
@ -1736,17 +1724,17 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_MGA_InvalidOutputFormat "[MGA] ungültiges Ausgabeformat %0X\n"
|
||||
#define MSGTR_LIBVO_MGA_IncompatibleDriverVersion "[MGA] Die Treiberversion von mga_vid ist mit dieser MPlayer-Version nicht kompatibel!\n"
|
||||
#define MSGTR_LIBVO_MGA_CouldntOpen "[MGA] Konnte %s nicht öffnen\n"
|
||||
#define MGSTR_LIBVO_MGA_ResolutionTooHigh "[MGA] Auflösung der Quelle ist in mindestens einer Dimension größer als 1023x1023. Bitte skaliere in Software um oder verwende -lavdopts lowres=1\n"
|
||||
#define MGSTR_LIBVO_MGA_ResolutionTooHigh "[MGA] Auflösung der Quelle ist in mindestens einer Dimension größer als 1023x1023.\n[MGA] Bitte skaliere in Software oder verwende -lavdopts lowres=1.\n"
|
||||
#define MGSTR_LIBVO_MGA_mgavidVersionMismatch "[MGA] Unterschiedliche Versionen des mga_vid-Treibers des Kernels (%u) und MPlayer (%u).\n"
|
||||
|
||||
|
||||
// libvo/vesa_lvo.c
|
||||
|
||||
#define MSGTR_LIBVO_VESA_ThisBranchIsNoLongerSupported "[VESA_LVO] Dieser Zweig wird nicht länger unterstützt.\n[VESA_LVO] Benutze stattdessen bitte -vo vesa:vidix.\n"
|
||||
#define MSGTR_LIBVO_VESA_CouldntOpen "[VESA_LVO] Konnte nicht öffnen: '%s'\n"
|
||||
#define MSGTR_LIBVO_VESA_InvalidOutputFormat "[VESA_LVI] Ungültiges Ausgabeformat: %s(%0X)\n"
|
||||
#define MSGTR_LIBVO_VESA_IncompatibleDriverVersion "[VESA_LVO] Die fb_vid-Treiberversion ist mit dieser MPlayer-Version nicht kompatibel!\n"
|
||||
|
||||
// libvo/vo_3dfx.c
|
||||
|
||||
#define MSGTR_LIBVO_3DFX_Only16BppSupported "[VO_3DFX] Nur 16bpp unterstützt!"
|
||||
#define MSGTR_LIBVO_3DFX_VisualIdIs "[VO_3DFX] Visuelle ID ist %lx.\n"
|
||||
#define MSGTR_LIBVO_3DFX_UnableToOpenDevice "[VO_3DFX] Kann /dev/3dfx nicht öffnen.\n"
|
||||
@ -1760,7 +1748,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_ASPECT_NoNewSizeFoundThatFitsIntoRes "[ASPECT] Fehler: Keine neue Größe gefunden, die in die Auflösung passt!\n"
|
||||
|
||||
// libvo/vo_dxr3.c
|
||||
|
||||
#define MSGTR_LIBVO_DXR3_UnableToLoadNewSPUPalette "[VO_DXR3] Kann neue SPU-Palette nicht laden!\n"
|
||||
#define MSGTR_LIBVO_DXR3_UnableToSetPlaymode "[VO_DXR3] Kann Wiedergabemodus nicht setzen!\n"
|
||||
#define MSGTR_LIBVO_DXR3_UnableToSetSubpictureMode "[VO_DXR3] Kann Subbild-Modus nicht setzen!\n"
|
||||
@ -1815,17 +1802,24 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_DXR3_XCorrection "[VO_DXR3] X-Koorektur: %d.\n"
|
||||
#define MSGTR_LIBVO_DXR3_FailedSetSignalMix "[VO_DXR3] Konnte Signal-Mix nicht setzen!\n"
|
||||
|
||||
// libvo/vo_mga.c
|
||||
// libvo/font_load_ft.c
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_NewFaceFailed "New_Face fehlgeschlagen. Vielleicht ist der Pfad zu den Schriften falsch?\nBitte stelle eine Text-Schriftdatei zur Verfügung (~/.mplayer/subfont.ttf).\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_NewMemoryFaceFailed "New_Memory_Face fehlgeschlagen..\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_SubFaceFailed "subtitle font: load_sub_face fehlgeschlagen.\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_SubFontCharsetFailed "subtitle font: prepare_charset fehlgeschlagen.\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareSubtitleFont "Kann Untertitelschriftdatei nicht vorbereiten.\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_CannotPrepareOSDFont "Kann OSD-Schrift nicht vorbereiten.\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_CannotGenerateTables "Kann Tabellen nicht generieren..\n"
|
||||
#define MSGTR_LIBVO_FONT_LOAD_FT_DoneFreeTypeFailed "FT_Done_FreeType fehlgeschlagen.\n"
|
||||
|
||||
// libvo/vo_mga.c
|
||||
#define MSGTR_LIBVO_MGA_AspectResized "[VO_MGA] aspect(): Größe geändert auf %dx%d.\n"
|
||||
#define MSGTR_LIBVO_MGA_Uninit "[VO] Deinitialisierung!\n"
|
||||
|
||||
// libvo/vo_null.c
|
||||
|
||||
#define MSGTR_LIBVO_NULL_UnknownSubdevice "[VO_NULL] Unbekanntes Subgerät: %s.\n"
|
||||
|
||||
// libvo/vo_png.c
|
||||
|
||||
#define MSGTR_LIBVO_PNG_Warning1 "[VO_PNG] Warnung: Kompressionslevel auf 0 gesetzt, Kompression deaktiviert!\n"
|
||||
#define MSGTR_LIBVO_PNG_Warning2 "[VO_PNG] Info: Benutze -vo png:z=<n>, um Kompressionslevel von 0 bis 9 zu setzen.\n"
|
||||
#define MSGTR_LIBVO_PNG_Warning3 "[VO_PNG] Info: (0 = keine Kompression, 1 = am schnellsten, wenigsten - 9 beste, langsamste Kompression)\n"
|
||||
@ -1833,7 +1827,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_PNG_ErrorInCreatePng "[VO_PNG] Fehler in create_png.\n"
|
||||
|
||||
// libvo/vo_sdl.c
|
||||
|
||||
#define MSGTR_LIBVO_SDL_CouldntGetAnyAcceptableSDLModeForOutput "[VO_SDL] Konnte keinen akzeptierbaren SDL-Modus für die Ausgabe ermitteln.\n"
|
||||
#define MSGTR_LIBVO_SDL_SetVideoModeFailed "[VO_SDL] set_video_mode: SDL_SetVideoMode fehlgeschlagen: %s.\n"
|
||||
#define MSGTR_LIBVO_SDL_SetVideoModeFailedFull "[VO_SDL] Set_fullmode: SDL_SetVideoMode fehlgeschlagen: %s.\n"
|
||||
@ -1854,7 +1847,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_SDL_UsingDriver "[VO_SDL] Benutze Treiber: %s.\n"
|
||||
|
||||
// libvo/vobsub_vidix.c
|
||||
|
||||
#define MSGTR_LIBVO_SUB_VIDIX_CantStartPlayback "[VO_SUB_VIDIX] Kann Wiedergabe nicht starten: %s\n"
|
||||
#define MSGTR_LIBVO_SUB_VIDIX_CantStopPlayback "[VO_SUB_VIDIX] Kann Wiedergabe nicht anhalten: %s\n"
|
||||
#define MSGTR_LIBVO_SUB_VIDIX_InterleavedUvForYuv410pNotSupported "[VO_SUB_VIDIX] Interleaved UV für YUV410P nicht unterstützt.\n"
|
||||
@ -1871,7 +1863,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_SUB_VIDIX_CouldntGetCapability "[VO_SUB_VIDIX] Konnte Fähigkeit nicht ermitteln: %s.\n"
|
||||
|
||||
// libvo/vo_svga.c
|
||||
|
||||
#define MSGTR_LIBVO_SVGA_ForcedVidmodeNotAvailable "[VO_SVGA] Erzwungener vid_mode %d (%s) nicht verfügbar.\n"
|
||||
#define MSGTR_LIBVO_SVGA_ForcedVidmodeTooSmall "[VO_SVGA] Erzwungener vid_mode %d (%s) zu klein.\n"
|
||||
#define MSGTR_LIBVO_SVGA_Vidmode "[VO_SVGA] Vid_mode: %d, %dx%d %dbpp.\n"
|
||||
@ -1888,7 +1879,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_SVGA_UsingVidix "[VO_SVGA] Benutze VIDIX. b=%i h=%i mb=%i mh=%i\n"
|
||||
|
||||
// libvo/vo_tdfxfb.c
|
||||
|
||||
#define MSGTR_LIBVO_TDFXFB_CantOpen "[VO_TDFXFB] Konnte %s nicht öffnen: %s.\n"
|
||||
#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetFscreenInfo "[VO_TDFXFB] Problem mit FBITGET_FSCREENINFO ioctl: %s.\n"
|
||||
#define MSGTR_LIBVO_TDFXFB_ProblemWithFbitgetVscreenInfo "[VO_TDFXFB] Problem mit FBITGET_VSCREENINFO ioctl: %s.\n"
|
||||
@ -1903,7 +1893,6 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_TDFXFB_ScreenIs "[VO_TDFXFB] Bildschirm ist %dx%d bei %d bpp, Input ist %dx%d bei %d bpp, Norm ist %dx%d.\n"
|
||||
|
||||
// libvo/vo_tdfx_vid.c
|
||||
|
||||
#define MSGTR_LIBVO_TDFXVID_Move "[VO_TDXVID] Verschiebe %d(%d) x %d => %d.\n"
|
||||
#define MSGTR_LIBVO_TDFXVID_AGPMoveFailedToClearTheScreen "[VO_TDFXVID] AGP-Verschiebung konnte Bildschirm nicht löschen.\n"
|
||||
#define MSGTR_LIBVO_TDFXVID_BlitFailed "[VO_TDFXVID] Blit fehlgeschlagen.\n"
|
||||
@ -1926,11 +1915,9 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_TDFXVID_UnknownFormat "[VO_TDFXVID] unbekanntes Format: 0x%x.\n"
|
||||
|
||||
// libvo/vo_tga.c
|
||||
|
||||
#define MSGTR_LIBVO_TGA_UnknownSubdevice "[VO_TGA] Unbekanntes Subgerät: %s.\n"
|
||||
|
||||
// libvo/vo_vesa.c
|
||||
|
||||
#define MSGTR_LIBVO_VESA_FatalErrorOccurred "[VO_VESA] Fataler Fehler aufgetreten! Kann nicht fortfahren.\n"
|
||||
#define MSGTR_LIBVO_VESA_UnknownSubdevice "[VO_VESA] unbekanntes Subgerät: '%s'.\n"
|
||||
#define MSGTR_LIBVO_VESA_YouHaveTooLittleVideoMemory "[VO_VESA] Du hast zu wenig Videospeicher für diesen Modus:\n[VO_VESA] Benötigt: %08lX vorhanden: %08lX.\n"
|
||||
@ -1973,11 +1960,9 @@ static char help_text[]=
|
||||
#define MSGTR_LIBVO_VESA_InitializationComplete "[VO_VESA] VESA-Initialisierung abgeschlossen.\n"
|
||||
|
||||
// libvo/vo_x11.c
|
||||
|
||||
#define MSGTR_LIBVO_X11_DrawFrameCalled "[VO_X11] draw_frame() aufgerufen!!!!!!\n"
|
||||
|
||||
// libvo/vo_xv.c
|
||||
|
||||
#define MSGTR_LIBVO_XV_DrawFrameCalled "[VO_XV] draw_frame() aufgerufen!!!!!!\n"
|
||||
#define MSGTR_LIBVO_XV_SharedMemoryNotSupported "[VO_XV] Shared Memory nicht unterstützt\nGreife auf normalen Xv zurück.\n"
|
||||
#define MSGTR_LIBVO_XV_XvNotSupportedByX11 "[VO_XV] Sorry, Xv von dieser X11-Version/diesem Treiber nicht unterstützt\n[VO_XV] *********** Probiere mit -vo x11 oder -vo sdl ***************\n"
|
||||
@ -1995,11 +1980,9 @@ static char help_text[]=
|
||||
"[VO_XV] Probiere -vo x11.\n"
|
||||
|
||||
// loader/ldt_keeper.c
|
||||
|
||||
#define MSGTR_LOADER_DYLD_Warning "WARNUNG: Versuche, DLL-Codecs zu verwenden, die Umgebungsvariable\n DYLD_BIND_AT_LAUNCH ist aber nicht gesetzt. Dies führt wahrscheinlich\n zu einem Absturz.\n"
|
||||
|
||||
// stream/stream_radio.c
|
||||
|
||||
#define MSGTR_RADIO_ChannelNamesDetected "[Radio] Radiokanalnamen erkannt.\n"
|
||||
#define MSGTR_RADIO_FreqRange "[Radio] Erlaubter Frequenzbereich ist %.2f-%.2f MHz.\n"
|
||||
#define MSGTR_RADIO_WrongFreqForChannel "[Radio] Falsche Frequenz für Kanal %s\n"
|
||||
@ -2043,11 +2026,13 @@ static char help_text[]=
|
||||
#define MSGTR_RADIO_DriverBSDBT848 "[Radio] Benutze *BSD BT848-Radioschnittstelle.\n"
|
||||
#define MSGTR_RADIO_AvailableDrivers "[Radio] Verfügbare Treiber: "
|
||||
|
||||
|
||||
// ================================== LIBASS ====================================
|
||||
|
||||
// ass_bitmap.c
|
||||
#define MSGTR_LIBASS_FT_Glyph_To_BitmapError "[ass] Fehler %d in FT_Glyph_To_Bitmap\n"
|
||||
#define MSGTR_LIBASS_UnsupportedPixelMode "[ass] Nichtunterstützter Pixelmodus: %d\n"
|
||||
#define MSGTR_LIBASS_GlyphBBoxTooLarge "[ass] Umgebender Rahmen für Glyph zu groß: %dx%dpx\n"
|
||||
|
||||
// ass.c
|
||||
#define MSGTR_LIBASS_NoStyleNamedXFoundUsingY "[ass] [%p] Warnung: kein Style mit Namen '%s' gefunden, verwende '%s'\n"
|
||||
@ -2066,12 +2051,12 @@ static char help_text[]=
|
||||
#define MSGTR_LIBASS_FailedToCreateDirectory "[ass] Fehler beim Erstellen des Verzeichnisses %s\n"
|
||||
#define MSGTR_LIBASS_NotADirectory "[ass] Kein Verzeichnis: %s\n"
|
||||
|
||||
// // ass_cache.c
|
||||
// ass_cache.c
|
||||
#define MSGTR_LIBASS_TooManyFonts "[ass] Zu viele Schriften\n"
|
||||
#define MSGTR_LIBASS_ErrorOpeningFont "[ass] Fehler beim Öffnen der Schrift: %s, %d\n"
|
||||
|
||||
// ass_fontconfig.c
|
||||
#define MSGTR_LIBASS_SelectedFontFamilyIsNotTheRequestedOne "[ass] fontconfig: Die gewählte Schriftfamilie ist nicht die angeforderte: '%s' != '%s'\n"
|
||||
#define MSGTR_LIBASS_SelectedFontFamilyIsNotTheRequestedOne "[ass] fontconfig: Die gewählte Schrift ist nicht die angeforderte: '%s' != '%s'\n"
|
||||
#define MSGTR_LIBASS_UsingDefaultFontFamily "[ass] fontconfig_select: Verwende Standardschriftfamilie: (%s, %d, %d) -> %s, %d\n"
|
||||
#define MSGTR_LIBASS_UsingDefaultFont "[ass] fontconfig_select: Verwende Standardschrift: (%s, %d, %d) -> %s, %d\n"
|
||||
#define MSGTR_LIBASS_UsingArialFontFamily "[ass] fontconfig_select: Verwende 'Arial'-Schriftfamilie: (%s, %d, %d) -> %s, %d\n"
|
||||
@ -2102,7 +2087,7 @@ static char help_text[]=
|
||||
#define MSGTR_LIBASS_EventHeightHasChanged "[ass] Warnung! Ereignishöhe geändert! \n"
|
||||
|
||||
// ass_font.c
|
||||
#define MSGTR_LIBASS_GlyphNotFoundReselectingFont "[ass] Glyph 0x%X nicht gefunden, wähle Schrift erneut für (%s, %d, %d)\n"
|
||||
#define MSGTR_LIBASS_GlyphNotFoundReselectingFont "[ass] Glyph 0x%X nicht gefunden, wähle weitere Schrift für (%s, %d, %d)\n"
|
||||
#define MSGTR_LIBASS_GlyphNotFound "[ass] Glyph 0x%X in Schrift für (%s, %d, %d) nicht gefunden\n"
|
||||
#define MSGTR_LIBASS_ErrorOpeningMemoryFont "[ass] Fehler beim Öffnen der Schrift im Speicher: %s\n"
|
||||
#define MSGTR_LIBASS_NoCharmaps "[ass] Schriftfläche ohne Zeichentabelle\n"
|
||||
@ -2157,4 +2142,51 @@ static char help_text[]=
|
||||
#define MSGTR_TV_Bt848UnableToStopCapture "tvi_bsdbt848: Kann Aufnahme nicht stoppen. Fehler: %s\n"
|
||||
#define MSGTR_TV_TTSupportedLanguages "Unterstützte Videotextsprachen:\n"
|
||||
#define MSGTR_TV_TTSelectedLanguage "Gewählte Standardvideotextsprache: %s\n"
|
||||
#define MSGTR_TV_ScannerNotAvailableWithoutTuner "Kanal-Scanner ist ohne Tuner nicht verfügbar.\n"
|
||||
|
||||
//tvi_dshow.c
|
||||
#define MSGTR_TVI_DS_UnableConnectInputVideoDecoder "Kann vorhandenen Input nicht mit Videodecoder verbinden. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableConnectInputAudioDecoder "Kann vorhandenen Input nicht mit Audiodecoder verbinden. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableSelectVideoFormat "tvi_dshow: Kann Videoformat nicht auswählen. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableSelectAudioFormat "tvi_dshow: Kann Audioformat nicht auswählen. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableGetMediaControlInterface "tvi_dshow: Bekomme IMediaControl-Interface nicht. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableStartGraph "tvi_dshow: Kann Graph nicht starten! Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_DeviceNotFound "tvi_dshow: Gerät #%d nicht gefunden.\n"
|
||||
#define MSGTR_TVI_DS_UnableGetDeviceName "tvi_dshow: Kann Namen für Gerät #%d nicht ermitteln.\n"
|
||||
#define MSGTR_TVI_DS_UsingDevice "tvi_dshow: Benutze Gerät #%d: %s\n"
|
||||
#define MSGTR_TVI_DS_DeviceName "tvi_dshow: Gerät #%d: %s\n"
|
||||
#define MSGTR_TVI_DS_DirectGetFreqFailed "tvi_dshow: Kann Frequenz nicht direkt ermitteln. Im Betriebssystem eingebaute\nKanaltabelle wird benutzt.\n"
|
||||
#define MSGTR_TVI_DS_DirectSetFreqFailed "tvi_dshow: Kann Frequenz nicht direkt setzen. Im Betriebssystem eingebaute\nKanaltabelle wird benutzt.\n"
|
||||
#define MSGTR_TVI_DS_SupportedNorms "tvi_dshow: unterstützte Normen:"
|
||||
#define MSGTR_TVI_DS_AvailableVideoInputs "tvi_dshow: verfügbare Video-Inputs:"
|
||||
#define MSGTR_TVI_DS_AvailableAudioInputs "tvi_dshow: verfügbare Audio-Inputs:"
|
||||
//following phrase will be printed near the selected audio/video input
|
||||
#define MSGTR_TVI_DS_InputSelected "(gewählt)"
|
||||
#define MSGTR_TVI_DS_UnableExtractFreqTable "tvi_dshow: Kann Frequenztabelle nicht von kstvtune.ax laden\n"
|
||||
#define MSGTR_TVI_DS_WrongDeviceParam "tvi_dshow: Falscher Geräteparameter: %s\n"
|
||||
#define MSGTR_TVI_DS_WrongDeviceIndex "tvi_dshow: Falscher Geräteindex: %d\n"
|
||||
#define MSGTR_TVI_DS_WrongADeviceParam "tvi_dshow: Falscher adevice-Parameter: %s\n"
|
||||
#define MSGTR_TVI_DS_WrongADeviceIndex "tvi_dshow: Falscher adevice-Index: %d\n"
|
||||
|
||||
#define MSGTR_TVI_DS_SamplerateNotsupported "tvi_dshow: Samplerate %d wird vom Gerät nicht unterstützt. Verwende\nerste verfügbare.\n"
|
||||
#define MSGTR_TVI_DS_VideoAdjustigNotSupported "tvi_dshow: Anpassen von Helligkeit/Farbton/Sättigung wird vom Gerät nicht\nunterstützt\n"
|
||||
|
||||
#define MSGTR_TVI_DS_ChangingWidthHeightNotSupported "tvi_dshow: Änderung von Videobreite/-höhe wird vom Gerät nicht unterstützt.\n"
|
||||
#define MSGTR_TVI_DS_SelectingInputNotSupported "tvi_dshow: Wahl der Capture-Quelle wird vom Gerät nicht unterstützt.\n"
|
||||
#define MSGTR_TVI_DS_FreqTableLoaded "tvi_dshow: Frequenztabelle des Systems (%s) für Land-ID=%d (Kanäle:%d) geladen.\n"
|
||||
#define MSGTR_TVI_DS_ErrorParsingAudioFormatStruct "tvi_dshow: Kann Struktur für Audioformat nicht parsen.\n"
|
||||
#define MSGTR_TVI_DS_ErrorParsingVideoFormatStruct "tvi_dshow: Kann Struktur für Videoformat nicht parsen.\n"
|
||||
#define MSGTR_TVI_DS_UnableSetAudioMode "tvi_dshow: Kann Audiomodus %d nicht setzen. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnsupportedMediaType "tvi_dshow: Nichtunterstützten Medientyp an %s übergeben\n"
|
||||
#define MSGTR_TVI_DS_UnableGetsupportedVideoFormats "tvi_dshow: Kann vom Video-Pin unterstützte Medienformate nicht ermitteln.\nFehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableGetsupportedAudioFormats "tvi_dshow: Kann vom Audio-Pin unterstützte Medienformate nicht ermitteln.\nFehler:0x%x Deaktiviere Ton.\n"
|
||||
#define MSGTR_TVI_DS_UnableFindNearestChannel "tvi_dshow: Kann nächstgelegenen Kanal in Systemfrequenztabelle nicht finden\n"
|
||||
#define MSGTR_TVI_DS_UnableToSetChannel "tvi_dshow: Kann nicht auf nächstgelegenen Kanal aus der Systemfrequenztabelle\nwechseln. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableTerminateVPPin "tvi_dshow: Kann VideoPort-Pin mit keinem Filter des Graphen terminieren. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableBuildVideoSubGraph "tvi_dshow: Kann Videokette des Capture-Graphen nicht erstellen. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableBuildAudioSubGraph "tvi_dshow: Kann Audiokette des Capture-Graphen nicht erstellen. Fehler:0x%x\n"
|
||||
#define MSGTR_TVI_DS_UnableBuildVBISubGraph "tvi_dshow: Kann VBI-Kette des Capture-Graphen nicht erstellen. Fehler:0x%x\n""
|
||||
#define MSGTR_TVI_DS_GraphInitFailure "tvi_dshow: Initialisierung des Directshow-Graph fehlgeschlagen.\n"
|
||||
#define MSGTR_TVI_DS_NoVideoCaptureDevice "tvi_dshow: Kein Gerät für Videoerfassung gefunden\n"
|
||||
#define MSGTR_TVI_DS_NoAudioCaptureDevice "tvi_dshow: Kein Gerät für Audioerfassung gefunden\n"
|
||||
#define MSGTR_TVI_DS_GetActualMediatypeFailed "tvi_dshow: Kann eigentlichen Medientyp nicht ermitteln (Fehler:0x%x).\nNehme an, dieser entspricht dem angeforderten.\n"
|
||||
|
1422
help/help_mp-zh_CN.h
1422
help/help_mp-zh_CN.h
File diff suppressed because it is too large
Load Diff
@ -129,6 +129,8 @@ static char* _select_font(fc_instance_t* priv, const char* family, unsigned bold
|
||||
goto error;
|
||||
|
||||
fset = FcFontSort(priv->config, pat, FcTrue, NULL, &result);
|
||||
if (!fset)
|
||||
goto error;
|
||||
|
||||
for (curf = 0; curf < fset->nfont; ++curf) {
|
||||
FcPattern* curp = fset->fonts[curf];
|
||||
@ -423,45 +425,48 @@ fc_instance_t* fontconfig_init(ass_library_t* library, FT_Library ftlibrary, con
|
||||
for (i = 0; i < library->num_fontdata; ++i)
|
||||
process_fontdata(priv, library, ftlibrary, i);
|
||||
|
||||
if (FcDirCacheValid((const FcChar8 *)dir) == FcFalse)
|
||||
{
|
||||
mp_msg(MSGT_ASS, MSGL_INFO, MSGTR_LIBASS_UpdatingFontCache);
|
||||
if (FcGetVersion() >= 20390 && FcGetVersion() < 20400)
|
||||
mp_msg(MSGT_ASS, MSGL_WARN,
|
||||
MSGTR_LIBASS_BetaVersionsOfFontconfigAreNotSupported);
|
||||
// FontConfig >= 2.4.0 updates cache automatically in FcConfigAppFontAddDir()
|
||||
if (FcGetVersion() < 20390) {
|
||||
FcFontSet* fcs;
|
||||
FcStrSet* fss;
|
||||
fcs = FcFontSetCreate();
|
||||
fss = FcStrSetCreate();
|
||||
rc = FcStrSetAdd(fss, (const FcChar8*)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcStrSetAddFailed);
|
||||
goto ErrorFontCache;
|
||||
if (dir) {
|
||||
if (FcDirCacheValid((const FcChar8 *)dir) == FcFalse)
|
||||
{
|
||||
mp_msg(MSGT_ASS, MSGL_INFO, MSGTR_LIBASS_UpdatingFontCache);
|
||||
if (FcGetVersion() >= 20390 && FcGetVersion() < 20400)
|
||||
mp_msg(MSGT_ASS, MSGL_WARN,
|
||||
MSGTR_LIBASS_BetaVersionsOfFontconfigAreNotSupported);
|
||||
// FontConfig >= 2.4.0 updates cache automatically in FcConfigAppFontAddDir()
|
||||
if (FcGetVersion() < 20390) {
|
||||
FcFontSet* fcs;
|
||||
FcStrSet* fss;
|
||||
fcs = FcFontSetCreate();
|
||||
fss = FcStrSetCreate();
|
||||
rc = FcStrSetAdd(fss, (const FcChar8*)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcStrSetAddFailed);
|
||||
goto ErrorFontCache;
|
||||
}
|
||||
|
||||
rc = FcDirScan(fcs, fss, NULL, FcConfigGetBlanks(priv->config),
|
||||
(const FcChar8 *)dir, FcFalse);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcDirScanFailed);
|
||||
goto ErrorFontCache;
|
||||
}
|
||||
|
||||
rc = FcDirSave(fcs, fss, (const FcChar8 *)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcDirSave);
|
||||
goto ErrorFontCache;
|
||||
}
|
||||
ErrorFontCache:
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
rc = FcDirScan(fcs, fss, NULL, FcConfigGetBlanks(priv->config), (const FcChar8 *)dir, FcFalse);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcDirScanFailed);
|
||||
goto ErrorFontCache;
|
||||
}
|
||||
|
||||
rc = FcDirSave(fcs, fss, (const FcChar8 *)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcDirSave);
|
||||
goto ErrorFontCache;
|
||||
}
|
||||
ErrorFontCache:
|
||||
;
|
||||
rc = FcConfigAppFontAddDir(priv->config, (const FcChar8*)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcConfigAppFontAddDirFailed);
|
||||
}
|
||||
}
|
||||
|
||||
rc = FcConfigAppFontAddDir(priv->config, (const FcChar8*)dir);
|
||||
if (!rc) {
|
||||
mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FcConfigAppFontAddDirFailed);
|
||||
}
|
||||
|
||||
priv->family_default = family ? strdup(family) : 0;
|
||||
priv->path_default = path ? strdup(path) : 0;
|
||||
priv->index_default = 0;
|
||||
|
@ -37,7 +37,7 @@
|
||||
#define LE_32(x) (le2me_32(*(unsigned int *)(x)))
|
||||
|
||||
// pertinent tables for IMA ADPCM
|
||||
static int adpcm_step[89] =
|
||||
static const int16_t adpcm_step[89] =
|
||||
{
|
||||
7, 8, 9, 10, 11, 12, 13, 14, 16, 17,
|
||||
19, 21, 23, 25, 28, 31, 34, 37, 41, 45,
|
||||
@ -50,22 +50,18 @@ static int adpcm_step[89] =
|
||||
15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
|
||||
};
|
||||
|
||||
static int adpcm_index[16] =
|
||||
static const int8_t adpcm_index[8] =
|
||||
{
|
||||
-1, -1, -1, -1, 2, 4, 6, 8,
|
||||
-1, -1, -1, -1, 2, 4, 6, 8
|
||||
};
|
||||
|
||||
// useful macros
|
||||
// clamp a number between 0 and 88
|
||||
#define CLAMP_0_TO_88(x) if (x < 0) x = 0; else if (x > 88) x = 88;
|
||||
#define CLAMP_0_TO_88(x) x = av_clip(x, 0, 88);
|
||||
// clamp a number within a signed 16-bit range
|
||||
#define CLAMP_S16(x) if (x < -32768) x = -32768; \
|
||||
else if (x > 32767) x = 32767;
|
||||
#define CLAMP_S16(x) x = av_clip_int16(x);
|
||||
// clamp a number above 16
|
||||
#define CLAMP_ABOVE_16(x) if (x < 16) x = 16;
|
||||
// sign extend a 16-bit value
|
||||
#define SE_16BIT(x) if (x & 0x8000) x -= 0x10000;
|
||||
// sign extend a 4-bit value
|
||||
#define SE_4BIT(x) if (x & 0x8) x -= 0x10;
|
||||
|
||||
@ -132,44 +128,31 @@ static int control(sh_audio_t *sh_audio,int cmd,void* arg, ...)
|
||||
|
||||
static void decode_nibbles(unsigned short *output,
|
||||
int output_size, int channels,
|
||||
int predictor_l, int index_l,
|
||||
int predictor_r, int index_r)
|
||||
int predictor[2], int index[2])
|
||||
{
|
||||
int step[2];
|
||||
int predictor[2];
|
||||
int index[2];
|
||||
int diff;
|
||||
int i;
|
||||
int sign;
|
||||
int delta;
|
||||
int channel_number = 0;
|
||||
|
||||
step[0] = adpcm_step[index_l];
|
||||
step[1] = adpcm_step[index_r];
|
||||
predictor[0] = predictor_l;
|
||||
predictor[1] = predictor_r;
|
||||
index[0] = index_l;
|
||||
index[1] = index_r;
|
||||
step[0] = adpcm_step[index[0]];
|
||||
step[1] = adpcm_step[index[1]];
|
||||
|
||||
for (i = 0; i < output_size; i++)
|
||||
{
|
||||
delta = output[i];
|
||||
sign = delta & 8;
|
||||
delta = delta & 7;
|
||||
|
||||
index[channel_number] += adpcm_index[delta];
|
||||
CLAMP_0_TO_88(index[channel_number]);
|
||||
|
||||
sign = delta & 8;
|
||||
delta = delta & 7;
|
||||
delta = 2 * delta + 1;
|
||||
if (sign) delta = -delta;
|
||||
|
||||
diff = step[channel_number] >> 3;
|
||||
if (delta & 4) diff += step[channel_number];
|
||||
if (delta & 2) diff += step[channel_number] >> 1;
|
||||
if (delta & 1) diff += step[channel_number] >> 2;
|
||||
|
||||
if (sign)
|
||||
predictor[channel_number] -= diff;
|
||||
else
|
||||
predictor[channel_number] += diff;
|
||||
predictor[channel_number] += (delta * step[channel_number]) >> 3;
|
||||
|
||||
CLAMP_S16(predictor[channel_number]);
|
||||
output[i] = predictor[channel_number];
|
||||
@ -182,40 +165,26 @@ static void decode_nibbles(unsigned short *output,
|
||||
}
|
||||
|
||||
static int qt_ima_adpcm_decode_block(unsigned short *output,
|
||||
unsigned char *input, int channels)
|
||||
unsigned char *input, int channels, int block_size)
|
||||
{
|
||||
int initial_predictor_l = 0;
|
||||
int initial_predictor_r = 0;
|
||||
int initial_index_l = 0;
|
||||
int initial_index_r = 0;
|
||||
int initial_predictor[2];
|
||||
int initial_index[2];
|
||||
int i;
|
||||
|
||||
initial_predictor_l = BE_16(&input[0]);
|
||||
initial_index_l = initial_predictor_l;
|
||||
if (channels > 1) channels = 2;
|
||||
if (block_size < channels * QT_IMA_ADPCM_BLOCK_SIZE)
|
||||
return -1;
|
||||
|
||||
// mask, sign-extend, and clamp the predictor portion
|
||||
initial_predictor_l &= 0xFF80;
|
||||
SE_16BIT(initial_predictor_l);
|
||||
CLAMP_S16(initial_predictor_l);
|
||||
|
||||
// mask and clamp the index portion
|
||||
initial_index_l &= 0x7F;
|
||||
CLAMP_0_TO_88(initial_index_l);
|
||||
|
||||
// handle stereo
|
||||
if (channels > 1)
|
||||
{
|
||||
initial_predictor_r = BE_16(&input[QT_IMA_ADPCM_BLOCK_SIZE]);
|
||||
initial_index_r = initial_predictor_r;
|
||||
for (i = 0; i < channels; i++) {
|
||||
initial_index[i] = initial_predictor[i] = (int16_t)BE_16(&input[i * QT_IMA_ADPCM_BLOCK_SIZE]);
|
||||
|
||||
// mask, sign-extend, and clamp the predictor portion
|
||||
initial_predictor_r &= 0xFF80;
|
||||
SE_16BIT(initial_predictor_r);
|
||||
CLAMP_S16(initial_predictor_r);
|
||||
initial_predictor[i] &= ~0x7F;
|
||||
CLAMP_S16(initial_predictor[i]);
|
||||
|
||||
// mask and clamp the index portion
|
||||
initial_index_r &= 0x7F;
|
||||
CLAMP_0_TO_88(initial_index_r);
|
||||
initial_index[i] &= 0x7F;
|
||||
CLAMP_0_TO_88(initial_index[i]);
|
||||
}
|
||||
|
||||
// break apart all of the nibbles in the block
|
||||
@ -236,8 +205,7 @@ static int qt_ima_adpcm_decode_block(unsigned short *output,
|
||||
|
||||
decode_nibbles(output,
|
||||
QT_IMA_ADPCM_SAMPLES_PER_BLOCK * channels, channels,
|
||||
initial_predictor_l, initial_index_l,
|
||||
initial_predictor_r, initial_index_r);
|
||||
initial_predictor, initial_index);
|
||||
|
||||
return QT_IMA_ADPCM_SAMPLES_PER_BLOCK * channels;
|
||||
}
|
||||
@ -245,24 +213,21 @@ static int qt_ima_adpcm_decode_block(unsigned short *output,
|
||||
static int ms_ima_adpcm_decode_block(unsigned short *output,
|
||||
unsigned char *input, int channels, int block_size)
|
||||
{
|
||||
int predictor_l = 0;
|
||||
int predictor_r = 0;
|
||||
int index_l = 0;
|
||||
int index_r = 0;
|
||||
int predictor[2];
|
||||
int index[2];
|
||||
int i;
|
||||
int channel_counter;
|
||||
int channel_index;
|
||||
int channel_index_l;
|
||||
int channel_index_r;
|
||||
|
||||
predictor_l = LE_16(&input[0]);
|
||||
SE_16BIT(predictor_l);
|
||||
index_l = input[2];
|
||||
if (channels == 2)
|
||||
{
|
||||
predictor_r = LE_16(&input[4]);
|
||||
SE_16BIT(predictor_r);
|
||||
index_r = input[6];
|
||||
if (channels > 1) channels = 2;
|
||||
if (block_size < MS_IMA_ADPCM_PREAMBLE_SIZE * channels)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < channels; i++) {
|
||||
predictor[i] = (int16_t)LE_16(&input[i * 4]);
|
||||
index[i] = input[i * 4 + 2];
|
||||
}
|
||||
|
||||
if (channels == 1)
|
||||
@ -306,8 +271,7 @@ static int ms_ima_adpcm_decode_block(unsigned short *output,
|
||||
decode_nibbles(output,
|
||||
(block_size - MS_IMA_ADPCM_PREAMBLE_SIZE * channels) * 2,
|
||||
channels,
|
||||
predictor_l, index_l,
|
||||
predictor_r, index_r);
|
||||
predictor, index);
|
||||
|
||||
return (block_size - MS_IMA_ADPCM_PREAMBLE_SIZE * channels) * 2;
|
||||
}
|
||||
@ -317,20 +281,17 @@ static int dk4_ima_adpcm_decode_block(unsigned short *output,
|
||||
{
|
||||
int i;
|
||||
int output_ptr;
|
||||
int predictor_l = 0;
|
||||
int predictor_r = 0;
|
||||
int index_l = 0;
|
||||
int index_r = 0;
|
||||
int predictor[2];
|
||||
int index[2];
|
||||
|
||||
// the first predictor value goes straight to the output
|
||||
predictor_l = output[0] = LE_16(&input[0]);
|
||||
SE_16BIT(predictor_l);
|
||||
index_l = input[2];
|
||||
if (channels == 2)
|
||||
{
|
||||
predictor_r = output[1] = LE_16(&input[4]);
|
||||
SE_16BIT(predictor_r);
|
||||
index_r = input[6];
|
||||
if (channels > 1) channels = 2;
|
||||
if (block_size < MS_IMA_ADPCM_PREAMBLE_SIZE * channels)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < channels; i++) {
|
||||
// the first predictor value goes straight to the output
|
||||
predictor[i] = output[i] = (int16_t)LE_16(&input[i * 4]);
|
||||
index[i] = input[i * 4 + 2];
|
||||
}
|
||||
|
||||
output_ptr = channels;
|
||||
@ -343,34 +304,27 @@ static int dk4_ima_adpcm_decode_block(unsigned short *output,
|
||||
decode_nibbles(&output[channels],
|
||||
(block_size - MS_IMA_ADPCM_PREAMBLE_SIZE * channels) * 2 - channels,
|
||||
channels,
|
||||
predictor_l, index_l,
|
||||
predictor_r, index_r);
|
||||
predictor, index);
|
||||
|
||||
return (block_size - MS_IMA_ADPCM_PREAMBLE_SIZE * channels) * 2 - channels;
|
||||
}
|
||||
|
||||
static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
|
||||
{
|
||||
int res = -1;
|
||||
int (*decode_func)(unsigned short *output, unsigned char *input, int channels, int block_size) = qt_ima_adpcm_decode_block;
|
||||
if (demux_read_data(sh_audio->ds, sh_audio->a_in_buffer,
|
||||
sh_audio->ds->ss_mul) !=
|
||||
sh_audio->ds->ss_mul)
|
||||
return -1;
|
||||
|
||||
if ((sh_audio->format == 0x11) || (sh_audio->format == 0x1100736d))
|
||||
{
|
||||
return 2 * ms_ima_adpcm_decode_block(
|
||||
(unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels,
|
||||
sh_audio->ds->ss_mul);
|
||||
}
|
||||
decode_func = ms_ima_adpcm_decode_block;
|
||||
else if (sh_audio->format == 0x61)
|
||||
{
|
||||
return 2 * dk4_ima_adpcm_decode_block(
|
||||
(unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels,
|
||||
sh_audio->ds->ss_mul);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 2 * qt_ima_adpcm_decode_block(
|
||||
(unsigned short*)buf, sh_audio->a_in_buffer, sh_audio->wf->nChannels);
|
||||
}
|
||||
decode_func = dk4_ima_adpcm_decode_block;
|
||||
|
||||
res = decode_func((unsigned short*)buf, sh_audio->a_in_buffer,
|
||||
sh_audio->wf->nChannels, sh_audio->ds->ss_mul);
|
||||
if (res < 0) return res;
|
||||
else return 2 * res;
|
||||
}
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "mp_msg.h"
|
||||
@ -501,8 +500,9 @@ static int demux_asf_fill_buffer(demuxer_t *demux, demux_stream_t *ds){
|
||||
int len2=p[0];
|
||||
p++;
|
||||
//printf(" group part: %d bytes\n",len2);
|
||||
if(len2 > len - 1) break; // Not enough data
|
||||
assert(len2 > 0 && len2 <= asf->packetsize);
|
||||
if(len2 > len - 1 || len2 < 0) break; // Not enough data
|
||||
if(len2 == 0) continue;
|
||||
len2 = FFMIN(len2, asf->packetsize);
|
||||
demux_asf_read_packet(demux,p,len2,streamno,seq,x,duration,-1,keyframe);
|
||||
p+=len2;
|
||||
len-=len2+1;
|
||||
@ -515,8 +515,9 @@ static int demux_asf_fill_buffer(demuxer_t *demux, demux_stream_t *ds){
|
||||
default:
|
||||
// NO GROUPING:
|
||||
//printf("fragment offset: %d \n",sh->x);
|
||||
if (len <= 0) break;
|
||||
if (!asf->asf_is_dvr_ms || asf->found_first_key_frame) {
|
||||
assert(len > 0 && len <= asf->packetsize);
|
||||
len = FFMIN(len, asf->packetsize);
|
||||
demux_asf_read_packet(demux,p,len,streamno,seq,time2,duration,x,keyframe);
|
||||
}
|
||||
p+=len;
|
||||
|
@ -423,6 +423,7 @@ static int demux_audio_open(demuxer_t* demuxer) {
|
||||
if((w->wFormatTag == 0x01) && (w->nChannels == 2) && (w->nSamplesPerSec == 44100)) {
|
||||
unsigned char buf[16384]; // vlc uses 16384*4 (4 dts frames)
|
||||
unsigned int i;
|
||||
memset(buf, 0, sizeof(buf));
|
||||
stream_read(s, buf, sizeof(buf));
|
||||
for (i = 0; i < sizeof(buf) - 5; i += 2) {
|
||||
// DTS, 14 bit, LE
|
||||
|
@ -928,10 +928,6 @@ static int gen_sh_video(sh_video_t* sh, mov_track_t* trak, int timescale) {
|
||||
int hdr_ptr = 76; // the byte just after depth
|
||||
unsigned char *palette_map;
|
||||
|
||||
depth = trak->stdata[75] | (trak->stdata[74] << 8);
|
||||
if (trak->fourcc == mmioFOURCC('r', 'a', 'w', ' ')) {
|
||||
sh->format = IMGFMT_RGB | depth;
|
||||
} else
|
||||
sh->format=trak->fourcc;
|
||||
|
||||
// crude video delay from editlist0 hack ::atm
|
||||
@ -949,6 +945,11 @@ static int gen_sh_video(sh_video_t* sh, mov_track_t* trak, int timescale) {
|
||||
trak->stdata_len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
depth = trak->stdata[75] | (trak->stdata[74] << 8);
|
||||
if (trak->fourcc == mmioFOURCC('r', 'a', 'w', ' '))
|
||||
sh->format = IMGFMT_RGB | depth;
|
||||
|
||||
// stdata[]:
|
||||
// 8 short version
|
||||
// 10 short revision
|
||||
|
@ -62,6 +62,7 @@ static struct {
|
||||
{ "ape", DEMUXER_TYPE_LAVF },
|
||||
{ "apl", DEMUXER_TYPE_LAVF },
|
||||
{ "mac", DEMUXER_TYPE_LAVF },
|
||||
{ "str", DEMUXER_TYPE_LAVF },
|
||||
|
||||
// At least the following are hacks against broken autodetection
|
||||
// that should not be there
|
||||
|
@ -27,6 +27,7 @@ static const AVCodecTag mp_wav_tags[] = {
|
||||
{ CODEC_ID_ADPCM_EA_MAXIS_XA, MKTAG('A', 'D', 'X', 'A')},
|
||||
{ CODEC_ID_ADPCM_IMA_WS, MKTAG('A', 'I', 'W', 'S')},
|
||||
{ CODEC_ID_ADPCM_THP, MKTAG('T', 'H', 'P', 'A')},
|
||||
{ CODEC_ID_ADPCM_XA, MKTAG('P', 'S', 'X', 'A')},
|
||||
{ CODEC_ID_AMR_NB, MKTAG('n', 'b', 0, 0)},
|
||||
{ CODEC_ID_COOK, MKTAG('c', 'o', 'o', 'k')},
|
||||
{ CODEC_ID_DSICINAUDIO, MKTAG('D', 'C', 'I', 'A')},
|
||||
@ -69,6 +70,7 @@ static const AVCodecTag mp_bmp_tags[] = {
|
||||
{ CODEC_ID_FLIC, MKTAG('F', 'L', 'I', 'C')},
|
||||
{ CODEC_ID_IDCIN, MKTAG('I', 'D', 'C', 'I')},
|
||||
{ CODEC_ID_INTERPLAY_VIDEO, MKTAG('I', 'N', 'P', 'V')},
|
||||
{ CODEC_ID_MDEC, MKTAG('M', 'D', 'E', 'C')},
|
||||
{ CODEC_ID_RL2, MKTAG('R', 'L', '2', 'V')},
|
||||
{ CODEC_ID_ROQ, MKTAG('R', 'o', 'Q', 'V')},
|
||||
{ CODEC_ID_THP, MKTAG('T', 'H', 'P', 'V')},
|
||||
|
@ -33,14 +33,6 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include "config.h"
|
||||
#ifndef HAVE_WINSOCK2
|
||||
#define closesocket close
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#else
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
@ -50,7 +42,9 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
#include "mp_msg.h"
|
||||
#include "rtsp.h"
|
||||
#include "rtsp_session.h"
|
||||
@ -60,56 +54,6 @@
|
||||
#define LOG
|
||||
*/
|
||||
|
||||
#define BUF_SIZE 4096
|
||||
#define HEADER_SIZE 1024
|
||||
#define MAX_FIELDS 256
|
||||
|
||||
struct rtsp_s {
|
||||
|
||||
int s;
|
||||
|
||||
char *host;
|
||||
int port;
|
||||
char *path;
|
||||
char *param;
|
||||
char *mrl;
|
||||
char *user_agent;
|
||||
|
||||
char *server;
|
||||
unsigned int server_state;
|
||||
uint32_t server_caps;
|
||||
|
||||
unsigned int cseq;
|
||||
char *session;
|
||||
|
||||
char *answers[MAX_FIELDS]; /* data of last message */
|
||||
char *scheduled[MAX_FIELDS]; /* will be sent with next message */
|
||||
};
|
||||
|
||||
/*
|
||||
* constants
|
||||
*/
|
||||
|
||||
#define RTSP_PROTOCOL_VERSION "RTSP/1.0"
|
||||
|
||||
/* server states */
|
||||
#define RTSP_CONNECTED 1
|
||||
#define RTSP_INIT 2
|
||||
#define RTSP_READY 4
|
||||
#define RTSP_PLAYING 8
|
||||
#define RTSP_RECORDING 16
|
||||
|
||||
/* server capabilities */
|
||||
#define RTSP_OPTIONS 0x001
|
||||
#define RTSP_DESCRIBE 0x002
|
||||
#define RTSP_ANNOUNCE 0x004
|
||||
#define RTSP_SETUP 0x008
|
||||
#define RTSP_GET_PARAMETER 0x010
|
||||
#define RTSP_SET_PARAMETER 0x020
|
||||
#define RTSP_TEARDOWN 0x040
|
||||
#define RTSP_PLAY 0x080
|
||||
#define RTSP_RECORD 0x100
|
||||
|
||||
/*
|
||||
* network utilities
|
||||
*/
|
||||
@ -575,14 +519,22 @@ int rtsp_read_data(rtsp_t *s, char *buffer, unsigned int size) {
|
||||
//rtsp_t *rtsp_connect(const char *mrl, const char *user_agent) {
|
||||
rtsp_t *rtsp_connect(int fd, char* mrl, char *path, char *host, int port, char *user_agent) {
|
||||
|
||||
rtsp_t *s=malloc(sizeof(rtsp_t));
|
||||
rtsp_t *s;
|
||||
int i;
|
||||
|
||||
|
||||
if (fd < 0) {
|
||||
mp_msg(MSGT_OPEN, MSGL_ERR, "rtsp: failed to connect to '%s'\n", host);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s = malloc(sizeof(rtsp_t));
|
||||
|
||||
for (i=0; i<MAX_FIELDS; i++) {
|
||||
s->answers[i]=NULL;
|
||||
s->scheduled[i]=NULL;
|
||||
}
|
||||
|
||||
s->s = fd;
|
||||
s->server=NULL;
|
||||
s->server_state=0;
|
||||
s->server_caps=0;
|
||||
@ -605,13 +557,6 @@ rtsp_t *rtsp_connect(int fd, char* mrl, char *path, char *host, int port, char *
|
||||
s->param++;
|
||||
//mp_msg(MSGT_OPEN, MSGL_INFO, "path=%s\n", s->path);
|
||||
//mp_msg(MSGT_OPEN, MSGL_INFO, "param=%s\n", s->param ? s->param : "NULL");
|
||||
s->s = fd;
|
||||
|
||||
if (s->s < 0) {
|
||||
mp_msg(MSGT_OPEN, MSGL_ERR, "rtsp: failed to connect to '%s'\n", s->host);
|
||||
rtsp_close(s);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s->server_state=RTSP_CONNECTED;
|
||||
|
||||
@ -631,29 +576,6 @@ rtsp_t *rtsp_connect(int fd, char* mrl, char *path, char *host, int port, char *
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* closes an rtsp connection
|
||||
*/
|
||||
|
||||
void rtsp_close(rtsp_t *s) {
|
||||
|
||||
if (s->server_state)
|
||||
{
|
||||
if (s->server_state == RTSP_PLAYING)
|
||||
rtsp_request_teardown (s, NULL);
|
||||
closesocket (s->s);
|
||||
}
|
||||
|
||||
if (s->path) free(s->path);
|
||||
if (s->host) free(s->host);
|
||||
if (s->mrl) free(s->mrl);
|
||||
if (s->session) free(s->session);
|
||||
if (s->user_agent) free(s->user_agent);
|
||||
rtsp_free_answers(s);
|
||||
rtsp_unschedule_all(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
/*
|
||||
* search in answers for tags. returns a pointer to the content
|
||||
* after the first matched tag. returns NULL if no match found.
|
||||
|
@ -32,6 +32,7 @@
|
||||
#ifndef MPLAYER_RTSP_H
|
||||
#define MPLAYER_RTSP_H
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
/* some codes returned by rtsp_request_* functions */
|
||||
|
||||
@ -45,6 +46,58 @@
|
||||
#define RTSP_METHOD_TEARDOWN "TEARDOWN"
|
||||
#define RTSP_METHOD_SET_PARAMETER "SET_PARAMETER"
|
||||
|
||||
#define BUF_SIZE 4096
|
||||
#define HEADER_SIZE 1024
|
||||
#define MAX_FIELDS 256
|
||||
|
||||
|
||||
struct rtsp_s {
|
||||
|
||||
int s;
|
||||
|
||||
char *host;
|
||||
int port;
|
||||
char *path;
|
||||
char *param;
|
||||
char *mrl;
|
||||
char *user_agent;
|
||||
|
||||
char *server;
|
||||
unsigned int server_state;
|
||||
uint32_t server_caps;
|
||||
|
||||
unsigned int cseq;
|
||||
char *session;
|
||||
|
||||
char *answers[MAX_FIELDS]; /* data of last message */
|
||||
char *scheduled[MAX_FIELDS]; /* will be sent with next message */
|
||||
};
|
||||
|
||||
/*
|
||||
* constants
|
||||
*/
|
||||
|
||||
#define RTSP_PROTOCOL_VERSION "RTSP/1.0"
|
||||
|
||||
/* server states */
|
||||
#define RTSP_CONNECTED 1
|
||||
#define RTSP_INIT 2
|
||||
#define RTSP_READY 4
|
||||
#define RTSP_PLAYING 8
|
||||
#define RTSP_RECORDING 16
|
||||
|
||||
/* server capabilities */
|
||||
#define RTSP_OPTIONS 0x001
|
||||
#define RTSP_DESCRIBE 0x002
|
||||
#define RTSP_ANNOUNCE 0x004
|
||||
#define RTSP_SETUP 0x008
|
||||
#define RTSP_GET_PARAMETER 0x010
|
||||
#define RTSP_SET_PARAMETER 0x020
|
||||
#define RTSP_TEARDOWN 0x040
|
||||
#define RTSP_PLAY 0x080
|
||||
#define RTSP_RECORD 0x100
|
||||
|
||||
|
||||
typedef struct rtsp_s rtsp_t;
|
||||
|
||||
rtsp_t* rtsp_connect (int fd, char *mrl, char *path, char *host, int port, char *user_agent);
|
||||
@ -66,7 +119,6 @@ void rtsp_add_to_payload(char **payload, const char *string);
|
||||
void rtsp_free_answers(rtsp_t *this);
|
||||
|
||||
int rtsp_read (rtsp_t *this, char *data, int len);
|
||||
void rtsp_close (rtsp_t *this);
|
||||
|
||||
void rtsp_set_session(rtsp_t *s, const char *id);
|
||||
char *rtsp_get_session(rtsp_t *s);
|
||||
|
@ -31,12 +31,15 @@
|
||||
#include <sys/types.h>
|
||||
#include "config.h"
|
||||
#ifndef HAVE_WINSOCK2
|
||||
#define closesocket close
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#else
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
@ -73,6 +76,29 @@ struct rtsp_session_s {
|
||||
struct rtp_rtsp_session_t* rtp_session;
|
||||
};
|
||||
|
||||
/*
|
||||
* closes an rtsp connection
|
||||
*/
|
||||
|
||||
static void rtsp_close(rtsp_t *s) {
|
||||
|
||||
if (s->server_state)
|
||||
{
|
||||
if (s->server_state == RTSP_PLAYING)
|
||||
rtsp_request_teardown (s, NULL);
|
||||
closesocket (s->s);
|
||||
}
|
||||
|
||||
if (s->path) free(s->path);
|
||||
if (s->host) free(s->host);
|
||||
if (s->mrl) free(s->mrl);
|
||||
if (s->session) free(s->session);
|
||||
if (s->user_agent) free(s->user_agent);
|
||||
rtsp_free_answers(s);
|
||||
rtsp_unschedule_all(s);
|
||||
free(s);
|
||||
}
|
||||
|
||||
//rtsp_session_t *rtsp_session_start(char *mrl) {
|
||||
rtsp_session_t *rtsp_session_start(int fd, char **mrl, char *path, char *host,
|
||||
int port, int *redir, uint32_t bandwidth, char *user, char *pass) {
|
||||
|
@ -4,12 +4,6 @@
|
||||
#include <stdint.h>
|
||||
#include "stream.h"
|
||||
|
||||
typedef struct {
|
||||
int event; /* event number fromd dvdnav_events.h */
|
||||
void * details; /* event details */
|
||||
int len; /* bytes in details */
|
||||
} dvdnav_event_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t sx, sy;
|
||||
uint16_t ex, ey;
|
||||
|
@ -336,13 +336,23 @@ static int amode2v4l(int amode)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
** Get current FPS.
|
||||
*/
|
||||
static double getfps(priv_t *priv)
|
||||
{
|
||||
if (priv->tv_param->fps > 0)
|
||||
return priv->tv_param->fps;
|
||||
if (priv->standard.frameperiod.denominator && priv->standard.frameperiod.numerator)
|
||||
return (double)priv->standard.frameperiod.denominator / priv->standard.frameperiod.numerator;
|
||||
return 25.0;
|
||||
}
|
||||
|
||||
// sets and sanitizes audio buffer/block sizes
|
||||
static void setup_audio_buffer_sizes(priv_t *priv)
|
||||
{
|
||||
int bytes_per_sample = priv->audio_in.bytes_per_sample;
|
||||
double fps = (double)priv->standard.frameperiod.denominator /
|
||||
priv->standard.frameperiod.numerator;
|
||||
int seconds = priv->video_buffer_size_max/fps;
|
||||
int seconds = priv->video_buffer_size_max/getfps(priv);
|
||||
|
||||
if (seconds < 5) seconds = 5;
|
||||
if (seconds > 500) seconds = 500;
|
||||
@ -438,6 +448,18 @@ static int getstd(priv_t *priv)
|
||||
int i=0;
|
||||
|
||||
if (ioctl(priv->video_fd, VIDIOC_G_STD, &id) < 0) {
|
||||
struct v4l2_streamparm parm;
|
||||
|
||||
parm.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
if(ioctl(priv->video_fd, VIDIOC_G_PARM, &parm) >= 0) {
|
||||
mp_msg(MSGT_TV, MSGL_WARN, "%s: your device driver does not support VIDIOC_G_STD ioctl,"
|
||||
" VIDIOC_G_PARM was used instead.\n", info.short_name);
|
||||
priv->standard.index=0;
|
||||
priv->standard.id=0;
|
||||
priv->standard.frameperiod=parm.parm.capture.timeperframe;
|
||||
return 0;
|
||||
}
|
||||
|
||||
mp_msg(MSGT_TV, MSGL_ERR, "%s: ioctl get standard failed: %s\n",
|
||||
info.short_name, strerror(errno));
|
||||
return -1;
|
||||
@ -701,6 +723,10 @@ static int control(priv_t *priv, int cmd, void *arg)
|
||||
priv->immediate_mode = 1;
|
||||
return TVI_CONTROL_TRUE;
|
||||
case TVI_CONTROL_VID_GET_FPS:
|
||||
if (!priv->standard.frameperiod.denominator || !priv->standard.frameperiod.numerator) {
|
||||
mp_msg(MSGT_TV, MSGL_ERR, "%s: Cannot get fps\n", info.short_name);
|
||||
return TVI_CONTROL_FALSE;
|
||||
}
|
||||
*(float *)arg = (float)priv->standard.frameperiod.denominator /
|
||||
priv->standard.frameperiod.numerator;
|
||||
mp_msg(MSGT_TV, MSGL_V, "%s: get fps: %f\n", info.short_name,
|
||||
@ -1089,11 +1115,7 @@ static int uninit(priv_t *priv)
|
||||
struct v4l2_buffer buf;
|
||||
|
||||
/* get performance */
|
||||
frames = 1 + (priv->curr_frame - priv->first_frame +
|
||||
priv->standard.frameperiod.numerator * 500000 /
|
||||
priv->standard.frameperiod.denominator) *
|
||||
priv->standard.frameperiod.denominator /
|
||||
priv->standard.frameperiod.numerator / 1000000;
|
||||
frames = 1 + lrintf((double)(priv->curr_frame - priv->first_frame) / (1e6 * getfps(priv)));
|
||||
dropped = frames - priv->frames;
|
||||
|
||||
/* turn off streaming */
|
||||
|
Loading…
Reference in New Issue
Block a user