Index: videoL7.c
===================================================================
--- videoL7.c	(revision 384)
+++ videoL7.c	(working copy)
@@ -381,12 +381,12 @@
   char *base = (char *) (pdata + offset);
   int available_data = data_length - offset;
 
-  switch (*((u_int32_t *) pdata)) 
+  switch (*((u_int32_t *) base)) 
    {
      case FLV: /* parse header of an FLV video */
        if (available_data >= 27)
 	{
-	  parse_flv_metadata(meta, pdata, available_data);
+	  parse_flv_metadata(meta, base, available_data);
 	  if (meta->duration > 0 && meta->bytelength > 0
 			  && meta->videodatarate == 0)
 	    {
@@ -409,7 +409,7 @@
      case AVI: /* parse header of an AVI container */
        if ((available_data >= 16) && memcmp(base + 8, "AVI LIST", 8) == 0)
         {
-	  parse_avi_metadata(meta, pdata, available_data);
+	  parse_avi_metadata(meta, base, available_data);
 	  if (debug > 0)
 	     fprintf(fp_stdout,"AVI - Duration[min]: %.2f Res: %dx%d Bitrate: %.2f\n",
 		  meta->duration / 60, meta->width, meta->height,
@@ -457,7 +457,7 @@
 	   }
           else
            {
-	     parse_mp4_metadata(meta, pdata, available_data);
+	     parse_mp4_metadata(meta, base, available_data);
 	     if (debug > 0)
                {
 		 fprintf(fp_stdout,"MP4 - Duration[min]: %.2f Res: %dx%d Bitrate: %.2f\n",
Index: tcpL7.c
===================================================================
--- tcpL7.c	(revision 384)
+++ tcpL7.c	(working copy)
@@ -1340,7 +1340,7 @@
 	  if (type==L7_FLOW_HTTP)
 	   {
  	     add_histo (L7_HTTP_num_out, YTMAP(ptp->http_data));
- 	     add_histo (L7_WEB_num_out, map_http_to_web(YTMAP(ptp->http_data)));
+ 	     add_histo (L7_WEB_num_out, map_http_to_web(ptp));
              if (ptp->cloud_dst)
 	      {
  	     add_histo (L7_HTTP_num_c_out, YTMAP(ptp->http_data));
@@ -1364,7 +1364,7 @@
 	  if (type==L7_FLOW_HTTP)
 	   {
  	     add_histo (L7_HTTP_num_in, YTMAP(ptp->http_data));
- 	     add_histo (L7_WEB_num_in, map_http_to_web(YTMAP(ptp->http_data)));
+ 	     add_histo (L7_WEB_num_in, map_http_to_web(ptp));
              if (ptp->cloud_src)
 	      {
  	     add_histo (L7_HTTP_num_c_in, YTMAP(ptp->http_data));
@@ -1380,7 +1380,7 @@
 	  if (type==L7_FLOW_HTTP)
 	   {
  	     add_histo (L7_HTTP_num_loc, YTMAP(ptp->http_data));
- 	     add_histo (L7_WEB_num_loc, map_http_to_web(YTMAP(ptp->http_data)));
+ 	     add_histo (L7_WEB_num_loc, map_http_to_web(ptp));
 	   }
 	  break;
 	}
@@ -1554,7 +1554,7 @@
       if (type==L7_FLOW_HTTP)
        {
 	 HTTP_bitrate.out[YTMAP(thisflow->http_data)] += len;
-	 WEB_bitrate.out[map_http_to_web(YTMAP(thisflow->http_data))] += len;
+	 WEB_bitrate.out[map_http_to_web(thisflow)] += len;
        }
       if (cloud_dst)
        {
@@ -1579,7 +1579,7 @@
       if (type==L7_FLOW_HTTP)
        {
 	 HTTP_bitrate.in[YTMAP(thisflow->http_data)] += len;
-	 WEB_bitrate.in[map_http_to_web(YTMAP(thisflow->http_data))] += len;
+	 WEB_bitrate.in[map_http_to_web(thisflow)] += len;
        }
       if (cloud_src)
        {
@@ -1608,7 +1608,7 @@
       if (type==L7_FLOW_HTTP)
        {
 	 HTTP_bitrate.loc[YTMAP(thisflow->http_data)] += len;
-	 WEB_bitrate.loc[map_http_to_web(YTMAP(thisflow->http_data))] += len;
+	 WEB_bitrate.loc[map_http_to_web(thisflow)] += len;
        }
     }
 
Index: tstat.h
===================================================================
--- tstat.h	(revision 384)
+++ tstat.h	(working copy)
@@ -759,7 +759,7 @@
 /* web */
 enum http_content classify_http_get(void *pdata,int data_length);
 enum http_content classify_http_post(void *pdata,int data_length);
-enum web_category map_http_to_web(enum http_content http_type);
+enum web_category map_http_to_web(tcp_pair *);
 
 tstat_report * get_stats_report(tstat_report *report);
 void log_parse_ini_arg(char *param_name, int param_value);
Index: web.c
===================================================================
--- web.c	(revision 384)
+++ web.c	(working copy)
@@ -21,6 +21,10 @@
 #include <regex.h>
 #endif
 
+extern enum video_content VIDEO_MAP(tcp_pair *);
+extern enum http_content YTMAP(enum http_content );
+
+
 #ifdef VIDEO_DETAILS
 char *patterns[10];
 char match_buffer[450];
@@ -2844,53 +2848,79 @@
 
 }
 
-enum web_category map_http_to_web(enum http_content http_type)
+enum web_category map_http_to_web(tcp_pair *ptp)
 {
-  switch(http_type)
+  enum http_content http_type = YTMAP(ptp->http_data);
+  enum video_content video_type = VIDEO_MAP(ptp);
+
+  if (video_type == VIDEO_NOT_DEFINED)
    {
-     case HTTP_GET:
-       return WEB_GET;
+     switch(http_type)
+      {
+   	case HTTP_GET:
+   	  return WEB_GET;
 
-     case HTTP_POST:
-       return WEB_POST;
+   	case HTTP_POST:
+   	  return WEB_POST;
 
-     case HTTP_MSN:
-     case HTTP_RTMPT:
-     case HTTP_FACEBOOK:
-     case HTTP_SOCIAL:
-     case HTTP_TWITTER:
-       return WEB_SOCIAL;
-       
-     case HTTP_YOUTUBE_VIDEO:
-     case HTTP_YOUTUBE_VIDEO204:
-     case HTTP_YOUTUBE_204:
-       return WEB_YOUTUBE;
+   	case HTTP_MSN:
+   	case HTTP_RTMPT:
+   	case HTTP_FACEBOOK:
+   	case HTTP_SOCIAL:
+   	case HTTP_TWITTER:
+   	  return WEB_SOCIAL;
+ 
+   	case HTTP_YOUTUBE_VIDEO:
+   	case HTTP_YOUTUBE_VIDEO204:
+   	case HTTP_YOUTUBE_204:
+   	  return WEB_YOUTUBE;
 
-     case HTTP_VIDEO_CONTENT:
-     case HTTP_VIMEO:
-     case HTTP_VOD:
-     case HTTP_FLASHVIDEO:
-       return WEB_VIDEO;
+   	case HTTP_VIDEO_CONTENT:
+   	case HTTP_VIMEO:
+   	case HTTP_VOD:
+   	case HTTP_FLASHVIDEO:
+   	  return WEB_VIDEO;
 
-     case HTTP_RAPIDSHARE:
-     case HTTP_MEGAUPLOAD:
-     case HTTP_MEDIAFIRE:
-     case HTTP_HOTFILE:
-     case HTTP_STORAGE:
-       return WEB_STORAGE;
+   	case HTTP_RAPIDSHARE:
+   	case HTTP_MEGAUPLOAD:
+   	case HTTP_MEDIAFIRE:
+   	case HTTP_HOTFILE:
+   	case HTTP_STORAGE:
+   	  return WEB_STORAGE;
 
-     case HTTP_WIKI:
-     case HTTP_ADV:
-     case HTTP_FLICKR:
-     case HTTP_GMAPS:
-     case HTTP_YOUTUBE_SITE:
-     case HTTP_YOUTUBE_SITE_DIRECT:
-     case HTTP_YOUTUBE_SITE_EMBED:
-     case HTTP_DROPBOX:
-       return WEB_OTHER;
+   	case HTTP_WIKI:
+   	case HTTP_ADV:
+   	case HTTP_FLICKR:
+   	case HTTP_GMAPS:
+   	case HTTP_YOUTUBE_SITE:
+   	case HTTP_YOUTUBE_SITE_DIRECT:
+   	case HTTP_YOUTUBE_SITE_EMBED:
+   	case HTTP_DROPBOX:
+   	  return WEB_OTHER;
 
-     default:
-       return WEB_OTHER;   
+   	default:
+   	  return WEB_OTHER;
+      }
    }
+  else
+   {
+     switch(http_type)
+      {
+   	case HTTP_MSN:
+   	case HTTP_RTMPT:
+   	case HTTP_FACEBOOK:
+   	case HTTP_SOCIAL:
+   	case HTTP_TWITTER:
+   	  return WEB_SOCIAL;
+
+   	case HTTP_YOUTUBE_VIDEO:
+   	case HTTP_YOUTUBE_VIDEO204:
+   	case HTTP_YOUTUBE_204:
+   	  return WEB_YOUTUBE;
+
+   	default:
+   	  return WEB_VIDEO;
+      }
+   }
   
 }
