xpra icon
Bug tracker and wiki

Opened 4 years ago

Closed 4 years ago

#421 closed defect (duplicate)

fix support for libav 9.8

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 0.11
Component: platforms Version:
Keywords: Cc:

Description

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

Change History (1)

comment:1 Changed 4 years ago by Antoine Martin

Resolution: duplicate
Status: newclosed

merging with #415

Note: See TracTickets for help on using tickets.