Re: bgr_to_yv12_mmx access violation for BGR 1280*1024 image. Is that just me?
Stephan Aßmus <[email protected]> Wed, 20 Apr 2011 20:11:24 +0200
| Newsgroups | gmane.comp.video.xvid.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, Am 20.04.2011 18:37, schrieb Erwin Bellon: > I wrapped your fine encoder in a DirectShow filter and use that to capture real-time video. That filter works for most image resolutions but for > 1280 * 1024 RGB 24bit output from a webcam I get a read access violation. Did I supply wrong values or might this conversion be suspect? Interestingly, the memory location that the code tries to read is just beyond the memory for the image frame. > > I include the code that calls the assembler routine below, with the parameter values included between (). > > case XVID_CSP_BGR: > safe_packed_conv( > src[0], (0x26ac0000, and when added 1280*1024*3 > -> address at which access violation occurs) > src_stride[0], (3840, is a multiple of 4) > image->y, (I assume that is an output buffer) > image->u, > image->v, > edged_width, (1408) > edged_width2, (704) > width, (1280) > height, (1024) > (csp& XVID_CSP_VFLIP), (csp = 80000200 > = XVID_CSP_BGR | XVID_CSP_VFLIP) > > interlacing?bgri_to_yv12 :bgr_to_yv12, (interlacing = 0) > interlacing?bgri_to_yv12_c:bgr_to_yv12_c, 3, interlacing); > > Any hint would be appreciated. I will in the mean time try to test some more. It sounds wrong that src stride is a multiple of 4. It should be a multiple of 3. Best regards, -Stephan