diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index 6b2ced265be10bed40997214dba9096cfdb9d7fe..f968ee29d153600ea04d48f350199493b123d2da 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -40,6 +40,7 @@
 #define SCDl_TAG MKTAG('S', 'C', 'D', 'l')
 #define SCEl_TAG MKTAG('S', 'C', 'E', 'l')
 #define kVGT_TAG MKTAG('k', 'V', 'G', 'T')    /* TGV i-frame */
+#define fVGT_TAG MKTAG('f', 'V', 'G', 'T')    /* TGV p-frame */
 #define MADk_TAG MKTAG('M', 'A', 'D', 'k')    /* MAD i-frame */
 #define MPCh_TAG MKTAG('M', 'P', 'C', 'h')    /* MPEG2 */
 #define MVhd_TAG MKTAG('M', 'V', 'h', 'd')
@@ -307,6 +308,11 @@ static int process_ea_header(AVFormatContext *s) {
                 ea->time_base = (AVRational){0,0};
                 break;
 
+            case kVGT_TAG:
+                ea->video_codec = CODEC_ID_TGV;
+                ea->time_base = (AVRational){0,0};
+                break;
+
             case MVhd_TAG :
                 err = process_video_header_vp6(s);
                 break;
@@ -450,8 +456,10 @@ static int ea_read_packet(AVFormatContext *s,
             break;
 
         case MVIh_TAG:
+        case kVGT_TAG:
             key = PKT_FLAG_KEY;
         case MVIf_TAG:
+        case fVGT_TAG:
             url_fseek(pb, -8, SEEK_CUR);     // include chunk preamble
             chunk_size += 8;
             goto get_video_packet;