comparison ac3_parser.c @ 8361:c34d5e164b22 libavcodec

AC3: fix strict aliasing violation in parser
author mru
date Wed, 17 Dec 2008 02:30:26 +0000
parents e5f7a43f63ae
children a5402e89a80c
comparison
equal deleted inserted replaced
8360:850b735daef8 8361:c34d5e164b22
156 156
157 static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info, 157 static int ac3_sync(uint64_t state, AACAC3ParseContext *hdr_info,
158 int *need_next_header, int *new_frame_start) 158 int *need_next_header, int *new_frame_start)
159 { 159 {
160 int err; 160 int err;
161 uint64_t tmp = be2me_64(state); 161 union {
162 uint64_t u64;
163 uint8_t u8[8];
164 } tmp = { be2me_64(state) };
162 AC3HeaderInfo hdr; 165 AC3HeaderInfo hdr;
163 GetBitContext gbc; 166 GetBitContext gbc;
164 167
165 init_get_bits(&gbc, ((uint8_t *)&tmp)+8-AC3_HEADER_SIZE, 54); 168 init_get_bits(&gbc, tmp.u8+8-AC3_HEADER_SIZE, 54);
166 err = ff_ac3_parse_header(&gbc, &hdr); 169 err = ff_ac3_parse_header(&gbc, &hdr);
167 170
168 if(err < 0) 171 if(err < 0)
169 return 0; 172 return 0;
170 173