[Ffmpeg-devel] HEADS UP mpeg4 encoder seems to have recently been broken since 8517
Marc Hoffman
mmh
Sat Mar 31 14:56:43 CEST 2007
Marc Hoffman writes:
>
(gdb) r -i ~/vid/sman.mp4 x.mp4
The program being debugged has been started already.
Start it from the beginning? (y or n) y
`/Users/mmh/ffmpeg/host/ffmpeg_g' has changed; re-reading symbols.
Starting program: /Users/mmh/ffmpeg/host/ffmpeg_g -i ~/vid/sman.mp4 x.mp4
FFmpeg version SVN-r8565, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --enable-gpl --enable-liba52 --enable-libfaac --enable-x264 --enable-libfaad --enable-pp --enable-swscaler --enable-libmp3lame
libavutil version: 49.4.0
libavcodec version: 51.40.2
libavformat version: 51.11.0
built on Mar 31 2007 08:15:31, gcc: 4.0.1 (Apple Computer, Inc. build 5367)
Output #0, mp4, to 'x.mp4':
Stream #0.0: Video: mpeg4, yuv420p, 352x240, q=2-31, 200 kb/s, 25.00 fps(c)
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
Breakpoint 2, av_encode (output_files=0x489100, nb_output_files=1, input_files=0x489260, nb_input_files=0, stream_maps=0xffffff00, nb_stream_maps=0) at /Users/mmh/ffmpeg/ffmpeg-svn/ffmpeg.c:1882
(gdb) dis 2
(gdb) c
Continuing.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x001a0167 in ff_snow_inner_add_yblock (obmc=0x4933 "h\001", obmc_stride=127, block=0xffffffff, b_w=7, b_h=42671852, src_x=0, src_y=0, src_stride=80, sb=0x3000001, add=19924256, dst8=0x1 <Address 0x1 out of bounds>) at /Users/mmh/ffmpeg/ffmpeg-svn/libavcodec/snow.c:2534
(gdb) p sb
$1 = (slice_buffer *) 0x3000001
(gdb)
void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h,
int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){
int y, x;
DWTELEM * dst;
for(y=0; y<b_h; y++){
//FIXME ugly missue of obmc_stride
const uint8_t *obmc1= obmc + y*obmc_stride;
const uint8_t *obmc2= obmc1+ (obmc_stride>>1);
const uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1);
const uint8_t *obmc4= obmc3+ (obmc_stride>>1);
>boom>> dst = slice_buffer_get_line(sb, src_y + y);
for(x=0; x<b_w; x++){
int v= obmc1[x] * block[3][x + y*src_stride]
+obmc2[x] * block[2][x + y*src_stride]
+obmc3[x] * block[1][x + y*src_stride]
+obmc4[x] * block[0][x + y*src_stride];
More information about the ffmpeg-devel
mailing list