Android OSeclair prehravani videa

Odpovědět

Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

eclair prehravani videa

Příspěvek od petter » pát 16. dub 2010 14:39:46

Zdravim, jde vam v eclairu prehravani videa?? Kdyz prehravam video tak se prehrava zvuk, ale obraz nic.
Tohle pise android:
E/copybit ( 73): copyBits failed (Invalid argument)
D/copybit ( 73): 0: src={w=480, h=320, f=0, rect={0,0,480,320}}
D/copybit ( 73): dst={w=480, h=320, f=0, rect={0,0,480,320}}
D/copybit ( 73): flags=00020008
E/SurfaceFlinger( 73): GL error 0x0502

a tohle kernel:
<3>[24680.385437] mpd_ppp: could not retrieve src image from memory

Jak jsem zjistil, tak v androidu je knihovna copybit.so, ktera na urcitou adresu v pameti vlozi frame videa a pres ioctl informuje o tom kernel, ktery by si mel na teto adrese obrazek vyzvednout a vykreslit na obrazovku. Bohuzel nekde je problem, pac to ocividne haze chybu (E/copybit ( 73): copyBits failed (Invalid argument)). Nevi nekdo cim to muzze byt??? Kernel mam od cyana branch: eclair (dela to i donut kernel). Spis to bude neco na urovni androida, kde mozna neco s tou hardwarovou akceleraci, ktera stejne na mojim HTC Magic nejede asi (Gallery3d mi jede dobre, ale vypada to ze pri bootovani se nastavi stejne sw akcelerace). Please nevi nekdo co s tim????


Uživatelský avatar

Case
Kyborg
Příspěvky: 4103
Registrován: pát 31. črc 2009 20:46:42
Typ mobilu / ROM: Vodafone 845 - ZTE Blade - Samsung Galaxy S
Bydliště: Edge of the world
Kontaktovat uživatele:

Re: eclair prehravani videa

Příspěvek od Case » pát 16. dub 2010 15:04:23

Pokud ti jede 3D Galerie dobře, tak zcela jistě nemáš softwarové vykreslování, s tím je 3D galerie nepoužitelná. Nicméně HW akcelerace je jednou, nikoliv jedinou podmínkou správného vykreslování videa. S tím je v "obyčejných" Eclair ROM pořád problém.


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » pát 16. dub 2010 16:10:45

Case píše:Pokud ti jede 3D Galerie dobře, tak zcela jistě nemáš softwarové vykreslování, s tím je 3D galerie nepoužitelná. Nicméně HW akcelerace je jednou, nikoliv jedinou podmínkou správného vykreslování videa. S tím je v "obyčejných" Eclair ROM pořád problém.
no kdyz se divam do logu pri bootu systemu, tak mi pise ze vi o hw modulu pro vykreslovani, ale pak to tam hodi nejakou hlasku, ted nevim z hlavy, ze zvolil sw akceleraci (jestli to dobre chapu:-)). No to je jedno, nevis teda prosim jaky jsou dalsi teda podminky, ktery jsou potreba?? Pac ta gallery3d mi jede v pohode. Uz jsem si kvuli tomu zacal portovat ffmpeg do androida :-) aspon by sli aji flash videa:-) ale radsi bych prehraval nativne co ma android v sobe kdyz uz to tam kluci z googlu tak pracne napsali

Uživatelský avatar

Case
Kyborg
Příspěvky: 4103
Registrován: pát 31. črc 2009 20:46:42
Typ mobilu / ROM: Vodafone 845 - ZTE Blade - Samsung Galaxy S
Bydliště: Edge of the world
Kontaktovat uživatele:

Re: eclair prehravani videa

Příspěvek od Case » pát 16. dub 2010 17:18:45

Jestli tou hláškou myslíš něco v tomhle smyslu,

Kód: Vybrat vše

