[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-datatype-cvs
Subject:    [Datatype-cvs] tools/dtdriver/apps/dtdrive Umakefil, 1.12.6.1,
From:       ehyche () helixcommunity ! org
Date:       2007-06-22 15:51:03
Message-ID: 200706221551.l5MFpWia004360 () dommarcmx ! xen ! 10east ! com
[Download RAW message or body]

Update of /cvsroot/datatype/tools/dtdriver/apps/dtdrive
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv18355/datatype/tools/dtdriver/apps/dtdrive


Modified Files:
      Tag: hxclient_2_0_3_cayenne
	Umakefil main.cpp 
Log Message:
Merge of dtdrive video encoding capability to 203Cay.


Index: main.cpp
===================================================================
RCS file: /cvsroot/datatype/tools/dtdriver/apps/dtdrive/main.cpp,v
retrieving revision 1.20.2.2
retrieving revision 1.20.2.2.16.1
diff -u -d -r1.20.2.2 -r1.20.2.2.16.1
--- main.cpp	23 May 2006 01:30:05 -0000	1.20.2.2
+++ main.cpp	22 Jun 2007 15:51:01 -0000	1.20.2.2.16.1
@@ -59,6 +59,8 @@
 #define KEYFRAMESONLY_OPT       'k'
 #define PASSSWOFFPKTS_OPT	'q'
 #define USETEMPFILES_OPT	'n'
+#define ASPECTRATIO_OPT         'j'
+#define ASPECTRATIOMETHOD_OPT   'y'
 
 #define FILE_OPTION_STRING	    "F"
 #define MEMBREAK_OPTION_STRING	    "B"
@@ -92,6 +94,9 @@
 #define ENCODEAUDIORATEILEAVECOMPFMTS_OPTION_STRING "EAICF"
 #define ENCODEVIDEO_OPTION_STRING	"EV"
 #define ENCODEVIDEORATE_OPTION_STRING	"EVR"
+#define ENCODEVIDEORATEMAX_OPTION_STRING "EVRM"
+#define ENCODEVIDEOWIDTH_OPTION_STRING "EVW"
+#define ENCODEVIDEOHEIGHT_OPTION_STRING "EVH"
 #define DECODEAUDIO_OPTION_STRING	"DA"
 #define DECODEVIDEO_OPTION_STRING	"DV"
 #define DECODENONAV_OPTION_STRING	"DO"
@@ -157,9 +162,14 @@
 static void DisplayUsage(const char *argv0);
 static HX_RESULT GetULONG32Option(REF(int) ArgIndex, int argc, char *argv[],
                                   REF(ULONG32) ulValue);
+static HX_RESULT AddULONG32Option(REF(int) ArgIndex, int argc, char *argv[],
+                                  IHXValues* pOptions, const char* pOptionName,
+                                  UINT32 ulEnforceMinValue = 0,
+                                  UINT32 ulEnforceMaxValue = 0xFFFFFFFF);
 static HX_RESULT AddStringOption(REF(int) ArgIndex, int argc, char *argv[],
                                  IHXValues* pOptions, 
-                                 const char* pOptionName);
+                                 const char* pOptionName,
+				 HXBOOL bAsBuffer = FALSE);
 
 /*
  *  main entry point
@@ -175,8 +185,8 @@
     int NumInputFiles = 0;
     HX_RESULT RetVal = HXR_OK;
     int ArgIndex;
-    BOOL bOptionMode;
-    BOOL bIsOption;
+    HXBOOL bOptionMode;
+    HXBOOL bIsOption;
     char* pDllPath = new char [_MAX_PATH];
     char* pPluginPath = NULL;
     char* pCodecPath = NULL;
@@ -329,35 +339,14 @@
             else if(strcmp(pCmdOption, 
                            ENCODEAUDIORATETOL_OPTION_STRING) == 0)
             {
-                ULONG32 ulTolerance = 0;
-                RetVal = GetULONG32Option(ArgIndex, argc, argv, ulTolerance);
-
-                if ((HXR_OK == RetVal) && 
-                    (ulTolerance >= 0) && (ulTolerance <= 100))
-                {
-                    RetVal = pOptions->SetPropertyULONG32(
-                        ENCODEAUDIORATETOL_OPTION_NAME, ulTolerance);
-                }
-                else
-                {
-                    RetVal = HXR_PARSE_ERROR;
-                }
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions,
+                                          ENCODEAUDIORATETOL_OPTION_NAME, 0, 100);
             }
             else if(strcmp(pCmdOption, 
                            ENCODEAUDIORATEMAX_OPTION_STRING) == 0)
             {
-                ULONG32 ulBitrate = 0;
-                RetVal = GetULONG32Option(ArgIndex, argc, argv, ulBitrate);
-		    
-                if ((HXR_OK == RetVal) && (ulBitrate > 0))
-                {
-                    RetVal = pOptions->SetPropertyULONG32(
-                        ENCODEAUDIORATEMAX_OPTION_NAME, ulBitrate);
-                }
-                else
-                {
-                    RetVal = HXR_PARSE_ERROR;
-                }
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions,
+                                          ENCODEAUDIORATEMAX_OPTION_NAME, 1);
             }
             else if(strcmp(pCmdOption, 
                            ENCODEAUDIORATECOMPFMTS_OPTION_STRING) == 0)
@@ -377,287 +366,105 @@
                 RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
                                     ENCODEAUDIORATEILEAVECOMPFMTS_OPTION_NAME);
             }
-	    else if ((strcmp(&(argv[ArgIndex][1]), RATE_OPTION_STRING) == 0) ||
-		(strcmp(&(argv[ArgIndex][1]), ENCODEAUDIORATE_OPTION_STRING) == 0) ||
-		(strcmp(&(argv[ArgIndex][1]), ENCODEVIDEORATE_OPTION_STRING) == 0))
+	    else if (strcmp(&(argv[ArgIndex][1]), RATE_OPTION_STRING) == 0)
 	    {
-		BOOL bEncodeAudioRate = (strcmp(&(argv[ArgIndex][1]), 
-						ENCODEAUDIORATE_OPTION_STRING) == 0);
-		BOOL bEncodeVideoRate = (strcmp(&(argv[ArgIndex][1]), 
-						ENCODEVIDEORATE_OPTION_STRING) == 0);
-
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 uBandwidth;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &uBandwidth) == 1)
-		    {
-			if (uBandwidth > 0)
-			{
-			    if (bEncodeAudioRate || bEncodeVideoRate)
-			    {
-				RetVal = pOptions->SetPropertyULONG32(
-					    bEncodeAudioRate ? ENCODEAUDIORATE_OPTION_NAME : 
-							       ENCODEVIDEORATE_OPTION_NAME,
-					    uBandwidth);
-
-				if (SUCCEEDED(RetVal))
-				{
-				    RetVal = pOptions->SetPropertyULONG32(ENCODE_OPTION_NAME, 1);
-				}
-			    }
-			    else
-			    {
-				RetVal = pOptions->SetPropertyULONG32(
-					    RATE_OPTION_NAME,
-					    uBandwidth);
-			    }
-			}
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
RATE_OPTION_NAME, 1);  }
-	    else if ((strcmp(&(argv[ArgIndex][1]), DECODEAUDIO_OPTION_STRING) == 0) ||
-		     (strcmp(&(argv[ArgIndex][1]), DECODEVIDEO_OPTION_STRING) == 0) ||
-		     (strcmp(&(argv[ArgIndex][1]), DECODENONAV_OPTION_STRING) == 0))
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEAUDIORATE_OPTION_STRING) == \
0)  {
-		BOOL bDecodeAudio = (strcmp(&(argv[ArgIndex][1]), 
-					    DECODEAUDIO_OPTION_STRING) == 0);
-		BOOL bDecodeVideo = (strcmp(&(argv[ArgIndex][1]), 
-					    DECODEVIDEO_OPTION_STRING) == 0);
-
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulMode;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulMode) == 1)
-		    {
-			if (bDecodeAudio)
-			{
-			    RetVal = pOptions->SetPropertyULONG32(
-					DECODEAUDIO_OPTION_NAME,
-					ulMode);
-			}
-			else if (bDecodeVideo)
-			{
-			     RetVal = pOptions->SetPropertyULONG32(
-					DECODEVIDEO_OPTION_NAME,
-					ulMode);
-			}
-			else
-			{
-			    RetVal = pOptions->SetPropertyULONG32(
-					DECODENONAV_OPTION_NAME,
-					ulMode);
-			}
-			    
-			if (SUCCEEDED(RetVal))
-			{
-			    RetVal = pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1);
-			}
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ENCODEAUDIORATE_OPTION_NAME, 1); +	    }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEORATE_OPTION_STRING) == \
0) +	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ENCODEVIDEORATE_OPTION_NAME, 1); +	    }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEORATEMAX_OPTION_STRING) \
== 0) +	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ENCODEVIDEORATEMAX_OPTION_NAME, 1); +	    }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEOWIDTH_OPTION_STRING) == \
0) +	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ENCODEVIDEOWIDTH_OPTION_NAME, 1); +	    }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEOHEIGHT_OPTION_STRING) \
== 0) +	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ENCODEVIDEOHEIGHT_OPTION_NAME, 1); +	    }
+            else if (strcmp(&(argv[ArgIndex][1]), DECODEAUDIO_OPTION_STRING) == 0)
+	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
DECODEAUDIO_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    // If we set the DECODEAUDIO_OPTION_NAME option, then
+                    // we automatically set the DECODE_OPTION_NAME option.
+                    RetVal = pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1);
+                }
+	    }
+            else if (strcmp(&(argv[ArgIndex][1]), DECODEVIDEO_OPTION_STRING) == 0)
+	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
DECODEVIDEO_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    // If we set the DECODEVIDEO_OPTION_NAME option, then
+                    // we automatically set the DECODE_OPTION_NAME option.
+                    RetVal = pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1);
+                }
+	    }
+            else if (strcmp(&(argv[ArgIndex][1]), DECODENONAV_OPTION_STRING) == 0)
+	    {
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
DECODENONAV_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    // If we set the DECODENONAV_OPTION_NAME option, then
+                    // we automatically set the DECODE_OPTION_NAME option.
+                    RetVal = pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1);
+                }
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), DECODESTREAM_OPTION_STRING) == 0)
 	    {
-		ULONG32 ulVal = 0;
-
-		ArgIndex++;
-		if ((ArgIndex + 1) < argc)
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulVal) == 1)
-		    {
-			RetVal = pOptions->SetPropertyULONG32(DECODESTREAM_OPTION_NAME, ulVal);
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-
-		if (SUCCEEDED(RetVal))
-		{
-		    ArgIndex++;
-		    ulVal = 0;
-		    RetVal = HXR_PARSE_ERROR;
-
-		    if (sscanf(argv[ArgIndex], "%ld", &ulVal) == 1)
-		    {
-			RetVal = pOptions->SetPropertyULONG32(DECODESTREAMMODE_OPTION_NAME, ulVal);
-		    }
-		}
-
-		if (SUCCEEDED(RetVal))
-		{
-		    RetVal = pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1);
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
DECODESTREAM_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
DECODESTREAMMODE_OPTION_NAME); +                    if (SUCCEEDED(RetVal))
+                    {
+                        // If we set the DECODESTREAM_OPTION_NAME and \
DECODESTREAMMODE_OPTION_NAME +                        // options, then we \
automatically set the DECODE_OPTION_NAME option. +                        RetVal = \
pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, 1); +                    }
+                }
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), OUTPUTSAMPLESPERSECOND_OPTION_STRING) == \
0)  {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulSamplesPerSecond;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulSamplesPerSecond) == 1)
-		    {
-			pOptions->SetPropertyULONG32(OUTPUTSAMPLESPERSECOND_OPTION_NAME, \
                ulSamplesPerSecond);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
OUTPUTSAMPLESPERSECOND_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), OUTPUTCHANNELS_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulChannels;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulChannels) == 1)
-		    {
-			pOptions->SetPropertyULONG32(OUTPUTCHANNELS_OPTION_NAME, ulChannels);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
OUTPUTCHANNELS_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), OUTPUTBITSPERSAMPLE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulBitsPerSample;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulBitsPerSample) == 1)
-		    {
-			pOptions->SetPropertyULONG32(OUTPUTBITSPERSAMPLE_OPTION_NAME, ulBitsPerSample);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
OUTPUTBITSPERSAMPLE_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), SERVER_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 uMode;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &uMode) == 1)
-		    {
-			pOptions->SetPropertyULONG32(SERVER_OPTION_NAME, uMode);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
SERVER_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), RATEMODE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulMode = 0;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulMode) == 1)
-		    {
-			pOptions->SetPropertyULONG32(RATEMODE_OPTION_NAME, ulMode);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
RATEMODE_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), RATEMAX_OPTION_STRING) == 0)
 	    {
-		ULONG32 ulRateMax = 0;
-
-		RetVal = GetULONG32Option(ArgIndex, argc, argv, ulRateMax);
-
-		if (RetVal == HXR_OK)
-		{
-		    RetVal = pOptions->SetPropertyULONG32(RATEMAX_OPTION_NAME, ulRateMax);
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
RATEMAX_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), RATEMIN_OPTION_STRING) == 0)
 	    {
-		ULONG32 ulRateMin = 0;
-
-		RetVal = GetULONG32Option(ArgIndex, argc, argv, ulRateMin);
-
-		if (RetVal == HXR_OK)
-		{
-		    RetVal = pOptions->SetPropertyULONG32(RATEMIN_OPTION_NAME, ulRateMin);
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
RATEMIN_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), RATEMODEINTERVAL_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulInterval = 0;
-		    
-		    if (sscanf(argv[ArgIndex], "%ld", &ulInterval) == 1)
-		    {
-			pOptions->SetPropertyULONG32(RATEMODEINTERVAL_OPTION_NAME, ulInterval);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
RATEMODEINTERVAL_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), TIMER_OPTION_STRING) == 0)
 	    {
@@ -683,180 +490,35 @@
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), JUMPSTART_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulStartTime = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%ld", &ulStartTime) == 1) &&
-			(ulStartTime != 0))
-		    {
-			pOptions->SetPropertyULONG32(JUMPSTART_OPTION_NAME, (ULONG32) ulStartTime);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
JUMPSTART_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), PROCESSUNTIL_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulTimeStamp = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%ld", &ulTimeStamp) == 1) &&
-			(ulTimeStamp != 0))
-		    {
-			pOptions->SetPropertyULONG32(PROCESSUNTIL_OPTION_NAME, (ULONG32) ulTimeStamp);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
PROCESSUNTIL_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), VIDEOOFFSET_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulVideoOffset = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%ld", &ulVideoOffset) == 1) &&
-			(ulVideoOffset != 0))
-		    {
-			pOptions->SetPropertyULONG32(VIDEOOFFSET_OPTION_NAME, (ULONG32) ulVideoOffset);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
VIDEOOFFSET_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), VIDEOTIMESCALE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulVideoTimeScale = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%ld", &ulVideoTimeScale) == 1) &&
-			(ulVideoTimeScale != 0))
-		    {
-			pOptions->SetPropertyULONG32(VIDEOTIMESCALE_OPTION_NAME, (ULONG32) \
                ulVideoTimeScale);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
VIDEOTIMESCALE_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), MAXFRAMERATE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulMaxFrameRate = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%lu", &ulMaxFrameRate) == 1) &&
-			(ulMaxFrameRate != 0))
-		    {
-			pOptions->SetPropertyULONG32(MAXFRAMERATE_OPTION_NAME, (ULONG32) ulMaxFrameRate);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
MAXFRAMERATE_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), MINFRAMERATE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulMinFrameRate = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%lu", &ulMinFrameRate) == 1) &&
-			(ulMinFrameRate != 0))
-		    {
-			pOptions->SetPropertyULONG32(MINFRAMERATE_OPTION_NAME, (ULONG32) ulMinFrameRate);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
MINFRAMERATE_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), LOOKAHEAD_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    ULONG32 ulLookAhead = 0;
-		    
-		    if ((sscanf(argv[ArgIndex], "%lu", &ulLookAhead) == 1) &&
-			(ulLookAhead != 0))
-		    {
-			pOptions->SetPropertyULONG32(LOOKAHEAD_OPTION_NAME, (ULONG32) ulLookAhead);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
LOOKAHEAD_OPTION_NAME, 1);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), ROTATIONSIZE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    LONG32 lRotationSize = -1;
-		    
-		    if ((sscanf(argv[ArgIndex], "%ld", &lRotationSize) == 1) &&
-			(lRotationSize >= 0))
-		    {
-			pOptions->SetPropertyULONG32(ROTATIONSIZE_OPTION_NAME, 
-						     (ULONG32) lRotationSize);
-		    }
-		    else
-		    {
-			RetVal = HXR_PARSE_ERROR;
-		    }
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
+                RetVal = AddULONG32Option(ArgIndex, argc, argv, pOptions, \
ROTATIONSIZE_OPTION_NAME);  }
 	    else if (strcmp(&(argv[ArgIndex][1]), LOADDIR_OPTION_STRING) == 0)
 	    {
@@ -934,55 +596,26 @@
 		    RetVal = HXR_PARSE_ERROR;
 		}
 	    }
-	    else if ((strcmp(&(argv[ArgIndex][1]), ENCODEAUDIO_OPTION_STRING) == 0) ||
-		     (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEO_OPTION_STRING) == 0))
-	    {
-		const char* pEncodeFormat = NULL;
-		IHXBuffer* pEncodeFormatBuffer = NULL;
-		BOOL bEncodeVideo = (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEO_OPTION_STRING) == \
                0);
-
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    pEncodeFormat = argv[ArgIndex];
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-
-		if (SUCCEEDED(RetVal))
-		{         
-		    CHXBuffer* pCHXBuffer = new CHXBuffer();
-		    RetVal = HXR_OUTOFMEMORY;
-		    if (pCHXBuffer)
-		    {
-			pEncodeFormatBuffer = (IHXBuffer*) pCHXBuffer;
-			pCHXBuffer->AddRef();
-			RetVal = HXR_OK;
-		    }
-		}
-		
-		if (SUCCEEDED(RetVal))
-		{
-		    RetVal = pEncodeFormatBuffer->Set((UINT8*) pEncodeFormat, 
-						      strlen(pEncodeFormat) + 1);
-		}
-
-		if (SUCCEEDED(RetVal))
-		{
-		    RetVal = pOptions->SetPropertyCString(
-			bEncodeVideo ? ENCODEVIDEO_OPTION_NAME : ENCODEAUDIO_OPTION_NAME, 
-			pEncodeFormatBuffer);
-
-		    if (SUCCEEDED(RetVal))
-		    {
-			RetVal = pOptions->SetPropertyULONG32(ENCODE_OPTION_NAME, 1);
-		    }
-		}
-
-		HX_RELEASE(pEncodeFormatBuffer);
-	    }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEAUDIO_OPTION_STRING) == 0)
+            {
+                RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, \
ENCODEAUDIO_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    // If we have the ENCODEAUDIO_OPTION_NAME option, then
+                    // automatically add the ENCODE_OPTION_NAME option.
+                    RetVal = pOptions->SetPropertyULONG32(ENCODE_OPTION_NAME, 1);
+                }
+            }
+            else if (strcmp(&(argv[ArgIndex][1]), ENCODEVIDEO_OPTION_STRING) == 0)
+            {
+                RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, \
ENCODEVIDEO_OPTION_NAME); +                if (SUCCEEDED(RetVal))
+                {
+                    // If we have the ENCODEVIDEO_OPTION_NAME option, then
+                    // automatically add the ENCODE_OPTION_NAME option.
+                    RetVal = pOptions->SetPropertyULONG32(ENCODE_OPTION_NAME, 1);
+                }
+            }
 	    else if (strcmp(&(argv[ArgIndex][1]), WRITE_OPTION_STRING) == 0)
 	    {
 		ArgIndex++;
@@ -1009,84 +642,31 @@
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), TITLE_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    RetVal = SetCStringProperty(pOptions,
-						TITLE_OPTION_NAME,
-						argv[ArgIndex],
-						NULL,
-						TRUE);	// set as buffer
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-		
+		RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
+                                         TITLE_OPTION_NAME,
+					 TRUE);// set as buffer		
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), AUTHOR_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    RetVal = SetCStringProperty(pOptions,
-						AUTHOR_OPTION_NAME,
-						argv[ArgIndex],
-						NULL,
-						TRUE);	// set as buffer
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-		
+		RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
+                                         AUTHOR_OPTION_NAME,
+					 TRUE);// set as buffer			
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), COPYRIGHT_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    RetVal = SetCStringProperty(pOptions,
-						COPYRIGHT_OPTION_NAME,
-						argv[ArgIndex],
-						NULL,
-						TRUE);	// set as buffer
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-		
+		RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
+                                         COPYRIGHT_OPTION_NAME,
+					 TRUE);// set as buffer			
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), ABSTRACT_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    RetVal = SetCStringProperty(pOptions,
-						ABSTRACT_OPTION_NAME,
-						argv[ArgIndex]);
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-		
+		RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
+                                         ABSTRACT_OPTION_NAME);
 	    }
 	    else if (strcmp(&(argv[ArgIndex][1]), KEYWORDS_OPTION_STRING) == 0)
 	    {
-		ArgIndex++;
-		if (ArgIndex < argc)
-		{
-		    RetVal = SetCStringProperty(pOptions,
-						KEYWORDS_OPTION_NAME,
-						argv[ArgIndex]);
-		}
-		else
-		{
-		    RetVal = HXR_PARSE_ERROR;
-		}
-		
+		RetVal = AddStringOption(ArgIndex, argc, argv, pOptions, 
+                                         KEYWORDS_OPTION_NAME);
 	    }
 #ifdef _MEMPROBE_ENABLED
 	    else if(strcmp(&(argv[ArgIndex][1]), MEMBREAK_OPTION_STRING) == 0)
@@ -1186,6 +766,12 @@
 		    case DECODE_OPT:
 			pOptions->SetPropertyULONG32(DECODE_OPTION_NAME, bOptionMode ? 1 : 0);
 			break;	
+		    case ASPECTRATIO_OPT:
+			pOptions->SetPropertyULONG32(ENCODEVIDEOASPECTRATIO_OPTION_NAME, bOptionMode ? 1 \
: 0); +			break;
+		    case ASPECTRATIOMETHOD_OPT:
+			pOptions->SetPropertyULONG32(ENCODEVIDEOASPECTRATIOMETHOD_OPTION_NAME, \
bOptionMode ? 1 : 0); +			break;
 		    case DECRYPT_OPT:
 			{
 			    ULONG32 ulDecryptIdx = bOptionMode ? 1 : 0;
@@ -1411,18 +997,16 @@
     printf("                       0 = No Decode - passthrough/block based on option \
%c\n", BLOCK_OPT);  printf("                       1 = Normal Decode\n");
     printf("                       2 = Passthrough Decode\n");
-    printf("      -%s <Samples>= format decoded audio to specified sample rate \
                (Hz)\n", OUTPUTSAMPLESPERSECOND_OPTION_STRING);
-    printf("      -%s <Count>  = format decoded audio to specified number of \
                channels\n", OUTPUTCHANNELS_OPTION_STRING);
-    printf("      -%s <Bits>   = format decoded audio to specified sample size \
(Bits)\n", OUTPUTBITSPERSAMPLE_OPTION_STRING); +    printf("      -%s <Samples> = \
format decoded audio to specified sample rate (Hz)\n", \
OUTPUTSAMPLESPERSECOND_OPTION_STRING); +    printf("      -%s <Count>   = format \
decoded audio to specified number of channels\n", OUTPUTCHANNELS_OPTION_STRING); +    \
printf("      -%s <Bits>    = format decoded audio to specified sample size \
(Bits)\n", OUTPUTBITSPERSAMPLE_OPTION_STRING);  printf("\n=> Decryption:\n");
     printf("     Options: (+ = add, - = remove)\n");
     printf("      %c = decrypt content into unprotected (clear) form\n", \
                DECRYPT_OPT);
-    printf("\n=> Encoding:\n");
+    printf("\n=> Audio Encoding:\n");
     printf("     Commands:\n");
     printf("      -%s <Format>  = encode audio to specified format\n", \
                ENCODEAUDIO_OPTION_STRING);
-    printf("      -%s <Format>  = encode video to specified format\n", \
                ENCODEVIDEO_OPTION_STRING);
     printf("      -%s <Rate>   = when encoding audio, use specified bitrate \
                (bps)\n", ENCODEAUDIORATE_OPTION_STRING);
-    printf("      -%s <Rate>   = when encoding video, use specified bitrate \
                (bps)\n", ENCODEVIDEORATE_OPTION_STRING);
     printf("      -%s <%%>     = when encoding audio, allow the encoded bitrate \
                to\n", ENCODEAUDIORATETOL_OPTION_STRING); 
     printf("                      be within a percentage of the requested \
                value.\n");
     printf("                       0   = The encode MUST be at the specified \
bitrate\n"); @@ -1440,6 +1024,22 @@
     printf("                      (The list is a ';' seperated string of 4cc \
                codes)\n");
     printf("      -%s           = enable optimized transcode. If a transcode is \
                not\n", OPTIMIZEDTRANSCODE_OPTION_STRING);
     printf("                      necessary then only a transformat will be \
done.\n"); +    printf("\n=> Video Encoding:\n");
+    printf("     Commands:\n");
+    printf("      -%s <Format>  = encode video to specified format (rvg2svt, rv8, \
rv9, or rv10)\n", ENCODEVIDEO_OPTION_STRING); +    printf("      -%s <Rate>   = when \
encoding video, use specified average bitrate (bps)\n", \
ENCODEVIDEORATE_OPTION_STRING); +    printf("      -%s <Rate>  = when encoding video, \
use specified maximum bitrate (bps)\n", ENCODEVIDEORATEMAX_OPTION_STRING); +    \
printf("      -%s <Rate>   = when encoding video, use specified width (pixels)\n", \
ENCODEVIDEOWIDTH_OPTION_STRING); +    printf("      -%s <Rate>   = when encoding \
video, use specified height (pixels)\n", ENCODEVIDEOHEIGHT_OPTION_STRING); +    \
printf("     Options: (+ = add, - = remove)\n"); +    printf("      %c = preserve \
aspect ratio of source video\n", ASPECTRATIO_OPT); +    printf("      %c = aspect \
ratio preservation method:\n", ASPECTRATIOMETHOD_OPT); +    printf("           -%c \
(default): reduce specified encoded width or encoded height to preserve ratio\n", \
ASPECTRATIOMETHOD_OPT); +    printf("                         (for example, if input \
is 320x176 with -%s 160 -%s 120 +%c -%c, output is 160x88)\n", +           \
ENCODEVIDEOWIDTH_OPTION_STRING, ENCODEVIDEOHEIGHT_OPTION_STRING, ASPECTRATIO_OPT, \
ASPECTRATIOMETHOD_OPT); +    printf("           +%c          : increase specified \
encoded width or encoded height to preserve ratio\n", ASPECTRATIOMETHOD_OPT); +    \
printf("                         (for example, if input is 320x176 with -%s 160 -%s \
120 +%c +%c, output is 220x120)\n", +           ENCODEVIDEOWIDTH_OPTION_STRING, \
ENCODEVIDEOHEIGHT_OPTION_STRING, ASPECTRATIO_OPT, ASPECTRATIOMETHOD_OPT);  \
printf("\n=> Environment:\n");  printf("     Commands:\n");
     printf("      -%s <Mode>     = run in server emulating mode\n", \
SERVER_OPTION_STRING); @@ -1476,8 +1076,33 @@
     return retVal;
 }
 
+HX_RESULT AddULONG32Option(REF(int) ArgIndex, int argc, char *argv[],
+                           IHXValues* pOptions, const char* pOptionName,
+                           UINT32 ulEnforceMinValue, UINT32 ulEnforceMaxValue)
+{
+    HX_RESULT retVal = HXR_PARSE_ERROR;
+
+    if (argv && pOptions && pOptionName)
+    {
+        ULONG32 ulValue = 0;
+        retVal          = GetULONG32Option(ArgIndex, argc, argv, ulValue);
+        if (SUCCEEDED(retVal))
+        {
+            // Set the return value
+            retVal = HXR_PARSE_ERROR;
+            // Make sure we are within the legal range
+            if (ulValue >= ulEnforceMinValue && ulValue <= ulEnforceMaxValue)
+            {
+                retVal = pOptions->SetPropertyULONG32(pOptionName, ulValue);
+            }
+        }
+    }
+
+    return retVal;
+}
+
 HX_RESULT AddStringOption(REF(int) ArgIndex, int argc, char *argv[],
-                          IHXValues* pOptions, const char* pOptionName)
+                          IHXValues* pOptions, const char* pOptionName, HXBOOL \
bAsBuffer)  {
     HX_RESULT retVal = HXR_PARSE_ERROR;
 
@@ -1494,7 +1119,14 @@
 
             if (SUCCEEDED(retVal))
             {
-                retVal = pOptions->SetPropertyCString(pOptionName, pBuffer);
+		if (bAsBuffer)
+		{
+		    retVal = pOptions->SetPropertyBuffer(pOptionName, pBuffer);
+		}
+		else
+		{
+		    retVal = pOptions->SetPropertyCString(pOptionName, pBuffer);
+		}
             }
 
             HX_RELEASE(pBuffer);

Index: Umakefil
===================================================================
RCS file: /cvsroot/datatype/tools/dtdriver/apps/dtdrive/Umakefil,v
retrieving revision 1.12.6.1
retrieving revision 1.12.6.1.28.1
diff -u -d -r1.12.6.1 -r1.12.6.1.28.1
--- Umakefil	16 Apr 2005 00:07:20 -0000	1.12.6.1
+++ Umakefil	22 Jun 2007 15:51:01 -0000	1.12.6.1.28.1
@@ -19,7 +19,8 @@
 			    "common/util[utillib]", 
 			    "common/container[contlib]",
 			    "common/system[syslib]",
-			    "common/fileio[fileiolib]")
+			    "common/fileio[fileiolib]",
+			    "common/log/logutil[logutillib]")
 
 if project.IsDefined("HELIX_FEATURE_MINICONTEXT_PLAYBACK_NET"):
 	project.AddModuleLibraries( "client/netwksvc[netsvclib]",


_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic