Mercurial > libavformat.hg
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); |