# emerge mplayer schlägt fehl - mencoder

## misanthrop

So wollte gerade die neue Version von mplayer emergen, da ich nun die DVD-Unterstützung brauche und wegen der neuen Version... Hab also DVD in meine make.conf aufgenommen... und wollte losemergen

dabei kommt das raus:

```

mencoder.c: In function `main':

mencoder.c:393: warning: passing arg 2 of `m_config_register_options' from incompatible pointer type

mencoder.c: In function `lame_presets_set':

mencoder.c:1431: `MEDIUM_FAST' undeclared (first use in this function)

mencoder.c:1431: (Each undeclared identifier is reported only once

mencoder.c:1431: for each function it appears in.)

mencoder.c:1433: `MEDIUM' undeclared (first use in this function)

make: *** [mencoder.o] Fehler 1

!!! ERROR: media-video/mplayer-0.92 failed.

!!! Function src_compile, Line 297, Exitcode 2

!!! Failed to build MPlayer!
```

[/code]

----------

## MaJor_PerMutation

 *misanthrop wrote:*   

> 
> 
> ```
> 
> mencoder.c: In function `lame_presets_set':
> ...

 

Das liest sich für mich, als wären bestimmte Encoder-Vorgaben (PreSets) in LAME nicht, nicht mehr oder nicht nicht vorhanden.

Hast du schon Mal versucht LAME zu updaten/(re-)emergen?

Gruß,

M.

----------

## misanthrop

ich versuche es gerade. Danke für den Vorschlag.

Ich melde mich danach nochmal.

----------

## misanthrop

hat leider alles nichts gebracht.

hab jetzt Lame neu installiert.

Danach hab ich den Mplayer nochmal versucht. Die 0.92 und die 1er. Mit verschiedenen Mirrorn und auch selbst kompiliert. Der Fehler bleibt immer noch bestehen...

 :Mad:   Da hab ich mir en DVD Laufwerk geholt und kann es weder zum schauen, noch zum rippen benutzen ;(

----------

## misanthrop

wollte nur mal neue Zwischenmeldung geben. Bin momentan dabei alle Abhängikeiten von mplayer neu zu emergen. Insgesamt sind es so ca 70   :Laughing:  Zwischendurch gab es ein paar Probleme. Bin jetzt ungefähr bei der Hälfte. Kann also noch etwas dauern. Wenn es danach immer noch nicht geht dreh ich durch   :Twisted Evil: 

Bin für andere Vorschläge, woran es liegen könnte oder wie ich das ding ans laufen bekomme immer noch offen  :Wink: 

----------

## ruth

moin,

also wenn du's partout nicht hinkriegst musst du das machen:

fehler weiter eingrenzen...  :Wink: 

-->> use the source, luke <<--

wirste wohl mal den quellcode anschauen müssen, den verwendeten

lame header ( lame.h ?? )

u.u. hast du zwei davon im system?

eine ältere, die MEDIUM_FAST / MEDIUM nicht deklariert und eine neue, die's macht.

der compiler bindet den header ein, den er zuerst findet.

wenn das der alte ist, isses essig.

also, ich bin mir fast sicher, dass dein verwendeter lame header

MEDIUM_FAST und MEDIUM _nicht_ deklariert.

das deutet eigentlich schon auf einen versionskonflikt hin.

schau doch mal nach, ob er das tut, bitte  :Wink: 

generelles vorgehen:

mach mal ein 

```

# tar xvfj mplayer-blah.tar.bz2

# cd Mplayer-blah

# ./configure [--noch-mehr-blah]

# make

```

der prozess wird genau an der stelle abbrechen, wo der fehler ist

dann machst du folgendes:

du kopierst dir den letzten aufruf des compilers ( die letzte zeile, die mit

gcc beginnt)

in die shell.

füge die Option -E zu den compileroption hinzu.

diese bewirkt, dass das sourcefile nur durch den präprozessor läuft.

du erhältst jetzt die datei, in der sämtliche headers eingebunden sind.

diese wird an STDOUT ausgegeben, also mach ein > testfile.txt dahinter.

hier wirst du _sicher_ feststellen, dass die obigen VARS nicht deklariert sind.

übrigens steht in dem präprozessor-file _genau_ der pfad zum verwendeten header schon als #comment drinnen, vereinfacht die suche  :Wink: 

jetzt also alle lame.h in /include /usr/include /usr/local/include finden.

du findest mit sicherheit zwei davon.

eine alte und eine neue.

weg mit der alten also. ( genau, die, die im präprozessor file drinnen ist ,-) )

wenn du doch nur eine findest, lösch diese datei trotzem und emerge

lame neu.

der fehler ist dann mit _sicherheit_ weg.

gruss

rootshell

----------

## ruth

so, hammers schon...  :Wink: 

hab mir gerade den cvs lame.h reingezogen, da steht z.b. :

```

/*presets*/

typedef enum preset_mode_e {

    /*values from 8 to 320 should be reserved for abr bitrates*/

    /*for abr I'd suggest to directly use the targeted bitrate as a value*/

    ABR_8 = 8,

    ABR_320 = 320,

    R3MIX = 1000,

    STANDARD = 1001,

    EXTREME = 1002,

    INSANE = 1003,

    STANDARD_FAST = 1004,

    EXTREME_FAST = 1005,

    MEDIUM = 1006,

    MEDIUM_FAST = 1007,

    PORTABLE = 1010,

    PORTABLE1 = 1014,

    RADIO = 1015,

    STREAMING = 1016

} preset_mode;

```

ich denke, das sagt alles, oder?

also lösch deinen alten lame.h ( präprozessor, s.o. ) emerge lame neu, dann gehts..

gruss

rootshell

----------

## misanthrop

so, Danke erstmal Rootschell.

Läuft jetzt alles. Allerdings hatte ich schon die neuste Lame installiert. Nur leider hatte ich tatsächlich 2 Header auf dem System rumfliegen. Die neue in /usr/iinclude/lame und die alte in /usr/local/include/lame

Hab dann die eine einfach mal umbenannt und danach ging es. 

Da such ich ewig in der lame.h rum und find raus, dass alles richtig deklariert ist mit medium_fast usw und wunder mich, dass es nicht läuft....

Naja, gut dass mich einer drauf gebracht hat, dass ich acuh noch ne zweite Version haben könnte  :Wink:   :Very Happy:   :Very Happy:   :Very Happy: 

----------

## ruth

moin,

nix zu danken  :Wink: 

gern geschehen

gruss

rootshell

----------

