Difference between revisions of "GRC services"
Line 8: | Line 8: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! Cmd || Name | + | ! Cmd || Name || Notes |
+ | |- | ||
+ | | 1 || OpenContinuousRecorder || Takes a total of 0x48-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]]. | ||
|- | |- | ||
− | | | + | | 3 || || Takes a total of 0x8-bytes of input and a handle, returns an [[#IUnknown]]. |
|- | |- | ||
− | | | + | | 101 || || Takes a total of 0x10-bytes of input, returns an [[#IMovieMaker]]. |
|} | |} | ||
Line 33: | Line 37: | ||
|- | |- | ||
| 13 || | | 13 || | ||
+ | |- | ||
+ | | 14 || | ||
|} | |} | ||
Line 63: | Line 69: | ||
|- | |- | ||
| 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 a total of 4-bytes of input and a type-0x6 output buffer, returns a total of 0x10-bytes of output. | ||
+ | |} | ||
+ | |||
+ | = IUnknown = | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name || Notes | ||
+ | |- | ||
+ | | 201 || || Takes a total of 0x8-bytes of input, returns a total of 0x8-bytes of output. | ||
+ | |- | ||
+ | | 202 || || Takes a total of 0x8-bytes of input, no output. | ||
+ | |- | ||
|} | |} | ||
Revision as of 22:55, 22 October 2018
GRC (Game Recording) uses libstagefright and the NvMMLite TVMR library for writing recorded video to MP4s.
Error reporting is done using the new /dev/nverpt-ctrl ioctls.
grc:c
This is "nn::grcsrv::IGrcService".
Cmd | Name | Notes |
---|---|---|
1 | OpenContinuousRecorder | Takes a total of 0x48-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. |
3 | Takes a total of 0x8-bytes of input and a handle, returns an #IUnknown. | |
101 | Takes a total of 0x10-bytes of input, returns an #IMovieMaker. |
IContinuousRecorder
This is "nn::grcsrv::IContinuousRecorder".
Cmd | Name |
---|---|
1 | |
2 | |
10 | |
11 | |
12 | |
13 | |
14 |
IGameMovieTrimmer
This is "nn::grcsrv::IGameMovieTrimmer".
Cmd | Name |
---|---|
1 | BeginTrim |
2 | EndTrim |
10 | GetNotTrimmingEvent |
20 | SetThumbnailRgba |
grc:d
This is "nn::grcsrv::IRemoteVideoTransfer".
Added with 6.0.0.
Cmd | Name | Notes |
---|---|---|
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. |
IUnknown
Cmd | Name | Notes |
---|---|---|
201 | Takes a total of 0x8-bytes of input, returns a total of 0x8-bytes of output. | |
202 | Takes a total of 0x8-bytes of input, no output. |
IMovieMaker
This is "nn::grcsrv::IMovieMaker".
CreateVideoProxy
No input, returns an #IHOSBinderDriver.
OpenOffscreenLayer
Takes an input u64 LayerHandle, returns an output u32.
CloseOffscreenLayer
Takes an input u64 LayerHandle, no output.
StartOffscreenRecording
Takes an input u64, no output.
Seems to be unused by official user processes, #StartOffscreenRecordingEx is used instead.
AbortOffscreenRecording
Takes an input u64 LayerHandle, no output.
RequestOffscreenRecordingFinishReady
Takes an input u64 LayerHandle, no output.
StartOffscreenRecordingEx
Takes an input u64 LayerHandle and an #OffscreenRecordingParameter, no output.
CompleteOffscreenRecordingFinish
Takes an input u64 and a type-0x5 input buffer, no output.
Seems to be unused by official user processes, #CompleteOffscreenRecordingFinishEx0 is used instead.
CompleteOffscreenRecordingFinishEx0
Takes an input u64 LayerHandle and 2 type-0x5 input buffers, no output.
EncodeOffscreenLayerAudioSample
Takes an input u64 LayerHandle and a type-0x5 input buffer, returns an output u64.
GetOffscreenLayerError
Takes an input u64 LayerHandle, no output.
GetOffscreenLayerRecordingFinishReadyEvent
Takes an input u64 LayerHandle, returns an output event handle.
GetOffscreenLayerAudioEncodeReadyEvent
Takes an input u64 LayerHandle, returns an output event handle.
OffscreenRecordingParameter
This is a 0x80-byte struct.
IHOSBinderDriver
This is the same interface as NV IHOSBinderDriver.