0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00

Merge svn changes up to r27025

Conflicts:

	command.c
	libvo/vosub_vidix.c
	libvo/vosub_vidix.h
	mplayer.c
This commit is contained in:
Uoti Urpala 2008-06-07 19:57:57 +03:00
commit af3fcdf2de
47 changed files with 556 additions and 503 deletions

View File

@ -7376,7 +7376,7 @@ You can specify codec specific encoding parameters using the following
syntax:
.
.TP
.B \-<codec>opts <option1[=value],option2,...>
.B \-<codec>opts <option1[=value1]:option2[=value2]:...>
.
.PP
Where <codec> may be: lavc, xvidenc, lame, toolame, twolame,
@ -10693,6 +10693,12 @@ FIXME: Document this.
.B VIDIX_CRT
FIXME: Document this.
.
.TP
.B VIDIXIVTVALPHA
Set this to 'disable' in order to stop the VIDIX driver from controlling
alphablending settings.
You can then manipulate it yourself with 'ivtvfbctl'.
.
.SS osdep:
.
.TP

View File

@ -1,4 +1,4 @@
.\" synced with r26762
.\" synced with r26806
.\" Encoding: iso-8859-1
.\" MPlayer (C) 2000-2008 MPlayer Team
.\" The English man page was/is done by Gabucino, Diego Biurrun, Jonas Jermann
@ -171,7 +171,7 @@ MPlayer poss
informations, de belles et grandes polices lissées et des effets
visuels pour confirmer les contrôles au clavier. Les polices
européennes/\:ISO8859\-1,2 (Hongroise, Anglaise, Tchèque, etc),
Cyrillique et Coréenne sont gérés ainsi que 11 formats de
Cyrillique et Coréenne sont gérées ainsi que 11 formats de
sous-titres (MicroDVD, SubRip, OGM, SubViewer, Sami, VPlayer, RT,
SSA, AQTitle, JACOsub, PJS et le nôtre: MPsub) et les sous-titres
DVD (SPU streams, VobSub et Closed Captions).
@ -181,7 +181,7 @@ DVD (SPU streams, VobSub et Closed Captions).
des vidéos jouables par MPlayer (voir ci-dessus) dans d'autres formats jouables
par MPlayer (voir ci-dessous).
Il encode en MPEG-4 (DivX/Xvid), un des codecs libavcodec, et en
PCM/\:MP3/\:VBRMP3 audio en 1, 2 ou 3 passes.
PCM/\:MP3/\:VBRMP3 audio en 1, 2 ou 3 passe(s).
Il permet également de copier des flux de données (stream), possède un
puissant système de plugins (découpage, expansion, retournement, postprocess,
rotation, redimensionnement, bruit, conversion RGB/\:YUV) et bien plus.
@ -231,9 +231,9 @@ R
.IPs "< et >"
Recule/\:avance dans la liste de lecture (playlist).
.IPs "ENTER"
avance dans la liste de lecture, même après la fin
Avance dans la liste de lecture, même après la fin
.IPs "ORIG et FIN"
Va à au prochain/\:précédent arbre de lecture (playtree) dans la liste des
Va au prochain/\:précédent arbre de lecture (playtree) dans la liste des
pères.
.IPs "INSER et SUPPR (liste de lecture ASX uniquement)"
Va à la prochaine/\:précédente source de rechange.
@ -264,9 +264,8 @@ Alterne entre les pistes vid
Alterne entre les pistes audio disponibles.
.IPs "TAB (MPEG-TS et libavformat uniquement)"
Alterne entre les différents programmes disponibles.
Cycle through the available programs.
.IPs "f\ \ \ \ "
Bascule en plein-écran.
Bascule en mode plein-écran.
.IPs "T\ \ \ \ "
Bascule en mode toujours visible.
.IPs "w et e"
@ -275,14 +274,14 @@ R
Alterne entre les états OSD: aucun / déplacement /
déplacement + chrono / déplacement + chrono + durée totale
.IPs "d\ \ \ \ "
alterne entre les modes de sauts de trame: aucun / saut d'affichage / saut de
Alterne entre les modes de sauts de trame: aucun / saut d'affichage / saut de
décodage (voir \-framedrop et \-hardframedrop)
.IPs "v\ \ \ \ "
Bascule l'affichage des sous-titres.
.IPs "j\ \ \ \ "
Alterne entre les différents sous-titres disponibles.
.IPs "y et g"
Choisit le sous-titre après/avant dans la liste des sous-titres.
Choisit le sous-titre suivant/précédent dans la liste des sous-titres.
.IPs "F\ \ \ \ "
Bascule l'affichage des "sous-titres forcés".
.IPs "a\ \ \ \ "
@ -292,7 +291,7 @@ Ajuste le d
.IPs "r et t"
Translate les sous-titres vers le haut/bas.
.IPs i (mode \-edlout uniquement)
Créé une marque EDL.
Crée une marque EDL.
.IPs "s (\-vf screenshot uniquement)"
Réalise une capture d'écran.
.IPs "S (\-vf screenshot uniquement)"
@ -300,11 +299,11 @@ Amorce/arr
.IPs "I\ \ \ \ "
Affiche le nom de fichier dans l'OSD.
.IPs "! and @"
Saute au début du chapitre précédant/suivant.
Saute au début du chapitre précédent/suivant.
.IPs "D (\-vo xvmc, \-vf yadif et \-vf kerndeint uniquement)"
Active/désactive le désentrelacement.
.IPs "A"
Bascule entre les angles du DVD disponibles.
Bascule entre les angles disponibles du DVD.
.RE
.PD 1
.PP
@ -321,7 +320,7 @@ Ajuste le contraste.
.IPs "3 et 4"
Ajuste la luminosité.
.IPs "5 et 6"
Ajuste la couleur.
Ajuste la teinte.
.IPs "7 et 8"
Ajuste la saturation.
.RE
@ -378,8 +377,8 @@ Navigue en arri
.
.PP
.RS
(Les touches suivantes ne sont valides uniquement si MPlayer a été
compilé avec le support de la GUI et ont une priorité supérieure à celles
(Les touches suivantes sont valides uniquement si MPlayer a été
compilé avec le support de la GUI et si elles ont une priorité supérieure à celles
définies plus haut dans ce document.)
.RE
.PP
@ -405,14 +404,14 @@ Ouvre la fen
.PP
.RS
(Les touches suivantes ne sont valides que si MPlayer a été
compilé avec le support de l'entrée TV ou DVB et ont une priorité
compilé avec le support de l'entrée TV ou DVB et si elles ont une priorité
supérieure à celles définies plus haut dans ce document.)
.RE
.PP
.PD 0
.RS
.IPs "h et k"
Sélectionne le canal précédent/\:prochain.
Sélectionne le canal précédent/\:suivant.
.IPs n
Change de norme.
.IPs u
@ -431,7 +430,7 @@ navigation dans les menus).
.IPs "touche 8"
Bouton haut.
.IPs "touche 2"
Bouton du bas.
Bouton bas.
.IPs "touche 4"
Bouton gauche.
.IPs "touche 6"
@ -439,7 +438,7 @@ Bouton droit.
.IPs "touche 5"
Retourne au menu principal.
.IPs "touche 7"
Retourne au menu le plus près (dans l'ordre: chapitre->titre->racine).
Retourne au menu le plus proche (dans l'ordre: chapitre->titre->racine).
.IPs "touche ENTRÉE"
Confirme le choix.
.RE
@ -456,9 +455,9 @@ le t
.PD 0
.RS
.IPs "X\ \ \ \ "
Bascule entre le télétexte activé ou désactivé.
Active/\:désactive le télétexte.
.IPs "Q at W"
Aller à la page télétexte suivante/précédente.
Va à la page télétexte suivante/précédente.
.RE
.PD 1
.PP
@ -485,7 +484,7 @@ Navigue en arri
.IPs "haut et bas"
Navigue en avant/\:arrière d'une minute.
.IPs "bouton 1"
pause
Met en pause.
.IPs "bouton 2"
Alterne entre les états de l'OSD\ : rien / navigation / navigation + temps
écoulé / navigation + temps écoulé + temps total.
@ -505,7 +504,7 @@ Chaque option a son oppos
\-fs est \-nofs.
.PP
Si une option est documentée comme (XXX uniquement), cela veut dire
qu'elle ne fonctionnera uniquement si vous activez l'option XXX ou
qu'elle fonctionnera uniquement si vous activez l'option XXX ou
que XXX a été compilé dans MPlayer.
.PP
.I NOTE\ :
@ -542,7 +541,7 @@ Les options du fichier utilisateur ont priorit
global, et les options données sur la ligne de commande ont priorité sur tous
les fichiers.
La syntaxe des fichiers de configuration est 'option=<valeur>', tout ce qui
suit un '#' est considéré comme commentaire.
suit un '#' est considéré comme un commentaire.
Les options qui nécessitent des valeurs peuvent être activées en les
initialisant à 'yes' ou '1' ou désactivées en les initialisant à 'no'
ou '0'.
@ -575,7 +574,7 @@ vf=eq2=1.0:\-0.8
.I "EXEMPLE DE FICHIER DE CONFIGURATION MENCODER :"
.sp 1
.nf
# Fait MEncoder écrire dans un certain fichier par défaut.
# Fait écrire MEncoder dans un certain fichier par défaut.
o=encoded.avi
# Les 4 lignes suivantes permettant à mencoder tv:// de capturer immédiatement.
oac=pcm=yes
@ -661,7 +660,7 @@ lavcopts=mbd=2:trell=yes:v4mv=yes
.TP
.B \-codecs\-file <nomfichier> (voir aussi \-afm, \-ac, \-vfm et \-vc)
Change le chemin de recherche standard et utilise le fichier donné en
paramètre au lieu du fichier codecs.conf inclus dans MPlayer
paramètre au lieu du fichier codecs.conf inclus dans MPlayer.
.
.TP
.B \-include <fichier de configuration>
@ -673,7 +672,7 @@ Affiche toutes les options disponibles.
.
.TP
.B \-msgcharset <charset>
Convertit les messages consoles à la l'ensemble de caractères spécifié
Convertit les messages consoles à l'ensemble de caractères spécifié
(par défaut\ : auto-détection).
Le texte sera alors dans l'encodage défini par l'option du script configure
\-\-charset.
@ -681,8 +680,8 @@ La valeur "noconv" permet de d
cas de problèmes avec iconv)\ ;
.br
.I NOTE\ :
Ceci n'aura d'effet qu'après la ligne de commande aura été analysée,
La variable d'environnment MPLAYER_CHARSET vous permettra de ne plus subir
Ceci n'aura d'effet qu'après que la ligne de commande aura été analysée,
la variable d'environnment MPLAYER_CHARSET vous permettra de ne plus subir
la troncature des premières lignes affichées.
.
.TP
@ -697,7 +696,7 @@ Le module 'all' change le niveau de verbosit
Tapez '\-msglevel help' pour avoir la liste de tous les modules.
.br
NOTE\ :
Certains messages sont affichés avant que la ligne de commande est
Certains messages sont affichés avant que la ligne de commande ne soit
analysée et ne sont par conséquent pas affectés par \-msglevel.
Pour contrôler ces messages, vous devez utiliser la variable d'environnement
MPLAYER_VERBOSE, voir sa description plus bas pour plus de détails.
@ -711,15 +710,14 @@ compl
messages fatals
.IPs " 1"
messages d'erreurs
error messages
.IPs " 2"
messages d'avertissement
.IPs " 3"
quelques conseils
messages de conseil
.IPs " 4"
messages informatifs
.IPs " 5"
messages de status (par défaut)
messages de statut (par défaut)
.IPs " 6"
messages verbeux
.IPs " 7"
@ -733,14 +731,14 @@ niveau de debug 4
.
.TP
.B \-msgmodule
Préfixe les messages console du nom du module concerné.
Préfixe les messages console avec le nom du module concerné.
.
.TP
.B \-noconfig <options>
Ne tient pas compte des fichiers de configuration donnés.
.br
.I NOTE\ :
Si les options \-include ou \-use\-filedir\-conf sont donnés en ligne de commande,
Si les options \-include ou \-use\-filedir\-conf sont données en ligne de commande,
elles seront honorées.
.sp 1
Les options disponibles sont\ :
@ -759,15 +757,15 @@ la configuration de l'utilisateur
.
.TP
.B "\-quiet\ "
Avec cette option, la ligne d'état (c-a-d A: 0.7 V: 0.6 A-V: 0.068 ...) ne
Avec cette option, la ligne d'état (c-à-d A: 0.7 V: 0.6 A-V: 0.068 ...) ne
sera pas affichée.
Cela est particulièrement utile sur les terminaux lents ou endommagés qui ne
gèrent pas les retours chariot (c-a-d \\r).
gèrent pas les retours chariot (c-à-d \\r).
.
.TP
.B \-priority <prio> (Windows uniquement)
Définit le niveau de priorité de MPlayer suivant les priorités prédéfinies
de disponibles sous Windows.
disponibles sous Windows.
Valeurs possibles de <prio>\ :
.RSs
idle|belownormal|normal|abovenormal|high|realtime
@ -788,14 +786,14 @@ Affiche encore moins de messages d'
Supprime aussi les boîtes de dialogue d'erreur de l'interface graphique.
.
.B \-show\-profile <profile>
Affiche la description et le contenu du profil donné..
Affiche la description et le contenu du profil donné.
.
.B \-use\-filedir\-conf
Recherche un fichier de configuration spécifique au fichier joué
dans le même répertoire que ce dernier.
.br
.I ATTENTION\ :
Peut être dagereux si joué deuis des méias dans lequel vous ne
Peut être dangereux si joué depuis des média en lesquels vous ne
pouvez avoir confiance.
.
.TP
@ -827,12 +825,12 @@ On peut souvent am
vidéo irrégulier, mais qui peut-être lue avec \-nosound, en initialisant
cette option à une valeur entière supérieure à 1.
Plus cette valeur sera élevée, plus le débit sera proche de \-nosound.
Essayez \-autosync 30 pour faire disparaître les problèmes avec les drivers
Essayez \-autosync 30 pour faire disparaître les problèmes avec les pilotes
audio qui ne possèdent pas une mesure de décalage audio parfaite.
Avec cette valeur, si de larges écarts de synchro A/V se produisent, il ne
mettront qu'une seconde ou deux pour disparaître.
Ce temps de réaction devrait être le seul effet de bord si cette option est
activée, pour tous les drivers audio.
activée, pour tous les pilotes audio.
.
.TP
.B \-benchmark
@ -865,7 +863,7 @@ uniquement.
Bascule MPlayer dans un mode expérimental où les timestamps des trames vidéos
sont calculées différemment, et où les filtres qui ajoutent des trames ou modifient
les timestamps sont supportés.
Les timestamps plus précises se ressentent par exemple lorsque vous regardez avec
Les timestamps plus précis se ressentent par exemple lorsque vous regardez avec
l'option \-ass une vidéo dont les sous-titres sont synchronisés avec un changement
de scène.
Sans l'option \-correct\-pts le timing des sous-titres est typiquement décalé de
@ -891,7 +889,7 @@ MOUSE_BTN0\-MOUSE_BTN0_DBL.
.
.TP
.B \-edlout <nomfichier>
Créé un nouveau fichier et y écrit les commandes d'édition de la liste
Crée un nouveau fichier et y écrit les commandes d'édition de la liste
de décision (EDL).
Durant la lecture, la touche 'i' permet de marquer le début ou la fin d'un
bloc à sauter.
@ -906,8 +904,8 @@ lieu de les jouer imm
.
.TP
.B \-fixed\-vo
Force l'initialistation d'une seule fenêtre vidéo pour la lecture d'une
série de de fichiers.
Force l'initialisation d'une seule fenêtre vidéo pour la lecture d'une
série de fichiers.
Actuellement les pilotes suivants fonctionnent avec fixed-vo: gl, gl2, mga,
svga, x11, xmga, xv, xvidix et dfbmga.
.
@ -916,9 +914,9 @@ svga, x11, xmga, xv, xvidix et dfbmga.
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.
Pour les trames-B même leur décodage est complètement désactivé.
Pour les trames-B, leur décodage est même complètement désactivé.
Notez que le décodeur libmpeg2 est particulièrement sujet à plantage
lorsque cette option est utilisée, ainsi vous devriez peut-être utiliser à
lorsque cette option est utilisée, ainsi devriez-vous peut-être utiliser à
la place "\-vc ffmpeg12,".
.
.TP
@ -939,24 +937,24 @@ M
.
.TP
.B \-heartbeat\-cmd
Commande exécutée via system() - càd via le shell - toutes les 30 secondes
Commande exécutée via system() - c-à-d via le shell - toutes les 30 secondes
lors de la lecture.
.sp 1
.I NOTE\ :
MPlayer utilise cette commande sans aucune sorte de vérification, il est
donc de votre responsablité qu'elle ne pose pas de problème de sécurité
(càd que vous devriez spécifier le chemin absolu, surtout si "." est dans
(c-à-d que vous devriez spécifier le chemin absolu, surtout si "." est dans
le chemin de recherche $PATH, comme c'est le cas sous Windows).
.sp 1
Ceci peut être "détourné" pour désactiver un reposeur d'écran ne gérant par
Ceci peut être "détourné" pour désactiver un économiseur d'écran ne gérant par
l'API de X prévu à cet effet.
Si cela vous semble un peu trop compliqué, demandez à l'auteur du programme
de reposeur d'écran de gérer l'API de X dédiée.
d'économiseur d'écran de gérer l'API de X dédiée.
.sp 1
.I EXEMPLE pour xscreensaver:
mplayer \-heartbeat\-cmd "xscreensaver\-command \-deactivate" file
.sp 1
.I EXEMPLE pour le reposeur d'écran de gnome:
.I EXEMPLE pour l'économiseur d'écran de gnome:
mplayer \-heartbeat\-cmd "gnome\-screensaver\-command \-p" file
.RE
.PD 1
@ -989,39 +987,39 @@ syst
Les chemins sont relatifs à ~/.mplayer/.
.br
.I NOTE:
La répétition automatique n'est pour l'instant géré que par les joysticks.
La répétition automatique n'est pour l'instant gérée que par les joysticks.
.sp 1
Les commandes disponibles sont:
.sp 1
.PD 0
.RSs
.IPs conf=<nom_fichier>
Défini le fichier de configuration pour les évènements d'entrée (input) au
Définit le fichier de configuration pour les évènements d'entrée (input) au
lieu de ~/\:.mplayer/\:input.conf par défaut.
Si vous ne donnez pas le chemin absolu, il sera cherché à
Si vous ne donnez pas de chemin absolu, il sera cherché à
~/\:.mplayer/\:<nom_fichier>.
.IPs ar-dev=<peripherique>
Périphérique à utiliser pour contrôler la télécommande Apple IR
(auto-détecté par défaut, Linux uniquement).
.IPs ar-delay
Temps en milli-secondes avant de démarrer la répétition automatique
Temps en millisecondes avant de démarrer la répétition automatique
d'une touche
(0 pour désactiver).
.IPs ar-rate
Combien de frappes par seconde pendant la répétition automatique.
.IPs keylist
Afficher toutes les touches pouvant être attachées.
Affiche toutes les touches pouvant être attachées.
.IPs cmdlist
Afficher toutes les commandes pouvant être attachées.
Affiche toutes les commandes pouvant être attachées.
.IPs js-dev
Spécifier le périphérique joystick à utiliser (par défaut\ :
Spécifie le périphérique joystick à utiliser (par défaut\ :
/dev/\:input/\:js0).
.IPs file=<nom_fichier>
Lit les commandes depuis un fichier donné.
Utile surtout avec une FIFO.
.br
.I NOTE:
Quand le fichier indiqué est un FIFO MPlayer ouvre chaque extrémité
Quand le fichier indiqué est une FIFO, MPlayer ouvre chaque extrémité
donc vous pouvez avoir plusieurs \'echo "seek 10" > mp_pipe\' et le pipe
restera valide.
.RE
@ -10697,6 +10695,28 @@ fichier de CQM au format JM, et de le charger comme pr
.RE
.
.TP
.B aq_mode=<0\-2>
Ajuste comment la quantification adaptative (AQ) distribue les bits:
.PD 0
.RSs
.IPs 0
désactivé
.IPs 1
Évite de déplacer des bits entre les trames.
.IPs 2
Déplace des bits entre les trames (par défaut).
.RE
.PD 1
.
.TP
.B aq_strength=<valeur flottante positive>
Contrôle à quel point la quantification adaptative (AQ) peut réduire les
effets de "blocking" et de flou dans les zones uniformes ou texturées (par
défaut\ : 1.0).
Une valeur de 0.5 conduira à une faible AQ, et moins de détails, tandis
qu'une valeur de 1.5 conduira à une forte AQ, et plus de détails.
.
.TP
.B cqm=<flat|jvt|<nom_fichier>>
Utilise soit une matrice de quantification personnalisée (CQM) prédéfinie
ou en charge une au format JM depuis un fichier.

View File

@ -1,4 +1,4 @@
.\" sync with en/mplayer.1 r26460
.\" sync with en/mplayer.1 r26909
.\" Encoding: UTF-8
.\" Reminder of hard terms which need better/final solution later:
.\" /capture; playtree in parent list; colorkey; retrace; desync; downmix;
@ -162,7 +162,7 @@ tivo://主机/[list|llist|fsid]
通过许多原生的和可执行的编解码器的支持, 它能播放绝大部分的 MPEG/\:VOB, AVI,
ASF/\:WMA/\:WMV, RM, QT/\:MOV/\:MP4, Ogg/\:OGM, MKV, VIVO, FLI, NuppelVideo,
yuv4mpeg, FILM 和 RoQ 文件。
你还能观看 VCD, SVCD, DVD, 3ivx, DivX 3/4/5, 甚至 WMV 电影。
你还能观看 VCD、SVCD、DVD、3ivx、DivX 3/4/5、WMV 甚至 H.264 格式的电影。
.PP
MPlayer 广泛地支持音视频输出驱动。
它不仅可以使用 X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca,
@ -235,6 +235,8 @@ MPlayer 有个完全可配置的, 命令驱动的控制层,
按一下暂停回放, 每按一下就播放一帧(直到按其它键取消步进)。
.IPs "q / ESC"
停止播放和退出。
.IPs "U\ \ \ \ "
暂停播放(并且当未使用 \-idle 时退出)。
.IPs "+ 和 \-"
调整音频延迟增加/减少 0.1 秒。
.IPs "/ 和 *"
@ -900,6 +902,8 @@ mplayer \-heartbeat\-cmd "gnome\-screensaver\-command \-p" file
.IPs conf=<文件名>
指定输入配置文件而不是默认的 ~/\:.mplayer/\:input.conf。
如果没有给出完全路径名, 将假设是 ~/\:.mplayer/\:<文件名>。
.IPs ar-dev=<设备>
用作为苹果 IR 遥控器的设置(默认值是自动侦测,仅用于 Linux
.IPs ar-delay
在开始自动重复一个键之前等待多少毫秒 (0 代表停用)。
.IPs ar-rate
@ -998,6 +1002,10 @@ n 大小的 FIFO 能容纳 (n\-1) 缓冲事件。
关闭支持 LIRC。
.
.TP
.B \-noar
关闭对于苹果 IR 遥控器的支持。
.
.TP
.B \-nomouseinput
停用鼠标键 按/\:放 输入 (mozplayerxp 的上下文菜单依赖此选项)。
.
@ -1463,9 +1471,9 @@ IPv4 自动地作为备用。
.
.TP
.B \-psprobe <字节所在位置>
当播放MPEG-PS流时此选项让你设定你希望MPlayer查看多少字节以确认所要
使用的视频编/解码器。
在播放含有H.264流的EVO文件时需要此选项。
当播放 MPEG-PS 或 MPEG-PES 流时,此选项让你设定你希望 MPlayer 查看多少字节以确认
所要使用的视频编/解码器。
在播放含有 H.264 流的 EVO 或 VDR 文件时需要此选项。
.
.TP
.B \-pvr <选项1:选项2:...> (仅适用于 PVR)
@ -3125,6 +3133,8 @@ ggi 和 gl2 的都支持此功能。
\-v 选项并注意开头有标签 [xv common] 的行。
.PD 0
.RSs
.IPs adaptor=<数值>
选择一个特定的 XVideo 适配器(请检查 xvinfo 的结果)。
.IPs port=<数值>
选择指定的 XVideo 端口。
.IPs ck=<cur|use|set>
@ -3358,14 +3368,23 @@ OpenGL 视频输出驱动, 简版。
视频尺寸一定小于 OpenGL 实现的最大纹理尺寸。
瞄准能与甚至最基本的 OpenGL 实现一起工作,
但也利用较新的扩展, 允许支持更多的色彩空间和直接渲染。
既然能对高清晰度提供
.B
的提速, 请使用 \-dr 如果你的 OpenGL 实现能一同工作。
要获取最佳的速度,请尝试类似于
.br
\-vo gl:yuv=2:force\-pbo:ati\-hack \-dr \-noslices
.br
的选项。
此代码执行极少的检测, 所以如果某个特性不工作,
可能是因为你的卡或 OpenGL 实现不支持, 尽管连任何错误消息都没给你。
使用 glxinfo 或类似的工具以显示支持的 OpenGL 扩展。
.PD 0
.RSs
.IPs (no)ati\-hack
当使用了 PBO 时(当使用了 \-dr 或强制使用 \-pbo 时AIT 驱动可能输出损坏的图像。
该选项修正这一问题,代价是多使用了一点内存。
.IPs (no)force\-pbo
总是使用 PBO 传输纹理,即使这需要额外的复制操作。
当前该选项对于 NVidia 驱动能提升一点速度,而对于 ATI 驱动则是大大提升。
可能需要 \-noslices 和 ati\-hack 子选项以使其正常工作。
.IPs (no)scaled-osd
当窗口大小改变时, 改变 OSD 的行为方式 (默认是: 停用)。
启用时, 行为就像其他的视频输出驱动, 对固定大小的字体更好。
@ -3499,8 +3518,9 @@ GL_ARB_fragment_shader。至少需要三个纹理单位。提供饱和度
.
.TP
.B "gl2\ \ \ \ "
OpenGL 视频输出驱动, 第二代。
支持 OSD 和大于最大纹理尺寸的视频。
OpenGL 视频输出驱动的修改版。
支持大于最大纹理尺寸的视频,但是缺少许多 GL 驱动的高级功能和优化选项,并且以后也
不大可能扩展功能。
.PD 0
.RSs
.IPs (no)glfinish
@ -4164,6 +4184,8 @@ mplayer video.nut \-vf format=bgr15 \-vo tga
如果 <宽度> 指定了, 就使用了低分辨率解码,
只要视频的宽度宽过(is major than)或等于 <宽度>。
.RE
.IPs "o\ \ \ \ "
FIXME没有说明文档
.IPs "sb=<数值> (仅用于 MPEG-2)"
跳过宏块底部的制定行数。
.IPs "st=<数值> (仅用于 MPEG-2)"
@ -7236,7 +7258,7 @@ Windows Media Video, version 2也就是WMV8
.
.TP
.B vqmin=<1\-31>
最低量化参数第1/2阶段编码
最低量化参数
.RSs
.IPs 1
不推荐文件大很多质量差别不大而且有奇怪的副作用msmpeg4、h263的质量会很差
@ -7286,7 +7308,7 @@ Lavc很少会使用低于vqmin值的量化参数。
.
.TP
.B vqmax=<1\-31>
最大量化参数第1/2阶段编码10\-31应该是一个合理的范围默认值31
最大量化参数10\-31应该是一个合理的范围默认值31
.
.TP
.B mbqmin=<1\-31>
@ -7298,7 +7320,7 @@ Lavc很少会使用低于vqmin值的量化参数。
.
.TP
.B vqdiff=<1\-31>
连续的I或P帧之间最大的量化参数差别第1/2阶段编码默认值3
连续的I或P帧之间最大的量化参数差别默认值3
.
.TP
.B vmax_b_frames=<0\-4>
@ -7541,7 +7563,7 @@ huffyuv
.
.TP
.B vbitrate=<value>
指定比特率(第1/2阶段编码默认值800
指定比特率默认值800
.br
.I 警告:
1kbit = 1000 bits
@ -7567,17 +7589,17 @@ vratetol在第二阶段编码中不应设得太大否则当设置了vrc_(min|
.
.TP
.B vrc_maxrate=<value>
最大比特率单位为kbit/\:sec第1/2阶段编码
最大比特率单位为kbit/\:sec
默认值0无限制
.
.TP
.B vrc_minrate=<value>
最小比特率单位为kbit/\:sec第1/2阶段编码
最小比特率单位为kbit/\:sec
默认值0无限制
.
.TP
.B vrc_buf_size=<value>
缓冲大小单位为kbit第1/2阶段编码
缓冲大小单位为kbit。
在MPEG-1/2中该选项同时设置了vbv缓冲的大小对于VCD请使用327对于SVCD使用917
DVD使用1835。
.
@ -7601,19 +7623,19 @@ DVD使用1835。
.
.TP
.B vb_qfactor=<\-31.0\-31.0>
B帧和非B帧间的量化参数因数第1/2阶段编码默认值1.25
B帧和非B帧间的量化参数因数默认值1.25
.
.TP
.B vi_qfactor=<\-31.0\-31.0>
I帧和非I帧间的量化参数因数第1/2阶段编码默认值0.8
I帧和非I帧间的量化参数因数默认值0.8
.
.TP
.B vb_qoffset=<\-31.0\-31.0>
B帧和非B帧间的量化参数偏移量第1/2阶段编码默认值1.25
B帧和非B帧间的量化参数偏移量默认值1.25
.
.TP
.B vi_qoffset=<\-31.0\-31.0>
第1/2阶段编码默认值0.0
默认值0.0
.br
如果v{b|i}_qfactor > 0
.br
@ -7648,7 +7670,7 @@ lmin= <I/P帧量化参数>:lmax= <I/P帧量化参数>:vb_qfactor= <B帧量化参
.
.TP
.B vqcomp=<0.0\-1.0>
量化参数压缩vrc_eq选项依赖于该选项第1/2阶段编码默认值0.5)。
量化参数压缩vrc_eq选项依赖于该选项默认值0.5)。
例如假设使用了默认的码率控制方程式如果vqcomp=1.0,那么码率控制过程中将分配给
每个帧足够的比特数,以使它们在同一个量化参数下编码。
如果vqcomp=0.0那么码率控制中将分配给每个帧相同的比特数也就是严格的CBR模式。
@ -7658,7 +7680,7 @@ lmin= <I/P帧量化参数>:lmax= <I/P帧量化参数>:vb_qfactor= <B帧量化参
.
.TP
.B vrc_eq=<equation>
主码率控制方程式第1/2阶段编码
主码率控制方程式
.RE
.RSs
.IPs "1\ \ \ \ "
@ -7731,7 +7753,7 @@ B帧中的平均非内部纹理复杂度
.
.TP
.B vrc_override=<options>
用户指定的针于影片特定部分(尾声、演职员表……)的质量值第1/2阶段编码
用户指定的针于影片特定部分(尾声、演职员表……)的质量值。
选项有<start-frame>、<end-frame>、<quality>[/<start-frame>,
<end-frame>, <quality>[/...]]
.PD 0
@ -7753,7 +7775,7 @@ B帧中的平均非内部纹理复杂度
.
.TP
.B vqsquish=<0|1>
指定如何使量化参数保持在qmin和qmax之间第1/2阶段编码
指定如何使量化参数保持在qmin和qmax之间。
.PD 0
.RSs
.IPs 0
@ -8481,6 +8503,10 @@ FIXME为这个选项写说明文档。
.B skip_threshold=<0\-1000000>
FIXME为这个选项写说明文档。
.
.TP
.B "o\ \ \ \ \ \ "
FIXME没有说明文档
.
.
.SS nuv\-nuvopts
.
@ -9440,6 +9466,25 @@ denoise3d或hqdn3d之类的视频滤镜来滤除噪声。
有用值的范围是<\-2\-2>默认值0
.
.TP
.B aq_mode=<0\-2>
定议自适应量化模式AQ如何分配比特
.PD 0
.RSs
.IPs 0
禁用
.IPs 1
避免在帧间转移比特。
.IPs 2
在帧间转移比特(依据默认方式)。
.RE
.PD 1
.
.TP
.B aq_strength=<positive float value>
控制自适应量化模式AQ在平坦和有纹理的区域能减少多少块效应和模糊默认值1.0)。
值为 0.5 将导致较弱的 AQ 和较少的细节,而值为 1.5 则能产生较强的 AQ 和更多的细节。
.
.TP
.B cqm=<flat|jvt|<filename>>
要么使用一个预先定义好的自定义量化矩阵要么加一个JM格式的矩阵文件。
.PD 0
@ -9714,6 +9759,10 @@ PAL至NTSC的电视图像化处理
强制使用一个特定的 libav 格式库的分离器。
.
.TP
.B "o\ \ \ \ \ \ "
FIXME没有说明文档
.
.TP
.B probesize=<value>
在侦测阶段所探测的最大数据量。
在MPEG-TS的情况下这个值指定了所扫描TS包的最大个数。
@ -9785,6 +9834,10 @@ Sony 数字视频容器格式
当前只对MPEG[12]有意义单位为秒对于任意出现的流输出流参照计时器SCR和解
码时间戳DTS间的初始差距流分离至解码间的延迟
.
.TP
.B "o\ \ \ \ \ \ "
FIXME没有说明文档
.
.
.
.\" --------------------------------------------------------------------------

View File

@ -306,7 +306,6 @@ II. POLICY / RULES:
- changes to "historical" parts of docs and web pages
- use of internal or external libraries
- reverting commits from other developers
- mixing functional and cosmetic changes
- making the spelling of words consistent without actually correcting
any spelling errors.

View File

@ -24,7 +24,7 @@ efficient as <application>MPlayer</application>'s.
<para>
Using <application>MPlayer</application> with a properly written audio
driver will never result in A/V desyncs related to the audio, except
driver will never result in A/V desynchronisation related to the audio, except
only with very badly created files (check the man page for workarounds).
</para>

View File

@ -18,7 +18,7 @@ we request and follow the instructions in this document closely.
<sect1 id="bugreports_security">
<title>Report security releated bugs</title>
<title>Report security related bugs</title>
<para>
In case you have found an exploitable bug and you would like to do the

View File

@ -88,7 +88,7 @@
<!-- ********** -->
<sect2 id="bugs-delay-specific">
<title>Audio delay/de-sync specific to one or a few files</title>
<title>Audio delay/desync specific to one or a few files</title>
<itemizedlist>
<listitem>

View File

@ -222,11 +222,11 @@ form 1 and 2 tracks:
<itemizedlist>
<listitem><para>
The first track is in mode 2 form 2 format which means it uses L2
error correction. The track contains an ISO-9660 filesystem with 2048
bytes/sector. This filesystem contains VCD metadata information, as
error correction. The track contains an ISO-9660 file system with 2048
bytes/sector. This file system contains VCD metadata information, as
well as still frames often used in menus. MPEG segments for menus can
also be stored in this first track, but the MPEGs have to be broken up
into a series of 150-sector chunks. The ISO-9660 filesystem may
into a series of 150-sector chunks. The ISO-9660 file system may
contain other files or programs that are not essential for VCD
operation.
</para></listitem>
@ -238,7 +238,7 @@ form 1 and 2 tracks:
sector at the loss of some error correction. It is also legal to have
CD-DA tracks in a VCD after the first track as well.
On some operating systems there is some trickery that goes on to make
these non-ISO-9660 tracks appear in a filesystem. On other operating
these non-ISO-9660 tracks appear in a file system. On other operating
systems like GNU/Linux this is not the case (yet). Here the MPEG data
<emphasis role="bold">cannot be mounted</emphasis>. As most movies are
inside this kind of track, you should try <option>vcd://2</option>
@ -246,7 +246,7 @@ form 1 and 2 tracks:
</para></listitem>
<listitem><para>
There exist VCD disks without the first track (single track and no filesystem
There exist VCD disks without the first track (single track and no file system
at all). They are still playable, but cannot be mounted.
</para></listitem>
@ -270,7 +270,7 @@ tracks (Windows does not allow raw device access to applications at all).
Under Linux you cannot copy or play such files (they contain garbage). Under
Windows it is possible as its iso9660 driver emulates the raw reading of
tracks in this file. To play a .DAT file you need the kernel driver which can
be found in the Linux version of PowerDVD. It has a modified iso9660 filesystem
be found in the Linux version of PowerDVD. It has a modified iso9660 file system
(<filename>vcdfs/isofs-2.4.X.o</filename>) driver, which is able to emulate the
raw tracks through this shadow .DAT file. If you mount the disc using their
driver, you can copy and even play .DAT files with

View File

@ -174,9 +174,7 @@ default as it offers better speed.
<filename class="directory">/usr/local/include/</filename>.
</para></step>
<step><para>
Recompile <application>MPlayer</application> with
<option>--with-xvidlibdir=<replaceable>/path/to/</replaceable>libxvidcore.a</option>
<option>--with-xvidincdir=<replaceable>/path/to/</replaceable>xvid.h</option>.
Recompile <application>MPlayer</application>.
</para></step>
</procedure>
</sect2>
@ -283,7 +281,7 @@ but if you are interested in a brief overview, you may want to read
<systemitem class="library">libavcodec</systemitem> has had at
least minimally usable H.264 decoding since around July 2004,
however major changes and improvements have been implemented since
that time, both in terms of more functionalities supported and in
that time, both in terms of more functionality supported and in
terms of improved CPU usage.
Just to be certain, it is always a good idea to use a recent Subversion
checkout.
@ -384,7 +382,7 @@ satisfied the requirements for <systemitem class="library">x264</systemitem>.
Voxware audio (using DirectShow DLL)
</para></listitem>
<listitem><para>
alaw and ulaw, various gsm, adpcm and pcm formats and other simple old
alaw and ulaw, various GSM, ADPCM and PCM formats and other simple old
audio codecs
</para></listitem>
<listitem><para>

View File

@ -83,7 +83,7 @@ functional.
</para>
<para>
One important feature of MPGs is that they have a field to describe the
One important feature of MPEG files is that they have a field to describe the
aspect ratio of the video stream within. For example SVCDs have 480x480
resolution video, and in the header that field is set to 4:3, so that it is
played at 640x480. AVI files often lack this field, so they have to be
@ -319,8 +319,8 @@ Return to Castle Wolfenstein.
<title>OGG/OGM files</title>
<para>
This is a new fileformat from
<ulink url="http://www.xiph.org">Xiphophorus</ulink>.
This is a new file format from the
<ulink url="http://www.xiph.org">Xiph.Org Foundation</ulink>.
It can contain any video or audio codec, CBR or VBR. You'll need
<systemitem class="library">libogg</systemitem> and
<systemitem class="library">libvorbis</systemitem> installed before
@ -503,7 +503,7 @@ options to <application>cdparanoia</application>.
<para>
<application>MPlayer</application> can use <application>XMMS</application> input
plugins to play many file formats. There are plugins for SNES game tunes, SID
tunes (from Commodore 64), many Amiga formats, .xm, .it, VQF, musepack, Bonk,
tunes (from Commodore 64), many Amiga formats, .xm, .it, VQF, Musepack, Bonk,
shorten and many others. You can find them at the
<ulink url="http://www.xmms.org/plugins.php?category=input">XMMS input plugin page</ulink>.
</para>
@ -512,10 +512,6 @@ shorten and many others. You can find them at the
For this feature you need to have <application>XMMS</application> and compile
<application>MPlayer</application> with
<filename>./configure --enable-xmms</filename>.
If that does not work, you might need to set the <application>XMMS</application>
plugin and library path explicitly by way of the
<option>--with-xmmsplugindir</option> and <option>--with-xmmslibdir</option>
options.
</para>
</sect2>
</sect1>

View File

@ -61,24 +61,22 @@ is a lot of valuable information to be found there.
<para>
<application>MPlayer</application> is a movie player for Linux (runs on
many other Unices, and <emphasis role="bold">non-x86</emphasis> CPUs, see
<xref linkend="ports"/>).
It plays most MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM,
many other Unices, and non-x86 CPUs, see <xref linkend="ports"/>).
It plays most MPEG, VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM,
NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska files, supported by
many native, XAnim, RealPlayer, and Win32 DLL codecs. You can watch
<emphasis role="bold">VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora</emphasis>,
and <emphasis role="bold">MPEG-4 (DivX)</emphasis> movies too. Another big
Video CD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora,
and MPEG-4 (DivX) movies, too. Another big
feature of <application>MPlayer</application> is the wide range of
supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib,
fbdev, AAlib, libcaca, DirectFB, but you can use GGI and SDL (and this way all
their drivers) and some lowlevel card-specific drivers (for Matrox, 3Dfx and
their drivers) and some low level card-specific drivers (for Matrox, 3Dfx and
Radeon, Mach64, Permedia3) too! Most of them support software or hardware
scaling, so you can enjoy movies in fullscreen.
<application>MPlayer</application> supports displaying through some
hardware MPEG decoder boards, such as the <link linkend="dvb">DVB</link> and
<link linkend="dxr3">DXR3/Hollywood+</link>. And what about the nice big
antialiased shaded subtitles
(<emphasis role="bold">14 supported types</emphasis>)
antialiased shaded subtitles (14 supported types)
with European/ISO 8859-1,2 (Hungarian, English, Czech, etc), Cyrillic, Korean
fonts, and the onscreen display (OSD)?
</para>
@ -98,19 +96,17 @@ video and audio manipulation.
<application>MEncoder</application> (<application>MPlayer</application>'s Movie
Encoder) is a simple movie encoder, designed to encode
<application>MPlayer</application>-playable movies
(<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
to other <application>MPlayer</application>-playable formats (see below).
It can encode with various codecs, like
<emphasis role="bold">MPEG-4 (DivX4)</emphasis>
It can encode with various codecs, like MPEG-4 (DivX4)
(one or two passes), <systemitem class="library">libavcodec</systemitem>,
<emphasis role="bold">PCM/MP3/VBR MP3</emphasis>
audio.
PCM/MP3/VBR MP3 audio.
</para>
<itemizedlist>
<title><application>MEncoder</application> features</title>
<listitem><para>
Encoding from the wide range of fileformats and decoders of
Encoding from the wide range of file formats and decoders of
<application>MPlayer</application>
</para></listitem>
<listitem><para>
@ -118,7 +114,7 @@ audio.
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>
</para></listitem>
<listitem><para>
Video encoding from <emphasis role="bold">V4L compatible TV tuners</emphasis>
Video encoding from V4L compatible TV tuners
</para></listitem>
<listitem><para>
Encoding/multiplexing to interleaved AVI files with proper index
@ -130,10 +126,7 @@ audio.
1, 2 or 3 pass encoding
</para></listitem>
<listitem><para>
<emphasis role="bold">VBR</emphasis> MP3 audio
<important><para>
VBR MP3 audio doesn't always play nicely on windows players!
</para></important>
VBR MP3 audio
</para></listitem>
<listitem><para>
PCM audio
@ -142,7 +135,7 @@ audio.
Stream copying
</para></listitem>
<listitem><para>
Input A/V synchronizing (PTS-based, can be disabled with
Input A/V synchronizing (pts-based, can be disabled with
<option>-mc 0</option> option)
</para></listitem>
<listitem><para>
@ -151,10 +144,10 @@ audio.
</para></listitem>
<listitem><para>
Using our very powerful filter system (crop, expand, flip, postprocess,
rotate, scale, rgb/yuv conversion)
rotate, scale, RGB/YUV conversion)
</para></listitem>
<listitem><para>
Can encode DVD/VOBsub <emphasis role="bold">AND</emphasis> text subtitles
Can encode DVD/VOBsub and text subtitles
into the output file
</para></listitem>
<listitem><para>

View File

@ -457,7 +457,7 @@ the other for the blue-yellow axis).
Even if your movie width and height are not multiples of 16, the
encoder will use enough 16x16 macroblocks to cover the whole picture
area, and the extra space will go to waste.
So in the interests of maximizing quality at a fixed filesize, it is
So in the interests of maximizing quality at a fixed file size, it is
a bad idea to use dimensions that are not multiples of 16.
</para>
@ -1212,7 +1212,7 @@ Again, it is a matter of putting those bits to better use: why waste them
encoding noise when you can just add that noise back in during playback?
Increasing the parameters for <option>hqdn3d</option> will further
improve compressibility, but if you increase the values too much, you
risk degrading the image visibily. The suggested values above
risk degrading the image visibly. The suggested values above
(<option>2:1:2</option>) are quite conservative; you should feel free to
experiment with higher values and observe the results for yourself.
</para>
@ -1558,7 +1558,7 @@ to get proper sync.
<para>
You need to have <application>MEncoder</application> process the sound.
You can for example copy the orignal soundtrack during the encode with
You can for example copy the original soundtrack during the encode with
<option>-oac copy</option> or convert it to a "light" 4 kHz mono WAV
PCM with <option>-oac pcm -channels 1 -srate 4000</option>.
Otherwise, in some cases, it will generate a video file that will not sync
@ -1571,11 +1571,11 @@ cut audio at these points.
However <application>MPlayer</application> cannot do that, so if you
demux the AC-3 audio and encode it with a separate app (or dump it to PCM with
<application>MPlayer</application>), the splices will be left incorrect
and the only way to correct them is to drop/dup video frames at the
and the only way to correct them is to drop/duplicate video frames at the
splice.
As long as <application>MEncoder</application> sees the audio when it is
encoding the video, it can do this dropping/duping (which is usually OK
since it takes place at full black/scenechange), but if
since it takes place at full black/scene change), but if
<application>MEncoder</application> cannot see the audio, it will just
process all frames as-is and they will not fit the final audio stream when
you for example merge your audio and video track into a Matroska file.
@ -1830,7 +1830,7 @@ numbers to 60, 30, and 24.
<para>
Strictly speaking, all those numbers are approximations. Black and
white NTSC video was exactly 60 fields per second, but 60000/1001
was later chosen to accomodate color data while remaining compatible
was later chosen to accommodate color data while remaining compatible
with contemporary black and white televisions. Digital NTSC video
(such as on a DVD) is also 60000/1001 fields per second. From this,
interlaced and telecined video are derived to be 30000/1001 frames
@ -2413,7 +2413,7 @@ duration/location of each type.
It is safe to use <option>pullup</option> (along with <option>softskip
</option>) on progressive video, and is usually a good idea unless
the source has been definitively verified to be entirely progressive.
The performace loss is small for most cases. On a bare-minimum encode,
The performance loss is small for most cases. On a bare-minimum encode,
<option>pullup</option> causes <application>MEncoder</application> to
be 50% slower. Adding sound processing and advanced <option>lavcopts
</option> overshadows that difference, bringing the performance
@ -2877,7 +2877,7 @@ That would probably be nice, but unfortunately hard to implement as different
encoding options yield different quality results depending on the source
material. That is because compression depends on the visual properties of the
video in question.
For example, anime and live action have very different properties and
For example, Anime and live action have very different properties and
thus require different options to obtain optimum encoding.
The good news is that some options should never be left out, like
<option>mbd=2</option>, <option>trell</option>, and <option>v4mv</option>.
@ -2917,7 +2917,7 @@ See below for a detailed description of common encoding options.
Experiment with values of 0 (default), 2 (hadamard), 3 (dct), and 6 (rate
distortion).
0 is fastest, and sufficient for precmp.
For cmp and subcmp, 2 is good for anime, and 3 is good for live action.
For cmp and subcmp, 2 is good for Anime, and 3 is good for live action.
6 may or may not be slightly better, but is slow.
</para></listitem>
<listitem><para>
@ -2961,7 +2961,7 @@ See below for a detailed description of common encoding options.
when the change in a block is less than the threshold you specify, and in
such a case, to just encode the block as "no change".
This saves bits and perhaps speeds up encoding. vlelim=-4 and vcelim=9
seem to be good for live movies, but seem not to help with anime;
seem to be good for live movies, but seem not to help with Anime;
when encoding animation, you should probably leave them unchanged.
</para></listitem>
<listitem><para>
@ -2970,7 +2970,7 @@ See below for a detailed description of common encoding options.
therefore this option comes with an overhead as more information will be
stored in the encoded file.
The compression gain/loss depends on the movie, but it is usually not very
effective on anime.
effective on Anime.
qpel always incurs a significant cost in CPU decode time (+25% in
practice).
</para></listitem>
@ -3235,7 +3235,7 @@ this parameter (refer to the man page for the possible values) as
different functions can have a large impact on quality depending on the
source material. For example, if you find
<systemitem class="library">libavcodec</systemitem> produces too much
blocky artifacting, you could try selecting the experimental NSSE as
blocky artifacts, you could try selecting the experimental NSSE as
comparison function via <option>*cmp=10</option>.
</para>
@ -3376,7 +3376,7 @@ the following section puzzles you.
<listitem><para>
<emphasis role="bold">hq_ac</emphasis>
Activates a better coefficient cost estimation method, which slightly
reduces filesize by around 0.15 to 0.19% (which corresponds to less
reduces file size by around 0.15 to 0.19% (which corresponds to less
than 0.01dB PSNR increase), while having a negligible impact on speed.
It is therefore recommended to always leave it on.
</para></listitem>
@ -3409,7 +3409,7 @@ the following section puzzles you.
information into account, whereas <option>me_quality</option>
alone only uses luma (grayscale).
This slows down encoding by 5-10% but improves visual quality
quite a bit by reducing blocking effects and reduces filesize by
quite a bit by reducing blocking effects and reduces file size by
around 1.3%.
If you are looking for speed, you should disable this option before
starting to consider reducing <option>me_quality</option>.
@ -3703,7 +3703,7 @@ The following table shows what each profile supports.
<entry>X</entry>
</row>
<row>
<entry>Quaterpixel</entry>
<entry>Quarterpixel</entry>
<entry></entry>
<entry></entry>
<entry></entry>
@ -3986,7 +3986,7 @@ random differences in the achieved bitrate.
quality: You will probably lose well under 0.1dB PSNR, which
should be much too small of a difference to see.
However, different values of <option>frameref</option> can
occasionally affect frametype decision.
occasionally affect frame type decision.
Most likely, these are rare outlying cases, but if you want to
be pretty sure, consider whether your video has either
fullscreen repetitive flashing patterns or very large temporary
@ -4070,7 +4070,7 @@ random differences in the achieved bitrate.
The speed penalty of adaptive B-frames is currently rather modest,
but so is the potential quality gain.
It usually does not hurt, however.
Note that this only affects speed and frametype decision on the
Note that this only affects speed and frame type decision on the
first pass.
<option>b_adapt</option> and <option>b_bias</option> have no
effect on subsequent passes.
@ -4149,7 +4149,7 @@ random differences in the achieved bitrate.
which, in isolation, requires about 2500kbps in order to look decent.
Immediately following it is a much less demanding 60-second scene
that looks good at 300kbps. Suppose you ask for 1400kbps on the theory
that this is enough to accomodate both scenes. Single pass ratecontrol
that this is enough to accommodate both scenes. Single pass ratecontrol
will make a couple of "mistakes" in such a case. First of all, it
will target 1400kbps in both segments. The first segment may end up
heavily overquantized, causing it to look unacceptably and unreasonably
@ -4196,7 +4196,7 @@ random differences in the achieved bitrate.
pass will both read the statistics from the previous pass, and write
its own statistics. An additional pass following this one will have
a very good base from which to make highly accurate predictions of
framesizes at a chosen quantizer. In practice, the overall quality
frame sizes at a chosen quantizer. In practice, the overall quality
gain from this is usually close to zero, and quite possibly a third
pass will result in slightly worse global PSNR than the pass before
it. In typical usage, three passes help if you get either bad bitrate
@ -4296,7 +4296,7 @@ random differences in the achieved bitrate.
If your H.264 encodes look too blurry or smeared, try playing with
<option>-vf noise</option> when you play your encoded movie.
<option>-vf noise=8a:4a</option> should conceal most mild
artifacting.
artifacts.
It will almost certainly look better than the results you
would have gotten just by fiddling with the deblocking filter.
</para>
@ -4457,7 +4457,7 @@ if a codec fails or gives wrong output.
</row>
<row>
<entry>m3jpeg32.dll</entry>
<entry>Morgan Motion JPEG Codec (MJPG)</entry>
<entry>Morgan Motion JPEG Codec (MJPEG)</entry>
<entry>1cd13fff5960aa2aae43790242c323b1</entry>
<entry></entry>
</row>
@ -4828,7 +4828,7 @@ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300
<screen>mplayer narnia.avi -dumpaudio -dumpfile narnia.aac
mplayer narnia.avi -dumpvideo -dumpfile narnia.h264</screen>
The filenames are important; <application>mp4creator</application>
The file names are important; <application>mp4creator</application>
requires that AAC audio streams be named <systemitem>.aac</systemitem>
and H.264 video streams be named <systemitem>.h264</systemitem>.
</para>
@ -5076,7 +5076,7 @@ The GOP size is set using the <option>keyint</option> option.
<para>
VCD video is required to be CBR at 1152 kbps.
This highly limiting constraint also comes along with an extremly low vbv
This highly limiting constraint also comes along with an extremely low vbv
buffer size of 327 kilobits.
SVCD allows varying video bitrates up to 2500 kbps, and a somewhat less
restrictive vbv buffer size of 917 kilobits is allowed.
@ -5126,7 +5126,7 @@ DVD (with timestamps on every frame, if possible):
DVD with NTSC Pullup:
<screen>-of mpeg -mpegopts format=dvd:tsaf:telecine -ofps 24000/1001</screen>
This allows 24000/1001 fps progressive content to be encoded at 30000/1001
fps whilst maintaing DVD-compliance.
fps whilst maintaining DVD-compliance.
</para>

View File

@ -831,7 +831,7 @@ What about DVD navigation/menus?
architectural limitations that prevent proper handling of still images and
interactive content. If you want to have fancy menus, you will have to use
another player like <application>xine</application>,
<application>vlc</application> or <application>Ogle</application>.
<application>VLC</application> or <application>Ogle</application>.
If you want to see DVD navigation in <application>MPlayer</application> you
will have to implement it yourself, but be aware that it is a major
undertaking.

View File

@ -106,7 +106,7 @@ audio), even more stable than ever, and so on. It's a MUST!
<para>
Hmm. Release again. Tons of new features, beta GUI version,
bugs fixed, new vo and ao drivers, ported to many systems, including
opensource DivX codecs and much more. Try it!
open source DivX codecs and much more. Try it!
</para>
</listitem>
@ -115,7 +115,7 @@ opensource DivX codecs and much more. Try it!
<emphasis role="bold"><application>MPlayer</application> 0.60 "The RTFMCounter"</emphasis>: Jan 3, 2002
</para>
<para>
MOV/VIVO/RM/FLI/NUV fileformats support, native CRAM, Cinepak,
MOV/VIVO/RM/FLI/NUV file formats support, native CRAM, Cinepak,
ADPCM codecs, and support for XAnim's binary codecs; DVD subtitles support,
first release of <application>MEncoder</application>, TV grabbing, cache,
liba52, countless fixes.

View File

@ -287,7 +287,7 @@ ln -s <replaceable>$PREFIX/share/mplayer/arial-24</replaceable> $PREFIX/share/mp
<para>
Fonts should have an appropriate <filename>font.desc</filename> file
which maps unicode font positions to the actual code page of the
which maps Unicode font positions to the actual code page of the
subtitle text. Another solution is to have UTF-8-encoded subtitles
and use the <option>-utf8</option> option or give the subtitles
file the same name as your video file with a <filename>.utf</filename>
@ -301,7 +301,7 @@ extension and have it in the same directory as the video file.
<title>OSD menu</title>
<para>
<application>MPlayer</application> has a completely user definiable
<application>MPlayer</application> has a completely user-definable
OSD Menu interface.
</para>
@ -368,7 +368,7 @@ There are three timing methods in <application>MPlayer</application>.
but a properly set up kernel is required.
If you are running kernel 2.4.19pre8 or later you can adjust the maximum RTC
frequency for normal users through the <systemitem class="systemname">/proc
</systemitem> filesystem. Use one of the following two commands to
</systemitem> file system. Use one of the following two commands to
enable RTC for normal users:
<screen>echo 1024 &gt; /proc/sys/dev/rtc/max-user-freq</screen>
<screen>sysctl dev/rtc/max-user-freq=1024</screen>

View File

@ -300,7 +300,7 @@ You can use the <option>-chapter</option> option for this purpose.
For example, <option>-chapter</option> <replaceable>1-4</replaceable>
will only encode chapters 1 through 4 from the DVD.
This is especially useful if you will be making a 1400 MB encode
targetted for two CDs, since you can ensure the split occurs exactly
targeted for two CDs, since you can ensure the split occurs exactly
at a chapter boundary rather than in the middle of a scene.
</para>
@ -478,7 +478,7 @@ all passes are run with target bitrates that do not differ very much.
<title>Rescaling movies</title>
<para>
Often the need to resize movie images' size emerges. Its reasons can be
Often the need to resize movie images emerges. The reasons can be
many: decreasing file size, network bandwidth, etc. Most people even do
rescaling when converting DVDs or SVCDs to DivX AVI. If you wish to rescale,
read the <link linkend="aspect">Preserving aspect ratio</link> section.

View File

@ -68,7 +68,7 @@ from <ulink url="http://rpm.livna.org/">Livna repository</ulink>.
<para>
Mandrake/Mandriva RPM packages are available from the
<ulink url="http://plf.zarb.org/">P.L.F.</ulink>.
SuSE used to include a crippled version of <application>MPlayer</application>
SUSE used to include a crippled version of <application>MPlayer</application>
in their distribution. They have removed it in their latest releases. You can
get working RPMs from
<ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>.
@ -325,12 +325,12 @@ you may not be able to play DVD discs larger than 4 GB:
</para></listitem>
<listitem><para>
A similar bug is present in the hsfs(7FS) filesystem code (AKA ISO9660),
A similar bug is present in the hsfs(7FS) file system code (AKA ISO9660),
hsfs may not not support partitions/disks larger than 4GB, all data is
accessed modulo 4GB
(<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>).
The hsfs problem can be fixed by installing
patch 109764-04 (sparc) / 109765-04 (x86).
patch 109764-04 (SPARC) / 109765-04 (x86).
</para></listitem>
</itemizedlist>
</listitem>
@ -768,7 +768,7 @@ Later examples will be based on MacPorts.
<para>
For instance, to compile <application>MPlayer</application> with OSD support:
<screen>sudo port install pkgconfig</screen>
<screen>sudo port install pkg-config</screen>
This will install <application>pkg-config</application>, which is a system for
managing library compile/link flags.
<application>MPlayer</application>'s <systemitem>configure</systemitem> script

View File

@ -1107,14 +1107,14 @@ menu entries.
<varlistentry>
<term><emphasis role="bold">evLoadSubtitle</emphasis></term>
<listitem><para>
Loads a subtitle file (with the fileselector)
Loads a subtitle file (with the file selector).
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">evLoadAudioFile</emphasis></term>
<listitem><para>
Loads an audio file (with the fileselector)
Loads an audio file (with the file selector).
</para></listitem>
</varlistentry>

View File

@ -291,7 +291,7 @@ ENTER pt_step 1 1<!--
<title>Control from LIRC</title>
<para>
Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver,
Linux Infrared Remote Control - use an easy to build home-brewed IR-receiver,
an (almost) arbitrary remote control and control your Linux box with it!
More about it on the <ulink url="http://www.lirc.org">LIRC homepage</ulink>.
</para>
@ -421,7 +421,7 @@ will save the content streamed from
<replaceable>http://217.71.208.37:8006</replaceable> into
<replaceable>stream.asf</replaceable>.
This works with all protocols supported by
<application>MPlayer</application>, like MMS, RSTP, and so forth.
<application>MPlayer</application>, like MMS, RTSP, and so forth.
</para>
</sect2>
</sect1>

View File

@ -193,9 +193,9 @@ xv support, but the card itself is very slow, so you better sell it.
</para>
<para>
There is now a native framebuffer driver for S3 Virge cards similiar to
There is now a native framebuffer driver for S3 Virge cards similar to
tdfxfb. Set up your framebuffer (e.g. append
"<option>vga=792 video=vesa:mtrr</option>" to your kernel comand line) and use
"<option>vga=792 video=vesa:mtrr</option>" to your kernel command line) and use
<option>-vo s3fb</option> (<option>-vf yuy2</option> and <option>-dr</option>
will also help).
</para>
@ -838,7 +838,7 @@ framebuffer, and don't ask for it, since it's not an
<para>
<systemitem>mga_vid</systemitem> is a combination of a video output driver and
a Linux kernel module that utilitizes the Matrox G200/G400/G450/G550 video
a Linux kernel module that utilizes the Matrox G200/G400/G450/G550 video
scaler/overlay unit to perform YUV->RGB colorspace conversion and arbitrary
video scaling.
<systemitem>mga_vid</systemitem> has hardware VSYNC support with triple
@ -1567,13 +1567,10 @@ Alternatively, you can use a special kernel module, like this:
<filename class="directory">svgalib_helper</filename> dir, as root.
</para></step>
<step><para>
Move the <filename class="directory">svgalib_helper</filename> directory to
the <filename class="directory">vidix</filename> subdirectory of the
<application>MPlayer</application> source tree.
</para></step>
<step><para>
Remove the comment before the CFLAGS line containing the "svgalib_helper"
string from <filename class="directory">vidix/Makefile</filename>.
Then run <filename>configure</filename> again and pass the parameter
<option>--enable-svgalib_helper</option> as well as
<option>--with-extraincdir=/path/to/svgalib_helper/sources</option>,
adjusted to wherever you extracted svgalib_helper sources.
</para></step>
<step><para>
Recompile.
@ -1857,7 +1854,7 @@ have <command>scan</command> compile it for you.
</para>
<para>
If you have more than one card type (e.g. Satellitar, Terrestrial, Cable and ATSC)
If you have more than one card type (e.g. Satellite, Terrestrial, Cable and ATSC)
you can save your channels files as
<filename>~/.mplayer/channels.conf.sat</filename>,
<filename>~/.mplayer/channels.conf.ter</filename>,
@ -2245,7 +2242,7 @@ mplayer -vo zr -vf crop=720:320:80:0 <replaceable>benhur.avi</replaceable>
<para>
Extra occurrences of <option>-zrcrop</option> invoke
<emphasis>cinerama</emphasis> mode, i.e. you can distribute the movie over
several TV's or beamers to create a larger screen.
several TVs or beamers to create a larger screen.
Suppose you have two beamers. The left one is connected to your
Buz at <filename>/dev/video1</filename> and the right one is connected to
your DC10+ at <filename>/dev/video0</filename>. The movie has a resolution
@ -2337,7 +2334,7 @@ for Matrox G450/G550 TV-out instructions, please see the next section!
<emphasis role="bold">SLOW</emphasis>, and has
<emphasis role="bold">Macrovision</emphasis> copy protection enabled
(you can "workaround" Macrovision using this
<ulink url="http://avifile.sf.net/mgamacro.pl">perl script</ulink>).
<ulink url="http://avifile.sf.net/mgamacro.pl">Perl script</ulink>).
</para>
</listitem>
</varlistentry>
@ -2347,43 +2344,22 @@ for Matrox G450/G550 TV-out instructions, please see the next section!
<para>
Using the <emphasis role="bold">matroxfb modules</emphasis> in the 2.4
kernels. 2.2 kernels don't have the TV-out feature in them, thus unusable
for this. You have to enable ALL matroxfb-specific feature during
for this. You have to enable ALL matroxfb-specific features during
compilation (except MultiHead), and compile them into
<emphasis role="bold">modules</emphasis>!
You'll also need I2C enabled.
You'll also need to enable I2C and put the tools
<application>matroxset</application>, <application>fbset</application>
and <application>con2fb</application> in your path.
</para>
<procedure>
<step><para>
Enter <filename class="directory">TVout</filename> and type
<command>./compile.sh</command>. Install
<filename>TVout/matroxset/matroxset</filename>
somewhere into your <envar>PATH</envar>.
Then load the <systemitem>matroxfb_Ti3026, matroxfb_maven, i2c-matroxfb,
matroxfb_crtc2</systemitem> modules into your kernel. Your text-mode
console will enter into framebuffer mode (no way back!).
</para></step>
<step><para>
If you don't have <command>fbset</command> installed, put
<filename>TVout/fbset/fbset</filename>
somewhere into your <envar>PATH</envar>.
</para></step>
<step><para>
If you don't have <command>con2fb</command> installed, put
<filename>TVout/con2fb/con2fb</filename>
somewhere into your <envar>PATH</envar>.
</para></step>
<step><para>
Then enter into the <filename class="directory">TVout/</filename>
directory in the <application>MPlayer</application> source, and execute
<filename>./modules</filename> as root. Your text-mode console will
enter into framebuffer mode (no way back!).
</para></step>
<step><para>
Next, EDIT and run the <filename>./matroxtv</filename> script. This will
present you to a very simple menu. Press <keycap>2</keycap> and
<keycap>Enter</keycap>. Now you should have the same picture on your
monitor, and TV. If the TV (PAL by default)
picture has some weird stripes on it, the script wasn't able to set the
resolution correctly (to 640x512 by default). Try other resolutions
from the menu and/or experiment with fbset.
Next, set up your monitor and TV to your liking using the above tools.
</para></step>
<step><para>
Yoh. Next task is to make the cursor on tty1 (or whatever) to
@ -2424,29 +2400,6 @@ mplayer -vo mga -fs -screenw 640 -screenh 512 <replaceable>filename</replaceable
</listitem>
</varlistentry>
</variablelist>
<formalpara><title>Building a Matrox TV-out cable</title>
<para>
No one takes any responsibility, nor guarantee for any damage caused
by this documentation.
</para>
</formalpara>
<formalpara><title>Cable for G400</title>
<para>
The CRTC2 connector's fourth pin is the composite video signal. The
ground are the sixth, seventh and eighth pins. (info contributed
from Balázs Rácz)
</para>
</formalpara>
<formalpara><title>Cable for G450</title>
<para>
The CRTC2 connector's first pin is the composite video signal. The
ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15)
pins. (info contributed from Balázs Kerekes)
</para>
</formalpara>
</sect2>
<!-- ********** -->
@ -2481,6 +2434,32 @@ The necessary kernel patch and the detailed HOWTO is downloadable from
<!-- ********** -->
<sect2 id="tv-out_matrox_cable">
<title>Building a Matrox TV-out cable</title>
<para>
No one takes any responsibility, nor guarantee for any damage caused
by this documentation.
</para>
<formalpara><title>Cable for G400</title>
<para>
The CRTC2 connector's fourth pin is the composite video signal. The
ground are the sixth, seventh and eighth pins. (info contributed
from Balázs Rácz)
</para>
</formalpara>
<formalpara><title>Cable for G450</title>
<para>
The CRTC2 connector's first pin is the composite video signal. The
ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15)
pins. (info contributed from Balázs Kerekes)
</para>
</formalpara>
</sect2>
<!-- ********** -->
<sect2 id="tvout-ati">
<title>ATI cards</title>

