Ignore:
Timestamp:
Dec 12, 2008 2:59:38 PM (15 years ago)
Author:
bennylp
Message:

Workaround for ticket #683: Crash/segfault on pjmedia_wsola_create() on ARM9 platform with GCC optimizations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/wsola.c

    r2277 r2378  
    3131#define THIS_FILE   "wsola.c" 
    3232 
     33/* 
     34 * http://trac.pjsip.org/repos/ticket/683: 
     35 *  Workaround for segfault problem in the fixed point version of create_win() 
     36 *  on ARM9 platform, possibly due to gcc optimization bug. 
     37 * 
     38 *  For now, we will use linear window when floating point is disabled. 
     39 */ 
     40#ifndef PJMEDIA_WSOLA_LINEAR_WIN 
     41#   define PJMEDIA_WSOLA_LINEAR_WIN    (!PJ_HAS_FLOATING_POINT) 
     42#endif 
     43 
    3344 
    3445#if 0 
     
    369380} 
    370381 
    371 #if PJ_HAS_INT64 
     382#if PJ_HAS_INT64 && !PJMEDIA_WSOLA_LINEAR_WIN 
    372383/* approx_cos(): 
    373384 *   see: http://www.audiomulch.com/~rossb/code/sinusoids/  
     
    389400    return j; 
    390401} 
    391 #endif  /* PJ_HAS_INT64 */ 
     402#endif  /* PJ_HAS_INT64 && .. */ 
    392403 
    393404static void create_win(pj_pool_t *pool, pj_uint16_t **pw, unsigned count) 
     
    401412 
    402413    for (i=0; i<count; i++) { 
    403 #if PJ_HAS_INT64 
     414#if PJ_HAS_INT64 && !PJMEDIA_WSOLA_LINEAR_WIN 
    404415        pj_uint32_t phase; 
    405416        pj_uint64_t cos_val; 
Note: See TracChangeset for help on using the changeset viewer.