Using Native Libraries (gstreamer) on Oculus Quest II
My goal is to stream video over udp on a LAN and view it with my Oculus quest. I'm using gstreamer to set up the stream on my network, I'd like to use the same software to view the stream on my Quest. I've tried a couple of different ways to do this. The first is the GStreamerUnity plugin for Unity. This runs fine on desktop, and I can even deploy it to Oculus quest via provided .so files. However, the application silently dies (according to logcat) at plugin loading. I gave Unreal Engine a shot with the UE4-Gstreamer plugin for Unreal 4.26 but I ran into the same problem - runs fine on desktop, silently dies on quest even with static ARM64 android .a files included via the plugin build.cs. So, first question: Are these libraries NOT dying silently, is there some messaging you all might be aware of that I'm missing for debugging purposes? Secondly, my intuition tells me this is probably an NDK mismatch problem or something? As in, the libraries I'm using are compiled with one version of the NDK (or whatever) and are throwing errors, even though the application itself was built with the correct versions of everything. Does that sound reasonable? Finally, has anyone gotten low latency video streaming to work on Oculus Quest in their Unity or Unreal application via GStreamer, FFMPEG, or some other means? Would you mind sharing the magic?3KViews1like3CommentsIssue on playing 8K video
Hi, I am currently developing an app that plays 180-degree 8K high-definition VR videos. Although there have been no changes in our code, we’ve noticed that video playback stuttering has become more frequent recently. Could it be possible that any changes made in the latest OS updates (V67 or V68) might be affecting this issue? Thank you.405Views1like0CommentsAndroid apps cannot invoke Quest app in the latest v60 software
I have found that in the latest v60 software, an Android app cannot invoke a quest app in the headset. Specifically, our developed quest app called Moon VR Video Player, which supports being called by other applications. For example, some third-party Android file manager (2D application) used to be able to open video files with Moon VR Video Player, but it is no longer possible in the latest v60 system as Moon VR Video Player crashes after being invoked. We tested other video players / file managers and obtained the same results. We basically confirm that this is a problem caused by the 60 system. I would like to confirm whether this is a feature or bug of the 60 system and if it can be fixed afterwards?464Views0likes0CommentsOculus Browser - full screen video controls getting in the way of immersive content
I have a problem with the z-index of the fullscreen video control bar in Oculus Browser, blocking my interactions with elements 'behind' it. I am playing 360 videos in Oculus Browser in full screen and then selecting "360 video" from the dropdown menu in the video control bar, to see them in full wraparound view. What I'm actually doing is presenting a web page in 360, using the Fullscreen API - not just a video file. https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API With the video filling the page, and some clickable hotspots overlaid on top of it. The problem is that the video control bar (with Play button, skip forwards/back and Normal/180/360 and 2D/3D options) is sitting halfway between the viewer and the video and blocking any interactions behind it. All clicks anywhere on the screen just pull up the video control bar wherever you click. What I need is for it to let me click the clickable elements behind the video control bar, but I can't. The video control bar basically creates a kind of invisible forcefield halfway between my hands/controllers and the buttons overlaid on the video. Is there anything I can do? Is there any documentation I've missed about developing for these immersive features in Oculus Browser?1.6KViews0likes0CommentsOculus Android (Quest, Go) does not play more than one video at a time with Unity Video Player
I have seen this issue posted on several other forums, but it does not appear that anyone has found a solution. The Unity video player works great as a render texture for materials on objects such a quads, skyboxes, etc. However, when more than one video plays at the same time, all of the videos seem to try to play all video textures at the same time. The result is flickering between frames of all videos at it cycles between each frame of each video on all materials. This seems to be an issue that is specific to the Quest Android OS. When playing on the Quest using Oculus link, it works fine. It also works fine on my Android phone, thus indicating that it is not an Android issue. I am currently using Unity 2019.4.10 (LTS), but the version does not make a difference, I have tried it in earlier versions with the same result. I also tried it on an Oculus Go. The same issue existed there, but more intermittent. It plays correctly for a few seconds, then starts flickering, the plays correctly and so on.3.8KViews0likes7CommentsHEVC video decoder fails on latest update
I have an app that utilizes hw accelerated video decoding (via AMediaCodec). Two 8k 25fps streams are decoded. On the latest update (51), the codec fails with OMX_ErrorHardware. It did work before. Here's a snippet of logs: 05-04 17:59:58.700 921 5812 E OMX-VDEC-1080P: OMX_COMPONENT_GENERATE_HARDWARE_ERROR 05-04 17:59:58.701 921 5812 E OMX-VDEC-1080P: ERROR: Sending OMX_ErrorHardware to Client 05-04 17:59:58.701 921 4965 E OMX-VDEC-1080P: Empty this buffer not allowed after error 05-04 17:59:58.701 921 4965 E OMXNodeInstance: emptyBuffer(0xf262b144:qcom.decoder.hevc, 0xc [16588800@0xbf6fe000 (0..+319512) f=10 ts=1280000 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.701 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.701 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6/STARTED 05-04 17:59:58.701 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.701 5760 5809 D MediaCodec: flushMediametrics 05-04 17:59:58.701 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x11 [8@0xf2bef990 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.701 5760 5809 W mediametrics::Item: selfrecord: failed to record: {codec, (01-01 04:00:00.000), (, -1, -1), (android.media.mediacodec.codec=OMX.qcom.video.decoder.hevc, android.media.mediacodec.encoder=0, android.media.mediacodec.errcode=-2147479551, android.media.mediacodec.errstate=STARTED, android.media.mediacodec.height=5760, android.media.mediacodec.latency.avg=351857, android.media.mediacodec.latency.max=530481, android.media.mediacodec.latency.min=245058, android.media.mediacodec.latency.n=6, android.media.mediacodec.latency.unknown=16, android.media.mediacodec.level=1048576, android.media.mediacodec.lifetimeMs=1289, android.media.mediacodec.log-session-id=, android.media.mediacodec.low-latency.first-frame=-1, android.media.mediacodec.low-latency.off=0, android.media.mediacodec.low-latency.on=0, android.media.mediacodec.mime=video/hevc, android.media.mediacodec.mode=video, android.media.mediacodec.profile=1, android.media.mediacodec.rotation-degrees=0, android.media.mediacodec.width=5760)} 05-04 17:59:58.701 5760 5809 D SurfaceUtils: disconnecting from surface 0xb400007e7aa71010, reason disconnectFromSurface 05-04 17:59:58.701 5760 5809 E Surface : freeAllBuffers: 12 buffers were freed while being dequeued! 05-04 17:59:58.701 5760 5809 E NdkMediaCodec: Codec reported error(0x80001001), actionCode(0), detail() 05-04 17:59:58.701 5760 5809 E NdkMediaCodec: sf error code: -2147479551 05-04 17:59:58.702 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.702 5760 5810 E ACodec : [OMX.qcom.video.decoder.hevc] ERROR(0x80001009) 05-04 17:59:58.702 5760 5810 E ACodec : signalError(omxError 0x80001009, internalError -2147483648) 05-04 17:59:58.702 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.702 5760 5809 E MediaCodec: Codec reported err 0x80001009, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.702 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.702 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x13 [8@0xf2bef9a0 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.702 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.702 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.702 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.702 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x1d [8@0xf2bef9f0 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.702 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.702 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.702 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.702 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x1e [8@0xf2bef9f8 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.702 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.702 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.702 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.702 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x20 [8@0xf2befa08 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.703 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.703 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.703 921 4965 E OMX-VDEC-1080P: Fill this buffer not allowed after error 05-04 17:59:58.703 921 4965 E OMXNodeInstance: fillBuffer(0xf262b144:qcom.decoder.hevc, 0x21 [8@0xf2befa10 fc=-1]) ERROR: Hardware(0x80001009) 05-04 17:59:58.703 5760 5810 E ACodec : signalError(omxError 0x80001001, internalError -2147483648) 05-04 17:59:58.703 5760 5809 E MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 0/UNINITIALIZED 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: Failed to map table 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: Failed to get device address: -12 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: msm_comm_get_vidc_buffer: map failed. 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: msm_comm_get_vidc_buffer: -12 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: msm_vidc_queue_buf: failed to get vidc-buf 05-04 17:59:58.700 0 0 I msm_vidc: err : 00000002: h265d: failed vb2-qbuf: CAPTURE: idx 4 fd 248 off 0 size 49979392 filled 0, extradata: fd 139 off 0 size 16384 filled 0 Is that a regression? Are there any workarounds?1.6KViews1like0Commentshow to open video file in oculus quest?
I'm trying to open a video file in Oculus quest 2 through a specific app , but it just open the application and no error appears in command line. the command is: adb shell am start -n com.oculus.tv/com.oculus.livingroom.PanelActivity -t video/mp4 -d file:///storage/emulated/0//UI/Content/Movies/1.mp4 Is there any permission issue ? Please Help839Views0likes0CommentsUnity : AndroidVideoMedia Error, tracks not found ?
Hi ! I want to read 360° video tracks in an app made with Unity. I have this error : "AndroiVideoMedia : no tracks in myFolder/myFile". My app finds the right path. The error appears when I click on a button in my app to launch a video. I use Unity 2019.3.15. Can you help me to resolve my problem ? Thanks a lot for answers !745Views0likes0Comments3d animation video content sell as app
Hello, I'm working on an immersive animation in 360 stereoscopic, I intend to sell it at the oculus store, I developed an app, which basically is a main room where the user can see information about the film and choose subtitles, (English and Chinese) and another where the animation plays, everything is working perfectly, but I have several doubts. 1 - the app was developed at unity. I can put the embed video on the app. and so I believe the app will be around 8 gigs in size. what I think shouldn't be a problem. I could put the video on a private host of mine and the app stream the video on the app, is this allowed by oculus or recommended? but there if the user has a bad internet I run the risk of the user experience not being good. 2 - 2 - if it is allowed to use an external host to play my animations. how would I go about placing a purchasing system? where would a scene from unity pull other scenes with the content? 3 - I currently think about putting an animation per app. where the app would be sold. my only doubt is if i put the video in the app or the app streams the video from a private host. what oculus would recommend?698Views0likes0Comments