;+
; Project     : SOHO - LASCO/EIT
;
; Name        : MAKE_DIFF_MPEG
;
; Purpose     : Make Diff MPEG from existing MVI files
;
; Use         : IDL>	MAKE_DIFF_MPEG, '020120', '020205'
;
; Inputs      :
;
; Optional Inputs:
;
; Outputs     :
;
; Keywords    :
;
; Comments    :
;
; Side effects:
;
; Category    : Image Display.  Animation.
;
; Written     : Jake Wendt, NRL, February 2002
;
; Version     :	020401	jake	modified cleanup lines to remove files then dirs
;		030117	jake	made working directories in /tmp
;		030205	jake	switched search dirs for existing mvis
;				to search monthdir first
;		030715	jake	adding PNG keyword to pass on
;   	    	110105, nbr 	Use sccmvihdr2struct.pro
;
;
;	01/05/11 @(#)make_diff_mpeg.pro	1.12 : LASCO IDL LIBRARY
;-

;-----------------------------------------------------------------------



PRO MAKE_DIFF_MPEG, $
	sdate, $
	edate, $
	PNG=png, $
	DEBUG=debug

	mvis = GETENV_SLASH ('MVIS')

	r=randomu(seed)			;	generate random number
	cd, CURRENT=currdir
	IF KEYWORD_SET(DEBUG) THEN PRINT, "Current directory :" + currdir
	inputdir = '/tmp/idlin' + strcompress(string(r), /remove_all)
	outputdir = '/tmp/idlout' + strcompress(string(r), /remove_all)
;	inputdir = currdir + '/idlin' + strcompress(string(r), /remove_all)
;	outputdir = currdir + '/idlout' + strcompress(string(r), /remove_all)
	SPAWN, 'mkdir ' + inputdir, /SH
	SPAWN, 'mkdir ' + outputdir, /SH

	dte = sdate
	utc = YYMMDD2UTC(dte)
	mjd = utc.mjd
	utce =  YYMMDD2UTC(edate)
	end_mjd = utce.mjd

	WHILE (mjd LE end_mjd) DO BEGIN
			IF KEYWORD_SET(DEBUG) THEN PRINT, dte
		dte_str=UTC2STR(utc,/ecs)
		monthdir = STRMID(dte_str,0,4)+'_'+STRMID(dte_str,5,2)+'/'
			IF KEYWORD_SET(DEBUG) THEN PRINT, monthdir

		list=FINDFILE(mvis+'daily/'+ monthdir + dte +'*.mvi')
			IF KEYWORD_SET(DEBUG) THEN PRINT, "LIST:" + list
			IF KEYWORD_SET(DEBUG) THEN PRINT, "N_ELEMENTS:" + STRING(N_ELEMENTS(list))
			IF KEYWORD_SET(DEBUG) THEN PRINT, "LIST[0]:" + list[0]

		IF list[0] EQ '' THEN list=FINDFILE(mvis+'daily/'+ dte +'*.mvi')
			IF KEYWORD_SET(DEBUG) THEN PRINT, "LIST:" + list

		IF list[0] NE '' THEN BEGIN
			FOR i=0, N_ELEMENTS(list) - 1 DO BEGIN

				OPENR, lu, list[i], /get_lun
				READ_MVI, lu ,file_hdr, ihdrs, imgs, swapflag
                        	ahdr = sccMVIHDR2STRUCT(ihdrs[0],file_hdr.ver)
				camera = ahdr.detector

				;       FILENAME        STRING    '31080542.fts'
				;       DETECTOR        STRING    'C3'
				;       TIME_OBS        STRING    '00:18:05.684'
				;       DATE_OBS        STRING    '2002/02/04'
				;       FILTER          STRING    'Clear'
				;       POLAR           STRING    'Clear'
				;       SECTOR          STRING    ''
				;       EXPTIME         FLOAT           0.00000

				CLOSE, lu
				FREE_LUN, lu

				cd, inputdir
				SPAWN, "/bin/rm *.gif *.png", /SH
                                
				MVI2GIF, list[i], /TIMEANDCAM, PNG=png

				SPAWN, '/bin/rm ' + outputdir + '/*.gif', /SH
				SPAWN, '/bin/rm ' + outputdir + '/*.png', /SH
				;	SPAWN, '/bin/rm ' + outputdir + '/idl2mpeg.params', /SH
				GIFS2DIFS, inputdir, outputdir, PNG=png

				mpeg_dir = mvis + 'daily/mpg/' + monthdir
				SPAWN, 'if [ ! -d ' + mpeg_dir + ' ]; then mkdir ' + mpeg_dir + ' ; fi', /SH

				IF camera EQ 'EIT' THEN camera = STRMID ( list[i], STRPOS(list[i], 'eit_'), 7 )

				STRPUT, camera, 'd', 0
				mpegFileName = dte + '_' + STRLOWCASE(camera) + '.mpg
				IF KEYWORD_SET (PNG) THEN $
					GIFS2MPEG, mpegFileName, 'png', outputdir, MPEG_DIR=mpeg_dir, PNG=png $
				ELSE $
					GIFS2MPEG, mpegFileName, 'gif', outputdir, MPEG_DIR=mpeg_dir
			ENDFOR

		ENDIF ELSE PRINT, 'No MVIs found for '+dte

		mjd = mjd + 1
		utc.mjd = mjd
		dte = UTC2YYMMDD(utc)
	ENDWHILE

	CD, currdir
	SPAWN, '/bin/rm -r ' + inputdir + '/*', /SH
	SPAWN, '/bin/rmdir ' + inputdir, /SH
	SPAWN, '/bin/rm -r ' + outputdir + '/*', /SH
	SPAWN, '/bin/rmdir ' + outputdir, /SH

END;	PRO MAKE_DIFF_MPEG

