tools: add a script to find missing codec descriptors.
authorNicolas George <nicolas.george@normalesup.org>
Sun, 12 Aug 2012 22:31:13 +0000 (00:31 +0200)
committerNicolas George <nicolas.george@normalesup.org>
Mon, 13 Aug 2012 08:44:59 +0000 (10:44 +0200)
tools/missing_codec_desc [new file with mode: 0755]

diff --git a/tools/missing_codec_desc b/tools/missing_codec_desc
new file mode 100755 (executable)
index 0000000..093d02e
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+srcdir=${0%/*}/..
+
+while read -r field equal value; do
+  case "$field $equal" in
+    ".id =")
+      eval "known_${value%,}=1"
+      ;;
+  esac
+done < $srcdir/libavcodec/codec_desc.c
+
+known_AV_CODEC_ID_NONE=1
+known_AV_CODEC_ID_FIRST_AUDIO=1
+known_AV_CODEC_ID_FIRST_SUBTITLE=1
+known_AV_CODEC_ID_FIRST_UNKNOWN=1
+known_AV_CODEC_ID_TTF=1
+known_AV_CODEC_ID_PROBE=1
+known_AV_CODEC_ID_MPEG2TS=1
+known_AV_CODEC_ID_MPEG4SYSTEMS=1
+known_AV_CODEC_ID_FFMETADATA=1
+
+in=0
+while read -r line; do
+  case "$in-$line" in
+    0-"enum AVCodecID"*) in=1;;
+    1-*"};"*)            in=0;;
+    1-*AV_CODEC_ID_*,*)
+      cid="${line%%[, =]*}"
+      eval "known=\$known_$cid"
+      case "$known" in
+        1) ;;
+        *) echo "$cid missing";;
+      esac
+      ;;
+  esac
+done < $srcdir/libavcodec/avcodec.h