if(fourCC::check(fcc,(uint8_t *)"MJPG"))
if(fourCC::check(fcc,(uint8_t *)"MJPG") || fourCC::check(fcc,(uint8_t *)"mjpa"))
 decoders *getDecoder(uint32_t fcc,uint32_t w, uint32_t h,uint32_t extraLen,uint8_t *extraData) {							if(isMSMpeg4Compatible(fcc)==1)			{				// For div3, no problem we take ffmpeg							return(decoders *)( new decoderFFDiv3(w,h));			}			#ifdef USE_FFMPEG	      if(fourCC::check(fcc,(uint8_t *)"dvsd")      || fourCC::check(fcc,(uint8_t *)"DVDS")      || fourCC::check(fcc,(uint8_t *)"CDVC")       )          {							  				     	return(decoders *)( new decoderFFDV(w,h,extraLen,extraData));			 }#endif	#ifdef USE_FFMPEG	      if(fourCC::check(fcc,(uint8_t *)"MP42"))          {							  				     	return(decoders *)( new decoderFFMP42(w,h));			    }#endif	#ifdef USE_FFMPEG	      if(fourCC::check(fcc,(uint8_t *)"H263"))          {							  				     	return(decoders *)( new decoderFFH263(w,h));			    }    if(fourCC::check(fcc,(uint8_t *)"HFYU"))          {			  				     	return(decoders *)( new decoderFFhuff(w,h,extraLen,extraData));	   }    if(fourCC::check(fcc,(uint8_t *)"SVQ3"))          {			  				     	return(decoders *)( new decoderFFSVQ3(w,h,extraLen,extraData));	   }    if(fourCC::check(fcc,(uint8_t *)"WMV2"))          {			  				     	return(decoders *)( new decoderFFWMV2(w,h,extraLen,extraData));	   } 	if(fourCC::check(fcc,(uint8_t *)"FFV1"))          {			  				     	return(decoders *)( new decoderFFV1(w,h));	   }#endif/*	Could be either divx5 packed crap or xvid or ffmpeg	For now we return FFmpeg and later will switch to divx5 if available		(ugly hack for ugly hack....)*/ 	if(isMpeg4Compatible(fcc)==1)    	{					          	return(decoders *)( new decoderFFMpeg4(w,h));						  //	return(decoders *)( new decoderXvid(w,h));						  //	return(decoders *)( new decoderDIVX(w,h));	}          if(fourCC::check(fcc,(uint8_t *)"MJPG"))          {#if  0 //#ifdef USE_MJPEG                      			printf("\n using mjpeg codec\n");			  				     	return(decoders *)( new decoderMjpeg(w,h));#else                      			printf("\n using FF mjpeg codec\n");			  				     	return(decoders *)( new decoderFFMJPEG(w,h));#endif           }          if(fourCC::check(fcc,(uint8_t *)"YV12"))          {            			printf("\n using null codec\n");			       	return(decoders *)( new decoderNull(w,h));           }	if(fourCC::check(fcc,(uint8_t *)"UYVY"))          {            			printf("\n using uyvy codec\n");			       	return(decoders *)( new decoderUYVY(w,h));           }	if((fcc==0)   ||   fourCC::check(fcc,(uint8_t *)"RGB "))  			{            // RGB 16 Codecs            			printf("\n using RGB codec\n");			       	return(decoders *)( new decoderRGB16(w,h));       	}#ifdef USE_THEORA         if(fourCC::check(fcc,(uint8_t *)"VP31"))         {							printf("\n using Theora codec\n");			       	return(decoders *)( new decoderTheora(w,h));			    }#else   if(fourCC::check(fcc,(uint8_t *)"VP31"))         {							printf("\n using VP3 codec\n");			       	return(decoders *)( new decoderVP3(w,h));			    }#endif                   if(fourCC::check(fcc,(uint8_t *)"MPEG")		|| fourCC::check(fcc,(uint8_t *)"mpg1")	 )         {				printf("\n using Mpeg1/2 codec (libmpeg2)\n");			    	return(decoders *)( new decoderMpeg(w,h,extraLen,extraData));			     // 	return(decoders *)( new decoderFFMpeg12(w,h,extraLen,extraData));			    }        // default : null decoder  			printf("\n using invalid codec for \n");     		fourCC::print(fcc);       	return(decoders *)( new decoders(w,h));    	   }