D/libEGL  (   93): loaded /system/lib/egl/libGLES_android.so
D/libEGL  (   93): loaded /system/lib/egl/libGLES_qcom.so
D/EGL.oem (   93): system process, deny GL context
E/libEGL  (   93): No EGLDisplay for hardware EGL!
tak to samo o sobě nic neznamená, akcelerace funguje i tak. Ale poradit ti neumím, přehrávání videa je evidentně problém i pro zdatné vývojáře. Jedinou možností je IMO používat ROM portovanou z Legend, Eris a podobných Sense UI zařízení, pro ty evidentně správné knihovny existují, protože třeba v mojí WLegend přehrávání videa normálně funguje. Můžeš zkusit experimentovat s knihovnami typu libsurfaceflinger.so (nebo s dalšími *flinger.so), ta by měla být za přehrávání videa zodpovědné (a její rozdílné verze v případě Legend ROM například ovlivňují jas přehrávaného videa - je otázkou jestli onen problém s přehráváním videa není způsoben právě tím, že je jas obrazu "stažený" na nulu a je tudíž vidět jen černá plocha).


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » pon 19. dub 2010 5:44:54

Case píše:Jestli tou hláškou myslíš něco v tomhle smyslu,

Kód: Vybrat vše

D/libEGL  (   93): loaded /system/lib/egl/libGLES_android.so
D/libEGL  (   93): loaded /system/lib/egl/libGLES_qcom.so
D/EGL.oem (   93): system process, deny GL context
E/libEGL  (   93): No EGLDisplay for hardware EGL!
tak to samo o sobě nic neznamená, akcelerace funguje i tak. Ale poradit ti neumím, přehrávání videa je evidentně problém i pro zdatné vývojáře. Jedinou možností je IMO používat ROM portovanou z Legend, Eris a podobných Sense UI zařízení, pro ty evidentně správné knihovny existují, protože třeba v mojí WLegend přehrávání videa normálně funguje. Můžeš zkusit experimentovat s knihovnami typu libsurfaceflinger.so (nebo s dalšími *flinger.so), ta by měla být za přehrávání videa zodpovědné (a její rozdílné verze v případě Legend ROM například ovlivňují jas přehrávaného videa - je otázkou jestli onen problém s přehráváním videa není způsoben právě tím, že je jas obrazu "stažený" na nulu a je tudíž vidět jen černá plocha).
no to co pises ty mi to pri bootu primo pise. Dival jsem se do zdrojaku a nasel jsem konkretne knihovnu, ktere tohle nacita a je z toho evidentni ze hardware akcelerace nejede, on nahodi to libGLES_android.so a ne libGLES_qcom.so(ktery je hardware akcelerace). Cili ta hardware akcelerace co mi bezi a vsem co to tohle pise, vypada ze je nejaka androidi, coz podle me je jen softwarova, ktera je kvulil tomu, aby kdyz nemas hardwarovou, tak aby ti android jel dal a uzivatel nic nepoznal. Hodne jsem prochazel zdrojaky a vypada to na knihovnu libhgl.so, ktera je od qualcommu, ktery dela asi graficky chip. Mam tu knihovnu starou, tak je mozny, ze v ni nejsou fce pro hardwarovou akceleraci, kterou tam android hleda, mozna v tech tvojich rom od htc, ktery jedou je tahle knihovna nova a proto to jede. No zatim jen hadam, zkusim jeste s tim neco.



Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » pon 19. dub 2010 7:03:19

petter píše:
Case píše:Jestli tou hláškou myslíš něco v tomhle smyslu,

Kód: Vybrat vše

