comparison electronicarts.c @ 2640:2947743d78be libavformat

simplify
author aurel
date Thu, 18 Oct 2007 23:21:31 +0000
parents 39efecda734f
children 9725a5726fec
comparison
equal deleted inserted replaced
2639:39efecda734f 2640:2947743d78be
34 #define MVhd_TAG MKTAG('M', 'V', 'h', 'd') 34 #define MVhd_TAG MKTAG('M', 'V', 'h', 'd')
35 #define MV0K_TAG MKTAG('M', 'V', '0', 'K') 35 #define MV0K_TAG MKTAG('M', 'V', '0', 'K')
36 #define MV0F_TAG MKTAG('M', 'V', '0', 'F') 36 #define MV0F_TAG MKTAG('M', 'V', '0', 'F')
37 37
38 #define EA_BITS_PER_SAMPLE 16 38 #define EA_BITS_PER_SAMPLE 16
39 #define EA_PREAMBLE_SIZE 8
40 39
41 typedef struct EaDemuxContext { 40 typedef struct EaDemuxContext {
42 int big_endian; 41 int big_endian;
43 42
44 int video_codec; 43 int video_codec;
284 { 283 {
285 EaDemuxContext *ea = s->priv_data; 284 EaDemuxContext *ea = s->priv_data;
286 ByteIOContext *pb = &s->pb; 285 ByteIOContext *pb = &s->pb;
287 int ret = 0; 286 int ret = 0;
288 int packet_read = 0; 287 int packet_read = 0;
289 unsigned char preamble[EA_PREAMBLE_SIZE];
290 unsigned int chunk_type, chunk_size; 288 unsigned int chunk_type, chunk_size;
291 int key = 0; 289 int key = 0;
292 290
293 while (!packet_read) { 291 while (!packet_read) {
294 292 chunk_type = get_le32(pb);
295 if (get_buffer(pb, preamble, EA_PREAMBLE_SIZE) != EA_PREAMBLE_SIZE) 293 chunk_size = get_le32(pb) - 8;
296 return AVERROR(EIO);
297 chunk_type = AV_RL32(&preamble[0]);
298 chunk_size = AV_RL32(&preamble[4]) - EA_PREAMBLE_SIZE;
299 294
300 switch (chunk_type) { 295 switch (chunk_type) {
301 /* audio data */ 296 /* audio data */
302 case SCDl_TAG: 297 case SCDl_TAG:
303 ret = av_get_packet(pb, pkt, chunk_size); 298 ret = av_get_packet(pb, pkt, chunk_size);