Mercurial > libavcodec.hg
comparison mlp_parser.c @ 7198:479fc906650f libavcodec
spelling cosmetics
| author | diego |
|---|---|
| date | Sat, 05 Jul 2008 10:11:42 +0000 |
| parents | a82e7d9c8c34 |
| children | ae8c047d6be5 |
comparison
equal
deleted
inserted
replaced
| 7197:54f8d960f15b | 7198:479fc906650f |
|---|---|
| 63 } | 63 } |
| 64 | 64 |
| 65 static int crc_init = 0; | 65 static int crc_init = 0; |
| 66 static AVCRC crc_2D[1024]; | 66 static AVCRC crc_2D[1024]; |
| 67 | 67 |
| 68 /** MLP uses checksums that seem to be based on the standard CRC algorithm, | 68 /** MLP uses checksums that seem to be based on the standard CRC algorithm, but |
| 69 * but not (in implementation terms, the table lookup and XOR are reversed). | 69 * are not (in implementation terms, the table lookup and XOR are reversed). |
| 70 * We can implement this behavior using a standard av_crc on all but the | 70 * We can implement this behavior using a standard av_crc on all but the |
| 71 * last element, then XOR that with the last element. | 71 * last element, then XOR that with the last element. |
| 72 */ | 72 */ |
| 73 | 73 |
| 74 static uint16_t mlp_checksum16(const uint8_t *buf, unsigned int buf_size) | 74 static uint16_t mlp_checksum16(const uint8_t *buf, unsigned int buf_size) |
| 97 uint16_t checksum; | 97 uint16_t checksum; |
| 98 | 98 |
| 99 assert(get_bits_count(gb) == 0); | 99 assert(get_bits_count(gb) == 0); |
| 100 | 100 |
| 101 if (gb->size_in_bits < 28 << 3) { | 101 if (gb->size_in_bits < 28 << 3) { |
| 102 av_log(log, AV_LOG_ERROR, "Packet too short, unable to read major sync\n"); | 102 av_log(log, AV_LOG_ERROR, "packet too short, unable to read major sync\n"); |
| 103 return -1; | 103 return -1; |
| 104 } | 104 } |
| 105 | 105 |
| 106 checksum = mlp_checksum16(gb->buffer, 26); | 106 checksum = mlp_checksum16(gb->buffer, 26); |
| 107 if (checksum != AV_RL16(gb->buffer+26)) { | 107 if (checksum != AV_RL16(gb->buffer+26)) { |
| 108 av_log(log, AV_LOG_ERROR, "Major sync info header checksum error\n"); | 108 av_log(log, AV_LOG_ERROR, "major sync info header checksum error\n"); |
| 109 return -1; | 109 return -1; |
| 110 } | 110 } |
| 111 | 111 |
| 112 if (get_bits_long(gb, 24) != 0xf8726f) /* Sync words */ | 112 if (get_bits_long(gb, 24) != 0xf8726f) /* Sync words */ |
| 113 return -1; | 113 return -1; |
