[vlc-devel] h264: support frame parameter changes during frame-mt
Rafaël Carré
funman at videolan.org
Tue Dec 25 22:51:06 CET 2012
Hello,
Le 18/12/2012 20:01, Janne Grunau a écrit :
> Module: libav
> Branch: master
> Commit: 9e696d2e5ffaa763c564682ec18c3b51b3e5fccc
>
> Author: Janne Grunau <janne-libav at jannau.net>
> Committer: Janne Grunau <janne-libav at jannau.net>
> Date: Thu Sep 6 13:30:08 2012 +0200
>
> h264: support frame parameter changes during frame-mt
>
> Fixes CVE-2012-2782.
This libav commit broke vaapi support in VLC :
libva: VA-API version 0.32.0
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva: va_openDriver() returns 0
[0x7ff658000ce8] main generic debug: using hw decoder module "vaapi"
[0x7ff64d059ec8] avcodec decoder debug: Available decoder output format
61 (dxva2_vld)
[0x7ff64d059ec8] avcodec decoder debug: Available decoder output format
53 (vaapi_vld)
[0x7ff64d059ec8] avcodec decoder: Using VA API version 0.32 for hardware
decoding.
[0x7ff658e620f8] main generic debug: looking for hw decoder module
matching "vaapi": 1 candidates
libva: VA-API version 0.32.0
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva: va_openDriver() returns 0
[0x7ff658e620f8] main generic debug: using hw decoder module "vaapi"
[0x7ff64d059ec8] avcodec decoder debug: Available decoder output format
61 (dxva2_vld)
[0x7ff64d059ec8] avcodec decoder debug: Available decoder output format
53 (vaapi_vld)
[0x7ff64d059ec8] avcodec decoder: Using VA API version 0.32 for hardware
decoding.
zsh: segmentation fault (core dumped) cvlc --ignore-config -vv
--avcodec-hw vaapi bbb-1080-stereo.mp4
As you see the vaapi module is probed multiple times; running VLC
multiple times will show that module is probed a random number of times
between 2 and 7 before segfaulting.
I did not debug anything yet, just experienced it and wanted to share
git bisect result, so suggestions (or fix) welcome :)
backtraces often come from i965_drv_video.so but not always..
vlc: i965_drv_video.c:1105: i965_UnmapBuffer: Assertion `obj_buffer &&
obj_buffer->buffer_store' failed.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe95ef700 (LWP 18475)]
0x00007ffff7414425 in __GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7414425 in __GI_raise (sig=<optimized out>) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007ffff7417b8b in __GI_abort () at abort.c:91
#2 0x00007ffff740d0ee in __assert_fail_base (fmt=<optimized out>,
assertion=0x7fffd55b3510 "obj_buffer && obj_buffer->buffer_store",
file=0x7fffd55b314e "i965_drv_video.c", line=<optimized out>,
function=<optimized out>)
at assert.c:94
#3 0x00007ffff740d192 in __GI___assert_fail (
assertion=0x7fffd55b3510 "obj_buffer && obj_buffer->buffer_store",
file=0x7fffd55b314e "i965_drv_video.c", line=1105,
function=0x7fffd55b3f70 "i965_UnmapBuffer")
at assert.c:103
#4 0x00007fffd559b264 in ?? () from
/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
#5 0x00007fffd74f283c in render_picture (surface=67108880,
vactx=0x7fffc800a3d8)
at libavcodec/vaapi.c:48
#6 ff_vaapi_common_end_frame (s=0x7fffcd06d960) at libavcodec/vaapi.c:188
#7 0x00007fffd7314fdd in field_end (in_setup=0, h=0x7fffcd06d960) at
libavcodec/h264.c:2310
#8 decode_frame (avctx=0x7fffcd06c020, data=0x7fffcd06c460,
got_frame=0x7fffe95eeccc,
avpkt=<optimized out>) at libavcodec/h264.c:4201
#9 0x00007fffd74ecc6b in avcodec_decode_video2
(avctx=avctx at entry=0x7fffcd06c020,
More information about the vlc-devel
mailing list