D/libEGL  (   93): loaded /system/lib/egl/libGLES_android.so
D/libEGL  (   93): loaded /system/lib/egl/libGLES_qcom.so
D/EGL.oem (   93): system process, deny GL context
E/libEGL  (   93): No EGLDisplay for hardware EGL!
tak to samo o sobě nic neznamená, akcelerace funguje i tak. Ale poradit ti neumím, přehrávání videa je evidentně problém i pro zdatné vývojáře. Jedinou možností je IMO používat ROM portovanou z Legend, Eris a podobných Sense UI zařízení, pro ty evidentně správné knihovny existují, protože třeba v mojí WLegend přehrávání videa normálně funguje. Můžeš zkusit experimentovat s knihovnami typu libsurfaceflinger.so (nebo s dalšími *flinger.so), ta by měla být za přehrávání videa zodpovědné (a její rozdílné verze v případě Legend ROM například ovlivňují jas přehrávaného videa - je otázkou jestli onen problém s přehráváním videa není způsoben právě tím, že je jas obrazu "stažený" na nulu a je tudíž vidět jen černá plocha).
no to co pises ty mi to pri bootu primo pise. Dival jsem se do zdrojaku a nasel jsem konkretne knihovnu, ktere tohle nacita a je z toho evidentni ze hardware akcelerace nejede, on nahodi to libGLES_android.so a ne libGLES_qcom.so(ktery je hardware akcelerace). Cili ta hardware akcelerace co mi bezi a vsem co to tohle pise, vypada ze je nejaka androidi, coz podle me je jen softwarova, ktera je kvulil tomu, aby kdyz nemas hardwarovou, tak aby ti android jel dal a uzivatel nic nepoznal. Hodne jsem prochazel zdrojaky a vypada to na knihovnu libhgl.so, ktera je od qualcommu, ktery dela asi graficky chip. Mam tu knihovnu starou, tak je mozny, ze v ni nejsou fce pro hardwarovou akceleraci, kterou tam android hleda, mozna v tech tvojich rom od htc, ktery jedou je tahle knihovna nova a proto to jede. No zatim jen hadam, zkusim jeste s tim neco.
tak mels pravdu, ze je to asi tim surfaceflingerem, tohle pise no E/SurfaceFlinger( 75): GL error 0x0502. Zkopiroval jsem si tam ten tvuj a taky to nepomohlo:-) asi to zavisijeste na necem jinym

Uživatelský avatar

Case
Kyborg
Příspěvky: 4103
Registrován: pát 31. črc 2009 20:46:42
Typ mobilu / ROM: Vodafone 845 - ZTE Blade - Samsung Galaxy S
Bydliště: Edge of the world
Kontaktovat uživatele:

Re: eclair prehravani videa

Příspěvek od Case » pon 19. dub 2010 12:41:08

Nevím, jak říkám, zkus případně i všechny ostatní *flinger.so. Plus se mrkni na /system/lib/egl/egl.cfg. Jo a pak je taky třeba mít správná permissions k systémovým zařízením, ne všechny ROM je nastaví na začátku správně, takže v init.rc dělám něco takového:

Kód: Vybrat vše

chmod 666 /dev/msm_hw3dc
chown root:root /dev/msm_hw3dc
chmod 660 /dev/msm_hw3dm
chown system:graphics /dev/msm_hw3dm
Každopádně prostě vím, že výše uvedenou hlášku to hlásí i v případě, že akcelerace prokazatelně funguje - 26fps v Neocore benchmarku prostě softwarové vykreslování neudělá, to udělá tak 2-3fps ;)


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » pon 19. dub 2010 13:29:36

Case píše:Nevím, jak říkám, zkus případně i všechny ostatní *flinger.so. Plus se mrkni na /system/lib/egl/egl.cfg. Jo a pak je taky třeba mít správná permissions k systémovým zařízením, ne všechny ROM je nastaví na začátku správně, takže v init.rc dělám něco takového:

Kód: Vybrat vše

chmod 666 /dev/msm_hw3dc
chown root:root /dev/msm_hw3dc
chmod 660 /dev/msm_hw3dm
chown system:graphics /dev/msm_hw3dm
Každopádně prostě vím, že výše uvedenou hlášku to hlásí i v případě, že akcelerace prokazatelně funguje - 26fps v Neocore benchmarku prostě softwarové vykreslování neudělá, to udělá tak 2-3fps ;)
dik moc, ty prava vypadaji, taky celkem ze by to mohli delat. Ja mel v initu:

