Mercurial > libavcodec.hg
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 */ |
