AC3: fix strict aliasing violation in parser

Originally committed as revision 16181 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2008-12-17 02:30:26 +00:00
parent cb56b44086
commit 6c414bb6d4

View File

@ -158,11 +158,14 @@ static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info,
int *need_next_header, int *new_frame_start) int *need_next_header, int *new_frame_start)
{ {
int err; int err;
uint64_t tmp = be2me_64(state); union {
uint64_t u64;
uint8_t u8[8];
} tmp = { be2me_64(state) };
AC3HeaderInfo hdr; AC3HeaderInfo hdr;
GetBitContext gbc; GetBitContext gbc;
init_get_bits(&gbc, ((uint8_t *)&tmp)+8-AC3_HEADER_SIZE, 54); init_get_bits(&gbc, tmp.u8+8-AC3_HEADER_SIZE, 54);
err = ff_ac3_parse_header(&gbc, &hdr); err = ff_ac3_parse_header(&gbc, &hdr);
if(err < 0) if(err < 0)