Index: mpegts.c
===================================================================
--- mpegts.c	(revision 26400)
+++ mpegts.c	(working copy)
@@ -811,19 +894,43 @@
                 }
                 memcpy(pes->buffer+pes->data_index, p, buf_size);
                 pes->data_index += buf_size;
-            }
-            buf_size = 0;
+            
+				/* keep the header data for a vc1 stream */
+				if(	(pes->st) &&
+					(pes->st->codec) &&
+					(pes->st->codec->codec_id == CODEC_ID_VC1) 
+					)
+				{
+					uint8_t *pscan = pes->buffer;
+					if (!pscan[0] && !pscan[1] && pscan[2] == 1) 
+					{
+						if(	!(pes->st->codec->extradata) ||
+							(pes->st->codec->extradata_size < 128)
+						)
+						{
+							av_free(pes->st->codec->extradata);
+							pes->st->codec->extradata = av_malloc(128);
+							pes->st->codec->extradata_size = 128;
+						}
+						memcpy(pes->st->codec->extradata, pscan, FFMIN(buf_size, 128));
+					} 
+				}
+			}
+
