Some distros ship with libav 9.8 (Debian sid does), and although we can build against those headers (provided we use the patches for "old-libav"), it crashes at runtime:
(..) draw_region(0, 0, 498, 316, x264, 20625 bytes, 0, \ {'quality': 99, 'frame': 1, 'speed': 86, 'csc': 'YUV444P'}, \ [<function record_decode_time at 0x8cb2a3c>, <function after_draw_refresh at 0x8ccc2cc>]) colorspaces supported by avcodec Lavc54.35.0: ['YUV422P', 'BGRX', 'GBRP', 'RGB', 'YUV420P', 'BGRA', 'ARGB', 'XRGB', 'YUV444P'] paint_with_video_decoder: new <type 'xpra.codecs.dec_avcodec.decoder.Decoder'>(498,316,YUV444P) dec_avcodec.Decoder.init_context(498, 316, YUV444P) \ self={'colorspace': 'YUV444P', 'actual_colorspace': 'YUV444P', 'height': 316, 'width': 498, 'frames': 0, 'type': 'x264', 'buffers': 0} paint_with_video_decoder: info={'colorspace': 'YUV444P', 'actual_colorspace': 'YUV444P', \ 'height': 316, 'width': 498, 'frames': 0, 'type': 'x264', 'buffers': 0} Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xaa9d0b40 (LWP 11168)] __GI___libc_free (mem=0xc0006) at malloc.c:2892 2892 malloc.c: No such file or directory. #0 __GI___libc_free (mem=0xc0006) at malloc.c:2892 #1 0xb7461b92 in av_freep () from /usr/lib/i386-linux-gnu/i686/cmov/libavutil.so.52 #2 0xb6c35305 in avcodec_decode_video2 () from /usr/lib/i386-linux-gnu/i686/cmov/libavcodec.so.54 #3 0xb74db756 in __pyx_pf_4xpra_6codecs_11dec_avcodec_7decoder_7Decoder_20decompress_image ( __pyx_v_options=<optimized out>, __pyx_v_input=<optimized out>, __pyx_v_self=<optimized out>) at xpra/codecs/dec_avcodec/decoder.c:5461 #4 __pyx_pw_4xpra_6codecs_11dec_avcodec_7decoder_7Decoder_21decompress_image (__pyx_v_self=0x8ccc304, __pyx_args=0x8cb36cc, __pyx_kwds=0x0) at xpra/codecs/dec_avcodec/decoder.c:5245 #5 0x0818e6c1 in PyEval_EvalFrameEx ()
Looks like a double free from avcodec_decode_video2
merging with #415
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/421