Index: libmpcodecs/ad_hwac3.c =================================================================== --- libmpcodecs/ad_hwac3.c (revision 24456) +++ libmpcodecs/ad_hwac3.c (working copy) @@ -360,9 +360,15 @@ #ifdef WORDS_BIGENDIAN memcpy(&buf[8], indata_ptr, fsize); #else - swab(indata_ptr, &buf[8], fsize); if (fsize & 1) - buf[8+fsize-1] = indata_ptr[fsize-1]; + { + /* Extend a zero for odd fsize */ + swab(indata_ptr, &buf[8], fsize-1); + buf[8+fsize-1] = '\0'; + buf[8+fsize] = indata_ptr[fsize-1]; + ++fsize; + } + else swab(indata_ptr, &buf[8], fsize); #endif memset(&buf[fsize + 8], 0, nr_samples * 2 * 2 - (fsize + 8));