Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: tolostoi в Apr 02, 2012, 21:54



Титла: Объркани цветове в youtube flash player
Публикувано от: tolostoi в Apr 02, 2012, 21:54
Здравейте, от едно известно време, пак се появи този проблем с обърканите цветове в клиповете :( Казвам пак, понеже преди години пак го имаше и се оправяше с триене и презаписване на кукита от ютуб, но сега нямам време да търся проблема и решението :(. Та ако има някоя добра душа, който е запознат, нека сподели опит.

Прилагам снимка с проблема, виждат се цветовете в клипа при изпълнение и на малката снимчица в сърч бара се виждат реалните цветове, които трябва да се показват.

(http://img571.imageshack.us/img571/5516/flashfail.png)


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: radoshow в Apr 02, 2012, 23:15
@tolostoi  Днес и на мен ми се появи същия проблем.Става въпрос за Асус ЕЕЕРС и дитрото беше лайф Runtu (Ubuntu 10.04).Само,че при мен ефекта "Диапозитив" се появяваше като стартирам Full Screen.Като изляза от този режим цветовете ставаха нормални.След това пробвах друг флаш от http://voyo.bg и там ми показваше,че нямам инсталиран флаш.Да ти кажа и на моя  Дебиан се получи проблем  след като пуснаха ъпгрейд на флаша до 11.2.Даунгрейдах през Синптик до 11.1 даже го холднах да не вземе пак да се обнови и сега нямам грижи.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ieti в Apr 03, 2012, 10:25
Има някаква боза с последния флаш и невидиа драйвера:

http://www.nvnews.net/vbulletin/showthread.php?t=177344

И при мен го има същия проблем.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в Apr 03, 2012, 10:43
Обаче аз на лаптопа съм със старо ати, което работи с отворения radeon и проблема е налице.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ieti в Apr 03, 2012, 11:08
Пак от същата тема:

We're not "throwing the blame" to Adobe. It *is* their problem. No "if"s or "but"s about it. Adobe is sending the U/V planes in wrong order.

Oh, and the issue is not limited to nvidia. The open source radeon driver has VDPAU support too, through the Gallium VDPAU state tracker which does decoding with shaders (mpeg2 only for now, further formats in development). They get blue people too.

 ;D


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в Apr 03, 2012, 12:01
Ебати каръка съм, в къщи с нвидиа с вдапу, на нотбука с галиум  ;D


01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI M52 [Mobility Radeon X1300]

(http://img716.imageshack.us/img716/8130/aboutqo.png)

Имаше една тема във форума на федора, където беше дадено някъде в етц, май адоб в конфиг се задаваше ръчно правилния  U/V обаче изгубих линка


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: vyrgozunqk в Apr 03, 2012, 13:32
Хмм странно, при мене няма никакъв проблем нито на интел-а нито на радеон ( последното е с fglrx)...освен да е някакъв *бунтувски ъпдейт, който да е 'счупил' нещо. Аз съм на сусе 12.1  :)


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в Apr 03, 2012, 13:52
Може от линка на  ieti да са прави, ти не ползваш radeon или nvidia драйвера, а fglrx и intel.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: vyrgozunqk в Apr 03, 2012, 15:48
Е аз съм с fglrx и интел и нямам проблеми, вмомента пиша от нетбука, който е с интел 3150 и при него нямам проблеми с флаш 11.2...


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: nikito_blend в Apr 03, 2012, 16:55
Аз съм с отворените драйвери на АТИ на HD 3200 и нямам проблем с цветовете.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: v13 в Apr 04, 2012, 19:44
Може да работи коректно ако се деинсталира libvdpau1 ама това не е решение на проблема, защото тази библиотека се ползва от някой плеери.
Надявам се скоро да пуснат кръпка за този проблем а до тогава, старата версия си работи коректно.
Повече инфо тук ---> https://bugs.launchpad.net/ubuntu/+source/unity/+bug/968489 ($2)


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: vyrgozunqk в Apr 04, 2012, 20:19
който е с fglrx да го маха, без друго не работи с него... а хората с интел да ползва libva


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ЗибелтБг в Apr 18, 2012, 20:29
Ако ти  скапе флаша-дава в синьо-отваряш тубата с фаерфокс-десен бутон-махаш хардуерното ускоряване и готово


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: v13 в Apr 19, 2012, 13:43
Общо взето проблема не е нито в дистрибуцията, нито в драйверите за видеото, нито в libvdpau1. Това си е просто бъг на плеера, за който Adobe знаят но към този момент нямат желание да коригират.
Спирането на хардуерното ускорение върши работа но не е добро решение. Понеже проблема се изявява основно в youtube, там може всичко да се гледа с HTML5 http://www.youtube.com/html5 ($2)
Не е добра идеята да се ползва и старата версия на плеера, понеже тя има сериозна уязвимост и е заплаха за сигурността.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ilian_BIOS в Apr 19, 2012, 20:39
^ а така, стига с тоя flash  :)


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: v13 в May 05, 2012, 21:36
Вече има временно решение на проблема със сините лица ето тук: https://bugs.launchpad.net/ubuntu/+source/adobe-flashplugin/+bug/967091/comments/111 ($2)

Копирам основните неща тук

Код:
$ sudo -s
$ mkdir build
$ cd build
$ apt-get install build-essential fakeroot dpkg-dev
$ apt-get source libvdpau1
$ apt-get build-dep libvdpau1
$ cd libvdpau-0.4.1/
$ patch -p1 < /path/to/vdpau.patch
$ dpkg-buildpackage -rfakeroot -b
$ cp src/vdpau_wrapper.cfg /etc/
$ dpkg -i ../libvdpau1_0.4.1-3ubuntu1_amd64.deb


When patching the source, the output should look like:
---
Цитат
patching file src/Makefile.am
Hunk #2 succeeded at 28 (offset 1 line).
patching file src/vdpau_wrapper.c
Hunk #1 succeeded at 222 (offset 12 lines).
Hunk #2 succeeded at 389 (offset 12 lines).
Hunk #3 succeeded at 399 (offset 12 lines).
patching file src/vdpau_wrapper.cfg
---

Be aware that your custom package will be overwritten with the next update of the original package. So if the next update does not yet contain this patch, you have to do the procedure again.

Ето и пач файла:
Код:
diff --git a/src/Makefile.am b/src/Makefile.am
index 48e69a7..9162ffb 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,7 @@
 AM_CFLAGS = \
     -I$(top_srcdir)/include \
     -DVDPAU_MODULEDIR="\"$(moduledir)\"" \
+    -DVDPAU_SYSCONFDIR="\"$(sysconfdir)\"" \
     $(X11_CFLAGS) \
     $(XEXT_CFLAGS)
 
@@ -26,3 +27,6 @@ libvdpauincludedir = $(includedir)/vdpau
 libvdpauinclude_HEADERS = \
     $(top_srcdir)/include/vdpau/vdpau.h \
     $(top_srcdir)/include/vdpau/vdpau_x11.h
+
+libvdpausysconfdir=$(sysconfdir)
+libvdpausysconf_DATA = vdpau_wrapper.cfg
diff --git a/src/vdpau_wrapper.c b/src/vdpau_wrapper.c
index 23de3d4..c955745 100644
--- a/src/vdpau_wrapper.c
+++ b/src/vdpau_wrapper.c
@@ -210,6 +210,163 @@ static void _vdp_close_driver(void)
     _vdp_imp_device_create_x11_proc = NULL;
 }
 
+static VdpGetProcAddress * _imp_get_proc_address;
+static VdpVideoSurfacePutBitsYCbCr * _imp_vid_put_bits_y_cb_cr;
+static VdpPresentationQueueSetBackgroundColor * _imp_pq_set_bg_color;
+static int _inited_fixes;
+static int _running_under_flash;
+static int _enable_flash_uv_swap = 1;
+static int _disable_flash_pq_bg_color = 1;
+
+static VdpStatus vid_put_bits_y_cb_cr_swapped(
+    VdpVideoSurface      surface,
+    VdpYCbCrFormat       source_ycbcr_format,
+    void const * const * source_data,
+    uint32_t const *     source_pitches
+)
+{
+    void const * data_reordered[3];
+    void const * const * data;
+
+    if (source_ycbcr_format == VDP_YCBCR_FORMAT_YV12) {
+        data_reordered[0] = source_data[0];
+        data_reordered[1] = source_data[2];
+        data_reordered[2] = source_data[1];
+        /*
+         * source_pitches[1] and source_pitches[2] should be equal,
+         * so no need to re-order.
+         */
+        data = data_reordered;
+    }
+    else {
+        data = source_data;
+    }
+   
+    return _imp_vid_put_bits_y_cb_cr(
+        surface,
+        source_ycbcr_format,
+        data,
+        source_pitches
+    );
+}
+
+static VdpStatus pq_set_bg_color_noop(
+    VdpPresentationQueue presentation_queue,
+    VdpColor * const     background_color
+)
+{
+    return VDP_STATUS_OK;
+}
+
+static VdpStatus vdp_wrapper_get_proc_address(
+    VdpDevice device,
+    VdpFuncId function_id,
+    /* output parameters follow */
+    void * *  function_pointer
+)
+{
+    VdpStatus status;
+
+    status = _imp_get_proc_address(device, function_id, function_pointer);
+    if (status != VDP_STATUS_OK) {
+        return status;
+    }
+
+    if (_running_under_flash) {
+        switch (function_id) {
+        case VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR:
+            if (_enable_flash_uv_swap) {
+                _imp_vid_put_bits_y_cb_cr = *function_pointer;
+                *function_pointer = vid_put_bits_y_cb_cr_swapped;
+            }
+            break;
+        case VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR:
+            if (_disable_flash_pq_bg_color) {
+                _imp_pq_set_bg_color = *function_pointer;
+                *function_pointer = pq_set_bg_color_noop;
+            }
+            break;
+        default:
+            break;
+        }
+    }
+
+    return VDP_STATUS_OK;
+}
+
+static void init_running_under_flash(void)
+{
+    FILE *fp;
+    char buffer[1024];
+    int ret, i;
+
+    fp = fopen("/proc/self/cmdline", "r");
+    if (!fp) {
+        return;
+    }
+    ret = fread(buffer, 1, sizeof(buffer) - 1, fp);
+    fclose(fp);
+    if (ret < 0) {
+        return;
+    }
+    /*
+     * Sometimes the file contains null between arguments. Wipe these out so
+     * strstr doesn't stop early.
+     */
+    for (i = 0; i < ret; i++) {
+        if (buffer[i] == '\0') {
+            buffer[i] = 'x';
+        }
+    }
+    buffer[ret] = '\0';
+
+    if (strstr(buffer, "libflashplayer") != NULL) {
+        _running_under_flash = 1;
+    }
+}
+
+void init_config(void)
+{
+    FILE *fp;
+    char buffer[1024];
+    int ret;
+
+    fp = fopen(VDPAU_SYSCONFDIR "/vdpau_wrapper.cfg", "r");
+    if (!fp) {
+        return;
+    }
+
+    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
+        char * equals = strchr(buffer, '=');
+        char * param;
+
+        if (equals == NULL) {
+            continue;
+        }
+
+        *equals = '\0';
+        param = equals + 1;
+
+        if (!strcmp(buffer, "enable_flash_uv_swap")) {
+            _enable_flash_uv_swap = atoi(param);
+        }
+        else if (!strcmp(buffer, "disable_flash_pq_bg_color")) {
+            _disable_flash_pq_bg_color = atoi(param);
+        }
+    }
+}
+
+void init_fixes(void)
+{
+    if (_inited_fixes) {
+        return;
+    }
+    _inited_fixes = 1;
+
+    init_running_under_flash();
+    init_config();
+}
+
 VdpStatus vdp_device_create_x11(
     Display *             display,
     int                   screen,
@@ -220,6 +377,8 @@ VdpStatus vdp_device_create_x11(
 {
     VdpStatus status;
 
+    init_fixes();
+
     if (!_vdp_imp_device_create_x11_proc) {
         status = _vdp_open_driver(display, screen);
         if (status != VDP_STATUS_OK) {
@@ -228,10 +387,17 @@ VdpStatus vdp_device_create_x11(
         }
     }
 
-    return _vdp_imp_device_create_x11_proc(
+    status = _vdp_imp_device_create_x11_proc(
         display,
         screen,
         device,
-        get_proc_address
+        &_imp_get_proc_address
     );
+    if (status != VDP_STATUS_OK) {
+        return status;
+    }
+
+    *get_proc_address = vdp_wrapper_get_proc_address;
+
+    return VDP_STATUS_OK;
 }
diff --git a/src/vdpau_wrapper.cfg b/src/vdpau_wrapper.cfg
new file mode 100644
index 0000000..21d5b8c
--- /dev/null
+++ b/src/vdpau_wrapper.cfg
@@ -0,0 +1,2 @@
+enable_flash_uv_swap=1
+disable_flash_pq_bg_color=1


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в May 06, 2012, 00:36
Бачка, Благодрая!  [_]3

Едит: Аз сега се загледах в това което си постнал и ...

Цитат
...
$ cp src/vdpau_wrapper.cfg /etc/
$ dpkg -i ../libvdpau1_0.4.1-3ubuntu1_amd64.deb ...
Аз на нотбука сложих 64 битово убунту и там нямам тази грижа, предполгам съм си с 64 битовия флаш, още при инсталацията сложих отметка да инсталира рестриктед екстрите. Мързи ме да го вадя и проверявам но бях убеден, че с 64 битовия флаш нямам грижи  ;D. Но пък от друга страна ... кво разбирам, аз оня ден на домашния десктоп видях, че нямам swap, кой знае от колко години карам така, дори нямах дял за swap никъде по хардовете  ;D ;D ;D зае*ал съм поддръжката нещо.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: v13 в May 06, 2012, 08:15
Пачнатият пакет ---> https://bugs.launchpad.net/ubuntu/+source/adobe-flashplugin/+bug/967091/+attachment/3132316/+files/libvdpau1_0.4.1-3ubuntu1_amd64.deb ($2)
Не забравяйте и да създадете файл с име ---> /etc/vdpau_wrapper.cfg
със следното съдържание
Код:
enable_flash_uv_swap=1
disable_flash_pq_bg_color=1

Както писах по-горе това е временно решение, докато от Adobe излезе кръпка за проблема. Това в момента е просто поправка на гафа на Adobe със средствата на libvdpau1.
Повечето коментари на хората са, че не е добре да се прави официален ъпдейт на пакета libvdpau1 заради проблема с плеера. Някой казват, че това ще е един вид "замърсяване" на оригиналния код.
Всички се надяваме, че скоро ще има коректно работеща версия на плеера. Доколкото разбрах вече има работна верся на плеера, в която е отстранен проблема.

Много е важно при ъпдейт на системата да не се ъпдейтва libvdpau1, защото ще се припокрие пакета с оригиналния. Ако пък излезе нова версия на libvdpau1, след ъпдейта може отново да се приложи пача.  [_]3


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в May 08, 2012, 14:08
Е то не е болка за умиране, понеже по описаният начин имаш пачнат deb и лесно можеш пак да го инсталираш.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ЗибелтБг в May 09, 2012, 14:09
  Ама как се ядосвам-няма кой да каже да се махне libvdpau1 и mplayer, и да се ползва VLC  и край с проблема-някой нов в Линукс съвсем се обърква. ::)


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в May 09, 2012, 15:52
Е как да каже, като е пълна простотия  ;D
С vdpau и mplayer гледам блурей 1080p с над 25000 битрейт и млеър ми товари процесора 4-11%, докато с VLC ... стой та гледай, той не просто ми товари процесора над допустимото, ами направо сече. Вярно, че процесора е легаси (П4 на 3.4) но дори и да не беше, не обичам да ми се включват/усилват вентилатори за ... "простотии"
То ако става въпрос, още в първите постове има решение, да се махне отметката от хардуерно ускорение на флаш плеъра и готово, но това също е не приемливо решение, поне за мен.


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: ЗибелтБг в May 09, 2012, 21:01
  Еми прав си, ама и VLC през simple directmedia layer видео изход ми товари 18 %, а MPlayer на X11 -23 % на HDTV


Титла: Re: Объркани цветове в youtube flash player
Публикувано от: tolostoi в May 09, 2012, 22:16
Не съм чувал за  simple directmedia layer ако имаш предвид някакъв вид хардуерно ускорение, то във влц работи само с vaapi и с него VLC товари повече, тествал съм. Само, че съм тествал само с nvidia, но съм питал други с ati-та за теста и винаги vaapi-то товари повече. Оставяме настрана, че всъщност с карта на nvidia ти трябва vdpau за да работи хардуерното ускорение и при vlc. Относно mplayer ... не зная от къде ти хрумна за изход да ползваш X11, това съм го чел само в този форум и то явно от хора които са имали проблеми с по-нормалните видео изходи xv и най-вече vdpau (който работи с nvidia затвореният драйвер и от тази тема научих, че вече и в свободния radeon драйвер, но само за mpeg 2 ускорение, което  си е едно добро начало  [_]3)