Hi, Recently I'm trying to write a simple video player with libav. I tested my program with three video files; one encoded in mpeg4/mp2(64kbps), one in h264/aac(95kbps), and one in h264/ac3(384kbps). Playing of the first file is as perfect as I expected -- but the other two are not. They both encountered segment fault at float_to_int16_interleave_sse2, and here are the backtracks:
1. Program received signal SIGSEGV, Segmentation fault. 0x0840aa15 in float_to_int16_interleave_sse2 (dst=0xb638d408, src=0xbffff75c, len=-1024, channels=2) at libavcodec/x86/dsputil_mmx.c:2475 2475 FLOAT_TO_INT16_INTERLEAVE(sse2, (gdb) bt #0 0x0840aa15 in float_to_int16_interleave_sse2 (dst=0xb638d408, src=0xbffff75c, len=-1024, channels=2) at libavcodec/x86/dsputil_mmx.c:2475 #1 0x08443cc6 in ac3_decode_frame (avctx=0x8b44a10, data=0xb638d008, data_size=0xbffff81c, avpkt=0xbffff7e0) at libavcodec/ac3dec.c:1419 #2 0x08357ded in avcodec_decode_audio3 (avctx=0x8b44a10, samples=0xb638d008, frame_size_ptr=0x8b99cd0, avpkt=0xbffff7e0) at libavcodec/utils.c:656 2. 0x0840aa15 in float_to_int16_interleave_sse2 (dst=0x8f43f18, src=0x8b449ec, len=-4096, channels=2) at libavcodec/x86/dsputil_mmx.c:2475 2475 FLOAT_TO_INT16_INTERLEAVE(sse2, (gdb) bt #0 0x0840aa15 in float_to_int16_interleave_sse2 (dst=0x8f43f18, src=0x8b449ec, len=-4096, channels=2) at libavcodec/x86/dsputil_mmx.c:2475 #1 0x08438901 in aac_decode_frame (avctx=0x8b41b70, data=0x8f42f18, data_size=0xb67af22c, avpkt=0xb67af1f0) at libavcodec/aacdec.c:2097 #2 0x08357ded in avcodec_decode_audio3 (avctx=0x8b41b70, samples=0x8f42f18, frame_size_ptr=0x8bd8b00, avpkt=0xb67af1f0) at libavcodec/utils.c:656 Any idea? Full code is totally about 700 lines, so it would be hard to put it here. wecing.
_______________________________________________ libav-api mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-api
