{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":334452133,"defaultBranch":"main","name":"macos-research","ownerLogin":"xsscx","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-01-30T15:59:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10790582?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1709606274.0","currentOid":""},"activityList":{"items":[{"before":"2d027320bf0fc2fdb1e984e34fc1030904aea7aa","after":"66dd8027ab81b464f752eb5954f000f1132e8e95","ref":"refs/heads/main","pushedAt":"2024-06-08T13:25:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update View Controller.h\n\nUpdate View Controller.h","shortMessageHtmlLink":"Update View Controller.h"}},{"before":"f436d553058d5bf72c9dec2dc98872a5d49f0f6b","after":"2d027320bf0fc2fdb1e984e34fc1030904aea7aa","ref":"refs/heads/main","pushedAt":"2024-06-08T13:23:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update View Controller.h\n\nUpdate View Controller.h","shortMessageHtmlLink":"Update View Controller.h"}},{"before":"bdef972195068505f0588cd0024695faf9c90de3","after":"f436d553058d5bf72c9dec2dc98872a5d49f0f6b","ref":"refs/heads/main","pushedAt":"2024-06-02T13:51:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Project Documentation URL https://xss.cx/public/docs/xnuimagefuzzer/\n\nProject Documentation URL https://xss.cx/public/docs/xnuimagefuzzer/","shortMessageHtmlLink":"Project Documentation URL https://xss.cx/public/docs/xnuimagefuzzer/"}},{"before":"74388257fe9f1cbbc64499194e38256daf9924e6","after":"bdef972195068505f0588cd0024695faf9c90de3","ref":"refs/heads/main","pushedAt":"2024-06-01T15:57:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Files - Doxygen Help\n\nUpdate Files - Doxygen Help","shortMessageHtmlLink":"Update Files - Doxygen Help"}},{"before":"7b5ddfcbf1fe899432492f00daff014ae40a9ce1","after":"74388257fe9f1cbbc64499194e38256daf9924e6","ref":"refs/heads/main","pushedAt":"2024-06-01T14:06:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Update Xcode Help, Doxygen Friendly\n\nUpdate xnuimagefuzzer.m Update Xcode Help, Doxygen Friendly","shortMessageHtmlLink":"Update xnuimagefuzzer.m Update Xcode Help, Doxygen Friendly"}},{"before":"e5f02d3d7aff7b3feb6a9b6aa0330976952cd569","after":"7b5ddfcbf1fe899432492f00daff014ae40a9ce1","ref":"refs/heads/main","pushedAt":"2024-06-01T02:12:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Fix Alpha Channel Saving Route\n\nUpdate xnuimagefuzzer.m Fix Alpha Channel Saving Route","shortMessageHtmlLink":"Update xnuimagefuzzer.m Fix Alpha Channel Saving Route"}},{"before":"bb914755d6d17f5d8dc8f22d3458b8197a3a87ab","after":"e5f02d3d7aff7b3feb6a9b6aa0330976952cd569","ref":"refs/heads/main","pushedAt":"2024-06-01T00:06:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Modify Xcode Help to be Doxygen friendly\n\nUpdate xnuimagefuzzer.m Modify Xcode Help to be Doxygen friendly\r\n\r\nThe Help and Documentation elements will be updated shortly.\r\n\r\nThis Update provide proper Help Formatting (so far) that Compiles.\r\n\r\n headerdoc2html -o Documentation -d xnuimagefuzzer.m","shortMessageHtmlLink":"Update xnuimagefuzzer.m Modify Xcode Help to be Doxygen friendly"}},{"before":"f84f1ffe3886e4f5b505372db11022b395cf71b8","after":"bb914755d6d17f5d8dc8f22d3458b8197a3a87ab","ref":"refs/heads/main","pushedAt":"2024-05-30T13:34:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Delete code/iOSOnMac/CMakeLists.txt","shortMessageHtmlLink":"Delete code/iOSOnMac/CMakeLists.txt"}},{"before":"1fe291ace7974ee2f9617169cb5fadfb74ecbe54","after":"f84f1ffe3886e4f5b505372db11022b395cf71b8","ref":"refs/heads/main","pushedAt":"2024-05-30T04:15:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Create CMakeLists.txt\n\n# This File written by @h02332 David Hoyt for XNU Image Fuzzer\r\n#\r\n# The Config assumes you will name the Project xnuimagefuzzer and binary xnuimagefuzzer, adjust as necessary\r\n#\r\n# Compile Instructions\r\n# mkdir build\r\n# cd build\r\n# cmake .. -G Xcode\r\n# cmake --build . --config Debug\r\n#\r\n#\r\n#\r\ncmake_minimum_required(VERSION 3.15) # Ensure this is the first line to set the minimum required version of CMake\r\nproject(xnuimagefuzzer LANGUAGES C OBJC) # Project name changed to xnuimagefuzzer\r\n\r\n# These lines ensure the project targets iOS correctly\r\nset(CMAKE_SYSTEM_NAME iOS)\r\nexecute_process(COMMAND xcrun --sdk iphoneos --show-sdk-path OUTPUT_VARIABLE IOS_SDK_ROOT OUTPUT_STRIP_TRAILING_WHITESPACE)\r\nset(CMAKE_OSX_SYSROOT \"${IOS_SDK_ROOT}\")\r\nset(CMAKE_OSX_ARCHITECTURES arm64)\r\nset(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET \"14.2\")\r\n\r\nif(CMAKE_BUILD_TYPE MATCHES Debug)\r\n # Enable debug symbols\r\n set(CMAKE_C_FLAGS_DEBUG \"${CMAKE_C_FLAGS_DEBUG} -g\")\r\n set(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -g\")\r\n # Enable Address Sanitizer (ASAN)\r\n set(CMAKE_C_FLAGS_DEBUG \"${CMAKE_C_FLAGS_DEBUG} -fsanitize=address\")\r\n set(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address\")\r\n # Enable code coverage with Clang/LLVM\r\n set(CMAKE_C_FLAGS_DEBUG \"${CMAKE_C_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping\")\r\n set(CMAKE_CXX_FLAGS_DEBUG \"${CMAKE_CXX_FLAGS_DEBUG} -fprofile-instr-generate -fcoverage-mapping\")\r\n # Link with ASAN\r\n set(CMAKE_EXE_LINKER_FLAGS_DEBUG \"${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fsanitize=address\")\r\nendif()\r\n\r\n# Define the executable with its new name and necessary source files\r\nadd_executable(xnuimagefuzzer main.m) # Executable name changed to xnuimagefuzzer\r\n\r\n# Set the path to the Info.plist file\r\n# set_target_properties(xnuimagefuzzer PROPERTIES\r\n# MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/Info.plist\r\n# )\r\n\r\n# Since your project targets iOS, ensure it links against the correct frameworks\r\nif(APPLE)\r\n target_link_libraries(xnuimagefuzzer\r\n \"-framework UIKit\"\r\n \"-framework ImageIO\"\r\n \"-framework CoreGraphics\"\r\n \"-framework Foundation\" # Ensure Foundation framework is linked\r\n )\r\nendif()","shortMessageHtmlLink":"Create CMakeLists.txt"}},{"before":"e7b30124bfb02101a79c3e15337972ed447f3a43","after":"1fe291ace7974ee2f9617169cb5fadfb74ecbe54","ref":"refs/heads/main","pushedAt":"2024-05-26T22:01:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"https://github.com/xsscx/xnuimagetools\n\nhttps://github.com/xsscx/xnuimagetools","shortMessageHtmlLink":"https://github.com/xsscx/xnuimagetools"}},{"before":"0f5fe282bf6c6daf7a8753023d2e9df72dce956b","after":"e7b30124bfb02101a79c3e15337972ed447f3a43","ref":"refs/heads/main","pushedAt":"2024-05-26T21:59:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Add GIF Support for Saving Fuzzed File Types\n\nAdd GIF Support for Saving Fuzzed File Types","shortMessageHtmlLink":"Add GIF Support for Saving Fuzzed File Types"}},{"before":"e594b700f4495153b94c560a76de7997ee4a1ce9","after":"0f5fe282bf6c6daf7a8753023d2e9df72dce956b","ref":"refs/heads/main","pushedAt":"2024-05-24T16:00:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Readme.md","shortMessageHtmlLink":"Update Readme.md"}},{"before":"3906c7c80028d70ef1d239c41ea05fe3c153795e","after":"e594b700f4495153b94c560a76de7997ee4a1ce9","ref":"refs/heads/main","pushedAt":"2024-05-24T14:28:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Readme.md Update Build Instructions\n\nUpdate Readme.md Update Build Instructions","shortMessageHtmlLink":"Update Readme.md Update Build Instructions"}},{"before":"313438b776bf95b70661a7fcc42cfdeda93a5c27","after":"3906c7c80028d70ef1d239c41ea05fe3c153795e","ref":"refs/heads/main","pushedAt":"2024-05-24T14:23:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Makefile.xnuimagefuzzer Add ld args\n\n# Variables\r\nSDK = /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk\r\nMIN_IOS_VERSION = 17.0\r\nARCH = arm64e\r\nCODESIGN_IDENTITY = \"YOUR_DEVELOPER_ID\"\r\nENTITLEMENTS = entitlements.xml\r\nAPP_BUNDLE = xnuimagefuzzer.app\r\nEXECUTABLE = xnuimagefuzzer\r\nDYLIB = interpose.dylib\r\nSEED_FILE = Flowers.exr\r\nINFO_PLIST = Info.plist\r\n\r\n# The default target\r\nall: build copy_resources codesign run\r\n\r\nbuild:\r\n\t\t\t\tmkdir -p $(APP_BUNDLE)\r\n\t\t\t\txcrun -sdk iphoneos clang -arch $(ARCH) -isysroot $(SDK) -framework UIKit -framework Foundation -framework CoreGraphics -framework ImageIO -framework UniformTypeIdentifiers -miphoneos-version-min=$(MIN_IOS_VERSION) -g -o $(EXECUTABLE) onmac/main.m\r\n\t\t\t\tmv $(EXECUTABLE) $(APP_BUNDLE)/\r\n\t\t\t\tcp $(DYLIB) $(APP_BUNDLE)/\r\n\r\ncopy_resources:\r\n\t\t\t\tcp ./$(SEED_FILE) ./$(INFO_PLIST) $(APP_BUNDLE)/\r\n\r\ncodesign:\r\n\t\t\t\tcodesign -s $(CODESIGN_IDENTITY) --entitlements $(ENTITLEMENTS) --force $(APP_BUNDLE)\r\n\r\nrun:\r\n\t\t\t\tcd $(APP_BUNDLE) && .././runner ./$(EXECUTABLE) ./$(SEED_FILE) -1\r\n\r\n# Clean the build artifacts\r\nclean:\r\n\t\t\t\trm -rf $(APP_BUNDLE)\r\n\r\n.PHONY: all build copy_resources codesign run clean","shortMessageHtmlLink":"Update Makefile.xnuimagefuzzer Add ld args"}},{"before":"c3eaa287359dadb4f77d489773d3bdc941707d17","after":"313438b776bf95b70661a7fcc42cfdeda93a5c27","ref":"refs/heads/main","pushedAt":"2024-05-21T15:06:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Save to PNG + JPG\n\nUpdate xnuimagefuzzer.m Save to PNG + JPG","shortMessageHtmlLink":"Update xnuimagefuzzer.m Save to PNG + JPG"}},{"before":"766fd7ad457fb78c5b842d29363a41f9cc1af93e","after":"c3eaa287359dadb4f77d489773d3bdc941707d17","ref":"refs/heads/main","pushedAt":"2024-05-21T14:21:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Rollback use of GCD\n\nUpdate xnuimagefuzzer.m Rollback use of GCD\r\n\r\nThe rollback is due to the breaking changes to prost-processing scripts and the loss of the directory name. This functionality needs more testing to avoid breaking changes in the image post-processing pipeline.","shortMessageHtmlLink":"Update xnuimagefuzzer.m Rollback use of GCD"}},{"before":"24b4a7ec953099b4b8d56263f6fc952c41852563","after":"766fd7ad457fb78c5b842d29363a41f9cc1af93e","ref":"refs/heads/main","pushedAt":"2024-05-21T12:36:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Add dispatch_async to avoid Blocking Main I/O Thread\n\nUpdate xnuimagefuzzer.m Add dispatch_async to avoid Blocking Main I/O Thread","shortMessageHtmlLink":"Update xnuimagefuzzer.m Add dispatch_async to avoid Blocking Main I/O…"}},{"before":"3b1d2f3f4dda6b86008921b82679e909e07c53d1","after":"24b4a7ec953099b4b8d56263f6fc952c41852563","ref":"refs/heads/main","pushedAt":"2024-05-21T12:02:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Readme.md File Sharing is Enabled via Info.plist\n\nUpdate Readme.md File Sharing is Enabled via Info.plist","shortMessageHtmlLink":"Update Readme.md File Sharing is Enabled via Info.plist"}},{"before":"2a15b9597e522b06ef9f9532885d250f7ad0e9e6","after":"3b1d2f3f4dda6b86008921b82679e909e07c53d1","ref":"refs/heads/main","pushedAt":"2024-05-20T23:28:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"XNU Research | iOS | macOS | Source Code | PoC's and more....\n\nXNU Research | iOS | macOS | Source Code | PoC's and more....","shortMessageHtmlLink":"XNU Research | iOS | macOS | Source Code | PoC's and more...."}},{"before":"936b6dfd6a4241a931c468acb87ee8e14e1ff91f","after":"2a15b9597e522b06ef9f9532885d250f7ad0e9e6","ref":"refs/heads/main","pushedAt":"2024-05-20T23:25:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update README.md Update Project Image\n\nUpdate README.md Update Project Image","shortMessageHtmlLink":"Update README.md Update Project Image"}},{"before":"1e1a54e7d164ee28cfda19219be1ef0f9a55c5a0","after":"936b6dfd6a4241a931c468acb87ee8e14e1ff91f","ref":"refs/heads/main","pushedAt":"2024-05-20T23:23:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Readme.md Code for iOS and macOS with Interposing dylibs.\n\nUpdate Readme.md Code for iOS and macOS with Interposing dylibs.","shortMessageHtmlLink":"Update Readme.md Code for iOS and macOS with Interposing dylibs."}},{"before":"9b5283b28acb84ff085786528c3c0615f3374704","after":"1e1a54e7d164ee28cfda19219be1ef0f9a55c5a0","ref":"refs/heads/main","pushedAt":"2024-05-20T23:21:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Readme.md Add Project Image for Fuzzing\n\nUpdate Readme.md Add Project Image for Fuzzing","shortMessageHtmlLink":"Update Readme.md Add Project Image for Fuzzing"}},{"before":"be146d6fe9b7af72c686018e950ef6bf3db07ad7","after":"9b5283b28acb84ff085786528c3c0615f3374704","ref":"refs/heads/main","pushedAt":"2024-05-20T23:11:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update videotoolbox-runner.m Add: AssertWithMessage\n\nUpdate videotoolbox-runner.m Add: AssertWithMessage","shortMessageHtmlLink":"Update videotoolbox-runner.m Add: AssertWithMessage"}},{"before":"ff518ebc8060aad91ed86facc0567ba5d1b027fa","after":"be146d6fe9b7af72c686018e950ef6bf3db07ad7","ref":"refs/heads/main","pushedAt":"2024-05-20T23:08:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update videotoolbox-runner.m Replaced fprintf with snprintf and fputs \n\nUpdate videotoolbox-runner.m Replaced fprintf with snprintf and fputs","shortMessageHtmlLink":"Update videotoolbox-runner.m Replaced fprintf with snprintf and fputs"}},{"before":"6ebfa6289300c550996765c8262d2221338917d7","after":"ff518ebc8060aad91ed86facc0567ba5d1b027fa","ref":"refs/heads/main","pushedAt":"2024-05-20T21:21:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update xnuimagefuzzer.m Sync to Main Branch\n\nUpdate xnuimagefuzzer.m Sync to Main Branch","shortMessageHtmlLink":"Update xnuimagefuzzer.m Sync to Main Branch"}},{"before":"99ac9014d5e3f82defeee02062475b88d91fdc84","after":"6ebfa6289300c550996765c8262d2221338917d7","ref":"refs/heads/main","pushedAt":"2024-05-20T17:35:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update libAppleEXR-discussion-analysis.md Update python script\n\n#!/usr/bin/env python3\r\n\r\nimport OpenEXR\r\nimport Imath\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\nimport logging\r\nfrom skimage.transform import resize\r\n\r\ndef analyze_subsampling_and_render_image(exr_path):\r\n logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')\r\n logging.info(f\"Analyzing EXR file: {exr_path}\")\r\n\r\n try:\r\n exr_file = OpenEXR.InputFile(exr_path)\r\n header = exr_file.header()\r\n\r\n dw = header['dataWindow']\r\n size = (dw.max.x - dw.min.x + 1, dw.max.y - dw.min.y + 1)\r\n total_pixels = size[0] * size[1]\r\n\r\n channels = header['channels']\r\n logging.info(f\"EXR file size: {size[0]}x{size[1]}, Total Pixels: {total_pixels}\")\r\n logging.info(f\"Header Info: {header}\")\r\n\r\n pt = Imath.PixelType(Imath.PixelType.HALF)\r\n images = {}\r\n\r\n for channel_name, channel_info in channels.items():\r\n x_sampling, y_sampling = channel_info.xSampling, channel_info.ySampling\r\n expected_width = size[0] // x_sampling\r\n expected_height = size[1] // y_sampling\r\n expected_size = expected_width * expected_height\r\n logging.info(f\"Channel '{channel_name}' subsampling: {x_sampling}x{y_sampling}, Expected size: {expected_size}\")\r\n\r\n # Load the channel data to compute actual size\r\n buffer = exr_file.channel(channel_name, pt)\r\n data = np.frombuffer(buffer, dtype=np.float16)\r\n actual_size = data.size\r\n\r\n logging.info(f\"Channel '{channel_name}' actual size: {actual_size}\")\r\n\r\n if actual_size != expected_size:\r\n logging.error(f\"Channel '{channel_name}' size mismatch! Expected: {expected_size}, Actual: {actual_size}\")\r\n else:\r\n logging.info(f\"Channel '{channel_name}' size matches expected value.\")\r\n reshaped_data = data.reshape((expected_height, expected_width))\r\n images[channel_name] = reshaped_data\r\n\r\n def render_image(images, channels, full_res_size):\r\n plt.figure(figsize=(10, 10))\r\n\r\n # Check if we can render the image based on available channels\r\n if len(images) >= 3:\r\n # Assuming channels are in BY, RY, Y order; adjust as necessary\r\n combined_image = np.zeros((full_res_size[1], full_res_size[0], 3))\r\n channel_order = ['Y', 'RY', 'BY'] # Adjust if needed\r\n\r\n for i, channel_name in enumerate(channel_order):\r\n if channel_name in channels:\r\n logging.info(f\"Using channel '{channel_name}' for combined image.\")\r\n if images[channel_name].shape != (full_res_size[1], full_res_size[0]):\r\n logging.info(f\"Resizing channel '{channel_name}' from {images[channel_name].shape} to {full_res_size[1], full_res_size[0]}\")\r\n resized_channel = resize(images[channel_name], (full_res_size[1], full_res_size[0]), anti_aliasing=True)\r\n else:\r\n resized_channel = images[channel_name]\r\n combined_image[..., i] = resized_channel\r\n\r\n combined_image = np.clip(combined_image, 0, 1)\r\n plt.imshow(combined_image)\r\n elif 'Y' in channels and len(images) == 1:\r\n # Render the single Y channel if that's all we have\r\n plt.imshow(images['Y'], cmap='gray')\r\n else:\r\n logging.error(\"Unable to render the image due to an unexpected channel configuration.\")\r\n return\r\n\r\n plt.title('Rendered EXR Image')\r\n plt.axis('off')\r\n plt.show()\r\n\r\n render_image(images, channels, size)\r\n\r\n exr_file.close()\r\n logging.info(\"EXR file processing completed and closed.\")\r\n except Exception as e:\r\n logging.error(f\"Error processing EXR file {exr_path}: {e}\")\r\n\r\nif __name__ == \"__main__\":\r\n exr_path = '/Users/xss/Documents/Flowers.exr' # Update this path\r\n analyze_subsampling_and_render_image(exr_path)","shortMessageHtmlLink":"Update libAppleEXR-discussion-analysis.md Update python script"}},{"before":"c607f1a449111602dbfc407838a342f6f85d43b3","after":"99ac9014d5e3f82defeee02062475b88d91fdc84","ref":"refs/heads/main","pushedAt":"2024-05-20T13:06:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update CMakeLists.txt ADD Working CMakeLists.txt\n\nUpdate CMakeLists.txt ADD Working CMakeLists.txt\r\n\r\nBad CopyPasta in prior Commit","shortMessageHtmlLink":"Update CMakeLists.txt ADD Working CMakeLists.txt"}},{"before":"6e9930bca8b656be113f894130f5951bf2a6cc14","after":"c607f1a449111602dbfc407838a342f6f85d43b3","ref":"refs/heads/main","pushedAt":"2024-05-20T12:55:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update CMakeLists.txt Update with ld options for -lz\n\nUpdate CMakeLists.txt Update with ld options for -lz","shortMessageHtmlLink":"Update CMakeLists.txt Update with ld options for -lz"}},{"before":"95bd6fc187580381ed0e676692c8bbf9b15545bb","after":"6e9930bca8b656be113f894130f5951bf2a6cc14","ref":"refs/heads/main","pushedAt":"2024-05-20T02:20:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update videotoolbox-interposer.c Add + Update Xcode Quick Help\n\nUpdate videotoolbox-interposer.c Add + Update Xcode Quick Help","shortMessageHtmlLink":"Update videotoolbox-interposer.c Add + Update Xcode Quick Help"}},{"before":"d5f04576e60020239945740e3680ac9f70fe72d0","after":"95bd6fc187580381ed0e676692c8bbf9b15545bb","ref":"refs/heads/main","pushedAt":"2024-05-20T02:15:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xsscx","name":"David Hoyt","path":"/xsscx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10790582?s=80&v=4"},"commit":{"message":"Update Makefile Update ld args for compression + decompression Fuzzing\n\nUpdate Makefile Update ld args for compression + decompression Fuzzing","shortMessageHtmlLink":"Update Makefile Update ld args for compression + decompression Fuzzing"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNi0wOFQxMzoyNTozNy4wMDAwMDBazwAAAARf7gyq","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0yMFQwMjoxNTozNC4wMDAwMDBazwAAAAROWsIr"}},"title":"Activity · xsscx/macos-research"}