comparison aac_parser.c @ 8360:850b735daef8 libavcodec

AAC: fix strict aliasing violation in parser
author mru
date Wed, 17 Dec 2008 02:30:22 +0000
parents e381bf921a88
children 2cbfa4cd4670
comparison
equal deleted inserted replaced
8359:9281a8a9387a 8360:850b735daef8
30 static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info, 30 static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info,
31 int *need_next_header, int *new_frame_start) 31 int *need_next_header, int *new_frame_start)
32 { 32 {
33 GetBitContext bits; 33 GetBitContext bits;
34 int size, rdb, ch, sr; 34 int size, rdb, ch, sr;
35 uint8_t tmp[8]; 35 union {
36 uint64_t u64;
37 uint8_t u8[8];
38 } tmp;
36 39
37 AV_WB64(tmp, state); 40 tmp.u64 = be2me_64(state);
38 init_get_bits(&bits, tmp+8-AAC_HEADER_SIZE, AAC_HEADER_SIZE * 8); 41 init_get_bits(&bits, tmp.u8+8-AAC_HEADER_SIZE, AAC_HEADER_SIZE * 8);
39 42
40 if(get_bits(&bits, 12) != 0xfff) 43 if(get_bits(&bits, 12) != 0xfff)
41 return 0; 44 return 0;
42 45
43 skip_bits1(&bits); /* id */ 46 skip_bits1(&bits); /* id */