LINUX.ORG.RU

Баг в ffmpeg ebuild?

 


0

1

Сегодня прилетело:

!!! The ebuild selected to satisfy "media-video/ffmpeg:0=" has unmet requirements.
- media-video/ffmpeg-2.6::gentoo USE="X aac aacplus alsa amr amrenc bzip2 celt encode faac gme gpl gsm hardcoded-tables iconv jack jpeg2k ladspa libass libsoxr modplug mp3 network opengl openssl opus postproc quvi rtmp schroedinger sdl speex ssh theora threads truetype twolame vorbis vpx wavpack webp x264 x265 xcb xvid zlib zvbi (-altivec) (-armv5te) (-armv6) (-armv6t2) (-armvfp) -bluray -bs2b -cdio -cpudetection -debug -doc -examples -fdk -flite -fontconfig -frei0r -fribidi -gnutls -iec61883 -ieee1394 -libcaca -libv4l -lzma (-mipsdspr1) (-mipsdspr2) (-mipsfpu) (-neon) -openal -oss -pic -pulseaudio -samba -static-libs -test -v4l -vaapi -vdpau" CPU_FLAGS_X86="mmx sse sse2 -3dnow -3dnowext -avx -avx2 -fma3 -fma4 -mmxext -sse3 -sse4_1 -sse4_2 -ssse3 -xop" FFTOOLS="aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart trasher"

  The following REQUIRED_USE flag constraints are unsatisfied:
    cpu_flags_x86_sse? ( cpu_flags_x86_mmxext )

Вроде бы все понятно: коль уж выставлено sse, то хочет mmxext. Только вот cat /proc/cpuinfoх не выдает никакого mmxext (Core2Duo), а вот здесь написано следующее:

MMXEXT (like 3DNow!) is an AMD-specific extension that was added in some old AMD CPUs back before AMD and Intel settled on a common SIMD instruction set. The MMXEXT instructions have since been superseded by SSE in both AMD and Intel CPUs, so Intel never added support for them.

The solution to this particular problem is to fix the following bug in libmpeg2:

...

«MMXEXT» should be changed to «MMX» here (or the clause should be deleted entirely if the MMX flag is not needed in SSE environments).

Баг? Или что-то упускаю?

★★★★★

ты себе в make.conf CPU_FLAGS_X86=" " в связи с недавними новостями сделал?

там есть mmxext?

у меня ffmpeg-2.6 собран с

CPU_FLAGS_X86="avx fma3 fma4 mmx mmxext sse sse2 sse3 sse4_1 sse4_2 ssse3 xop -3dnow -3dnowext -avx2"
всё отлично.

redhat
()

Упускаешь. Новости внимательней читать надо, было что-то:

CPU_FLAGS_X86 introduction

To help users enable the correct USE flags, we are providing a Python
script that generates the correct value using /proc/cpuinfo. It can be
found in the app-portage/cpuinfo2cpuflags package:

  $ emerge -1v app-portage/cpuinfo2cpuflags
  $ cpuinfo2cpuflags-x86

Что должно выдать нужный CPU_FLAGS_X86, у меня, например:

CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"

iVS ★★★★★
()

а понятно, ты говоришь, что у тебя его в проце нет.

Ну ты емержни app-portage/cpuinfo2cpuflags и поставь в CPU_FLAGS_X86=" ", что он тебе выдал. И забей.

redhat
()
Ответ на: комментарий от iVS

он говорит, что нетути у него в cpuinfo mmxext, интересно что ему поставит cpuinfo2cpuflags, т.е. если не поставит mmxext, то действительно ебюлд кривоват в этом плане.

redhat
()
Ответ на: комментарий от redhat

Да, я хотел сказать, что без выхлопа cpuinfo2cpuflags-x86 делать выводы преждевременно.

iVS ★★★★★
()

У меня всю жизнь стоит -sse, и никаких проблем. Для ffmpeg можно указать media-video/ffmpeg -cpu_flags_x86_sse в /etc/portage/package.use.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Сэру init_6 только бы побрюзжать, как злые майнтейнеры генты скатывают некогда лучший дистрибутив в УГ.

iVS ★★★★★
()
Ответ на: комментарий от init_6

почему это должно меня волновать?

Потому, что ты несёшь чушь. Вроде опытный гентушник, а прочитать документацию не можешь? Большинство проблем в генте у неопытных пользователей как раз из-за нежелания читать документацию.

r3lgar ★★★★★
()
Ответ на: комментарий от iVS

