Line 10: |
Line 10: |
| ! Cmd || Name || Notes | | ! Cmd || Name || Notes |
| |- | | |- |
− | | 1 || OpenContinuousRecorder || Takes a total of 0x48-bytes of input and a handle, returns an [[#IContinuousRecorder]]. | + | | 1 || OpenContinuousRecorder || Takes a total of 0x28-bytes of input and a handle, returns an [[#IContinuousRecorder]]. |
| |- | | |- |
| | 2 || OpenGameMovieTrimmer || Takes a total of 0x8-bytes of input and a handle, returns an [[#IGameMovieTrimmer]]. | | | 2 || OpenGameMovieTrimmer || Takes a total of 0x8-bytes of input and a handle, returns an [[#IGameMovieTrimmer]]. |
| |- | | |- |
− | | 3 || || Takes a total of 0x8-bytes of input and a handle, returns an [[#IUnknown]]. | + | | 3 || [5.0.0+] || Takes a total of 0x8-bytes of input and a handle, returns an [[#IOffscreenRecorder]]. |
| |- | | |- |
− | | 101 || || Takes a total of 0x10-bytes of input, returns an [[#IMovieMaker]]. | + | | 101 || [5.0.0+] || Takes a total of 0x10-bytes of input, returns an [[#IMovieMaker]]. |
| + | |- |
| + | | 9903 || [5.0.0+] || Takes 8-bytes of input, no output. |
| |} | | |} |
| + | |
| + | [5.0.0+] OpenContinuousRecorder now takes an additional 0x20-bytes of input. |
| | | |
| == IContinuousRecorder == | | == IContinuousRecorder == |
Line 38: |
Line 42: |
| | 13 || | | | 13 || |
| |- | | |- |
− | | 14 || | + | | 14 || [5.0.0+] |
| |} | | |} |
| + | |
| + | [5.0.0+] Cmd11 now takes a total of 0x40-bytes of input. |
| + | |
| + | [8.0.0+] Cmd11/cmd14 no longer take any rawdata input, these now take a type-0x15 input buffer. |
| | | |
| == IGameMovieTrimmer == | | == IGameMovieTrimmer == |
Line 68: |
Line 76: |
| | 1 || || No input/output. | | | 1 || || No input/output. |
| |- | | |- |
− | | 2 || || Takes a total of 4-bytes of input and a type-0x6 output buffer, returns a total of 0x10-bytes of output. | + | | 2 || || Takes an input u32 (must be value 0-1) and a type-0x6 output buffer, returns a total of 0x10-bytes of output. |
| |} | | |} |
| | | |
− | = IUnknown = | + | == Cmd1 == |
| + | Begins video stream. Can only be called once. |
| + | |
| + | == Cmd2 == |
| + | Retrieves video data. Takes u32 "stream" (0: video, 1: audio), returns u32 (num_frames?), u32 data_size, u64 (start_timestamp?). Video stream writes H.264 NAL units to the output buffer (try <code>ffplay -f h264</code>). Official code uses buffer size 0x32000 for video, 0x1000 for audio, and multiple threads to read out both streams at the same time. |
| + | |
| + | = IOffscreenRecorder = |
| + | This is "nn::grcsrv::IOffscreenRecorder". |
| + | |
| + | This was added with [5.0.0+]. |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 83: |
Line 101: |
| = IMovieMaker = | | = IMovieMaker = |
| This is "nn::grcsrv::IMovieMaker". | | This is "nn::grcsrv::IMovieMaker". |
| + | |
| + | This was added with [5.0.0+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |