Index: test/test.c =================================================================== --- test/test.c (revision 1397) +++ test/test.c (working copy) @@ -13,6 +13,10 @@ #include "hb.h" #include "parsecsv.h" +#ifdef __APPLE_CC__ +#import +#endif + /* Options */ static int debug = HB_DEBUG_NONE; static int update = 0; @@ -1641,6 +1645,45 @@ break; case 'i': input = strdup( optarg ); + #ifdef __APPLE_CC__ + fprintf(stderr, "input was: %s", input); + if( strcmp("/dev/", input) > 0 ) + { + OSStatus err; + FSRef ref; + err = FSPathMakeRef( (const UInt8 *) input, + &ref, NULL ); + if( err != noErr ) + { + return 0; + } + + // Get the volume reference number. + FSCatalogInfo catalogInfo; + err = FSGetCatalogInfo( &ref, kFSCatInfoVolume, &catalogInfo, NULL, NULL, + NULL); + if( err != noErr ) + { + return 0; + } + FSVolumeRefNum volRefNum = catalogInfo.volume; + + // Now let's get the device name + GetVolParmsInfoBuffer volumeParms; + // Let's use FSGetVolumeParms + err = FSGetVolumeParms ( volRefNum, &volumeParms, sizeof( volumeParms ) ); + + if( err != noErr ) + { + return 0; + } + + // A version 4 GetVolParmsInfoBuffer contains the BSD node name in the vMDeviceID field. + // It is actually a char * value. This is mentioned in the header CoreServices/CarbonCore/Files.h. + sprintf(input, "/dev/%s", volumeParms.vMDeviceID); + } + #endif + break; case 'o': output = strdup( optarg ); Index: macosx/HandBrake.xcodeproj/project.pbxproj =================================================================== --- macosx/HandBrake.xcodeproj/project.pbxproj (revision 1397) +++ macosx/HandBrake.xcodeproj/project.pbxproj (working copy) @@ -90,6 +90,7 @@ 593034EC0BBA39A100172349 /* ChapterTitles.m in Sources */ = {isa = PBXBuildFile; fileRef = 593034EA0BBA39A100172349 /* ChapterTitles.m */; }; 59CBD2370BBB44DA004A3BE3 /* parsecsv.c in Sources */ = {isa = PBXBuildFile; fileRef = 59CBD2360BBB44DA004A3BE3 /* parsecsv.c */; }; 59CBD2650BBB4D1B004A3BE3 /* ChapterTitles.m in Sources */ = {isa = PBXBuildFile; fileRef = 593034EA0BBA39A100172349 /* ChapterTitles.m */; }; + 74B6022F0DAD226C00C2C8E5 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74B6022E0DAD226C00C2C8E5 /* CoreServices.framework */; }; A22C85EC0D05D35000C10E36 /* HBPresets.h in Headers */ = {isa = PBXBuildFile; fileRef = A22C85EA0D05D35000C10E36 /* HBPresets.h */; }; A22C85ED0D05D35100C10E36 /* HBPresets.m in Sources */ = {isa = PBXBuildFile; fileRef = A22C85EB0D05D35000C10E36 /* HBPresets.m */; }; A25289E60D87A27D00461D5B /* enctheora.c in Sources */ = {isa = PBXBuildFile; fileRef = A25289E50D87A27D00461D5B /* enctheora.c */; }; @@ -258,6 +259,7 @@ 593034E90BBA39A100172349 /* ChapterTitles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChapterTitles.h; sourceTree = ""; }; 593034EA0BBA39A100172349 /* ChapterTitles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChapterTitles.m; sourceTree = ""; }; 59CBD2360BBB44DA004A3BE3 /* parsecsv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = parsecsv.c; path = ../test/parsecsv.c; sourceTree = SOURCE_ROOT; }; + 74B6022E0DAD226C00C2C8E5 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; A22C85EA0D05D35000C10E36 /* HBPresets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBPresets.h; sourceTree = ""; }; A22C85EB0D05D35000C10E36 /* HBPresets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPresets.m; sourceTree = ""; }; A25289E50D87A27D00461D5B /* enctheora.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = enctheora.c; path = ../libhb/enctheora.c; sourceTree = SOURCE_ROOT; }; @@ -346,6 +348,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 74B6022F0DAD226C00C2C8E5 /* CoreServices.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -476,6 +479,7 @@ 526FBC920B4CAA120064E04C /* HandBrakeCLI Sources */ = { isa = PBXGroup; children = ( + 74B6022E0DAD226C00C2C8E5 /* CoreServices.framework */, 0DF377970B7BF99A00115CB0 /* fakexcode.cpp */, 526FBC760B4CA8F40064E04C /* test.c */, 59CBD2360BBB44DA004A3BE3 /* parsecsv.c */,