From ee5b34d56e7fa9c1eb1a2aeb2bf7b55516c99c8a Mon Sep 17 00:00:00 2001
From: Ramiro Polla <ramiro.polla@gmail.com>
Date: Wed, 13 Aug 2008 02:44:38 +0000
Subject: mlp_parser: Initialize crc data in its own function.

Originally committed as revision 14722 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/mlp_parser.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

(limited to 'libavcodec')

diff --git a/libavcodec/mlp_parser.c b/libavcodec/mlp_parser.c
index 646442bf03..7668857d70 100644
--- a/libavcodec/mlp_parser.c
+++ b/libavcodec/mlp_parser.c
@@ -77,14 +77,19 @@ static uint16_t mlp_checksum16(const uint8_t *buf, unsigned int buf_size)
 {
     uint16_t crc;
 
+    crc = av_crc(crc_2D, 0, buf, buf_size - 2);
+    crc ^= AV_RL16(buf + buf_size - 2);
+    return crc;
+}
+
+static int av_cold mlp_parse_init(AVCodecParserContext *s)
+{
     if (!crc_init) {
         av_crc_init(crc_2D, 0, 16, 0x002D, sizeof(crc_2D));
         crc_init = 1;
     }
 
-    crc = av_crc(crc_2D, 0, buf, buf_size - 2);
-    crc ^= AV_RL16(buf + buf_size - 2);
-    return crc;
+    return 0;
 }
 
 /** Read a major sync info header - contains high level information about
@@ -305,7 +310,7 @@ lost_sync:
 AVCodecParser mlp_parser = {
     { CODEC_ID_MLP },
     sizeof(MLPParseContext),
-    NULL,
+    mlp_parse_init,
     mlp_parse,
     NULL,
 };
-- 
cgit v1.2.3