Программный код пишется людьми, а людям свойственно ошибаться.

r3lgar ★★★★★
()

В моём процессоре тоже нет mmxext, но его видит в нём и использует тот же энкодер видео, насколько я помню у интела какая-то совместимая с ним технология используется или что-то вроде того. Я имею в виду x264.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 1)
Ответ на: комментарий от iVS

Сэру init_6 только бы побрюзжать, как злые майнтейнеры генты скатывают некогда лучший дистрибутив в УГ.

Я не вижу повода для паники. Дистрибутив только начинает расцветать, а то, что сейчас творится — это лишь переходная фаза. Или я не прав?

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

Дистрибутив только начинает расцветать, а то, что сейчас творится — это лишь переходная фаза. Или я не прав?

Не прав. Расцветом тут не пахнет. Скорее всего стагнация. Разработчики взрослеют и уходят на всякие убунты или маки. Остаются лишь немногие, и они конечно не успевают за всем следить. Кроме того, этот дистр больше всего интересен самому костяку его мейнтейнеров и разрабов.

Deleted
()
Ответ на: комментарий от redhat

Приятно когда вдумчиво читают вопрос :)

$ cpuinfo2cpuflags-x86 
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3"

$ less /usr/portage/profiles/desc/cpu_flags_x86.desc
...
mmxext - Use the Extended MMX instruction set (a subset of SSE) ([mmxext] or [sse] in cpuinfo)
...

Этот же файл cpu_flags_x86.desc использует cpuinfo2cpuflags-x86.

Википедия:
Extended MMX, также известное как EMMI (Extended Multi-Media Instructions)... ... (некоторые инструкции Intel SSE имеют такие же коды операций, что и инструкции EMMI, и не являются совместимыми с ними)

$ cat ChangeLog | grep mmxext
  Fix USE=mmxext description. Thanks to Doug Freed for figuring out what it

Похоже, что весь Интернет кроме многоуважаемого Doug Freed говорит о том, что mmxext и sse не являются совместимыми.

Kroz ★★★★★
() автор топика

Короче, ХЗ.

http://softpixel.com/~cwright/programming/simd/mmxext.php
http://softpixel.com/~cwright/programming/simd/sse.php
Здесь есть полное совпадение инструкций mmxext и чести sse.

Была гипотеза, что коды команд разные. Но эксперимент гипотезу не подтвердил. Тестовый код:

#include<stdio.h>

int main()
{
        __asm__ volatile(   "prefetchnta (%0)\n\t"
                : : "r" (p)
            );

        printf ("Cool\n");

        return 0;
}

Короче, включил mmxext только для ffmpeg. В make.conf выключил. Посмотрим...

Kroz ★★★★★
() автор топика
Ответ на: комментарий от iVS

Крона призови

Секта гентоненавистников не имеет авторитета в таких вопросах. (=

r3lgar ★★★★★
()
Ответ на: комментарий от Deleted

Разработчики взрослеют и уходят на всякие убунты или маки.

Разработчики

O\

Остаются лишь немногие, и они конечно не успевают за всем следить.

Потому, что слишком много второстепенных проблем, которые для обычного пользователя почему-то важнее реальных задач.

Многие (не скрою, и я в том числе) хотят дерево портажа в гит, но НИКТО не взялся (Михаль Горны взялся, но не суть) и не сделал абсолютно ничего для этого. Зато всякие «Баг в ffmpeg ebuild?».

Кроме того, этот дистр больше всего интересен самому костяку его мейнтейнеров и разрабов.

А чего ты хотел от дистрибутива, в котором каждый сам себе мейнтейнер? Чужие хотелки никто не будет реализовывать, своих у каждого вагон.

r3lgar ★★★★★
()
Ответ на: комментарий от r3lgar

O\

Мигелюшка, это так, юзер значит. Неплохой Gnome (2) в свое время получился у этого юзера.

А чего ты хотел от дистрибутива, в котором каждый сам себе мейнтейнер?

А я разве что-то хотел? Свои хотелки решаю сам, а в данном случае констатировал факт.

«Баг в ffmpeg ebuild?».

Я вот сперва для себя чиню такие ебилды, и только в последнюю очередь оправляю в багтрекер. Мне вот непонятно такое нытье. Ебилды ж элементарщина, что сложного в том, чтобы поправить его самому, не ожидая пока мейнтейнеры проснутся?

Deleted
()
Ответ на: комментарий от Deleted

Я вот сперва для себя чиню такие ебилды

А я сначала разбираюсь

Kroz ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.