View File

@ -756,7 +756,7 @@ version.h:
./version.sh `$(CC) -dumpversion`
osdep/mplayer-rc.o: osdep/mplayer.rc version.h
$(WINDRES) -I. -o $@ $<
$(WINDRES) -I. $< $@
@ -777,11 +777,13 @@ loader/win32.o loader/win32.d: CFLAGS += $(CFLAG_STACKREALIGN)
mp3lib/decode_i586.o: CFLAGS += -fomit-frame-pointer
vidix/%: CFLAGS += $(SVGALIB_CFLAGS)
VIDIX_PCI_FILES = vidix/pci_dev_ids.c vidix/pci_ids.h vidix/pci_names.c \
vidix/pci_names.h vidix/pci_vendors.h
$(VIDIX_PCI_FILES): vidix/pci.db
LC_ALL=C awk -f vidix/pci_db2c.awk $< $(VIDIX_PCIDB)
$(VIDIX_PCI_FILES): vidix/pci.db vidix/pci_db2c.awk
awk -f vidix/pci_db2c.awk $< $(VIDIX_PCIDB)
VIDIX_DEPS = $(filter vidix/%,$(SRCS_MPLAYER:.c=.d))
VIDIX_OBJS = $(filter vidix/%,$(SRCS_MPLAYER:.c=.o))
@ -901,7 +903,9 @@ TOOLS = TOOLS/alaw-gen$(EXESUF) \
TOOLS/compare$(EXESUF) \
TOOLS/dump_mp4$(EXESUF) \
TOOLS/movinfo$(EXESUF) \
TOOLS/netstream$(EXESUF) \
TOOLS/subrip$(EXESUF) \
TOOLS/vivodump$(EXESUF) \
ifdef ARCH_X86
TOOLS += TOOLS/modify_reg$(EXESUF)
@ -910,8 +914,6 @@ endif
ALLTOOLS = $(TOOLS) \
TOOLS/bmovl-test$(EXESUF) \
TOOLS/vfw2menc$(EXESUF) \
TOOLS/vivodump$(EXESUF) \
TOOLS/netstream$(EXESUF) \
tools: $(TOOLS)
alltools: $(ALLTOOLS)
@ -927,8 +929,13 @@ TOOLS/subrip$(EXESUF): TOOLS/subrip.c vobsub.o spudec.o unrar_exec.o \
TOOLS/vfw2menc$(EXESUF): TOOLS/vfw2menc.c -lwinmm -lole32
#FIXME: Linking is broken, help welcome.
TOOLS/vivodump$(EXESUF): TOOLS/vivodump.c $(TEST_OBJS)
mplayer-nomain.o: mplayer.c
$(CC) $(CFLAGS) -DDISABLE_MAIN -c -o $@ $<
TOOLS/netstream$(EXESUF): TOOLS/netstream.c $(subst mplayer.o,mplayer-nomain.o,$(OBJS_MPLAYER)) $(filter-out %mencoder.o,$(OBJS_MENCODER)) $(OBJS_COMMON) $(COMMON_LIBS)
TOOLS/vivodump$(EXESUF): TOOLS/vivodump.c $(subst mplayer.o,mplayer-nomain.o,$(OBJS_MPLAYER)) $(filter-out %mencoder.o,$(OBJS_MENCODER)) $(OBJS_COMMON) $(COMMON_LIBS)
TOOLS/netstream$(EXESUF) TOOLS/vivodump$(EXESUF):
$(CC) $(CFLAGS) -o $@ $^ $(EXTRALIBS_MPLAYER) $(EXTRALIBS_MENCODER) $(COMMON_LDFLAGS)
fastmemcpybench: TOOLS/fastmemcpybench.c
$(CC) $(CFLAGS) $< -o TOOLS/fastmem-mmx$(EXESUF) -DNAME=\"mmx\" -DHAVE_MMX
@ -950,16 +957,6 @@ fastmemcpybench realcodecs: CFLAGS += -g
%.so.6.0: %.o
ld -shared -o $@ $< -ldl -lc
# FIXME: netstream linking is a mess that should be fixed properly some day.
# It does not work with either GUI, LIVE555, libavformat, cdparanoia enabled.
NETSTREAM_DEPS = libavutil/libavutil.a \
m_option.o \
m_struct.o \
$(TEST_OBJS)
TOOLS/netstream$(EXESUF): TOOLS/netstream.o $(NETSTREAM_DEPS)
$(CC) $(CFLAGS) -o $@ $^
###### drivers #######