mkdir /dev/msm_hw3dc
chown system system /dev/msm_hw3dc
chmod a+rx /dev/msm_hw3dc
mkdir /dev/msm_hw3dm
chown system system /dev/msm_hw3dm
chmod a+rx /dev/msm_hw3dm


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » stř 19. kvě 2010 8:06:50

tak uz jsem to vyresil, bylo to teda vic prace nez bych cekal. ale videa mi jedou. kdyby nekdo mel podobny problem, muzu poradit jak to vyresit

Uživatelský avatar

Case
Kyborg
Příspěvky: 4103
Registrován: pát 31. črc 2009 20:46:42
Typ mobilu / ROM: Vodafone 845 - ZTE Blade - Samsung Galaxy S
Bydliště: Edge of the world
Kontaktovat uživatele:

Re: eclair prehravani videa

Příspěvek od Case » stř 19. kvě 2010 15:22:54

A co kdybys místo tajuplného "můžu poradit, jak to vyřešit" prostě radši rovnou NAPSAL, jak jsi problém vyřešil? To by jistě bylo výrazně užitečnější pro všechny, kteří kdy budou podobný problém řešit...


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » čtv 20. kvě 2010 12:51:48

no je to trocha slozitejsi a kdo si nekompiluje androida ze zdroajku tak to ani nema moc jak vyzkouset asi :-)

1. je potreba stahnout od cyana 2 gity ktery jsou vendor_qcom.... nevim jak to dokazal ale ma zdrojaky ktery umi komunikovat s qcom graphic. chipem co je na desce. Chybely mu tam nejaky deklarace a knihovny slinkovany, to jsem si upravil uz ted nevim presne jaky (nejsem ted u PC, jsem v praci) , kdyby to nekdo delal, napiste ten error sem a ja napisu co s tim

2. je potreba nastavit v makefile vaseho vendoru BUILD_USES_QCOM_LIBS nebo nejak tak je ta promenna, je videt v makefilech tech vendor_qcom_knihoven

3. jeste asi je dobre upravit libsurfaceflinger (framework/base/libs/surfaceflinger/LayoutBuffer.cpp) je tam drobna uprava ohledne postovani snimku videa kernelu, aby nedoslo k preteceni sdilene pameti s kernelem, ten commit si vytahni z cyanova framework/base/libs/surfaceflinger na tom souboru LayoutBuffer.cpp ten commit uvidis, je tam popis neco upravou width a height

no a to by melo asi static, pak uz staci napsat make a cekat

nevim proc, ale kompiloval jsem to na branchi 'eclair' tak video fungovalo v pohode akorat mi do logu vypisovalo opencore ze nemuze najit decodovaci knihovny s debug verzi (na prehravani to nemelo vliv, video normalne jelo v pohode). Ten log me stval, tak jsem preklopil zdrojaky na branch eclair-release a ted uz mi to opencore sice nepise, ale video se rozjede ukaze se prvni snimek a pak stuhne a jede jen zvuk, asi nikdo nevi cim to muze byt? Vypada to ze v debug branchi eclairu je neco jinak nez release branchi co mi tohle dela


Autor tohoto vlákna
petter
Androiďák!
Příspěvky: 340
Registrován: stř 23. zář 2009 13:25:10
Bydliště: Olomouc

Re: eclair prehravani videa

Příspěvek od petter » pát 21. kvě 2010 7:43:29

tak jeste pro upresneni, neni potreba tu libOmxCore asi kompilovat od cyana, staci ji vzit kdekoli, akorat v androidu je bug, ze on spatne pri prehravani vraci pozici videa, tak pak se zobrazuje uzivateli to video nekdy sekane, cyan to ma osetreny staci vzit comit od nej a pak je jeste v androidu, jeden bug, kdy pri opusteni videa se android zacykli protoze ceka na kilnuti Surface, znovu to ma cyan osetreny, v eclair debug branchi to asi je osetreny, proto mi to tam jelo dobre

Odpovědět

Zpět na „Android OS“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti