[FFmpeg-devel] [PATCH]Only run the tta crc checks if requested

Carl Eugen Hoyos cehoyos at ag.or.at
Fri Feb 6 10:15:58 CET 2015


Hi!

I did not benchmark but attached should be both a little faster 
and a little cleaner.

Please comment, Carl Eugen
-------------- next part --------------
From 8bf4e1c82e818483a5bbf55147bb818e5cfacc70 Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos <cehoyos at ag.or.at>
Date: Fri, 6 Feb 2015 10:13:31 +0100
Subject: [PATCH] avformat/tta: only check for header and seek table crc if
 requested

---
 libavformat/tta.c |   20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/libavformat/tta.c b/libavformat/tta.c
index a782bd7..e839bc2 100644
--- a/libavformat/tta.c
+++ b/libavformat/tta.c
@@ -83,10 +83,12 @@ static int tta_read_header(AVFormatContext *s)
         return AVERROR_INVALIDDATA;
     }
 
-    crc = ffio_get_checksum(s->pb) ^ UINT32_MAX;
-    if (crc != avio_rl32(s->pb) && s->error_recognition & AV_EF_CRCCHECK) {
-        av_log(s, AV_LOG_ERROR, "Header CRC error\n");
-        return AVERROR_INVALIDDATA;
+    if (s->error_recognition & AV_EF_CRCCHECK) {
+        crc = ffio_get_checksum(s->pb) ^ UINT32_MAX;
+        if (crc != avio_rl32(s->pb) && s->error_recognition & AV_EF_CRCCHECK) {
+            av_log(s, AV_LOG_ERROR, "Header CRC error\n");
+            return AVERROR_INVALIDDATA;
+        }
     }
 
     c->frame_size      = samplerate * 256 / 245;
@@ -129,10 +131,12 @@ static int tta_read_header(AVFormatContext *s)
             return r;
         framepos += size;
     }
-    crc = ffio_get_checksum(s->pb) ^ UINT32_MAX;
-    if (crc != avio_rl32(s->pb) && s->error_recognition & AV_EF_CRCCHECK) {
-        av_log(s, AV_LOG_ERROR, "Seek table CRC error\n");
-        return AVERROR_INVALIDDATA;
+    if (s->error_recognition & AV_EF_CRCCHECK) {
+        crc = ffio_get_checksum(s->pb) ^ UINT32_MAX;
+        if (crc != avio_rl32(s->pb)) {
+            av_log(s, AV_LOG_ERROR, "Seek table CRC error\n");
+            return AVERROR_INVALIDDATA;
+        }
     }
 
     st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
-- 
1.7.10.4



More information about the ffmpeg-devel mailing list