LINUX.ORG.RU

VDPAU-frontend для VAAPI ищу (чтобы ускорять flash и mplayer)

 , ,


1

3

В общем, у flash-плеер тормозит в полноэкранном режиме. Я слышал, что у него есть поддержка ускорения через VDPAU, но у меня нет nvidia. У меня только intel'овское встроенное видео и оно умеет только VA-API.

Ищу прослойку, которая будет прикидываться VDPAU, под капотом используя VAAPI.

Я гуглил, но нашёл только обратное: VAAPI-frontend для VDPAU. Собственно именно этот frontend и надоумил меня заняться поиском. Если можно сделать преобразование в одну сторону, есть ненулевая вероятность, что и обратное возможно.

Заодно и изкоробочный mplayer будет декодирование видео ускорять.

★★★★★
Ответ на: комментарий от white_ghost

флеш у тебя будет тормозить и ни чего ты с этим не сделаешь.

Нельзя сделать что-то, не начав делать.

Ты просто не туда копаешь, вывод флеша нельзя полностью пересадить на аппаратное ускорение, от того что аппаратное ускорение - это НЕКОТОРЫЕ (не все) операции кодирования\декодирования видео, а вся остальная работа по выводу флеш ролика на экран это забота процессора.

Если это не конфиденциальная информация, скажи, откуда у тебя эти сведения? Потому как в реальности всё наоборот, декодирование видео полностью программное, а отрисовка по возможности аппаратная, включая масштабирование и преобразование цвета:

[VDPSOFT] {part} VdpVideoSurfacePutBitsYCbCr surface=24, source_ycbcr_format=VDP_YCBCR_FORMAT_YV12
[VDPSOFT] {part} VdpGenerateCSCMatrix standard=1
[VDPSOFT] {part} VdpVideoMixerSetAttributeValues mixer=23, attribute_count=1
[VDPSOFT]    attribute 1 (VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX)
         1,063635  -0,028848   1,373421  -0,672286
         1,066708  -0,405980  -0,715586   0,560783
         1,143980   1,660892  -0,022393  -0,819249
[VDPSOFT] {part} VdpVideoMixerRender
      mixer=23, background_surface=-1, background_source_rect=NULL,
      current_picture_structure=VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
      no_video_surface_past, video_surface_current=24, no_video_surface_future,
      video_source_rect=NULL, destination_surface=22,
      destination_rect=NULL, video_surface_current=24, no_layers
[VDPSOFT] {dirty impl} VdpOutputSurfaceRenderOutputSurface destination_surface=33, source_surface=22
      destination_rect=(0,0,854,480), source_rect=(0,0,426,240)
      colors=(nil), flags=0
      blend_state.blend_factor_source_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE
      blend_state.blend_factor_destination_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO
      blend_state.blend_factor_source_alpha=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE
      blend_state.blend_factor_destination_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO
      blend_state.blend_equation_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD
      blend_state.blend_equation_alpha=VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD
      blend_constant = (   0,000000,    0,000000,    0,000000,    0,000000)
[VDPSOFT] {part} VdpOutputSurfaceRenderBitmapSurface destination_surface=33, source_surface=30
      destination_rect=(0,0,854,510), source_rect=(0,0,854,510)
      colors=(nil), flags=0
      blend_state.blend_factor_source_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE
      blend_state.blend_factor_destination_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
      blend_state.blend_factor_source_alpha=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE
      blend_state.blend_factor_destination_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
      blend_state.blend_equation_color=VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD
      blend_state.blend_equation_alpha=VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD
      blend_constant = (   0,000000,    0,000000,    0,000000,    0,000000)
[VDPSOFT] {part} VdpPresentationQueueDisplay presentation_queue=32, surface=33, clip_width=0, clip_height=0
[VDPSOFT] {full} VdpPresentationQueueBlockUntilSurfaceIdle presentation_queue=32, surface=34
[VDPSOFT] {full} VdpPresentationQueueGetTime presentation_queue=32

Я флешу, когда он спрашивает про точки входа для декодера, сообщаю, что они все есть. Но он их никогда не вызывает.

При том что как правило на вэб странице кроме самого флеша есть еще всякие анимированые картинки рендерит которые тоже твои процессор. А процессор у тебя какой? никакой собственно отсюда у тебя и тормоза.

У меня есть профайлер, меня так просто не запугаешь :)

i-rinat ★★★★★
() автор топика
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от white_ghost

http://ru.wikipedia.org/wiki/DirectX_Video_Acceleration
http://en.wikipedia.org/wiki/VDPAU
http://en.wikipedia.org/wiki/Video_Acceleration_API

Прочитай самое первое (или нулевое, как считать) сообщение темы, пожалуйста.

Ну и по всем тем ссылкам нет информации о том, что flashplayer не умеет аппаратную отрисовку, а использует только аппаратное декодирование и то частично. Я оспариваю это утверждение.

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

а вот с програмной отрисовкой я не понял. это вообще как? Отрисовка принципиально только аппаратная и это не переделать, ну просто видеовыход он физически припаян к гпу.

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

Отрисовка принципиально только аппаратная и это не переделать

Вот здесь ошибка. Аппаратная означает не «сделанная на логике», а «происходящая отдельно от CPU». GPU — это своего рода процессор, только специализированный.

Не думаю, что стоит разводить здесь лекции об устройстве GPU, просто хочу сказать, что не надо бросаться громкими утверждениями, если не можешь их подтвердить.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

нет, аппаратная таки и означает сделанная на логике. А отдельно от цпу только бред который ты несешь генерируется. Я тебе кинул ссылки.

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

нет, аппаратная таки и означает сделанная на логике.

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

А отдельно от цпу только бред который ты несешь генерируется. Я тебе кинул ссылки.

Кладезь знаний. Особенно учитывая то, что изначально я все эти понятия упомянул в заглавном сообщении.

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