<div dir="ltr">I notice the extradata byte missing but that's not the case, I believe, because <div>1. it's a different file (couldn't get Kodi to load the playlist for the background menu video)</div><div>2. I see that this value changes from video to video. </div><div><br></div><div>Now that I got it to actually request the configure method to the decoder this is the output from the logcat:</div><div><br></div><div>01-31 12:52:05.099  2467  2814 I OMXClient: IOmx service obtained<br>01-31 12:52:05.099 19053 19062 I OMXMaster: makeComponentInstance(OMX.Nvidia.h265.encoder) in omx@1.0-service process<br>01-31 12:52:05.133  3365  3365 D SurfaceFlinger: duplicate layer name: changing SurfaceView - org.xbmc.kodi19DV/org.xbmc.kodi19DV.Main to SurfaceView - org.xbmc.kodi19DV/org.xbmc.kodi19DV.Main#1<br>01-31 12:52:05.134  3365  3365 D SurfaceFlinger: duplicate layer name: changing Background for -SurfaceView - org.xbmc.kodi19DV/org.xbmc.kodi19DV.Main to Background for -SurfaceView - org.xbmc.kodi19DV/org.xbmc.kodi19DV.Main#1<br>01-31 12:52:05.167  2467  2467 D XBMCVideoPlayView: Created<br>01-31 12:52:05.167  2467  2467 D XBMCVideoPlayView: Changed, format:-2, width:1920, height:1080<br>01-31 12:52:05.168  2467  2654 D Kodi    : 2021-01-31 12:52:05.168 T:2654    DEBUG <general>: CDVDVideoCodecAndroidMediaCodec::InjectExtraData<br>01-31 12:52:05.168  2467  2654 D XBMCVideoPlayView: getSurface() = Surface(name=null)/@0x2c84213<br>01-31 12:52:05.171  2467  2813 D SurfaceUtils: connecting to surface 0x294e2f9010, reason connectToSurface<br>01-31 12:52:05.171  2467  2813 I MediaCodec: [OMX.Nvidia.h265.encoder] setting surface generation to 2526213<br>01-31 12:52:05.171  2467  2813 D SurfaceUtils: disconnecting from surface 0x294e2f9010, reason connectToSurface(reconnect)<br>01-31 12:52:05.172  2467  2813 D SurfaceUtils: connecting to surface 0x294e2f9010, reason connectToSurface(reconnect)<br>01-31 12:52:05.172 19053 19062 E OMXNodeInstance: setParameter(0x46927a80:Nvidia.h265.encoder, ParamStandardComponentRole(0x1000017)) ERROR: UnsupportedSetting(0x80001019)<br>01-31 12:52:05.173  2467  2814 W ACodec  : [OMX.Nvidia.h265.encoder] Failed to set standard component role 'video_decoder.hevc'.<br>01-31 12:52:05.173  2467  2814 E ACodec  : [OMX.Nvidia.h265.encoder] configureCodec returning error -1010<br>01-31 12:52:05.173  2467  2814 E ACodec  : signalError(omxError 0x80001001, internalError -1010)<br>01-31 12:52:05.173  2467  2813 E MediaCodec: Codec reported err 0xfffffc0e, actionCode 0, while in state 3<br>01-31 12:52:05.173  2467  2813 D SurfaceUtils: disconnecting from surface 0x294e2f9010, reason disconnectFromSurface<br>01-31 12:52:05.173  2467  2654 E MediaCodec: configure failed with err 0xfffffc0e, resetting...<br>01-31 12:52:05.176  2467  2814 I OMXClient: IOmx service obtained<br>01-31 12:52:05.176 19053 19062 I OMXMaster: makeComponentInstance(OMX.Nvidia.h265.encoder) in omx@1.0-service process<br>01-31 12:52:05.178  2467  2654 E Kodi    : 2021-01-31 12:52:05.178 T:2654    ERROR <general>: CDVDVideoCodecAndroidMediaCodec::ConfigureMediaCodec: configure failed<br></div><div><br></div><div>android works as a blackbox so send to the decoder, and the decoder will play. </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 31, 2021 at 12:14 PM Petri Hintukainen <<a href="mailto:phintuka@users.sourceforge.net">phintuka@users.sourceforge.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">su, 2021-01-31 kello 11:06 -0300, Vitor Dall'Acqua kirjoitti:<br>
> Already tested your latest commits, Petri. Much faster and the logs<br>
> are much cleaner. Thank you.<br>
<br>
I wrote those changes long time ago, but I didn't notice any measurable<br>
speedup (not even when playing .iso over SMB). I guess the difference<br>
is you're not using mounted filesystem, so you don't have any OS level<br>
caching.<br>
<br>
> I'm still working my way with the hardware rendering. <br>
> Sadly I can't debug this on windows with visual studio,<br>
> bitstreamconverter isn't used neither androidmediacodec obviously. <br>
> So, I'm back at changing things with a notepad, compiling and<br>
> testing. <br>
> <br>
> <br>
> Here is a log of how the m2ts stream played from a playlist should<br>
> work:<br>
> 2021-01-31 10:45:20.913 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open hints: Width 3840 x Height<br>
> 2160, Fpsrate 24000 / Fpsscale 1001, CodecID 173, Level 153, Profile<br>
> 2, PTS_invalid 0, Tag 1447904328, Extradata-Size: 115<br>
> 2021-01-31 10:45:20.913 T:19521    INFO <general>:<br>
> CBitstreamConverter::Open Invalid hvcC<br>
> 2021-01-31 10:45:20.913 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.mp2.decoder<br>
> 2021-01-31 10:45:20.917 T:13323    INFO <general>: [WHITELIST]<br>
> Searching the whitelist for: width: 3840, height: 2160, fps: 23.976,<br>
> 3D: false<br>
> 2021-01-31 10:45:20.917 T:13323   DEBUG <general>: [WHITELIST] Using<br>
> the default whitelist because the user whitelist is empty<br>
> 2021-01-31 10:45:20.919 T:13323   DEBUG <general>: [WHITELIST]<br>
> Searching for an exact resolution with an exact refresh rate<br>
> 2021-01-31 10:45:20.920 T:13323   DEBUG <general>: [WHITELIST]<br>
> Matched an exact resolution with an exact refresh rate 3840x2160 @<br>
> 23.976025 - Full Screen (27)<br>
> 2021-01-31 10:45:20.920 T:13323    INFO <general>: Display resolution<br>
> ADJUST : 3840x2160 @ 23.976025 - Full Screen (27) (weight: 0.000)<br>
> 2021-01-31 10:45:20.924 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.wma.decoder<br>
> 2021-01-31 10:45:20.924 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.h264.decode<br>
> 2021-01-31 10:45:20.925 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.DOVI.decode<br>
> 2021-01-31 10:45:20.925 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.h263.decode<br>
> 2021-01-31 10:45:20.926 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open Testing<br>
> codec:OMX.Nvidia.h265.decode<br>
> 2021-01-31 10:45:20.927 T:13332   DEBUG <general>: Could not acquire<br>
> timestamp<br>
> 2021-01-31 10:45:21.073 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open<br>
> m_codecname(OMX.Nvidia.h265.decode), colorFormat(2135033992)<br>
> 2021-01-31 10:45:21.073 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open<br>
> m_codecname(OMX.Nvidia.h265.decode), colorFormat(21)<br>
> 2021-01-31 10:45:21.163 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::InjectExtraData<br>
> 2021-01-31 10:45:21.220 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec:: width(3840), height(2160),<br>
> stride(0), slice-height(0), color-format(0)<br>
> 2021-01-31 10:45:21.220 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec:: crop-left(0), crop-top(0), crop-<br>
> right(3839), crop-bottom(2159)<br>
> 2021-01-31 10:45:21.220 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec:: Multi-Surface Rendering<br>
> 2021-01-31 10:45:21.220 T:19521    INFO <general>:<br>
> CDVDVideoCodecAndroidMediaCodec:: Open Android MediaCodec<br>
> OMX.Nvidia.h265.decode<br>
> 2021-01-31 10:45:21.220 T:19521   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::UpdateFpsDuration fpsRate:24000<br>
> fpsscale:1001, fpsDur:41708<br>
> 2021-01-31 10:45:21.221 T:19521   DEBUG <general>:<br>
> CVideoPlayerVideo::OpenStream - open stream with codec id: 173<br>
> <br>
> and this is how it works during a menu:<br>
> <br>
> <br>
> 2021-01-31 10:33:58.032 T:13409    INFO <general>:<br>
> ffmpeg[0x2965bbd040X]:   Duration: N/A, start: 600.000000, bitrate:<br>
> N/A<br>
> 2021-01-31 10:33:58.032 T:13409    INFO <general>:<br>
> ffmpeg[0x2965bbd040X]:   Program 1 <br>
> 2021-01-31 10:33:58.033 T:13409    INFO <general>:<br>
> ffmpeg[0x2965bbd040X]:     Stream #0:0[0x1011]: Video: hevc (Main 10)<br>
> (HDMV / 0x564D4448), yuv420p10le(tv, bt2020nc/bt2020/smpte2084),<br>
> 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 23.98<br>
> tbc<br>
> 2021-01-31 10:33:58.033 T:13409   DEBUG <general>:<br>
> CDVDDemuxFFmpeg::AddStream ID: 0<br>
> 2021-01-31 10:33:58.033 T:13409    INFO <general>: Opening stream: 0<br>
> source: 256<br>
> 2021-01-31 10:33:58.033 T:13409    INFO <general>: [WHITELIST]<br>
> Searching the whitelist for: width: 3840, height: 2160, fps: 23.976,<br>
> 3D: false<br>
> 2021-01-31 10:33:58.033 T:13409   DEBUG <general>: [WHITELIST] Using<br>
> the default whitelist because the user whitelist is empty<br>
> 2021-01-31 10:33:58.034 T:13409   DEBUG <general>: [WHITELIST]<br>
> Searching for an exact resolution with an exact refresh rate<br>
> 2021-01-31 10:33:58.034 T:13409   DEBUG <general>: [WHITELIST]<br>
> Matched an exact resolution with an exact refresh rate 3840x2160 @<br>
> 23.976025 - Full Screen (27)<br>
> 2021-01-31 10:33:58.034 T:13409    INFO <general>: Display resolution<br>
> ADJUST : 3840x2160 @ 23.976025 - Full Screen (27) (weight: 0.000)<br>
> 2021-01-31 10:33:58.069 T:13409    INFO <general>: Creating video<br>
> codec with codec id: 173<br>
> 2021-01-31 10:33:58.071 T:13409   DEBUG <general>:<br>
> CDVDVideoCodecAndroidMediaCodec::Open hints: Width 3840 x Height<br>
> 2160, Fpsrate 24000 / Fpsscale 1001, CodecID 173, Level 153, Profile<br>
> 2, PTS_invalid 0, Tag 1447904328, Extradata-Size: 114<br>
> 2021-01-31 10:33:58.071 T:13409    INFO <general>:<br>
> CBitstreamConverter::Open Invalid hvcC<br>
> 2021-01-31 10:33:58.073 T:13409   ERROR <general>:<br>
> CDVDVideoCodecAndroidMediaCodec:: Failed to create Android MediaCodec<br>
> 2021-01-31 10:33:58.074 T:13409    INFO <general>:<br>
> CDVDVideoCodecFFmpeg::Open() Using codec: HEVC (High Efficiency Video<br>
> Coding)<br>
> 2021-01-31 10:33:58.074 T:13409   DEBUG <general>:<br>
> CDVDVideoCodecFFmpeg - Updated codec: ff-hevc<br>
> 2021-01-31 10:33:58.074 T:13409   DEBUG <general>:<br>
> CVideoPlayerVideo::OpenStream - open stream with codec id: 173<br>
> <br>
> It's not the exact same stream but you get the idea. <br>
> It is failing to use the nvidia decoder: OMX.Nvidia.h265.decode and<br>
> using ffmpeg as software rendering. <br>
> <br>
>  <br>
> <a href="https://github.com/xbmc/xbmc/blob/c01b0f5778c7397325e29238a861d8dc62289e2b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp" rel="noreferrer" target="_blank">https://github.com/xbmc/xbmc/blob/c01b0f5778c7397325e29238a861d8dc62289e2b/xbmc/cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodecAndroidMediaCodec.cpp</a><br>
> <br>
> removing the goto fail results in crash. <br>
> basically it is failing to get m_codec. <br>
> <br>
> But as you can see the invalid hvcC isn't the problem. It must be<br>
> something in this decoder instructions.<br>
<br>
In some of the older logs it looks like codec extradata is missing when<br>
opening the codec ?<br>
And, in this log, there is one byte difference in extradata size.<br>
<br>
Maybe you could log extradata size and few first bytes in<br>
InjectExtradata() ?<br>
<br>
<br>
_______________________________________________<br>
libbluray-devel mailing list<br>
<a href="mailto:libbluray-devel@videolan.org" target="_blank">libbluray-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/libbluray-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/listinfo/libbluray-devel</a><br>
</blockquote></div>