View File

@ -46,16 +46,18 @@
/// Netstream packets def and some helpers
#include "stream/netstream.h"
// linking hacks
char *info_name;
char *info_artist;
char *info_genre;
char *info_subject;
char *info_copyright;
char *info_sourceform;
char *info_comment;
//Set some standard variables
char* dvdsub_lang=NULL;
char* audio_lang=NULL;
int sub_justify=0;
int identify=0;
int dvdsub_id=0;
int audio_id=0;
int video_id=0;
void af_fmt2str() {};
char* out_filename = NULL;
char* force_fourcc=NULL;
char* passtmpfile="divx2pass.log";
#ifdef __MINGW32__
#define usleep sleep
@ -367,46 +369,3 @@ int main(void) {
}
return main_loop(listen_fd);
}
//---- For libmpdemux
float stream_cache_seek_min_percent=50.0;
float stream_cache_min_percent=20.0;
#include <libmpdemux/demuxer.h>
#include <libmpdemux/stheader.h>
// audio stream skip/resync functions requires only for seeking.
// (they should be implemented in the audio codec layer)
void skip_audio_frame(sh_audio_t *sh_audio){
sh_audio=NULL;
}
void resync_audio_stream(sh_audio_t *sh_audio){
sh_audio=NULL;
}
int mp_input_check_interrupt(int time){
if(time) usleep(time);
return 0;
}
// for libdvdread:
#include "get_path.c"
// linking hacks
int stream_cache_size=0;
int index_mode=0;
// for demux_ogg:
void* vo_sub=NULL;
int vo_osd_changed(int new_value){ new_value++; return 0;}
int subcc_enabled=0;
float sub_fps=0;
int sub_utf8=0;
int suboverlap_enabled = 1;
float sub_delay=0;
//---------------

View File

@ -10,6 +10,7 @@
#include "libmpdemux/muxer.h"
#include "libmpdemux/demuxer.h"
/* linking hacks */
char *info_name;
char *info_artist;
char *info_genre;
@ -18,6 +19,10 @@ char *info_copyright;
char *info_sourceform;
char *info_comment;
char* out_filename = NULL;
char* force_fourcc=NULL;
char* passtmpfile="divx2pass.log";
static const short h263_format[8][2] = {
{ 0, 0 },
{ 128, 96 },

View File

@ -832,7 +832,7 @@ static int mp_property_audio(m_option_t *prop, int action, void *arg,
#ifdef USE_DVDNAV
else if (mpctx->stream->type == STREAMTYPE_DVDNAV)
dvdnav_lang_from_aid(mpctx->stream, opts->audio_id, lang);
mp_dvdnav_lang_from_aid(mpctx->stream, opts->audio_id, lang);
#endif
*(char **) arg = malloc(64);
snprintf(*(char **) arg, 64, "(%d) %s", opts->audio_id, lang);
@ -1351,8 +1351,8 @@ static int mp_property_sub(m_option_t *prop, int action, void *arg,
if (mpctx->stream->type == STREAMTYPE_DVDNAV) {
if (vo_spudec && opts->sub_id >= 0) {
unsigned char lang[3];
if (dvdnav_lang_from_sid(mpctx->stream, opts->sub_id, lang)) {
snprintf(*(char **) arg, 63, "(%d) %s", opts->sub_id, lang);
if (mp_dvdnav_lang_from_sid(mpctx->stream, opts->sub_id, lang)) {
snprintf(*(char **) arg, 63, "(%d) %s", opts->sub_id, lang);
return M_PROPERTY_OK;
}
}

71
configure vendored
View File

@ -339,12 +339,12 @@ Codecs:
--enable-muxer=MUXER enable specified FFmpeg muxer
Video output:
--disable-vidix-internal disable internal VIDIX [for x86 *nix]
--disable-vidix-external disable external VIDIX [for x86 *nix]
--disable-vidix disable VIDIX [for x86 *nix]
--with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
Available: cyberblade,ivtv,mach64,mga,mga_crtc2,
nvidia,pm2,pm3,radeon,rage128,s3,sis,unichrome
--disable-vidix-pcidb disable VIDIX PCI device name database
--enable-svgalib_helper enable VIDIX svgalib_helper support
--enable-gl enable OpenGL video output [autodetect]
--enable-dga2 enable DGA 2 support [autodetect]
--enable-dga1 enable DGA 1 support [autodetect]
@ -619,9 +619,9 @@ _pvr=auto
_network=yes
_winsock2=auto
_smbsupport=auto
_vidix_internal=auto
_vidix_external=auto
_vidix=auto
_vidix_pcidb=yes
_svgalib_helper=no
_joystick=no
_xvid=auto
_xvid_lavc=auto
@ -1016,14 +1016,14 @@ for ac_option do
--disable-winsock2) _winsock2=no ;;
--enable-smb) _smbsupport=yes ;;
--disable-smb) _smbsupport=no ;;
--enable-vidix-internal) _vidix_internal=yes ;;
--disable-vidix-internal) _vidix_internal=no ;;
--enable-vidix-external) _vidix_external=yes ;;
--disable-vidix-external) _vidix_external=no ;;
--enable-vidix) _vidix=yes ;;
--disable-vidix) _vidix=no ;;
--with-vidix-drivers=*)
_vidix_drivers=`echo $ac_option | cut -d '=' -f 2`
;;
--disable-vidix-pcidb) _vidix_pcidb=no ;;
--enable-svgalib_helper) _svgalib_helper=yes ;;
--disable-svgalib_helper) _svgalib_helper=no ;;
--enable-joystick) _joystick=yes ;;
--disable-joystick) _joystick=no ;;
--enable-xvid) _xvid=yes ;;
@ -4193,7 +4193,6 @@ echores "$_gl"
echocheck "VIDIX"
_vidix=no
_def_vidix='#undef CONFIG_VIDIX'
_def_vidix_drv_cyberblade='#undef CONFIG_VIDIX_DRV_CYBERBLADE'
_vidix_drv_cyberblade=no
@ -4223,24 +4222,11 @@ _def_vidix_drv_sis='#undef CONFIG_VIDIX_DRV_SIS'
_vidix_drv_sis=no
_def_vidix_drv_unichrome='#undef CONFIG_VIDIX_DRV_UNICHROME'
_vidix_drv_unichrome=no
if test "$_vidix_internal" = auto ; then
_vidix_internal=no
if test "$_vidix" = auto ; then
_vidix=no
x86 && (linux || freebsd || netbsd || openbsd || dragonfly || sunos || win32) \
&& _vidix_internal=yes
(ppc || alpha) && linux && _vidix_internal=yes
fi
if test "$_vidix_internal" = yes; then
_res_comment="internal"
_vidix_external=no
_vidix=yes
elif test "$_vidix_external" = auto; then
_vidix_external=no
cat > $TMPC <<EOF
#include <vidix/vidix.h>
int main(void) { return 0; }
EOF
cc_check -lvidix && _vidix_external=yes && _res_comment="external" \
&& _vidix=yes
&& _vidix=yes
(ppc || alpha) && linux && _vidix=yes
fi
echores "$_vidix"
@ -4259,17 +4245,23 @@ if test "$_vidix" = yes ; then
eval _vidix_drv_${driver}=yes
eval _def_vidix_drv_${driver}=\"\#define CONFIG_VIDIX_DRV_${uc_driver} 1\"
done
echocheck "VIDIX PCI device name database"
echores "$_vidix_pcidb"
if test "$_vidix_pcidb" = yes ; then
_vidix_pcidb_val=1
else
_vidix_pcidb_val=0
fi
echocheck "VIDIX svgalib_helper support"
test "$_svgalib_helper" = yes && cflag_svgalib_helper=-DCONFIG_SVGAHELPER
echores "$_svgalib_helper"
else
_novomodules="cvidix $_novomodules"
fi
if test "$_vidix_internal" = yes ; then
_def_vidix_pfx="#define MP_VIDIX_PFX \"$_libdir\" \"/mplayer/vidix/\" "
elif test "$_vidix_external" = yes ; then
_libs_mplayer="$_libs_mplayer -lvidix"
_def_vidix_pfx='#define MP_VIDIX_PFX "" '
fi
if test "$_vidix" = yes && win32; then
_vosrc="$_vosrc vo_winvidix.c"
_vomodules="winvidix $_vomodules"
@ -4284,14 +4276,6 @@ else
_novomodules="xvidix $_novomodules"
fi
echocheck "VIDIX PCI device name database"
echores "$_vidix_pcidb"
if test "$_vidix_pcidb" = yes ; then
_vidix_pcidb_val=1
else
_vidix_pcidb_val=0
fi
echocheck "/dev/mga_vid"
if test "$_mga" = auto ; then
_mga=no
@ -7580,7 +7564,7 @@ cat > config.mak << EOF
# -------- Generated by configure -----------
# Ensure that locale settings do not interfere with shell commands.
LC_ALL = C
export LC_ALL = C
MAN_LANG = $MAN_LANG
MAN_LANG_ALL = $MAN_LANG_ALL
@ -7611,6 +7595,7 @@ CFLAG_NO_OMIT_LEAF_FRAME_POINTER = $CFLAG_NO_OMIT_LEAF_FRAME_POINTER
CXXFLAGS = $CXXFLAGS \$(EXTRAXX_INC)
CFLAG_STACKREALIGN = $_stackrealign
LIBDVDCSS_DVDREAD_FLAGS = $_libdvdcss_dvdread_flags
CFLAG_SVGALIB_HELPER = $cflag_svgalib_helper
ASFLAGS = $ASFLAGS
EXTRALIBS = $_extra_libs
@ -7730,8 +7715,6 @@ TWOLAME=$_twolame
UNRAR_EXEC = $_unrar_exec
VCD = $_vcd
VIDIX = $_vidix
VIDIX_EXTERNAL = $_vidix_external
VIDIX_INTERNAL = $_vidix_internal
VIDIX_PCIDB = $_vidix_pcidb_val
VIDIX_CYBERBLADE=$_vidix_drv_cyberblade
VIDIX_IVTV=$_vidix_drv_ivtv

View File

@ -686,6 +686,7 @@ videocodec ffodivx
fourcc DXGM
fourcc SEDG ; diskless camcorder Samsung Miniket VP-M110
fourcc SMP4,smp4 ; Samsung SMP4 video codec
fourcc VIDM ; vidm 4.01 codec
format 0x10000004 ; mpeg 4 es
driver ffmpeg
dll mpeg4 ;opendivx
@ -717,6 +718,7 @@ videocodec xvid
fourcc DXGM
fourcc SEDG ; diskless camcorder Samsung Miniket VP-M110
fourcc SMP4,smp4 ; Samsung SMP4 video codec
fourcc VIDM ; vidm 4.01 codec
format 0x10000004 ; mpeg 4 es
driver xvid
out YV12
@ -1470,6 +1472,14 @@ videocodec lagarith
dll "lagarith.dll"
out BGR32,BGR24 flip
videocodec psiv
info "Infinite Video PSI_V"
status working
fourcc PSIV
driver vfw
dll "psiv.dll"
out BGR32,BGR24 query,flip
videocodec canopushq
status working
info "Canopus HQ Codec"
@ -1815,6 +1825,14 @@ videocodec qt3ivx
dll "3ivx Delta 3.5.qtx"
out YUY2
videocodec qtactl
info "Win32/QuickTime Streambox ACT-L2"
status working
fourcc ACTL
driver qtvideo
dll ACTLComponent.qtx
out YUY2
videocodec qtavui
info "Win32/QuickTime Avid Meridien Uncompressed"
status working

View File

@ -1108,7 +1108,7 @@ static int channel_layout_mapping_5ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_AC3_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_LIBA52_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_VORBIS_5CH_DEFAULT,
AF_CHANNEL_LAYOUT_VORBIS_5CH_DEFAULT,
};
static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
@ -1118,7 +1118,7 @@ static int channel_layout_mapping_6ch[AF_CHANNEL_LAYOUT_SOURCE_NUM] = {
AF_CHANNEL_LAYOUT_LAVC_AC3_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_LIBA52_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_LAVC_VORBIS_6CH_DEFAULT,
AF_CHANNEL_LAYOUT_VORBIS_6CH_DEFAULT,
};
void reorder_channel_copy_nch(void *src,

View File

@ -71,8 +71,8 @@
#define AF_CHANNEL_LAYOUT_LAVC_LIBA52_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_E
#define AF_CHANNEL_LAYOUT_LAVC_DCA_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_D
#define AF_CHANNEL_LAYOUT_LAVC_DCA_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_D
#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_C
#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_C
#define AF_CHANNEL_LAYOUT_VORBIS_5CH_DEFAULT AF_CHANNEL_LAYOUT_5_0_C
#define AF_CHANNEL_LAYOUT_VORBIS_6CH_DEFAULT AF_CHANNEL_LAYOUT_5_1_C
#define AF_CHANNEL_MASK 0xFF
#define AF_GET_CH_NUM(A) ((A)&0x7F)
@ -104,7 +104,7 @@ void reorder_channel(void *buf,
#define AF_CHANNEL_LAYOUT_LAVC_AC3_DEFAULT 3
#define AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT 4
#define AF_CHANNEL_LAYOUT_LAVC_DCA_DEFAULT 5
#define AF_CHANNEL_LAYOUT_LAVC_VORBIS_DEFAULT 6
#define AF_CHANNEL_LAYOUT_VORBIS_DEFAULT 6
#define AF_CHANNEL_LAYOUT_SOURCE_NUM 7
#define AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT AF_CHANNEL_LAYOUT_ALSA_DEFAULT

View File

@ -1,44 +1,38 @@
/*
* Mac OS X audio output driver
*
* ao_macosx.c
* original copyright (C) Timothy J. Wood - Aug 2000
* ported to MPlayer libao2 by Dan Christiansen
*
* Original Copyright (C) Timothy J. Wood - Aug 2000
* The S/PDIF part of the code is based on the auhal audio output
* module from VideoLAN:
* Copyright (c) 2006 Derk-Jan Hartman <hartman at videolan dot org>
*
* The S/PDIF part of the code is based on the auhal audio output
* module from VideoLAN:
* Copyright (c) 2006 Derk-Jan Hartman <hartman at videolan dot org>
* This file is part of MPlayer.
*
* This file is part of libao, a cross-platform library. See
* README for a history of this source code.
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* libao is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
* MPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* libao is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with libao; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* You should have received a copy of the GNU General Public License along
* along with MPlayer; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* The MacOS X CoreAudio framework doesn't mesh as simply as some
* simpler frameworks do. This is due to the fact that CoreAudio pulls
* audio samples rather than having them pushed at it (which is nice
* when you are wanting to do good buffering of audio).
*/
/* Change log:
*
* 14/5-2003: Ported to MPlayer libao2 by Dan Christiansen
* when you are wanting to do good buffering of audio).
*
* AC-3 and MPEG audio passthrough is possible, but I don't have
* access to a sound card that supports it.
* AC-3 and MPEG audio passthrough is possible, but has never been tested
* due to lack of a soundcard that supports it.
*/
#include <CoreServices/CoreServices.h>

View File

@ -390,7 +390,7 @@ static void clos(menu_t* menu) {
}
static int open_fs(menu_t* menu, char* args) {
char *path = mpriv->path, *freepath = NULL;
char *path = mpriv->path;
int r = 0;
char wd[PATH_MAX+1], b[PATH_MAX+1];
args = NULL; // Warning kill
@ -409,12 +409,9 @@ static int open_fs(menu_t* menu, char* args) {
if (path_fp >= 0) {
if (!fstat (path_fp, &st) && (st.st_size > 0)) {
path = malloc(st.st_size+1);
if ((read(path_fp, path, st.st_size) == st.st_size) && path[0] == '/'
&& !stat(path, &st) && S_ISDIR(st.st_mode)){
freepath = path;
path[st.st_size] = '\0';
}
else {
path[st.st_size] = '\0';
if (!((read(path_fp, path, st.st_size) == st.st_size) && path[0] == '/'
&& !stat(path, &st) && S_ISDIR(st.st_mode))) {
free(path);
path = NULL;
}
@ -467,9 +464,6 @@ static int open_fs(menu_t* menu, char* args) {
}
r = open_dir(menu,path);
if (freepath)
free(freepath);
return r;
}

View File

@ -176,7 +176,7 @@ static int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int m
else if (!strcasecmp(codec, "liba52"))
src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_LIBA52_DEFAULT;
else if (!strcasecmp(codec, "vorbis"))
src_ch_layout = AF_CHANNEL_LAYOUT_LAVC_VORBIS_DEFAULT;
src_ch_layout = AF_CHANNEL_LAYOUT_VORBIS_DEFAULT;
else
src_ch_layout = AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT;
reorder_channel_nch(buf, src_ch_layout,

View File

@ -7,6 +7,7 @@
#include "config.h"
#include "ad_internal.h"
#include "libaf/reorder_ch.h"
static const ad_info_t info =
{
@ -316,6 +317,12 @@ static int decode_audio(sh_audio_t *sh,unsigned char *buf,int minlen,int maxlen)
// if (!samples) break; // why? how?
}
if (len > 0 && ov->vi.channels >= 5) {
reorder_channel_nch(buf, AF_CHANNEL_LAYOUT_VORBIS_DEFAULT,
AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT,
ov->vi.channels, len / sh->samplesize,
sh->samplesize);
}
return len;

View File

@ -10,7 +10,6 @@
#include "mp_msg.h"
#include <inttypes.h>
#include "cpudetect.h"
#include "mangle.h"
#ifdef ARCH_X86
#define CAN_COMPILE_X86_ASM

View File

@ -213,7 +213,7 @@ static int vidix_draw_slice_packed(uint8_t *image[], int stride[], int w,int h,i
return 0;
}
int vidix_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y)
static int vidix_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y)
{
mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawsliceWasCalled);
return -1;
@ -231,13 +231,13 @@ static uint32_t vidix_draw_image(mp_image_t *mpi){
return VO_TRUE;
}
int vidix_draw_frame(uint8_t *image[])
static int vidix_draw_frame(uint8_t *image[])
{
mp_msg(MSGT_VO,MSGL_WARN, MSGTR_LIBVO_SUB_VIDIX_DummyVidixdrawframeWasCalled);
return -1;
}
void vidix_flip_page(void)
static void vidix_flip_page(void)
{
if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) {
mp_msg(MSGT_VO,MSGL_DBG2, "vosub_vidix: vidix_flip_page() was called\n"); }
@ -298,7 +298,7 @@ static void draw_alpha(int x0,int y0, int w,int h, unsigned char* src, unsigned
}
}
void vidix_draw_osd(void)
static void vidix_draw_osd(void)
{
if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) {
mp_msg(MSGT_VO,MSGL_DBG2, "vosub_vidix: vidix_draw_osd() was called\n"); }
@ -631,22 +631,10 @@ int vidix_preinit(const char *drvname, struct vo_old_functions *server)
int err;
if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) {
mp_msg(MSGT_VO,MSGL_DBG2, "vosub_vidix: vidix_preinit(%s) was called\n",drvname); }
if(vdlGetVersion() != VIDIX_VERSION)
{
mp_msg(MSGT_VO,MSGL_ERR, MSGTR_LIBVO_SUB_VIDIX_YouHaveWrongVersionOfVidixLibrary);
return -1;
}
#ifndef __MINGW32__
vidix_handler = vdlOpen(MP_VIDIX_PFX,
drvname ? drvname[0] == ':' ? &drvname[1] : drvname[0] ? drvname : NULL : NULL,
vidix_handler = vdlOpen(drvname ? drvname[0] == ':' ? &drvname[1] : drvname[0] ? drvname : NULL : NULL,
TYPE_OUTPUT,
verbose);
#else
vidix_handler = vdlOpen(get_path("vidix/"),
drvname ? drvname[0] == ':' ? &drvname[1] : drvname[0] ? drvname : NULL : NULL,
TYPE_OUTPUT,
verbose);
#endif
if(vidix_handler == NULL)
{

View File

@ -27,11 +27,6 @@ void vidix_term( void );
uint32_t vidix_control(uint32_t request, void *data);
uint32_t vidix_query_fourcc(uint32_t fourcc);
int vidix_draw_slice(uint8_t *image[], int stride[], int w,int h,int x,int y);
int vidix_draw_frame(uint8_t *src[]);
void vidix_flip_page(void);
void vidix_draw_osd(void);
#include "vidix/vidix.h"
/* graphic keys */
int vidix_grkey_support(void);

View File

@ -2542,6 +2542,9 @@ static int read_keys(void *ctx, int fd)
}
/* This preprocessor directive is a hack to generate a mplayer-nomain.o object
* file for some tools to link against. */
#ifndef DISABLE_MAIN
int main(int argc,char* argv[]){
@ -3237,12 +3240,12 @@ if(mpctx->stream->type==STREAMTYPE_DVD){
#ifdef USE_DVDNAV
if(mpctx->stream->type==STREAMTYPE_DVDNAV){
current_module="dvdnav lang->id";
if(opts->audio_id==-1) opts->audio_id=dvdnav_aid_from_lang(mpctx->stream,audio_lang);
if(opts->audio_id==-1) opts->audio_id=mp_dvdnav_aid_from_lang(mpctx->stream,audio_lang);
if(dvdsub_lang && opts->sub_id==-2) opts->sub_id=-1;
if(dvdsub_lang && opts->sub_id==-1) opts->sub_id=dvdnav_sid_from_lang(mpctx->stream,dvdsub_lang);
if(dvdsub_lang && opts->sub_id==-1) opts->sub_id=mp_dvdnav_sid_from_lang(mpctx->stream,dvdsub_lang);
// setup global sub numbering
mpctx->global_sub_indices[SUB_SOURCE_DEMUX] = mpctx->global_sub_size; // the global # of the first demux-specific sub.
mpctx->global_sub_size += dvdnav_number_of_subs(mpctx->stream);
mpctx->global_sub_size += mp_dvdnav_number_of_subs(mpctx->stream);
current_module=NULL;
}
#endif
@ -4068,3 +4071,4 @@ exit_player_with_rc(mpctx, MSGTR_Exit_eof, 0);
return 1;
}
#endif /* DISABLE_MAIN */

View File

@ -25,12 +25,14 @@ typedef enum {
NAV_FLAG_EOF = 1 << 0, /* end of stream has been reached */
NAV_FLAG_WAIT = 1 << 1, /* wait event */
NAV_FLAG_WAIT_SKIP = 1 << 2, /* wait skip disable */
NAV_FLAG_CELL_CHANGED = 1 << 3, /* cell change event */
NAV_FLAG_CELL_CHANGE = 1 << 3, /* cell change event */
NAV_FLAG_WAIT_READ_AUTO = 1 << 4, /* wait read auto mode */
NAV_FLAG_WAIT_READ = 1 << 5, /* suspend read from stream */
NAV_FLAG_VTS_DOMAIN = 1 << 6, /* vts domain */
NAV_FLAG_SPU_SET = 1 << 7, /* spu_clut is valid */
NAV_FLAG_STREAM_CHANGE = 1 << 8, /* title, chapter, audio or SPU */
NAV_FLAG_AUDIO_CHANGE = 1 << 9, /* audio stream change event */
NAV_FLAG_SPU_CHANGE = 1 << 10, /* spu stream change event */
} dvdnav_state_t;
typedef struct {
@ -331,7 +333,9 @@ static int fill_buffer(stream_t *s, char *but, int len)
int tit = 0, part = 0;
dvdnav_vts_change_event_t *vts_event = (dvdnav_vts_change_event_t *)s->buffer;
mp_msg(MSGT_CPLAYER,MSGL_INFO, "DVDNAV, switched to title: %d\r\n", vts_event->new_vtsN);
priv->state |= NAV_FLAG_CELL_CHANGED;
priv->state |= NAV_FLAG_CELL_CHANGE;
priv->state |= NAV_FLAG_AUDIO_CHANGE;
priv->state |= NAV_FLAG_SPU_CHANGE;
priv->state &= ~NAV_FLAG_WAIT_SKIP;
priv->state &= ~NAV_FLAG_WAIT;
s->end_pos = 0;
@ -347,7 +351,9 @@ static int fill_buffer(stream_t *s, char *but, int len)
break;
}
case DVDNAV_CELL_CHANGE: {
priv->state |= NAV_FLAG_CELL_CHANGED;
priv->state |= NAV_FLAG_CELL_CHANGE;
priv->state |= NAV_FLAG_AUDIO_CHANGE;
priv->state |= NAV_FLAG_SPU_CHANGE;
priv->state &= ~NAV_FLAG_WAIT_SKIP;
priv->state &= ~NAV_FLAG_WAIT;
if (priv->state & NAV_FLAG_WAIT_READ_AUTO)
@ -360,6 +366,12 @@ static int fill_buffer(stream_t *s, char *but, int len)
dvdnav_get_highlight (priv, 1);
}
break;
case DVDNAV_AUDIO_STREAM_CHANGE:
priv->state |= NAV_FLAG_AUDIO_CHANGE;
break;
case DVDNAV_SPU_STREAM_CHANGE:
priv->state |= NAV_FLAG_SPU_CHANGE;
break;
}
}
mp_msg(MSGT_STREAM,MSGL_DBG2,"DVDNAV fill_buffer len: %d\n",len);
@ -669,16 +681,58 @@ void mp_dvdnav_update_mouse_pos(stream_t *stream, int32_t x, int32_t y, int* but
priv->mousey = y;
}
static int mp_dvdnav_get_aid_from_format (stream_t *stream, int index, uint8_t lg) {
dvdnav_priv_t * priv = stream->priv;
uint8_t format;
format = dvdnav_audio_stream_format(priv->dvdnav, lg);
switch(format) {
case DVDNAV_FORMAT_AC3:
return (index + 128);
case DVDNAV_FORMAT_DTS:
return (index + 136);
case DVDNAV_FORMAT_LPCM:
return (index + 160);
case DVDNAV_FORMAT_MPEGAUDIO:
return index;
default:
return -1;
}
return -1;
}
/**
* \brief dvdnav_aid_from_lang() returns the audio id corresponding to the language code 'lang'
* \brief mp_dvdnav_aid_from_audio_num() returns the audio id corresponding to the logical number
* \param stream: - stream pointer
* \param audio_num: - logical number
* \return -1 on error, current subtitle id if successful
*/
int mp_dvdnav_aid_from_audio_num(stream_t *stream, int audio_num) {
dvdnav_priv_t * priv = stream->priv;
int k;
uint8_t lg;
for(k=0; k<32; k++) {
lg = dvdnav_get_audio_logical_stream(priv->dvdnav, k);
if (lg == 0xff) continue;
if (lg != audio_num) continue;
return mp_dvdnav_get_aid_from_format (stream, k, lg);
}
return -1;
}
/**
* \brief mp_dvdnav_aid_from_lang() returns the audio id corresponding to the language code 'lang'
* \param stream: - stream pointer
* \param lang: 2-characters language code[s], eventually separated by spaces of commas
* \return -1 on error, current subtitle id if successful
*/
int dvdnav_aid_from_lang(stream_t *stream, unsigned char *language) {
int mp_dvdnav_aid_from_lang(stream_t *stream, unsigned char *language) {
dvdnav_priv_t * priv = stream->priv;
int k;
uint8_t format, lg;
uint8_t lg;
uint16_t lang, lcode;;
while(language && strlen(language)>=2) {
@ -687,21 +741,8 @@ int dvdnav_aid_from_lang(stream_t *stream, unsigned char *language) {
lg = dvdnav_get_audio_logical_stream(priv->dvdnav, k);
if(lg == 0xff) continue;
lang = dvdnav_audio_stream_to_lang(priv->dvdnav, lg);
if(lang != 0xFFFF && lang == lcode) {
format = dvdnav_audio_stream_format(priv->dvdnav, lg);
switch(format) {
case DVDNAV_FORMAT_AC3:
return k+128;
case DVDNAV_FORMAT_DTS:
return k+136;
case DVDNAV_FORMAT_LPCM:
return k+160;
case DVDNAV_FORMAT_MPEGAUDIO:
return k;
default:
return -1;
}
}
if(lang != 0xFFFF && lang == lcode)
return mp_dvdnav_get_aid_from_format (stream, k, lg);
}
language += 2;
while(language[0]==',' || language[0]==' ') ++language;
@ -710,13 +751,13 @@ int dvdnav_aid_from_lang(stream_t *stream, unsigned char *language) {
}
/**
* \brief dvdnav_lang_from_aid() assigns to buf the language corresponding to audio id 'aid'
* \brief mp_dvdnav_lang_from_aid() assigns to buf the language corresponding to audio id 'aid'
* \param stream: - stream pointer
* \param sid: physical subtitle id
* \param buf: buffer to contain the 2-chars language string
* \return 0 on error, 1 if successful
*/
int dvdnav_lang_from_aid(stream_t *stream, int aid, unsigned char *buf) {
int mp_dvdnav_lang_from_aid(stream_t *stream, int aid, unsigned char *buf) {
uint8_t lg;
uint16_t lang;
dvdnav_priv_t * priv = stream->priv;
@ -735,12 +776,12 @@ int dvdnav_lang_from_aid(stream_t *stream, int aid, unsigned char *buf) {
/**
* \brief dvdnav_sid_from_lang() returns the subtitle id corresponding to the language code 'lang'
* \brief mp_dvdnav_sid_from_lang() returns the subtitle id corresponding to the language code 'lang'
* \param stream: - stream pointer
* \param lang: 2-characters language code[s], eventually separated by spaces of commas
* \return -1 on error, current subtitle id if successful
*/
int dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) {
int mp_dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) {
dvdnav_priv_t * priv = stream->priv;
uint8_t lg, k;
uint16_t lang, lcode;
@ -762,13 +803,13 @@ int dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) {
}
/**
* \brief dvdnav_lang_from_sid() assigns to buf the language corresponding to subtitle id 'sid'
* \brief mp_dvdnav_lang_from_sid() assigns to buf the language corresponding to subtitle id 'sid'
* \param stream: - stream pointer
* \param sid: physical subtitle id
* \param buf: buffer to contain the 2-chars language string
* \return 0 on error, 1 if successful
*/
int dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf) {
int mp_dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf) {
uint8_t lg;
uint16_t lang;
dvdnav_priv_t *priv = stream->priv;
@ -783,11 +824,11 @@ int dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf) {
}
/**
* \brief dvdnav_number_of_subs() returns the count of available subtitles
* \brief mp_dvdnav_number_of_subs() returns the count of available subtitles
* \param stream: - stream pointer
* \return 0 on error, something meaningful otherwise
*/
int dvdnav_number_of_subs(stream_t *stream) {
int mp_dvdnav_number_of_subs(stream_t *stream) {
dvdnav_priv_t * priv = stream->priv;
uint8_t lg, k, n=0;
@ -823,6 +864,7 @@ void mp_dvdnav_get_highlight (stream_t *stream, nav_highlight_t *hl) {
hl->sy = hlev.sy;
hl->ex = hlev.ex;
hl->ey = hlev.ey;
hl->palette = hlev.palette;
}
void mp_dvdnav_switch_title (stream_t *stream, int title) {
@ -896,15 +938,51 @@ void mp_dvdnav_read_wait (stream_t *stream, int mode, int automode) {
*/
int mp_dvdnav_cell_has_changed (stream_t *stream, int clear) {
dvdnav_priv_t *priv = stream->priv;
if (!(priv->state & NAV_FLAG_CELL_CHANGED))
if (!(priv->state & NAV_FLAG_CELL_CHANGE))
return 0;
if (clear) {
priv->state &= ~NAV_FLAG_CELL_CHANGED;
priv->state &= ~NAV_FLAG_CELL_CHANGE;
priv->state |= NAV_FLAG_STREAM_CHANGE;
}
return 1;
}
/**
* \brief Check if audio has changed
* \param stream: - stream pointer
* \param clear : - if true, then clear audio change flag
* \return 1 if audio has changed
*/
int mp_dvdnav_audio_has_changed (stream_t *stream, int clear) {
dvdnav_priv_t *priv = stream->priv;
if (!(priv->state & NAV_FLAG_AUDIO_CHANGE))
return 0;
if (clear)
priv->state &= ~NAV_FLAG_AUDIO_CHANGE;
return 1;
}
/**
* \brief Check if SPU has changed
* \param stream: - stream pointer
* \param clear : - if true, then clear spu change flag
* \return 1 if spu has changed
*/
int mp_dvdnav_spu_has_changed (stream_t *stream, int clear) {
dvdnav_priv_t *priv = stream->priv;
if (!(priv->state & NAV_FLAG_SPU_CHANGE))
return 0;
if (clear)
priv->state &= ~NAV_FLAG_SPU_CHANGE;
return 1;
}
/* Notify if something has changed in stream
* Can be related to title, chapter, audio or SPU
*/

View File

@ -13,13 +13,15 @@ typedef struct {
typedef struct {
uint16_t sx, sy;
uint16_t ex, ey;
uint32_t palette;
} nav_highlight_t;
int dvdnav_number_of_subs(stream_t *stream);
int dvdnav_aid_from_lang(stream_t *stream, unsigned char *language);
int dvdnav_lang_from_aid(stream_t *stream, int id, unsigned char *buf);
int dvdnav_sid_from_lang(stream_t *stream, unsigned char *language);
int dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf);
int mp_dvdnav_number_of_subs(stream_t *stream);
int mp_dvdnav_aid_from_audio_num(stream_t *stream, int audio_num);
int mp_dvdnav_aid_from_lang(stream_t *stream, unsigned char *language);
int mp_dvdnav_lang_from_aid(stream_t *stream, int id, unsigned char *buf);
int mp_dvdnav_sid_from_lang(stream_t *stream, unsigned char *language);
int mp_dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf);
void mp_dvdnav_handle_input(stream_t *stream, int cmd, int *button);
void mp_dvdnav_update_mouse_pos(stream_t *stream, int32_t x, int32_t y, int* button);
void mp_dvdnav_get_highlight (stream_t *stream, nav_highlight_t *hl);
@ -30,6 +32,8 @@ int mp_dvdnav_skip_still (stream_t *stream);
int mp_dvdnav_skip_wait (stream_t *stream);
void mp_dvdnav_read_wait (stream_t *stream, int mode, int automode);
int mp_dvdnav_cell_has_changed (stream_t *stream, int clear);
int mp_dvdnav_audio_has_changed (stream_t *stream, int clear);
int mp_dvdnav_spu_has_changed (stream_t *stream, int clear);
int mp_dvdnav_stream_has_changed (stream_t *stream);
#endif /* MPLAYER_STREAM_DVDNAV_H */

View File

@ -36,8 +36,8 @@
#ifndef MPLAYER_DHA_H
#define MPLAYER_DHA_H
#ifdef __cplusplus
extern "C" {
#ifndef DEV_SVGA
#define DEV_SVGA "/dev/svga"
#endif
#define MAX_DEV_PER_VENDOR_CFG1 64
@ -88,8 +88,4 @@ extern void unmap_phys_mem(void *ptr, unsigned long size);
#define MTRR_TYPE_WRBACK 6
extern int mtrr_set_type(unsigned base,unsigned size,int type);
#ifdef __cplusplus
}
#endif
#endif /* MPLAYER_DHA_H */

View File

@ -476,7 +476,6 @@ static int mach64_init(void)
printf("[mach64] Driver was not probed but is being initializing\n");
return EINTR;
}
if(verbosity > 0) printf("[mach64] version %d\n", VIDIX_VERSION);
if((mach64_mmio_base = map_phys_mem(pci_info.base2,0x1000))==(void *)-1) return ENOMEM;
mach64_wait_for_idle();

View File

@ -145,9 +145,6 @@ function print_head( out_file)
function print_name_struct(out_file)
{
print "#ifdef __cplusplus" >out_file
print "extern \"C\" {" >out_file
print "#endif" >out_file
print "">out_file
print "struct device_id_s" >out_file
print "{" >out_file
@ -164,9 +161,6 @@ function print_name_struct(out_file)
print "extern const char *pci_vendor_name(unsigned short id);">out_file
print "extern const char *pci_device_name(unsigned short vendor_id, unsigned short device_id);">out_file
print "">out_file
print "#ifdef __cplusplus" >out_file
print "}" >out_file
print "#endif" >out_file
return
}

View File

@ -1297,8 +1297,6 @@ static int radeon_init(void)
{
int err;
if(verbosity > 0) printf("[radeon_vid] version %d\n", VIDIX_VERSION);
if(!probed)
{
printf(RADEON_MSG" Driver was not probed but is being initializing\n");

View File

@ -1,3 +1,27 @@
/*
* S3 chipsets registers definition.
*
* Copyright (C) 2004 Reza Jelveh
* Thanks to Alex Deucher for Support
* Trio/Virge support by Michael Kostylev
*
* This file is part of MPlayer.
*
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* MPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef MPLAYER_SAVAGE_REGS_H
#define MPLAYER_SAVAGE_REGS_H

View File

@ -68,7 +68,6 @@ static long pci_config_read_long(
int func,
unsigned cmd)
{
unsigned long config_cmd;
pcic_t p;
p.address = cmd;

View File

@ -36,12 +36,6 @@
#ifndef MPLAYER_VIDIX_H
#define MPLAYER_VIDIX_H
#ifdef __cplusplus
extern "C" {
#endif
#define VIDIX_VERSION 100
#define PROBE_NORMAL 0 /* normal probing */
#define PROBE_FORCE 1 /* ignore device_id but recognize device if it's known */
@ -311,8 +305,4 @@ typedef struct vidix_oem_fx_s
char *name[80]; /* effect name to display */
} vidix_oem_fx_t;
#ifdef __cplusplus
}
#endif
#endif /* MPLAYER_VIDIX_H */

View File

@ -44,12 +44,7 @@
#include "libavutil/common.h"
#include "mpbswap.h"
extern unsigned int vdlGetVersion( void )
{
return VIDIX_VERSION;
}
VDL_HANDLE vdlOpen(const char *path,const char *name,unsigned cap,int verbose)
VDL_HANDLE vdlOpen(const char *name,unsigned cap,int verbose)
{
VDXContext *ctx;

View File

@ -36,10 +36,6 @@
#ifndef MPLAYER_VIDIXLIB_H
#define MPLAYER_VIDIXLIB_H
#ifdef __cplusplus
extern "C" {
#endif
#include "vidix.h"
typedef struct VDXDriver {
@ -74,9 +70,6 @@ typedef struct VDXContext {
typedef VDXContext * VDL_HANDLE;
/* returns library version */
unsigned vdlGetVersion( void );
/* Opens corresponded video driver and returns handle
of associated stream.
path - specifies path where drivers are located.
@ -85,7 +78,7 @@ unsigned vdlGetVersion( void );
verbose - specifies verbose level
returns !0 if ok else NULL.
*/
VDL_HANDLE vdlOpen(const char *path,const char *name,unsigned cap,int verbose);
VDL_HANDLE vdlOpen(const char *name,unsigned cap,int verbose);
/* Closes stream and corresponded driver. */
void vdlClose(VDL_HANDLE ctx);
@ -138,8 +131,4 @@ int vdlSetOemEffect(VDL_HANDLE, const vidix_oem_fx_t * );
/* Returns 0 if ok else errno */
int vdlPlaybackCopyFrame(VDL_HANDLE, const vidix_dma_t * );
#ifdef __cplusplus
}
#endif
#endif /* MPLAYER_VIDIXLIB_H */