qtdemux: Add 'aavd' and related fourcc codes for AAX encrypted audio
authorStefan Brüns <stefan.bruens@rwth-aachen.de>
Sat, 2 May 2020 00:20:44 +0000 (02:20 +0200)
committerStefanBruens <stefan.bruens@rwth-aachen.de>
Wed, 16 Sep 2020 00:59:34 +0000 (00:59 +0000)
The 'aavd' box is contained in the 'stsd' sample description. The 'aavd'
box follows the layout of an 'mp4a' entry, i.e. it contains a single
standard 'esds' extension box, and the two proprietary 'adrm' and 'aabd'
extension boxes.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/577>

gst/isomp4/fourcc.h
gst/isomp4/qtdemux.c
gst/isomp4/qtdemux_types.c

index 7952d8e..89cefa1 100644 (file)
@@ -403,6 +403,10 @@ G_BEGIN_DECLS
 #define FOURCC_tenc     GST_MAKE_FOURCC('t','e','n','c')
 #define FOURCC_cenc     GST_MAKE_FOURCC('c','e','n','c')
 
+/* Audible AAX encrypted audio */
+#define FOURCC_aavd     GST_MAKE_FOURCC('a','a','v','d')
+#define FOURCC_adrm     GST_MAKE_FOURCC('a','d','r','m')
+
 G_END_DECLS
 
 #endif /* __FOURCC_H__ */
index 182d0bc..2929cb4 100644 (file)
@@ -7856,6 +7856,7 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
       case FOURCC_mp4a:
       case FOURCC_alac:
       case FOURCC_fLaC:
+      case FOURCC_aavd:
       {
         guint32 version;
         guint32 offset;
index 9852429..15ad3e5 100644 (file)
@@ -225,6 +225,8 @@ static const QtNodeType qt_node_types[] = {
   {FOURCC_av1m, "AV1 Multi-Frame sample group entry", 0},
   {FOURCC_av1s, "AV1 S-Frame sample group entry", 0},
   {FOURCC_av1M, "AV1 Metadata sample group entry", 0},
+  {FOURCC_aavd, "AAX encrypted audio", 0},
+  {FOURCC_adrm, "AAX DRM key data", 0},
   {0, "unknown", 0,},
 };