diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.cpp b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
index 45d3a958ba62102283000c9965fb91b507934ebb..1f75e33403bf0f74f4a1d7a22d23be68a1c0a9b8 100644
--- a/src/plugins/directshow/player/directshowmetadatacontrol.cpp
+++ b/src/plugins/directshow/player/directshowmetadatacontrol.cpp
@@ -87,6 +87,7 @@ DEFINE_PROPERTYKEY(PKEY_Media_AverageLevel, 0x09EDD5B6, 0xB301, 0x43C5, 0x99, 0x
 DEFINE_PROPERTYKEY(PKEY_Audio_ChannelCount, 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 7);
 DEFINE_PROPERTYKEY(PKEY_Audio_PeakValue, 0x2579E5D0, 0x1116, 0x4084, 0xBD, 0x9A, 0x9B, 0x4F, 0x7C, 0xB4, 0xDF, 0x5E, 100);
 DEFINE_PROPERTYKEY(PKEY_Audio_SampleRate, 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 5);
+DEFINE_PROPERTYKEY(PKEY_Audio_Format, 0x64440490, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 2);
 DEFINE_PROPERTYKEY(PKEY_Music_AlbumTitle, 0x56A3372E, 0xCE9C, 0x11D2, 0x9F, 0x0E, 0x00, 0x60, 0x97, 0xC6, 0x86, 0xF6, 4);
 DEFINE_PROPERTYKEY(PKEY_Music_AlbumArtist, 0x56A3372E, 0xCE9C, 0x11D2, 0x9F, 0x0E, 0x00, 0x60, 0x97, 0xC6, 0x86, 0xF6, 13);
 DEFINE_PROPERTYKEY(PKEY_Music_Artist, 0x56A3372E, 0xCE9C, 0x11D2, 0x9F, 0x0E, 0x00, 0x60, 0x97, 0xC6, 0x86, 0xF6, 2);
@@ -104,8 +105,111 @@ DEFINE_PROPERTYKEY(PKEY_Video_VerticalAspectRatio, 0x64440491, 0x4C8B, 0x11D1, 0
 DEFINE_PROPERTYKEY(PKEY_Video_FrameRate, 0x64440491, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 6);
 DEFINE_PROPERTYKEY(PKEY_Video_EncodingBitrate, 0x64440491, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 8);
 DEFINE_PROPERTYKEY(PKEY_Video_Director, 0x64440492, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 20);
+DEFINE_PROPERTYKEY(PKEY_Video_Compression, 0x64440491, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 10);
 DEFINE_PROPERTYKEY(PKEY_Media_Writer, 0x64440492, 0x4C8B, 0x11D1, 0x8B, 0x70, 0x08, 0x00, 0x36, 0xB1, 0x1A, 0x03, 23);
 
+static QString nameForGUIDString(const QString &guid)
+{
+    // Audio formats
+    if (guid == "{00001610-0000-0010-8000-00AA00389B71}" || guid == "{000000FF-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG AAC Audio");
+    else if (guid == "{00001600-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG ADTS AAC Audio");
+    else if (guid == "{00000092-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Dolby AC-3 SPDIF");
+    else if (guid == "{E06D802C-DB46-11CF-B4D1-00805F6CBBEA}" || guid == "{00002000-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Dolby AC-3");
+    else if (guid == "{A7FB87AF-2D02-42FB-A4D4-05CD93843BDD}")
+        return QStringLiteral("Dolby Digital Plus");
+    else if (guid == "{00000009-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("DRM");
+    else if (guid == "{00000008-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Digital Theater Systems Audio (DTS)");
+    else if (guid == "{00000003-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("IEEE Float Audio");
+    else if (guid == "{00000055-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG Audio Layer-3 (MP3)");
+    else if (guid == "{00000050-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG-1 Audio");
+    else if (guid == "{2E6D7033-767A-494D-B478-F29D25DC9037}")
+        return QStringLiteral("MPEG Audio Layer 1/2");
+    else if (guid == "{0000000A-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Audio Voice");
+    else if (guid == "{00000001-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Uncompressed PCM Audio");
+    else if (guid == "{00000164-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Audio 9 SPDIF");
+    else if (guid == "{00000161-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Audio 8 (WMA2)");
+    else if (guid == "{00000162-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Audio 9 (WMA3");
+    else if (guid == "{00000163-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Audio 9 Lossless");
+    else if (guid == "{8D2FD10B-5841-4a6b-8905-588FEC1ADED9}")
+        return QStringLiteral("Vorbis");
+    else if (guid == "{0000F1AC-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Free Lossless Audio Codec (FLAC)");
+    else if (guid == "{00006C61-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Apple Lossless Audio Codec (ALAC)");
+
+    // Video formats
+    if (guid == "{35327664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("DVCPRO 25 (DV25)");
+    else if (guid == "{30357664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("DVCPRO 50 (DV50)");
+    else if (guid == "{20637664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("DVC/DV Video");
+    else if (guid == "{31687664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("DVCPRO 100 (DVH1)");
+    else if (guid == "{64687664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("HD-DVCR (DVHD)");
+    else if (guid == "{64737664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("SDL-DVCR (DVSD)");
+    else if (guid == "{6C737664-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("SD-DVCR (DVSL)");
+    else if (guid == "{33363248-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("H.263 Video");
+    else if (guid == "{34363248-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("H.264 Video");
+    else if (guid == "{35363248-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("H.265 Video");
+    else if (guid == "{43564548-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("High Efficiency Video Coding (HEVC)");
+    else if (guid == "{3253344D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG-4 part 2 Video (M4S2)");
+    else if (guid == "{47504A4D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Motion JPEG (MJPG)");
+    else if (guid == "{3334504D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Microsoft MPEG 4 version 3 (MP43)");
+    else if (guid == "{5334504D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("ISO MPEG 4 version 1 (MP4S)");
+    else if (guid == "{5634504D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG-4 part 2 Video (MP4V)");
+    else if (guid == "{E06D8026-DB46-11CF-B4D1-00805F6CBBEA}")
+        return QStringLiteral("MPEG-2 Video");
+    else if (guid == "{3147504D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("MPEG-1 Video");
+    else if (guid == "{3153534D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Screen 1 (MSS1)");
+    else if (guid == "{3253534D-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Video 9 Screen (MSS2)");
+    else if (guid == "{31564D57-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Video 7 (WMV1)");
+    else if (guid == "{32564D57-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Video 8 (WMV2)");
+    else if (guid == "{33564D57-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Video 9 (WMV3)");
+    else if (guid == "{31435657-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("Windows Media Video VC1 (WVC1)");
+    else if (guid == "{30385056-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("VP8 Video");
+    else if (guid == "{30395056-0000-0010-8000-00AA00389B71}")
+        return QStringLiteral("VP9 Video");
+
+    else
+        return QStringLiteral("Unknown codec");
+}
+
 typedef HRESULT (WINAPI *q_SHCreateItemFromParsingName)(PCWSTR, IBindCtx *, const GUID&, void **);
 static q_SHCreateItemFromParsingName sHCreateItemFromParsingName = 0;
 #endif
@@ -498,6 +602,10 @@ void DirectShowMetaDataControl::updateMetadata(IFilterGraph2 *graph, IBaseFilter
                             m_metadata.insert(QMediaMetaData::Director, convertValue(var));
                         } else if (IsEqualPropertyKey(key, PKEY_Media_Writer)) {
                             m_metadata.insert(QMediaMetaData::Writer, convertValue(var));
+                        } else if (IsEqualPropertyKey(key, PKEY_Video_Compression)) {
+                            m_metadata.insert(QMediaMetaData::VideoCodec, nameForGUIDString(convertValue(var).toString()));
+                        } else if (IsEqualPropertyKey(key, PKEY_Audio_Format)) {
+                            m_metadata.insert(QMediaMetaData::AudioCodec, nameForGUIDString(convertValue(var).toString()));
                         }
 
                         PropVariantClear(&var);