Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot play HEVC video directly #1445

Open
jiaxinonly opened this issue Jul 14, 2024 · 2 comments
Open

Cannot play HEVC video directly #1445

jiaxinonly opened this issue Jul 14, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@jiaxinonly
Copy link

jiaxinonly commented Jul 14, 2024

Describe the bug

I am not sure whether this is a bug, I cannot play HEVC-10bit video directly, which needs transcoding. The hardware of my mobile phone supports HEVC-10bit, and I can play it directly with via browser without transcoding, and I can use Findroid APP. Nor do other players seem to transcode HEVC-10bit.
Play directly via browser

Screenshot_20240714_202151

Play using jellyfin android (Transcoding cause The container is not supported)

Screenshot_20240714_202404
Both the server and client have been updated to the latest version
server docker jellyfin 10.9.7
clinet jellyfin-android 2.6.2-libre

I can't use other players because I have a need to watch in a group. Transcoding can cause problems with out-of-sync subtitles

Logs

07-14 21:20:54.742 21876 21876 W FinalizerDaemon: type=1400 audit(0.0:20270): avc:  denied  { getopt } for  path="/dev/socket/usap_pool_primary" scontext=u:r:untrusted_app:s0:c103,c256,c512,c768 tcontext=u:r:zygote:s0 tclass=unix_stream_socket permissive=0 app=org.jellyfin.mobile
07-14 21:20:54.749 21876 27977 W jellyfin.mobile: ApkAssets: Deleting an ApkAssets object '<empty> and /product/app/WebViewGoogle64/WebViewGoogle64.apk' with 1 weak references
07-14 21:20:54.795 21876 21876 I WebView : Requesting https://openwrt.jiaxin.fun:8920/Users/10ed207048304917ba615b7c0b45bcf3/Items/b1b586b4bbecae9480a5c61a4832dec3, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:20:54.902 21876 21876 I WebView : Requesting https://openwrt.jiaxin.fun:8920/Shows/c551f8a27f5cd6e32cdecedfa0bea967/Episodes?SeasonId=84eacb11872859440b5c6e9d723e9bd0&UserId=10ed207048304917ba615b7c0b45bcf3&Fields=ItemCounts%2CPrimaryImageAspectRatio%2CCanDelete%2CMediaSourceCount, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:20:54.973 21876 21876 I AssistStructure: Flattened final assist data: 4416 bytes, containing 1 windows, 10 views
07-14 21:21:00.192 21876 21876 I WebView : Requesting https://openwrt.jiaxin.fun:8920/Shows/c551f8a27f5cd6e32cdecedfa0bea967/Episodes?IsVirtualUnaired=false&IsMissing=false&UserId=10ed207048304917ba615b7c0b45bcf3&Fields=Chapters%2CTrickplay, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:00.284 21876 21876 I WebView : Requesting https://openwrt.jiaxin.fun:8920/Users/10ed207048304917ba615b7c0b45bcf3/Items/b1b586b4bbecae9480a5c61a4832dec3/Intros, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:00.305 21876 28042 W AidlConversionCppNdk: aidl2legacy_AudioChannelLayout_audio_channel_mask_t: no legacy output audio_channel_mask_t found for AudioChannelLayout{layoutMask: 16}
07-14 21:21:00.311 21876 21876 I WebView : Requesting url without automatic networking: https://openwrt.jiaxin.fun:8920/Items/b1b586b4bbecae9480a5c61a4832dec3/PlaybackInfo?UserId=10ed207048304917ba615b7c0b45bcf3&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=2&MediaSourceId=b1b586b4bbecae9480a5c61a4832dec3&MaxStreamingBitrate=60000000, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:00.317 21876 28042 I AAudio  : AAudioStreamBuilder_openStream() called ----------------------------------------
07-14 21:21:00.317 21876 28042 I AudioStreamBuilder: rate   =  48000, channels  = 2, channelMask = 0x80000003, format   = 5, sharing = SH, dir = OUTPUT
07-14 21:21:00.317 21876 28042 I AudioStreamBuilder: device =      0, sessionId = -1, perfMode = 12, callback: ON with frames = 192
07-14 21:21:00.317 21876 28042 I AudioStreamBuilder: usage  =      1, contentType = 0, inputPreset = 0, allowedCapturePolicy = 0
07-14 21:21:00.317 21876 28042 I AudioStreamBuilder: privacy sensitive = false, opPackageName = (null), attributionTag = (null)
07-14 21:21:00.317 21876 28042 D jellyfin.mobile: PlayerBase::PlayerBase()
07-14 21:21:00.318 21876 28042 D AudioStreamTrack: open(), request notificationFrames = -8, frameCount = 0
07-14 21:21:00.318 21876 28042 V VivoAudioPolicyProxyNative: VivoAudioPolicyProxy getInstanceInter: binding to vivoaudiopolicy service success!
07-14 21:21:00.318 21876 28042 D AudioTrack: set(): Building AudioTrack with attributes: usage=1 content=2 flags=0x100 tags=[]
07-14 21:21:00.318 21876 28042 D AudioTrack: set():callingPid=21876,myPid=21876,mClientAttributionSource.pid=21876
07-14 21:21:00.318 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:00.319 21876 28042 W AudioSystem: setParameters: PlaybackCaptureProtectSupport=org.jellyfin.mobile
07-14 21:21:00.319 21876 28042 D AudioTrack: get APPSharePck NULL
07-14 21:21:00.333 21876 28042 I AudioTrack: createTrack_l(0): AUDIO_OUTPUT_FLAG_FAST successful; frameCount 0 -> 1536
07-14 21:21:00.334 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:00.334 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:00.335 21876 28042 D AudioStreamTrack: open() flags changed from 0x00000104 to 0x00000004
07-14 21:21:00.335 21876 28042 D AAudioStream: setState(s#1) from 0 to 2
07-14 21:21:00.336 21876 28042 I AAudio  : AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#1 ----------------
07-14 21:21:00.337 21876 28042 D AAudio  : AAudioStream_requestStart(s#1) called --------------
07-14 21:21:00.337 21876 28042 D AAudioStream: setState(s#1) from 2 to 3
07-14 21:21:00.337 21876 28042 D AudioTrack: start(portId:112, sessionId:881): prior state:STATE_STOPPED
07-14 21:21:00.337 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:00.347 21876 28042 D AAudio  : AAudioStream_requestStart(s#1) returned 0 ---------
07-14 21:21:00.347 21876 28027 D AudioStreamLegacy: onAudioDeviceUpdate(deviceId = 3)
07-14 21:21:00.348 21876 28172 D AudioTrack: hasStarted(112): hasStarted wait:1  ets:0  start position:0
07-14 21:21:00.348 21876 28172 D AudioTrack: hasStarted(112): hasStarted wait:1  ets:0  start position:0
07-14 21:21:00.352 14485 15289 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.353 15630 15980 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.353 14613 15710 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.355 14613 15710 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.355 14485 15289 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.356 14860 15711 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.357 15630 15980 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.357 14860 15711 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:00.482 21876 28172 D AudioTrack: hasStarted(112): hasStarted wait:0  ets:384  start position:0
07-14 21:21:00.482 21876 28172 D AAudioStream: setState(s#1) from 3 to 4
07-14 21:21:01.644 21876 21876 E WebView : HLS Error: Type: otherError Details: internalException Fatal: false, https://openwrt.jiaxin.fun:8920/web/main.jellyfin.bundle.js?9410c8e21a4e2de14aaa?deferred=true&ts=1720963233476 (2)
07-14 21:21:01.644 21876 21876 E WebView : Uncaught ReferenceError: t is not defined, blob:https://openwrt.jiaxin.fun:8920/cc1673cf-03ca-413c-b222-a1ba52718c52 (1)
07-14 21:21:01.818 21876 28042 I AAudio  : AAudioStreamBuilder_openStream() called ----------------------------------------
07-14 21:21:01.818 21876 28042 I AudioStreamBuilder: rate   =  48000, channels  = 2, channelMask = 0x80000003, format   = 5, sharing = SH, dir = OUTPUT
07-14 21:21:01.818 21876 28042 I AudioStreamBuilder: device =      0, sessionId = -1, perfMode = 11, callback: ON with frames = 1024
07-14 21:21:01.818 21876 28042 I AudioStreamBuilder: usage  =      1, contentType = 0, inputPreset = 0, allowedCapturePolicy = 0
07-14 21:21:01.818 21876 28042 I AudioStreamBuilder: privacy sensitive = false, opPackageName = (null), attributionTag = (null)
07-14 21:21:01.819 21876 28042 D AudioStreamBuilder: build() MMAP not used because AAUDIO_PERFORMANCE_MODE_LOW_LATENCY not requested.
07-14 21:21:01.819 21876 28042 D jellyfin.mobile: PlayerBase::PlayerBase()
07-14 21:21:01.819 21876 28042 D AudioStreamTrack: open(), request notificationFrames = 0, frameCount = 0
07-14 21:21:01.819 21876 28042 D AudioTrack: set(): Building AudioTrack with attributes: usage=1 content=2 flags=0x200 tags=[]
07-14 21:21:01.819 21876 28042 D AudioTrack: set():callingPid=21876,myPid=21876,mClientAttributionSource.pid=21876
07-14 21:21:01.819 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:01.820 21876 28042 W AudioSystem: setParameters: PlaybackCaptureProtectSupport=org.jellyfin.mobile
07-14 21:21:01.820 21876 28042 D AudioTrack: get APPSharePck NULL
07-14 21:21:01.818 21876 21876 W Chrome_InProcGp: type=1400 audit(0.0:20272): avc:  denied  { read } for  name="u:object_r:vendor_display_prop:s0" dev="tmpfs" ino=423 scontext=u:r:untrusted_app:s0:c103,c256,c512,c768 tcontext=u:object_r:vendor_display_prop:s0 tclass=file permissive=0 app=org.jellyfin.mobile
07-14 21:21:01.825 21876 28069 W libc    : Access denied finding property "vendor.display.enable_optimal_refresh_rate"
07-14 21:21:01.826 21876 28035 I cr_MediaCodecBridge: create MediaCodec video decoder, mime video/avc, decoder name c2.qti.avc.decoder
07-14 21:21:01.828 21876 28035 W AString : ctor got NULL, using empty string instead
07-14 21:21:01.830 21876 28035 I CCodecBufferChannel: mIsVivoLogEnable = 0
07-14 21:21:01.831 21876 28188 D CCodec  : allocate(c2.qti.avc.decoder)
07-14 21:21:01.832 21876 28188 I Codec2Client: Available Codec2 services: "default" "default2" "software" "vivocodec"
07-14 21:21:01.834 21876 28188 I CCodec  : setting up 'default' as default (vendor) store
07-14 21:21:01.837 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:01.837 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:01.837 21876 28042 D AAudioStream: setState(s#2) from 0 to 2
07-14 21:21:01.838 21876 28188 I CCodec  : Created component [c2.qti.avc.decoder]
07-14 21:21:01.839 21876 28188 D CCodecConfig: read media type: video/avc
07-14 21:21:01.839 21876 28042 I AAudio  : AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#2 ----------------
07-14 21:21:01.840 21876 28042 D AAudio  : AAudioStream_requestStart(s#2) called --------------
07-14 21:21:01.840 21876 28042 D AAudioStream: setState(s#2) from 2 to 3
07-14 21:21:01.840 21876 28042 D AudioTrack: start(portId:113, sessionId:889): prior state:STATE_STOPPED
07-14 21:21:01.840 21876 28042 D AudioSystem: getPkgNameFromPid found client name org.jellyfin.mobile(21876)
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_first_field.misr_dpb_luma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_first_field.misr_dpb_chroma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_first_field.misr_opb_luma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_first_field.misr_opb_chroma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_second_field.misr_dpb_luma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_second_field.misr_dpb_chroma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_second_field.misr_opb_luma
07-14 21:21:01.843 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-dec-info-misr.misr_info_second_field.misr_opb_chroma
07-14 21:21:01.851 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: vendor.qti-ext-vpp-extradata.extradata-types
07-14 21:21:01.851 21876 28188 D ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
07-14 21:21:01.851 21876 28188 D CCodecConfig: ignoring local param raw.size (0xd2001800) as it is already supported
07-14 21:21:01.851 21876 28188 D CCodecConfig: ignoring local param default.color (0x5200180b) as it is already supported
07-14 21:21:01.851 21876 28188 D CCodecConfig: ignoring local param raw.hdr-static-info (0xd200180a) as it is already supported
07-14 21:21:01.853 21876 28188 I CCodecConfig: query failed after returning 17 values (BAD_INDEX)
07-14 21:21:01.853 21876 28188 W ColorUtils: expected specified color aspects (0:0:255:255)
07-14 21:21:01.856 21876 28187 I MediaCodec: MediaCodec will operate in async mode
07-14 21:21:01.858 21876 28035 W libc    : Access denied finding property "vendor.display.enable_optimal_refresh_rate"
07-14 21:21:01.854 21876 21876 W ThreadPoolForeg: type=1400 audit(0.0:20273): avc:  denied  { read } for  name="u:object_r:vendor_display_prop:s0" dev="tmpfs" ino=423 scontext=u:r:untrusted_app:s0:c103,c256,c512,c768 tcontext=u:object_r:vendor_display_prop:s0 tclass=file permissive=0 app=org.jellyfin.mobile
07-14 21:21:01.858 21876 28035 W libc    : Access denied finding property "vendor.vivo.debug.PqSetting.enable"
07-14 21:21:01.858 21876 28035 D MediaCodec: get client pid:21876
07-14 21:21:01.858 21876 28035 D MediaCodec: client name org.jellyfin.mobile
07-14 21:21:01.861 21876 28042 D AAudio  : AAudioStream_requestStart(s#2) returned 0 ---------
07-14 21:21:01.861 21876 27979 D AudioStreamLegacy: onAudioDeviceUpdate(deviceId = 3)
07-14 21:21:01.861 21876 28185 D AudioTrack: hasStarted(113): hasStarted wait:1  ets:0  start position:0
07-14 21:21:01.862 21876 28185 D AudioTrack: hasStarted(113): hasStarted wait:1  ets:0  start position:0
07-14 21:21:01.863 21876 28187 D MediaCodec: flushMediametrics
07-14 21:21:01.863 21876 28187 D SurfaceUtils: connecting to surface 0xb4000075e6235d80, reason connectToSurface
07-14 21:21:01.863 21876 28187 I MediaCodec: [c2.qti.avc.decoder] setting surface generation to 22401025
07-14 21:21:01.863 21876 28187 D SurfaceUtils: disconnecting from surface 0xb4000075e6235d80, reason connectToSurface(reconnect)
07-14 21:21:01.863 21876 28187 D SurfaceUtils: connecting to surface 0xb4000075e6235d80, reason connectToSurface(reconnect)
07-14 21:21:01.863 21876 28188 D CCodec  : [c2.qti.avc.decoder] buffers are bound to CCodec for this session
07-14 21:21:01.864 14485 15289 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.864 14860 15711 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.865 21876 28188 W Codec2Client: query -- param skipped: index = 1107298332.
07-14 21:21:01.865 21876 28188 D CCodec  : client requested max input size 1566720, which is smaller than what component recommended (3133440); overriding with component recommendation.
07-14 21:21:01.865 21876 28188 W CCodec  : This behavior is subject to change. It is recommended that app developers double check whether the requested max input size is in reasonable range.
07-14 21:21:01.865 21876 28188 D CCodec  : encoding statistics level = 0
07-14 21:21:01.865 21876 28188 D CCodec  : setup formats input: AMessage(what = 0x00000000) = {
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t feature-secure-playback = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t frame-rate = 30
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t height = 1080
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t max-input-size = 3133440
07-14 21:21:01.865 21876 28188 D CCodec  :   string mime = "video/avc"
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t priority = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t profile = 8
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t width = 1920
07-14 21:21:01.865 21876 28188 D CCodec  :   Rect crop(0, 0, 1919, 1079)
07-14 21:21:01.865 21876 28188 D CCodec  : }
07-14 21:21:01.865 21876 28188 D CCodec  : setup formats output: AMessage(what = 0x00000000) = {
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t android._color-format = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t android._video-scaling = 1
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t android._dataspace = 260
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t color-standard = 130817
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t color-range = 2
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t color-transfer = 65791
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t sar-height = 1
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t rotation-degrees = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   Buffer hdr-static-info = {
07-14 21:21:01.865 21876 28188 D CCodec  :     00000000:  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
07-14 21:21:01.865 21876 28188 D CCodec  :     00000010:  00 00 00 00 00 00 00 00  00                       .........
07-14 21:21:01.865 21876 28188 D CCodec  :   }
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t sar-width = 1
07-14 21:21:01.865 21876 28188 D CCodec  :   Rect crop(0, 0, 1919, 1079)
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t width = 1920
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t feature-secure-playback = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t frame-rate = 30
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t height = 1080
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t max-height = 1080
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t max-width = 1920
07-14 21:21:01.865 21876 28188 D CCodec  :   string mime = "video/raw"
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t priority = 0
07-14 21:21:01.865 21876 28188 D CCodec  :   int32_t color-format = 2130708361
07-14 21:21:01.865 21876 28188 D CCodec  : }
07-14 21:21:01.865 14613 15710 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.865 21876 28188 I CCodecConfig: query failed after returning 17 values (BAD_INDEX)
07-14 21:21:01.865 21876 28035 D MediaCodec: keep callback message for reclaim
07-14 21:21:01.866 15630 15980 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.866 14485 15289 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.866 14860 15711 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.867 14613 15710 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.867 15630 15980 D AudioManager: dispatching onPlaybackConfigChanged()
07-14 21:21:01.881 21876 28188 W Codec2Client: query -- param skipped: index = 1342179345.
07-14 21:21:01.881 21876 28188 W Codec2Client: query -- param skipped: index = 2415921170.
07-14 21:21:01.881 21876 28188 W Codec2Client: query -- param skipped: index = 1610614798.
07-14 21:21:01.881 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] Query input allocators returned 0 params => BAD_INDEX (6)
07-14 21:21:01.881 21876 28188 D C2Store : debug.c2.use_dmabufheaps set, forcing DMABUF Heaps
07-14 21:21:01.881 21876 28188 D C2Store : Using DMABUF Heaps
07-14 21:21:01.881 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] start: max output delay 18
07-14 21:21:01.881 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] Query output allocators returned 0 params => BAD_INDEX (6)
07-14 21:21:01.882 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] Query output surface allocator returned 0 params => BAD_INDEX (6)
07-14 21:21:01.882 21876 28188 D Codec2-OutputBufferQueue: remote graphic buffer migration 0/0
07-14 21:21:01.882 21876 28188 D Codec2Client: setOutputSurface -- failed to set consumer usage (6/BAD_INDEX)
07-14 21:21:01.882 21876 28188 D Codec2Client: setOutputSurface -- generation=22401025 consumer usage=0x900
07-14 21:21:01.882 21876 28188 D qdgralloc: Falling back to default YUV format - no camera/video specific format defined, usage 0x100
07-14 21:21:01.884 21876 28188 D Codec2Client: Surface configure completed
07-14 21:21:01.884 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] start: updating output delay 7
07-14 21:21:01.884 21876 28188 I DMABUFHEAPS: Using DMA-BUF heap named: system
07-14 21:21:01.887 21876 28187 I VivoVideoDumpInfo: property persist.sys.log.ctrl-->no
07-14 21:21:01.887 21876 28187 I VivoVideoDumpInfo: logger is not running,videoDump is disable.
07-14 21:21:01.897 21876 28188 D CCodecBufferChannel: [c2.qti.avc.decoder#857] onWorkDone: updating output delay 11
07-14 21:21:01.897 21876 28188 I CCodecBufferChannel: [c2.qti.avc.decoder#857] onWorkDone: updating max output delay 18
07-14 21:21:01.898 21876 28188 D Codec2-OutputBufferQueue: set max dequeue count 18 from update
07-14 21:21:01.902 21876 28192 D CCodecBufferChannel: [c2.qti.avc.decoder#857] Ignoring stale input buffer done callback: last flush index = 0, frameIndex = 0
07-14 21:21:01.904 21876 28185 D AudioTrack: hasStarted(113): hasStarted wait:0  ets:3844  start position:0
07-14 21:21:01.904 21876 28185 D AAudioStream: setState(s#2) from 3 to 4
07-14 21:21:01.910 21876 28188 D CCodecBuffers: [c2.qti.avc.decoder#857:2D-Output] popFromStashAndRegister: at 0us, output format changed to AMessage(what = 0x00000000) = {
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t android._color-format = 0
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t android._video-scaling = 1
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t android._dataspace = 260
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t color-standard = 1
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t color-range = 2
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t color-transfer = 3
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t sar-height = 1
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t rotation-degrees = 0
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   Buffer hdr-static-info = {
07-14 21:21:01.910 21876 28188 D CCodecBuffers:     00000000:  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................
07-14 21:21:01.910 21876 28188 D CCodecBuffers:     00000010:  00 00 00 00 00 00 00 00  00                       .........
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   }
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t sar-width = 1
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   Rect crop(0, 0, 1919, 1079)
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t width = 1920
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t feature-secure-playback = 0
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t frame-rate = 30
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t height = 1080
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t max-height = 1080
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t max-width = 1920
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   string mime = "video/raw"
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t priority = 0
07-14 21:21:01.910 21876 28188 D CCodecBuffers:   int32_t color-format = 2130708361
07-14 21:21:01.910 21876 28188 D CCodecBuffers: }
07-14 21:21:01.912 21876 28187 D CCodecBufferChannel: [c2.qti.avc.decoder#857] first render dataSpace=260
07-14 21:21:01.914 21876 28069 D NdkImageReader: acquireImageLocked: Overriding buffer format YUV_420_888 to 0x7fa30c06.
07-14 21:21:01.936 21876 21876 E WebView : error locking orientation: TypeError: Failed to execute 'lock' on 'ScreenOrientation': Illegal invocation, https://openwrt.jiaxin.fun:8920/web/22424.a73c495f009b853782de.chunk.js (1)
07-14 21:21:01.936 21876 21876 I WebView : Requesting url without automatic networking: https://openwrt.jiaxin.fun:8920/Sessions/Playing, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:01.954 21876 21876 I AssistStructure: Flattened final assist data: 4416 bytes, containing 1 windows, 10 views
07-14 21:21:02.024  9317  9660 E OpenGLRenderer: Unable to match the desired swap behavior.
07-14 21:21:02.045  2323  4838 D BatteryStatsService: notePemString  noteWhich: 49,arg1: 1080, arg2: 2400, arg3: 21876, arg4: 17, name: org.jellyfin.mobile
07-14 21:21:02.049 21876 27999 E OpenGLRenderer: Unable to match the desired swap behavior.
07-14 21:21:02.091 21876 21876 I WebView : Requesting url without automatic networking: https://openwrt.jiaxin.fun:8920/Sessions/Playing/Progress, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:03.990 21876 21876 I WebView : Sending web socket message: KeepAlive, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)
07-14 21:21:04.081 21876 21876 I WebView : Requesting url without automatic networking: https://openwrt.jiaxin.fun:8920/Sessions/Playing/Progress, https://openwrt.jiaxin.fun:8920/web/node_modules.jellyfin-apiclient.bundle.js?9410c8e21a4e2de14aaa (2)


### Application version

2.6.2

### Where did you install the app from?

Sideloaded APK (libre build)

### Device information

IQOO9

### Android version

Android 14

### Jellyfin server version

10.9.7

### Which video player implementations does this bug apply to?

- [X] Web player (default)
- [ ] Integrated player (ExoPlayer)
- [ ] External player (VLC, mpv, MX Player)
@jiaxinonly jiaxinonly added the bug Something isn't working label Jul 14, 2024
@philsward
Copy link

I'm seeing something similar on both Android and Android TV

A recent version seemed to get rid of the option to swap players which usually fixed the issue?

Oddly, some movies direct play play fine, others do not at all and require a transcoding @ 3Mbit or 5Mbit.

I'm not seeing anything in the logs that stand out as to why the video won't play.

I'm using Handbrake to encode as MKV at H.265 10-bit NVEnc if it matters...

Audio files vary. I generally only choose the highest quality audio file and also add a downmixed version as AAC:384:Stereo.

I prefer to direct-play it over LAN but the current workaround is to drop the bandwidth and force it to transcode.

FWIW I tried using VLC as an external player but it couldn't find the file or something. I didn't feel like trying to figure out why it was having issues. Transcoding is good enough for now.

Wish I could give more to help track this down outside of the "Me too" response.

@philsward
Copy link

philsward commented Sep 26, 2024

Update: It might be a bug with how Handbrake is encoding the mkv containers. That or with how the player in Jellyfin for Android is interpreting the container.

Try this:

After encoding in Handbrake, throw the video into MKVToolNix and have it multiplex the video as-is.

So far, the handful of videos I have done this to that won't play, are fixed of the problem where the HVEC 10-bit video won't direct play on Jellyfin for Android.

Doing some digging, it appears that if the "Tracks" are near the beginning of the container, no issues. However, if the "Tracks" are near the bottom of the container, it won't direct-play. I use the "Info tool" in MKVToolNix to check this which might help others with the same problem narrow down which files to focus on.

Bad (No "Tracks" near the beginning of the Segment)
2024-09-25 22_41_18-MKVToolNix GUI v87 0 ('Black as the Sky') 64-bit

Good ("Tracks" is near the beginning of the Segment)
2024-09-25 22_41_53-MKVToolNix GUI v87 0 ('Black as the Sky') 64-bit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants