wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
197 stars 31 forks source link

Drop frames problem fps is very bad #134

Open isnzenauz opened 3 months ago

isnzenauz commented 3 months ago

hi dear, i have problem with fvp drop frames on android (mobile, tv) im trying to use AMediaCodec and FFmpeg but his give me same results frame drops i test it in: XIAOMI MI BOX S2 (Android), And mobile RED MAGIC 6, Poco x3 Pro, Tecno Spark 8 tecno spark 10 pro, give me same results, drop frames in LIVE M3u8, and Movies MP4, MKV

I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 and the pakage is com.poppycorn.rax.poppycorn I/AudioTrack(21381): AudioTrack::setVolume L:1.000000 R:1.000000 I/AudioTrack(21381): AudioTrack::setVolume L:1.0

The log note give me anything about dropframes

wang-bin commented 3 months ago

please show me the log following issue template

azukaar commented 2 months ago

Experiencing the same issue on Windows. I am using the Player low level object and showing the texture:

            Center(
              child: ValueListenableBuilder<int?>(
                valueListenable: player.textureId,
                builder: (context, id, _) => id == null
                    ? const SizedBox.shrink()
                    : Texture(textureId: id),
              ),
            ),

And even with a bare bone UI (nothing else but the player's texture) I get severe frame dropping compared to the vanilla Flutter player.

Here's the logs although, ignore the buffering my internet was a bit unstable at that moment: https://pastebin.com/VczcUvV7

I also have a sample to showcase the issue:

https://github.com/user-attachments/assets/0e79f876-7879-4789-a67d-631d494712bf

azukaar commented 2 months ago

In case it's not clear enough in the sample, here you have another player at the top and FVP at the bottom. You can clearly see the dropped frame after slowing down the footage

https://github.com/user-attachments/assets/658f66c0-4cea-44dc-af1c-5507cf653792

wang-bin commented 2 months ago

@azukaar

flutter's rendering performance is very poor, comparing to my Qt examples, higher cpu and gpu load, lower fps. It's texture api for native plugins is not good enough, we can't know the rendering context used by flutter gui, so in fvp I create another context to render video. but it's impossible to sync 2 contexts in fvp without knowing flutter's context, so if flutter does not handle resource synchronization correctly(I guess yes), you will see tearing. You can download libmdk and run ./glfwplay.exe -c:v MFT -d3d11 -log all $video_url to see drop count, if you can reproduce the same issue in glfwplay, then it's a bug in libmdk. glfwplay is a simple example without ui.

What is vanilla Flutter player?

isnzenauz commented 2 months ago

THE PROBLEM IN ANDROID TV,

wang-bin commented 2 months ago

THE PROBLEM IN ANDROID TV,

I need the log, otherwise I can't help

azukaar commented 2 months ago

flutter's rendering performance is very poor, comparing to my Qt examples, higher cpu and gpu load, lower fps. It's texture api for native plugins is not good enough

is there a way to fix this? for example adding a buffer for the texture synchronisation?

What is vanilla Flutter player?

I mean the basic VideoPlayer component in Flutter. It does not have the chopiness issue

You can download libmdk and run ./glfwplay.exe

OK so I tried it. It does work much better but I think. See the footage. First half is MDK, second half is MPV. BTW there is an issue in glfwplay.exe I think because cli options (like adding a video URL or adding -log all) don't do anything, so unfortunately I wasn't able to get any log.

https://github.com/user-attachments/assets/d580236c-33ba-47d2-bfc2-a2580609d62f

wang-bin commented 2 months ago

@azukaar

is there a way to fix this? for example adding a buffer for the texture synchronisation?

Impossible to fix tearing issue. Must fix in flutter side.

I mean the basic VideoPlayer component in Flutter. It does not have the chopiness issue

which platform?

BTW there is an issue in glfwplay.exe I think because cli options (like adding a video URL or adding -log all) don't do anything, so unfortunately I wasn't able to get any log.

I run commands in msys2, then log will print to msys2 terminal. If no msys2, you can add -logfile glfwplay.log in the command line, then log will save to a file, but drop info is only visible in terminal. To play a local file, you can also run install.bat as admin, then right click a video file you can choose glfwplay to open.

azukaar commented 2 months ago

Impossible to fix tearing issue. Must fix in flutter side.

It's not a tearing issue, the issue is frame dropping / stuttering. And when using the Flutter Video_player or Media_kit packages instead, there's no issues at all, that's why I think it comes from the FVP package (not MDK lib itself, just the way the binding to Flutter is). The video_player and media_kit also use a binding on Texture Component so it is capable or rendering the video without stutter for sure. I am having trouble finding the correct root cause thought, still investigating

Also see for the terminal, if I run the command, the terminal detaches:

image

wang-bin commented 2 months ago

It's not a tearing issue, the issue is frame dropping / stuttering

I see tearing in https://github.com/wang-bin/fvp/issues/134#issuecomment-2335153764

./glfwplay.exe -log all -logfile glfwplay.log -c:v MFT -d3d11 $video_url will save log to a file. Or install msys2 and run command in msys2 terminal to see log in terminal.

azukaar commented 2 months ago

I see tearing in #134 (comment)

No it's not tearing, I superposed two video. The top half is MPV, the bottom half is MDK

wang-bin commented 2 months ago

@azukaar

I see tearing in #134 (comment)

No it's not tearing, I superposed two video. The top half is MPV, the bottom half is MDK

I edit the screenshot. Do you mean there are 2 players in your recorded video, top left triangle is mpv, bottom right triangle is mdk? What I see is tearing at diagonal.

fvp134
azukaar commented 2 months ago

yes correct that is it i edited the video to show the difference better

DovgopolsSerj commented 2 months ago

is there a way to fix this? for example adding a buffer for the texture synchronisation?

Be sure to specify the texture size in the updateTexture(width, heigth) method. I've encountered disgusting lags when playing 4K videos. If you do not specify the size, the plugin gives the flutter a full texture with a size of 3840×2160 and the flutter scales it to the size of the window. If you specify the texture size, the plugin will adjust the size itself and the flutter needs to perform much fewer actions.

azukaar commented 2 months ago

I see thanks, I am assuming that only is relevant when the viewport is not 4k

wang-bin commented 2 months ago

is there a way to fix this? for example adding a buffer for the texture synchronisation?

Be sure to specify the texture size in the updateTexture(width, heigth) method. I've encountered disgusting lags when playing 4K videos. If you do not specify the size, the plugin gives the flutter a full texture with a size of 3840×2160 and the flutter scales it to the size of the window. If you specify the texture size, the plugin will adjust the size itself and the flutter needs to perform much fewer actions.

try master branch, and set max texture size as screen size or smaller

registerWith(options: {
     'maxWidth': screenWidth,
     'maxHeight': screenHeight,
   });
isnzenauz commented 2 months ago

https://github.com/user-attachments/assets/d76de813-a393-4c22-bee6-5d0fcb298270

Look drops in the apk test

isnzenauz commented 2 months ago

4k live Android mobile

https://github.com/user-attachments/assets/5d75c709-01d4-452d-b94c-bf076b103f36

isnzenauz commented 2 months ago

Same Channel 4k working good in vlc player

https://github.com/user-attachments/assets/8e85e87d-7755-4422-9fbc-1d642d67e0d2

DovgopolsSerj commented 2 months ago

Same Channel 4k working good in vlc player

Yes. Flutter is not the best choice for a video application. It copies each frame to his own scene. This is a very large volume of more than 9Mb for a 2000x1200 screen. I spent a lot of time and now regret this choice. I found a temporary solution for android. I took the native implementation of the mdk-sdk and brought out its SurfaceView as the root of FragmentActivity and a transparent FlutterFragment is located above it. Fragment, respectively, is my entire former application, only without the video texture. The performance is staggering.

DovgopolsSerj commented 2 months ago

try master branch, and set max texture size as screen size or smaller

It had no effect. I did an experiment. I took the mdk-sdk and brought it to Flutter as native Android views. the example is taken from here: https://github.com/wang-bin/mdk-android In my app:

class NativeView implements PlatformView {
    private SurfaceView view;
    private MDKPlayer mPlayer;
    private static final String videoURL = Environment.getExternalStorageDirectory().getPath()
            + "/Download/test4k.webm";

    NativeView(@NonNull Context context, int id, @Nullable Map<String, Object> creationParams) {
        view = new SurfaceView(context);
        mPlayer = new MDKPlayer();
        mPlayer.setSurfaceView(view);
        mPlayer.setMedia(videoURL);
        mPlayer.setState(PlaybackState.PLAYING);
    }

    @Override
    public View getView() {
        return view;
    }

    @Override
    public void dispose() {
        mPlayer.surfaceDestroyed(view.getHolder());
        view.getHolder().getSurface().release();
        mPlayer.setState(PlaybackState.STOPPED); 
    }
}

In Flutter:

  Widget build(BuildContext context) {
    return Scaffold(
      body: AndroidView(
        viewType: "videoPlayer",
        layoutDirection: TextDirection.ltr,
        creationParams: creationParams,
        creationParamsCodec: const StandardMessageCodec(),
      ),
    );

In this case, there are no lags. Although Native View uses the same texture copying technology.

Unfortunately, I can't build such an option in release mode. mdk-sdk in build.gradle contains: minifyEnabled false But it is redefined by flutter and flutter itself is not going with this option. As a result, the debug version works and the release crashes with an error.

azukaar commented 2 months ago

Although Native View uses the same texture copying technology.

I think this is the important point. Every players uses the same technique I think but only the MDK-flutter one seems to have the lags. I think there might just be a bug rather than a hard Flutter limitation. Is there some additional computing that block the thread in the MDK flutter lib may be? Something to do with VSYNC? I am not really sure

DovgopolsSerj commented 2 months ago

Maybe it has some meaning. There is a constant message in the logs, similar to missed frames. But I do not know exactly what it means.

W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented D/ImageReaderSurfaceProducer(10596): ImageTextureEntry can't wait on the fence on Android < 33 W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented I/chatty (10596): uid=10167(ru.sserjirk.flvideo) 1.raster identical 4 lines W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented I/chatty (10596): uid=10167(ru.sserjirk.flvideo) 1.raster identical 8 lines W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented W/vulkan (10596): vkAcquireNextImageKHR: non-infinite timeouts not yet implemented

isnzenauz commented 2 months ago

any news ?

DovgopolsSerj commented 2 months ago

any news ?

Well, this is not a package issue. It's a terrible texture job. Flutter copies the buffer twice. This article describes how a similar problem was solved by reassembling the flutter: https://www.mo4tech.com/real-time-rendering-is-not-a-dream-optimizing-the-rendering-performance-of-flutter-surrounding-textures-through-shared-memory.html Regarding the media_kit package, I dug into the source code. The author uses some pretty dirty hacks. On the one hand, this solves the problem of lags, on the other hand, it causes a huge overhead. The phone is literally heating up in my hand. And on Windows, it loads two cores from the i7-12700H processor by almost 80% and overclocks the processor to 2.9 Ghz, and when paused, the frequency drops to 1.3 Ghz. We will be waiting for the release of the flutter_gpu project, where direct access to gpu memory is expected. I also saw an onFrame callback in the mdk-sdk of the player, which is not implemented in fvp. I would like to try to subscribe to this callback and draw the current frame directly on Canvas. But my C knowledge is not enough for such an experiment.

DovgopolsSerj commented 2 months ago

There was something strange. Something is happening when the video and audio are synchronized. If you disable audio decoding: player.setDecoders(MediaType.audio, [""]); That video in the Texture becomes smooth as when using the native Surfaceview in the mdk-sdk examples. I have tested this on both small 720p and 4K files, the video is equally smooth everywhere without an audio track.

wang-bin commented 1 month ago

There was something strange. Something is happening when the video and audio are synchronized. If you disable audio decoding: player.setDecoders(MediaType.audio, [""]); That video in the Texture becomes smooth as when using the native Surfaceview in the mdk-sdk examples. I have tested this on both small 720p and 4K files, the video is equally smooth everywhere without an audio track.

thanks for your information. I guess the reason is audio time is not accurate. Can you test other platforms?

DovgopolsSerj commented 1 month ago

Can you test other platforms?

On Windows, deleting the audio decoder has no result. But here is another obvious bug. I figured out how to get around it a long time ago. Instead of Texture, I use the Stateful class. The point is to mark the widget for updating on each frame of the Flutter rendering. Then the video is not much different from the native FFplay player. Which is interesting. If there is one such widget, then you can add as many Textures as you want with the same textureID and everything will be smooth. This is how it looks in a simple version, but of course I have subscriptions to the player status so that the update only works during playback.

class VideoTexture extends StatefulWidget {
  final int textureId;

  const VideoTexture({required this.textureId, super.key});

  @override
  State<VideoTexture> createState() => _VideoTextureState();
}

class _VideoTextureState extends State<VideoTexture> {
  @override
  Widget build(BuildContext context) {
    Future.delayed(
      const Duration(microseconds: 10),
      () => setState(() {}),
    );
    return Texture(
      textureId: widget.textureId,
    );
  }
}
wang-bin commented 1 month ago

for android, use the latest libmdk via environment var FVP_DEPS_LATEST=1. The result should be better.

isnzenauz commented 1 month ago

Mr Wang-Bin this build: https://github.com/wang-bin/fvp/actions/runs/11199447631/job/31131798284

Working good in android can you do this build in pub.dev to use it ?!

wang-bin commented 1 month ago

Mr Wang-Bin this build: https://github.com/wang-bin/fvp/actions/runs/11199447631/job/31131798284

Working good in android can you do this build in pub.dev to use it ?!

in a few days

isnzenauz commented 1 month ago

Mr Wang-Bin this build: https://github.com/wang-bin/fvp/actions/runs/11199447631/job/31131798284 Working good in android can you do this build in pub.dev to use it ?!

in a few days

I hope to not forget it 🥇 thank you.

wang-bin commented 1 month ago

Mr Wang-Bin this build: https://github.com/wang-bin/fvp/actions/runs/11199447631/job/31131798284 Working good in android can you do this build in pub.dev to use it ?!

in a few days

I hope to not forget it 🥇 thank you.

try 0.27.0

isnzenauz commented 1 month ago

thank you so mush i will try it and back to you soooooon

DovgopolsSerj commented 1 month ago

Today's nightly build of libmdk works fine on android. But sourceforge did not allow it to be downloaded for several days. I gave the assembly for apple to all requests. And the auto-upload during the build loads the version from 30.08 on which the frames are lost. I think the complete closure of the problem will be when the mdk-sdk build number is updated.

isnzenauz commented 1 month ago

Perfect Job Mr Wang Bin, it working good in HD, FHD, not like before, no more drops. But in 4k ( lives, movies ) still have mush drops, in vlc and media kit in the same device 4k working good,

thank you so mush bro i respect you job its very good <3

azukaar commented 1 month ago

Thanks! On Android, FHD does work well indeed but 4K is impossible (despite being able to play 4k with other players). I noted two things:

On my phone (where playback is choppy) I have these logs in loop:

mdk.FINE: 18:08:51.777: texture created: 4
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: texture created: 4
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: texture created: 4
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: texture created: 4
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: texture created: 4
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: plane linesize 0: padded = 2908, effective = 2908. theoretical plane size: 727x60. coordinate crop: 1.000000
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: plane linesize 0: padded = 2908, effective = 2908. theoretical plane size: 727x60. coordinate crop: 1.000000
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: plane linesize 0: padded = 2908, effective = 2908. theoretical plane size: 727x60. coordinate crop: 1.000000
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: plane linesize 0: padded = 2908, effective = 2908. theoretical plane size: 727x60. coordinate crop: 1.000000
2024-10-12 18:08:51.777 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.777: plane linesize 0: padded = 2908, effective = 2908. theoretical plane size: 727x60. coordinate crop: 1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: crop_w=1.000000=>1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: crop_w=1.000000=>1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: crop_w=1.000000=>1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: crop_w=1.000000=>1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: crop_w=1.000000=>1.000000
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: texture 0: 727x60
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: texture 0: 727x60
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: texture 0: 727x60
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: texture 0: 727x60
2024-10-12 18:08:51.778 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:51.778: texture 0: 727x60
2024-10-12 18:08:52.042 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:52.041: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:52.042 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:52.041: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:52.042 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:52.041: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:52.042 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:52.041: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:52.042 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:52.041: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:53.511 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:53.511: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:53.511 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:53.511: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:53.511 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:53.511: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:53.511 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:53.511: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:53.511 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:53.511: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:55.018 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:55.018: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:55.018 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:55.018: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:55.018 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:55.018: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:55.018 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:55.018: [FFmpeg:hevc] Unknown profile bitstream
2024-10-12 18:08:55.018 25890-26004 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:08:55.018: [FFmpeg:hevc] Unknown profile bitstream

is it normal?

On my Nvidia Shield, the playback does not start in 4k (but works well in FHD). The app just crash. Here are the logs. The timeout and "stop called" are repeated until it crashes completely (I hear 1sec of sound, and no image).

2024-10-12 18:14:38.724 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:38.713: texture 1: 1920x1080
2024-10-12 18:14:38.913 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.913 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 6656 frames delivered
2024-10-12 18:14:38.942 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.942 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.958 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.958 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.965 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.965 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.966 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.966 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.967 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.967 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.968 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.968 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.969 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.969 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.970 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.970 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:38.983 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:38.980: texture 2: 1920x1080
2024-10-12 18:14:38.986 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:38.986 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.497 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.496: material changed: 0x0 => 0x4b85
2024-10-12 18:14:39.497 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.497: planar: 1, alpha: 0, texture 2d: 1, external: 0, rg semi-planar: 0, 16=>8: 0, xyz: 0, yuv sampler: 0, generic packed yuv: 0, cocgsy: 0, primaries diff: 1, trc: 3=>1, tone map: 1
2024-10-12 18:14:39.497 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.497: bind attribute: a_Position => 0
2024-10-12 18:14:39.498 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.498: bind attribute: a_TexCoords0 => 1
2024-10-12 18:14:39.552 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.552 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 768 frames delivered
2024-10-12 18:14:39.557 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.557: UBO ConstBuffer: 0/4294967295
2024-10-12 18:14:39.557 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.557: uniform locations:
2024-10-12 18:14:39.557 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.557: u_Texture0: 2
2024-10-12 18:14:39.558 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.557: u_Texture1: 3
2024-10-12 18:14:39.558 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.558: u_Texture2: 4
2024-10-12 18:14:39.564 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.558: u_Matrix: 0, u_TexMatrix: 1
2024-10-12 18:14:39.565 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.564: build glsl elapsed: 250881us
2024-10-12 18:14:39.565 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.565: creating vbo...
2024-10-12 18:14:39.565 21733-21761 flutter                 com.azukaar.aurora                   I  mdk.FINE: 18:14:39.565: creating vao...
2024-10-12 18:14:39.566 21733-21761 flutter                 com.azukaar.aurora                   I  fvp.FINE: 18:14:39.566: 1058875561 player1125388768 onEvent: render.video - 1st_frame - 626
2024-10-12 18:14:39.574 21733-22472 libOpenSLES             com.azukaar.aurora                   E  frameworks/wilhelm/src/itf/IBufferQueue.cpp:56: pthread_mutex_lock_timeout_np returned 110
2024-10-12 18:14:39.576 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.576 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.577 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.577 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.578 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.578 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.578 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.578 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.580 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
2024-10-12 18:14:39.580 21733-22474 AudioTrack              com.azukaar.aurora                   D  stop(1688): called with 256 frames delivered
2024-10-12 18:14:39.580 21733-22474 .azukaar.auror          com.azukaar.aurora                   D  PlayerBase::stop() from IPlayer
wang-bin commented 1 month ago

@azukaar it's using software decoder instead of hardware decoder, performance will be poor. can you show me the complete log so i can know what happens? your phone log repeats several times, it's weird.

https://github.com/wang-bin/mdk-examples/blob/master/flutter/simple/lib/main.dart you can use this example to test, logging is enabled there.

wang-bin commented 1 month ago

Perfect Job Mr Wang Bin, it working good in HD, FHD, not like before, no more drops. But in 4k ( lives, movies ) still have mush drops, in vlc and media kit in the same device 4k working good,

thank you so mush bro i respect you job its very good <3

can you show me 4k playback log? you can use this example to test: https://github.com/wang-bin/mdk-examples/blob/master/flutter/simple/lib/main.dart

azukaar commented 1 month ago

@wang-bin thanks for your answer, it is weird that it's using the software decoder, I am doing

  void _initializePlayer() {
    print('VP: Initializing player');
    print('_videoState.position: ${_videoState.position}');

    Logger.root.level = Level.ALL;
    final df = DateFormat("HH:mm:ss.SSS");
    Logger.root.onRecord.listen((record) {
      print(
          '${record.loggerName}.${record.level.name}: ${df.format(record.time)}: ${record.message}');
    });

    fvp.registerWith();

    player.media = "${widget.item.originURL}${widget.item.stream}";
    player.state = _videoState.state;
    player.updateTexture();

    player.setBufferRange(min: 3000, max: 240000);

    timer = Timer.periodic(Duration(seconds: 5), (Timer t) => onTick());
  }

i was assuming that registerWith without decoder would select the default decoders for each platform (at least that's what I see in the code). Also in the logs I can see that it selected FFmpeg as decoder no?

Here are the logs on the phone when playing the 4k video: https://pastebin.com/u589xTYh

wang-bin commented 1 month ago

@wang-bin thanks for your answer, it is weird that it's using the software decoder, I am doing

  void _initializePlayer() {
    print('VP: Initializing player');
    print('_videoState.position: ${_videoState.position}');

    Logger.root.level = Level.ALL;
    final df = DateFormat("HH:mm:ss.SSS");
    Logger.root.onRecord.listen((record) {
      print(
          '${record.loggerName}.${record.level.name}: ${df.format(record.time)}: ${record.message}');
    });

    fvp.registerWith();

    player.media = "${widget.item.originURL}${widget.item.stream}";
    player.state = _videoState.state;
    player.updateTexture();

    player.setBufferRange(min: 3000, max: 240000);

    timer = Timer.periodic(Duration(seconds: 5), (Timer t) => onTick());
  }

i was assuming that registerWith without decoder would select the default decoders for each platform (at least that's what I see in the code). Also in the logs I can see that it selected FFmpeg as decoder no?

Here are the logs on the phone when playing the 4k video: https://pastebin.com/u589xTYh

If you are using backend api, you have to set hardware decoders manually like this https://github.com/wang-bin/fvp/blob/v0.27.0/lib/src/video_player_mdk.dart#L149-L158

and https://github.com/wang-bin/fvp/blob/v0.27.0/lib/src/video_player_mdk.dart#L220

btw, the latest release add more features in VideoPlayerController via extension, so we can reuse video_player code with most of backend api features, and no need to add configurations like video_player_mdk.dart(e.g. hardware decoder). see https://pub.dev/documentation/fvp/latest/fvp/FVPControllerExtensions.html

wang-bin commented 1 month ago

Today's nightly build of libmdk works fine on android. But sourceforge did not allow it to be downloaded for several days.

I have the same problem, github actions can download them, I don't know why.

I gave the assembly for apple to all requests. And the auto-upload during the build loads the version from 30.08 on which the frames are lost.

?

I think the complete closure of the problem will be when the mdk-sdk build number is updated.

for macos and ios, increasing mdk version in fvp.podspec will download libmdk again, but there's no new libmdk release, so you have to clean up cocoapods cache

azukaar commented 1 month ago

OK that makes sense, it works now, the only last issue I am having is the crash on the NVidia Shield with the 4k video and the log I posted before. I'll create a different ticket for it Thanks a lot for your help, and great job honestly

DovgopolsSerj commented 1 month ago

?

I do not know exactly what kind of problem soruceforge has. I go to the nightly builds page, click download mdk-sdk-android.7z and... It is being downloaded mdk-sdk-apple.zip . Similarly, in android studio, I completely clean the flutter clean cache. I am running the build and it is impossible to download the mdk-sdk-android.7z. Just go to github yourself and put this archive in \fvp-xxx\android yourself. This has been going on for the last week.

wang-bin commented 1 month ago

OK that makes sense, it works now, the only last issue I am having is the crash on the NVidia Shield with the 4k video and the log I posted before. I'll create a different ticket for it Thanks a lot for your help, and great job honestly

I your libmdk.so, libmdk.so.dsym, and crash info from logcat, run

adb logcat -c
adb logcat 2>&1 |tee test.log

before playing a video, when crash occurs, wait a few seconds then ctrl+c to stop logging , and send me test.log, or show me backtrace starting with *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** in the log. You can also copy the log from android studio, log filter must be empty, otherwise backtrace may be incomplete.

azukaar commented 1 month ago

Here's the latest log from my NVidia shield with 0.27, it seems to mostly work but I still have choppy playback (subtle but present lags every few seconds) The thing is the lags are present regardless of the movie played, even a "small" movie of 2gb will have the same lags, which leads me to believe that it's not necessarily a performance issue. Would it be possible for the hardware decoder to not properly recognize the hardward (because the Shield is older) and run in CPU? How would I debug that?

Here are the logs for info: https://pastebin.com/69ia7J81

``` I/flutter (28686): VP: Initializing player I/flutter (28686): fvp.FINE: 15:43:06.682: registerVideoPlayerPlatformsWith: null W/libOpenSLES(28686): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) W/libOpenSLES(28686): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) I/flutter (28686): mdk.INFO: 15:43:06.863: 0.29.1 (git dba5c89) - Multimedia Development Kit. Copyright (c) 2016-2024 WangBin(QtAV author) I/flutter (28686): Build for: Android21/30 4KB ARMv7; libc++180000; Clang18.0.2 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) NDK27.1.12297006; 13:28:33 Oct 11 2024 I/flutter (28686): mdk.FINE: 15:43:06.863: global option: d3d11.sync.cpu = 1 I/flutter (28686): mdk.FINE: 15:43:06.864: global option: UserAddress = 0x90f86564 I/flutter (28686): mdk.FINE: 15:43:06.864: global option: subtitle.fonts.file = assets://flutter_assets/assets/subfont.ttf I/flutter (28686): mdk.FINE: 15:43:06.865: default 0x43142020 new FrameReader... I/flutter (28686): mdk.FINE: 15:43:06.865: Registered audio backends: OpenSL AudioTrack null I/flutter (28686): mdk.FINE: 15:43:06.865: OpenSL extensions: ANDROID_SDK_LEVEL_30 I/flutter (28686): mdk.FINE: 15:43:06.866: default 0x43142150 new FrameReader... I/flutter (28686): mdk.FINE: 15:43:06.866: Registered audio backends: OpenSL AudioTrack null I/flutter (28686): mdk.FINE: 15:43:06.866: OpenSL extensions: ANDROID_SDK_LEVEL_30 I/flutter (28686): mdk.FINE: 15:43:06.866: 0x42b8e470 player.Player() I/flutter (28686): mdk.FINE: 15:43:06.867: 0x42b8e470 player.onEvent(1, 0x9061b598) I/flutter (28686): mdk.FINE: 15:43:06.867: 0x42b8e470 player.onStateChanged(1) I/flutter (28686): mdk.FINE: 15:43:06.867: 0x42b8e470 player.onMediaStatus(1) I/flutter (28686): mdk.FINE: 15:43:06.868: 0x42b8e470 player.setDecoders(video, [AMediaCodec, FFmpeg]) I/flutter (28686): mdk.FINE: 15:43:06.868: video decoders: "AMediaCodec", "FFmpeg" I/flutter (28686): mdk.FINE: 15:43:06.868: video decoders: "AMediaCodec", "FFmpeg" I/flutter (28686): mdk.FINE: 15:43:06.869: 0x42b8e470 player.setMedia(http://asdfasf.asfdasdf/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv) I/flutter (28686): mdk.FINE: 15:43:06.869: default FrameReader0x43142020 state: 0=>0=>0, 0 I/flutter (28686): mdk.INFO: 15:43:06.869: default0x43142020 stop, current state: , drequested: 0 I/flutter (28686): mdk.FINE: 15:43:06.870: default FrameReader0x43142020 state: 0=>0=>0, 0 I/flutter (28686): mdk.INFO: 15:43:06.870: default0x43142020 stop, current state: , drequested: 0 I/flutter (28686): mdk.FINE: 15:43:06.871: 0x42b8e470 player.set(1) I/flutter (28686): mdk.FINE: 15:43:06.871: 0xa6101500 virtual void mdk::MediaControlPush::setState(PlaybackState)@1072 requested state 0=>1, current state 0. status: 0 I/flutter (28686): mdk.FINE: 15:43:06.871: default 0x43142020 FrameReader.start(0, ...) I/flutter (28686): mdk.FINE: 15:43:06.872: default 0x43142020 FrameReader::update MediaStatus 0=>0X2 I/flutter (28686): fvp.FINE: 15:43:06.882: 365795691 player1125400624 onMediaStatus: MediaStatus(noMedia) => MediaStatus(+loading) I/flutter (28686): mdk.FINE: 15:43:06.887: default FrameReader0x43142020 state: 0=>0=>1, 0 I/flutter (28686): mdk.FINE: 15:43:06.888: default FrameReader0x43142020 state: 0=>1=>1, 0 I/flutter (28686): mdk.FINE: 15:43:06.888: 0x43142020start frame reader thread: -1489514048 I/flutter (28686): mdk.FINE: 15:43:06.889: Selected avformat runtime version: 61.8.100 (build: 61.8.100), license: LGPL version 2.1 or later I/flutter (28686): mdk.FINE: 15:43:06.889: avformat_version0x977a8de1 I/flutter (28686): mdk.FINE: 15:43:06.890: Trying MediaIO FFmpeg I/flutter (28686): mdk.FINE: 15:43:06.890: 0x42ad42f0 open url: http://asdfasf.asfdasdf/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv I/flutter (28686): mdk.FINE: 15:43:06.890: FFmpeg/Libav runtime git-2024-09-29-9d3cdf8-avbuild I/flutter (28686): mdk.FINE: 15:43:06.891: Selected avutil runtime version: 59.40.100 (build: 59.40.100), license: LGPL version 2.1 or later I/flutter (28686): mdk.FINE: 15:43:06.891: global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --enable-mediacodec --enable-jni --disable-vulkan --disable-v4l2-m2m --disable-indevs --enable-indev=android_camera --disable-outdevs --disable-postproc --enable-thumb --enable-neon --ar=llvm-ar --ranlib=llvm-ranlib --nm=llvm-nm --strip=llvm-strip --target-os=android --arch=arm --enable-cross-compile --cross-prefix=arm-linux-androideabi- --pkg-config=pkg-config --cc=clang --extra-ldexeflags='-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fPIE -lunwind' --enable-lto --enable-pic --extra-cflags='-Wa,--noexecstack -fdata-sections -ffunction-sections -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIE -ffast-math -fstrict-aliasing -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=vfpv3-d16 --target=armv7a-linux-androideabi19' --extra-ldflags='-Wl,--gc-sections -Wl,-z,relro -Wl,-z,now --sysroot /Users/runn I/flutter (28686): mdk.FINE: 15:43:06.892: av_dict_set0x9784534f I/flutter (28686): mdk.FINE: 15:43:06.892: FFmpeg/Libav runtime git-2024-09-29-9d3cdf8-avbuild I/flutter (28686): mdk.FINE: 15:43:06.893: 0x42b8e470 player.setActiveTracks(subtitle, {}) I/flutter (28686): mdk.FINE: 15:43:06.893: 0xa6101500 default FrameReader0x43142020 unloaded media's position 0 I/flutter (28686): mdk.FINE: 15:43:06.893: default 0x43142020-FrameReader::seek(0, 0X2) I/flutter (28686): mdk.FINE: 15:43:06.894: default 0x43142020 FrameReader::update MediaStatus 0X2=>0X82 I/flutter (28686): fvp.FINE: 15:43:06.894: 365795691 player1125400624 onMediaStatus: MediaStatus(+loading) => MediaStatus(+loading+seeking) I/flutter (28686): mdk.FINE: 15:43:06.894: 0x43142020 default FrameReaderImpl::seekTo(0, 0X2 #1) I/flutter (28686): mdk.FINE: 15:43:06.895: 0x42b8e470 player property: cc = 0 I/flutter (28686): mdk.FINE: 15:43:06.895: 0x42b8e470 player.setBufferRange(2000, 5000, 0) I/flutter (28686): mdk.FINE: 15:43:06.896: 0x42ad42f0 url opened I/flutter (28686): mdk.FINE: 15:43:06.897: default 0x43142020 FrameReader::update MediaStatus 0X82=>0X2 I/flutter (28686): fvp.FINE: 15:43:06.897: 365795691 player1125400624 onMediaStatus: MediaStatus(+loading+seeking) => MediaStatus(+loading) I/flutter (28686): mdk.FINE: 15:43:06.898: 0x42b703d0 avio set class I/flutter (28686): mdk.FINE: 15:43:06.898: before avformat_open_input. io: 0x42ad42f0(FFmpeg)/pb: 0x42b703d0, url: http://asdfasf.asfdasdf/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv I/flutter (28686): mdk.FINE: 15:43:06.899: after avformat_open_input. pb: 0x42b703d0, iformat: 0x978c9c74, context flags: 2097280, input format flags: 0 I/flutter (28686): mdk.FINE: 15:43:06.899: [FFmpeg:hevc] Unknown profile bitstream I/flutter (28686): mdk.FINE: 15:43:06.900: [FFmpeg:hevc] Unknown profile bitstream I/flutter (28686): mdk.FINE: 15:43:06.900: supports 208 ffmpeg sw pixel formats. unsupported: uyyvyy411 rgb8 x2rgb10be x2bgr10be gbrap14be gbrap14le I/flutter (28686): mdk.INFO: 15:43:06.900: Format: matroska,webm, range: 0 +8575710ms, bitrate: 38744292, size: 0 I/flutter (28686): Metadata: I/flutter (28686): ENCODER: Lavf58.20.100 I/flutter (28686): Streams: 2 I/flutter (28686): Video: I/flutter (28686): stream#0, range: 0 +8575710ms, frames: 0 I/flutter (28686): codec: hevc tag: 0 profile: 1 level: 150, yuv420p, bpc:8, bpp:12(8,8,8), channels:(1,1,1), map: 0 1 2 0, bitrate: 0, 3840x2076, fps: 24.4167, bframes: 0, range: Limited I/flutter (28686): extra data(129): 01 21 40 00 00 00 00 00 00 00 00 00 96 F0 00 FC FD F8 F8 00 00 0F 03 20 00 01 00 19 40 01 0C 01 FF FF 21 40 00 00 03 00 00 03 00 00 03 00 00 03 00 96 97 02 40 21 00 01 00 3B 42 01 01 21 40 00 00 03 00 00 03 00 00 03 00 00 03 00 96 A0 01 E0 20 02 08 7D E5 97 B9 08 46 45 FF 8C 04 04 00 00 0F A4 00 01 77 05 80 17 79 44 00 00 2B BF AA 00 00 05 77 F5 51 22 00 01 00 07 44 01 C0 93 7C 0C C9 I/flutter (28686): Metadata: I/flutter (28686): DURATION: 02:22:55.710000000 I/flutter (28686): Audio: I/flutter (28686): stream#1, range: 0 +8575704ms, frames: 0 I/flutter (28686): codec: aac tag: 0 profile: 1 level: -99, sample size: 0/16, block align: 0, frame_size: 1024, f32p 5.1(6) @48000Hz, bitrate: 0 I/flutter (28686): extra data(2): 11 B0 I/flutter (28686): Met I/flutter (28686): fvp.FINE: 15:43:06.903: 365795691 player1125400624 onEvent: metadata - - 0 I/flutter (28686): mdk.FINE: 15:43:06.904: default 0x43142020 FrameReader::update MediaStatus 0X2=>0X4 W/AudioCapabilities(28686): Unsupported mime audio/mpeg-L2 W/AudioCapabilities(28686): Unsupported mime audio/x-ms-wma W/VideoCapabilities(28686): Unsupported mime image/vnd.android.heic W/VideoCapabilities(28686): Unsupported mime video/dolby-vision W/VideoCapabilities(28686): Unsupported mime video/dolby-vision W/VideoCapabilities(28686): Unsupported mime video/x-motion-jpeg W/VideoCapabilities(28686): Unsupported mime video/wvc1 W/VideoCapabilities(28686): Unsupported mime video/x-ms-wmv I/VideoCapabilities(28686): Unsupported profile 4 for video/mp4v-es I/OMXClient(28686): IOmx service obtained I/flutter (28686): fvp.FINE: 15:43:06.967: 365795691 player1125400624 onMediaStatus: MediaStatus(+loading) => MediaStatus(+loaded) I/flutter (28686): mdk.INFO: 15:43:06.975: 0x43142020 ***buffering progress 0%*** I/flutter (28686): mdk.FINE: 15:43:06.975: default 0x43142020 FrameReader::update MediaStatus 0X4=>0X14 I/flutter (28686): fvp.FINE: 15:43:06.976: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded) => MediaStatus(+loaded+buffering) I/flutter (28686): mdk.INFO: 15:43:06.976: ++++++++++++BUFFERING START++++++++++++ I/flutter (28686): mdk.FINE: 15:43:06.977: I/flutter (28686): fvp.FINE: 15:43:06.978: 365795691 player1125400624 onEvent: reader.buffering - - 0 I/NdkMediaCodec(28686): com.azukaar.aurora I/flutter (28686): mdk.FINE: 15:43:06.983: default FrameReader0x43142020 state: 0=>1=>1, 1 I/flutter (28686): mdk.FINE: 15:43:06.984: default FrameReader0x43142020 update state: 0=>1 D/SurfaceUtils(28686): connecting to surface 0x4757bd38, reason connectToSurface I/MediaCodec(28686): [OMX.Nvidia.h265.decode] setting surface generation to 29374465 D/SurfaceUtils(28686): disconnecting from surface 0x4757bd38, reason connectToSurface(reconnect) D/SurfaceUtils(28686): connecting to surface 0x4757bd38, reason connectToSurface(reconnect) I/flutter (28686): fvp.FINE: 15:43:06.986: 365795691 player1125400624 onPlaybackStateChanged: PlaybackState.stopped => PlaybackState.playing I/flutter (28686): mdk.FINE: 15:43:06.988: 0x43142020 start to decode video#0 packet @0.000000/0.000000 pos: 966 I/flutter (28686): mdk.FINE: 15:43:06.988: 0x43142020 start to decode audio#1 packet @0.000000/1.000000 pos: -9223372036854775808 I/flutter (28686): mdk.INFO: 15:43:06.989: 0x43142020 ***buffering progress 100%*** I/flutter (28686): mdk.FINE: 15:43:06.989: default 0x43142020 FrameReader::update MediaStatus 0X14=>0X124starting decode loop thread mdk.vdec0@-1481879104 E/libc (28686): Access denied finding property "ro.vendor.sys.NV_ASYNC" E/libc (28686): Access denied finding property "ro.vendor.sys.NV_LOGFPS" E/libc (28686): Access denied finding property "ro.vendor.sys.NV_PROCESS_NAME" E/libc (28686): Access denied finding property "ro.vendor.sys.NV_FPSDYNAMIC" I/flutter (28686): fvp.FINE: 15:43:06.990: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded+buffering) => MediaStatus(+loaded+prepared+buffered) I/flutter (28686): mdk.FINE: 15:43:06.991: I/flutter (28686): fvp.FINE: 15:43:06.991: 365795691 player1125400624 onEvent: thread.video - - 1 I/flutter (28686): mdk.FINE: 15:43:06.991: 0x43142020 video stream#0 starting decoding loop from decoder index 0... I/flutter (28686): mdk.FINE: 15:43:06.992: 0x43142020 creating video decoder: AMediaCodec... I/flutter (28686): mdk.INFO: 15:43:06.992: 0x43142020 opening video decoder: AMediaCodec... W/Gralloc4(28686): allocator 3.x is not supported I/flutter (28686): mdk.FINE: 15:43:06.993: CodecForMimeType: video/hevc, profile: 1, level: -1 W/Gralloc3(28686): allocator 3.x is not supported I/flutter (28686): mdk.FINE: 15:43:06.993: -1481879104 JMI: JNI Modern Interface. Version 0.1.0 I/flutter (28686): mdk.FINE: 15:43:06.994: ++++++++++++BUFFERING END++++++++++++ I/flutter (28686): mdk.FINE: 15:43:06.994: I/flutter (28686): fvp.FINE: 15:43:06.995: 365795691 player1125400624 onEvent: reader.buffering - - 100 I/flutter (28686): mdk.INFO: 15:43:06.995: virtual int64_t mdk::PacketIOWrapper::seek(int64_t, SeekFlag)@704 seek target(from 0): 0ms, flags: +FromStart. now: 0.000000 I/flutter (28686): mdk.FINE: 15:43:06.996: default 0x43142020 FrameReader::update MediaStatus 0X124=>0X1A4 I/flutter (28686): fvp.FINE: 15:43:06.997: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded+prepared+buffered) => MediaStatus(+loaded+prepared+buffered+seeking) I/flutter (28686): mdk.FINE: 15:43:06.997: Seek start. target time: 0 avseek flags: 1 I/flutter (28686): mdk.FINE: 15:43:06.998: starting decode loop thread mdk.adec1@-1480826432 I/flutter (28686): fvp.FINE: 15:43:06.998: 365795691 player1125400624 onEvent: thread.audio - - 1 I/flutter (28686): mdk.FINE: 15:43:06.999: 0x43142020 audio stream#1 starting decoding loop from decoder index 0... I/flutter (28686): mdk.FINE: 15:43:06.999: 0x43142020 creating audio decoder: auto... I/flutter (28686): mdk.INFO: 15:43:07.000: 0x43142020 opening audio decoder: FFmpeg... I/flutter (28686): mdk.FINE: 15:43:07.000: opening ffmpeg audio decoder: aac I/flutter (28686): mdk.FINE: 15:43:07.001: AVCodec.Audio[aac.] decoder: 1 Single threads I/flutter (28686): mdk.FINE: 15:43:07.001: aac f32p, 5.1 @48000Hz I/flutter (28686): fvp.FINE: 15:43:07.002: 365795691 player1125400624 onEvent: decoder.audio - FFmpeg - 0 I/flutter (28686): mdk.INFO: 15:43:07.002: 0x43142020 ***buffering progress 0%*** I/flutter (28686): mdk.FINE: 15:43:07.003: default 0x43142020 FrameReader::update MediaStatus 0X1A4=>0X194 I/flutter (28686): fvp.FINE: 15:43:07.003: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded+prepared+buffered+seeking) => MediaStatus(+loaded+prepared+buffering+seeking) I/flutter (28686): mdk.INFO: 15:43:07.004: ++++++++++++BUFFERING START++++++++++++ I/flutter (28686): mdk.FINE: 15:43:07.004: I/flutter (28686): fvp.FINE: 15:43:07.005: 365795691 player1125400624 onEvent: reader.buffering - - 0 I/flutter (28686): mdk.FINE: 15:43:07.005: 0x43142020 audio stream#1 is seeking #1... got flush pkt. flush decoder and drop frames until seek target 0.0000s... I/flutter (28686): mdk.FINE: 15:43:07.006: 0xa6101500 1st audio frame @-1.000000 I/flutter (28686): mdk.FINE: 15:43:07.006: invalid audio frame @-1.000000 I/ACodec (28686): Enable timestamp filtering for Video Decoder I/ACodec (28686): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (28686): Scaled Width is 3840, height is 2076 I/flutter (28686): mdk.FINE: 15:43:07.030: MediaCodecInfo name: OMX.google.aac.decoder, mime: audio/mp4a-latm I/flutter (28686): mdk.FINE: 15:43:07.031: MediaCodecInfo name: OMX.google.amrnb.decoder, mime: audio/3gpp I/flutter (28686): mdk.FINE: 15:43:07.032: MediaCodecInfo name: OMX.google.amrwb.decoder, mime: audio/amr-wb I/flutter (28686): mdk.FINE: 15:43:07.032: MediaCodecInfo name: OMX.google.flac.decoder, mime: audio/flac I/flutter (28686): mdk.FINE: 15:43:07.032: MediaCodecInfo name: OMX.google.g711.alaw.decoder, mime: audio/g711-alaw I/flutter (28686): mdk.FINE: 15:43:07.033: MediaCodecInfo name: OMX.google.g711.mlaw.decoder, mime: audio/g711-mlaw I/flutter (28686): mdk.FINE: 15:43:07.033: MediaCodecInfo name: OMX.google.mp3.decoder, mime: audio/mpeg I/flutter (28686): mdk.FINE: 15:43:07.034: MediaCodecInfo name: OMX.google.opus.decoder, mime: audio/opus I/flutter (28686): mdk.FINE: 15:43:07.034: MediaCodecInfo name: OMX.google.raw.decoder, mime: audio/raw I/flutter (28686): mdk.FINE: 15:43:07.035: MediaCodecInfo name: OMX.google.vorbis.decoder, mime: audio/vorbis I/flutter (28686): mdk.FINE: 15:43:07.035: MediaCodecInfo name: OMX.Nvidia.mp2.decoder, mime: audio/mpeg-L2 I/flutter (28686): mdk.FINE: 15:43:07.036: MediaCodecInfo name: OMX.Nvidia.wma.decoder, mime: audio/x-ms-wma I/flutter (28686): mdk.FINE: 15:43:07.036: MediaCodecInfo name: OMX.Nvidia.h264.decode, mime: video/avc I/flutter (28686): mdk.FINE: 15:43:07.037: MediaCodecInfo name: OMX.Nvidia.h264.decode.secure, mime: video/avc I/flutter (28686): mdk.FINE: 15:43:07.037: MediaCodecInfo name: OMX.Nvidia.DOVI.decode, mime: video/dolby-vision I/flutter (28686): mdk.FINE: 15:43:07.037: MediaCodecInfo name: OMX.Nvidia.DOVI.decode.secure, mime: video/dolby-vision I/flutter (28686): mdk.FINE: 15:43:07.038: MediaCodecInfo name: OMX.Nvidia.h263.decode, mime: video/3gpp I/flutter (28686): mdk.FINE: 15:43:07.038: MediaCodecInfo name: OMX.Nvidia.h265.decode, mime: video/hevc video/hevc -profile: 1 I/flutter (28686): mdk.FINE: 15:43:07.039: profileLevels count: 3 I/flutter (28686): mdk.FINE: 15:43:07.039: profile: 1 level: 131072 I/flutter (28686): mdk.FINE: 15:43:07.040: [Match]. I/flutter (28686): mdk.FINE: 15:43:07.040: MediaCodecInfo name: OMX.Nvidia.h265.decode.secure, mime: video/hevc video/hevc -profile: 1 I/flutter (28686): mdk.FINE: 15:43:07.040: profileLevels count: 3 I/flutter (28686): mdk.FINE: 15:43:07.041: profile: 1 level: 131072 I/flutter (28686): mdk.FINE: 15:43:07.041: [Match]. I/flutter (28686): mdk.FINE: 15:43:07.042: MediaCodecInfo name: OMX.Nvidia.mjpeg.decoder, mime: video/x-motion-jpeg I/flutter (28686): mdk.FINE: 15:43:07.042: MediaCodecInfo name: OMX.Nvidia.mpeg2v.decode, mime: video/mpeg2 D/SurfaceUtils(28686): set up nativeWindow 0x4757bd38 for 3840x2076, color 0x106, rotation 0, usage 0x2900 I/flutter (28686): mdk.FINE: 15:43:07.042: MediaCodecInfo name: OMX.Nvidia.mp4.decode, mime: video/mp4v-es I/flutter (28686): mdk.FINE: 15:43:07.043: MediaCodecInfo name: OMX.Nvidia.vc1.decode, mime: video/wvc1 video/x-ms-wmv I/flutter (28686): mdk.FINE: 15:43:07.043: MediaCodecInfo name: OMX.Nvidia.vp8.decode, mime: video/x-vnd.on2.vp8 I/flutter (28686): mdk.FINE: 15:43:07.043: MediaCodecInfo name: OMX.Nvidia.vp9.decode, mime: video/x-vnd.on2.vp9 I/flutter (28686): mdk.FINE: 15:43:07.044: MediaCodecInfo name: OMX.Nvidia.vp9.decode.secure, mime: video/x-vnd.on2.vp9 I/flutter (28686): mdk.FINE: 15:43:07.045: MediaCodecInfo name: OMX.google.h264.decoder, mime: video/avc I/flutter (28686): mdk.FINE: 15:43:07.045: MediaCodecInfo name: OMX.google.h263.decoder, mime: video/3gpp I/flutter (28686): mdk.FINE: 15:43:07.046: MediaCodecInfo name: OMX.google.hevc.decoder, mime: video/hevc video/hevc -profile: 1 I/flutter (28686): mdk.FINE: 15:43:07.049: profileLevels count: 2 I/flutter (28686): mdk.FINE: 15:43:07.049: profile: 1 level: 65536 I/flutter (28686): mdk.FINE: 15:43:07.049: [Match]. I/flutter (28686): mdk.FINE: 15:43:07.050: MediaCodecInfo name: OMX.google.mpeg4.decoder, mime: video/mp4v-es I/flutter (28686): mdk.FINE: 15:43:07.051: MediaCodecInfo name: OMX.google.vp8.decoder, mime: video/x-vnd.on2.vp8 I/flutter (28686): mdk.FINE: 15:43:07.051: MediaCodecInfo name: OMX.google.vp9.decoder, mime: video/x-vnd.on2.vp9 I/flutter (28686): mdk.FINE: 15:43:07.052: found codecs count: 3 | 0 I/flutter (28686): mdk.FINE: 15:43:07.052: video/hevc AMediaCodec_createCodecByName: OMX.Nvidia.h265.decode I/flutter (28686): mdk.FINE: 15:43:07.053: AMediaCodec *ndk::AMediaCodec_createCodecByName(const char *) via ndk: true I/flutter (28686): mdk.FINE: 15:43:07.053: Java_com_mediadevkit_fvp_FvpPlugin_nativeSetSurface I/flutter (28686): mdk.FINE: 15:43:07.053: Rendering thread @-1476922944I/flutter (28686): mdk.FINE: 15:43:07.054: 0x42b74810 start RenderLoop I/flutter (28686): mdk.FINE: 15:43:07.054: 0xa11154d0->PlatformSurface::Event::NativeHandle: 0x0>>>0xffcf6498 I/flutter (28686): mdk.FINE: 15:43:07.055: getVideoOutContext 0x0 => 0xa1116710. vo count: 1 I/flutter (28686): mdk.FINE: 15:43:07.055: auto mdk::VideoPresenter::VideoPresenter()::(anonymous class)::operator()(PlatformSurface *) const: 0x0=>0xa1116710 RenderAPI.type: 1 I/flutter (28686): mdk.FINE: 15:43:07.056: createRenderContext of RenderAPI::Type 1 from surface 0xa11154d0 with extra native res 0x0 I/flutter (28686): mdk.FINE: 15:43:07.056: ThreadLocal::Data::Data() thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:07.057: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (28686): mdk.FINE: 15:43:07.057: ThreadLocal::Data::Data() thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:07.058: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (28686): mdk.FINE: 15:43:07.058: creating internal shared offscreen context for type: EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:07.060: creating EGL context from window: 0x0 with shared context: 0x0 extra: 0x0 I/flutter (28686): mdk.FINE: 15:43:07.061: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:07.062: ThreadLocal>::Data::Data() thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:07.062: T *ThreadLocal>::get() const allocate and initialize ThreadLocal data I/flutter (28686): mdk.FINE: 15:43:07.063: dso.load: libEGL.sotest: trueI/flutter (28686): mdk.FINE: 15:43:07.063: libEGL.so test load result 0x84a967dd... I/flutter (28686): mdk.FINE: 15:43:07.064: initialize EGL display from eglGetDisplay() I/flutter (28686): mdk.FINE: 15:43:07.064: creating surfaceless offscreen context... WARNING: client api may not support surfaceless context. Can be disabled by setting environment var EGL_SURFACELESS=0 I/flutter (28686): mdk.FINE: 15:43:07.064: Try to create context for OpenGL ES 3 I/flutter (28686): mdk.FINE: 15:43:07.065: creating EGL context from window: 0x4757d668 with shared context: 0x9ffcb050 extra: 0x0 I/flutter (28686): mdk.FINE: 15:43:07.065: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:07.066: initialize EGL display from eglGetDisplay() I/flutter (28686): mdk.FINE: 15:43:07.066: try to convert mp4 extra data to annexb I/flutter (28686): mdk.FINE: 15:43:07.067: nal length field bytes: 4, annexb extradata 0x4304ad50 size: 103 I/flutter (28686): mdk.FINE: 15:43:07.067: NALU length bytes: 4 I/flutter (28686): mdk.FINE: 15:43:07.068: 0x430eef90mdk::NativeVideoBufferPool::NativeVideoBufferPool() I/flutter (28686): mdk.FINE: 15:43:07.068: resetReader: 5 I/flutter (28686): mdk.FINE: 15:43:07.068: tunnel: 0, window: 0x4757bd38/0, surface: 0x0/1, image: 1 I/flutter (28686): mdk.FINE: 15:43:07.069: Try to create context for OpenGL ES 3 I/flutter (28686): mdk.FINE: 15:43:07.069: ThreadLocal::Data::Data() thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:07.070: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (28686): mdk.FINE: 15:43:07.070: AMediaCodec selected video codec name: OMX.Nvidia.h265.decode I/flutter (28686): fvp.FINE: 15:43:07.073: 365795691 player1125400624 onEvent: decoder.video - AMediaCodec - 0 I/flutter (28686): mdk.FINE: 15:43:07.073: 0x43142020 decode stored recovery packets: 0 I/flutter (28686): mdk.FINE: 15:43:07.074: 0x43142020 video stream#0 is seeking #1... got flush pkt. flush decoder and drop frames until seek target 0.0000s... I/flutter (28686): mdk.FINE: 15:43:07.074: 0xa6101500 1st video frame to render @-1.000000s, sync time: 0.000000 I/flutter (28686): mdk.FINE: 15:43:07.075: invalid video frame @-1.000000 I/flutter (28686): mdk.FINE: 15:43:07.075: ++++++++++onContextCreated(surface 0xa11154d0, ctx 0xa1116690)+++++++++++ I/flutter (28686): mdk.FINE: 15:43:07.075: getVideoOutContext 0xffcf6498 => 0xa111aaf0. vo count: 2 I/flutter (28686): mdk.FINE: 15:43:07.076: PlatformSurface::Event::Resize 3840x2076 I/flutter (28686): mdk.FINE: 15:43:07.076: 0x42b8e478 setVideoSurfaceSize(3840x2076, 0xffcf6498) I/flutter (28686): mdk.FINE: 15:43:07.077: PlatformSurface::Event::Resize 3840x2076 I/flutter (28686): mdk.FINE: 15:43:07.077: 0x42b8e478 setVideoSurfaceSize(3840x2076, 0xffcf6498) I/flutter (28686): mdk.FINE: 15:43:07.111: Seek end I/flutter (28686): mdk.FINE: 15:43:07.111: 1 packets is read after seek. read more to get target pts I/flutter (28686): mdk.FINE: 15:43:07.112: 2 packets is read after seek. read more to get target pts I/flutter (28686): mdk.FINE: 15:43:07.112: 3 packets is read after seek. read more to get target pts I/flutter (28686): mdk.FINE: 15:43:07.113: 3 packets is read after seek. seek result pts: 0.022000s, requested: 0ms I/flutter (28686): mdk.FINE: 15:43:07.113: default 0x43142020 FrameReader::update MediaStatus 0X194=>0X114 I/flutter (28686): fvp.FINE: 15:43:07.114: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded+prepared+buffering+seeking) => MediaStatus(+loaded+prepared+buffering) I/flutter (28686): mdk.FINE: 15:43:07.114: seek_drop_non_video_: 0 ms, seek_wait_frame_: 0... I/flutter (28686): mdk.FINE: 15:43:07.114: 0x43142020 #1/1 audio seek_done: 1, seek_wait_frame_: 0/1 I/flutter (28686): mdk.FINE: 15:43:07.115: 0x43142020 audio stream#1 sending 1 invalid AOT frame @0.000000s. seeking: 0 D/.azukaar.auror(28686): PlayerBase::PlayerBase() I/flutter (28686): mdk.FINE: 15:43:07.115: 0xa6101500 1st audio frame @0.000000 D/.azukaar.auror(28686): TrackPlayerBase::TrackPlayerBase() E/libOpenSLES(28686): Configuration error: unknown key W/libOpenSLES(28686): Leaving AndroidConfiguration::GetConfiguration (SL_RESULT_PARAMETER_INVALID) I/flutter (28686): mdk.INFO: 15:43:07.116: 0xa6101500 seek end audio frame @0.000000 seek_pos_: -1, sync_ao_ 1 I/libOpenSLES(28686): Emulating old channel mask behavior (ignoring positional mask 0x3, using default mask 0x3 based on channel count of 2) I/flutter (28686): mdk.FINE: 15:43:07.117: Selected avfilter runtime version: 10.5.100 (build: 10.5.100), license: LGPL version 2.1 or later I/flutter (28686): mdk.FINE: 15:43:07.117: AudioRenderer format: f32, stereo @48000Hz, requested: f32p, 5.1 @48000Hz I/flutter (28686): mdk.FINE: 15:43:07.117: AudioRenderer format changed and reinitialize I/flutter (28686): mdk.FINE: 15:43:07.118: OpenSL ERROR@296 (*cfg)->GetConfiguration(cfg, (const SLchar * )"androidGetAudioLatency", &latencySize, &latency_) : 0X2 I/flutter (28686): mdk.FINE: 15:43:07.118: W/libOpenSLES(28686): Leaving PlaybackRate::GetRateRange (SL_RESULT_PARAMETER_INVALID) I/flutter (28686): mdk.FINE: 15:43:07.144: SL_IID_PLAYBACKRATE Range0: [500, 2000]/0 cap: 400 I/flutter (28686): mdk.FINE: 15:43:07.146: Using audio backend: OpenSL D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 0 frames delivered I/flutter (28686): mdk.INFO: 15:43:07.158: 0x43142020 ***buffering progress 88%*** I/flutter (28686): fvp.FINE: 15:43:07.165: 365795691 player1125400624 onEvent: reader.buffering - - 88 D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered I/flutter (28686): mdk.INFO: 15:43:07.208: 0x43142020 ***buffering progress 100%*** I/flutter (28686): mdk.FINE: 15:43:07.212: default 0x43142020 FrameReader::update MediaStatus 0X114=>0X124 I/flutter (28686): fvp.FINE: 15:43:07.214: 365795691 player1125400624 onMediaStatus: MediaStatus(+loaded+prepared+buffering) => MediaStatus(+loaded+prepared+buffered) I/flutter (28686): mdk.INFO: 15:43:07.219: ++++++++++++BUFFERING END++++++++++++ I/flutter (28686): mdk.FINE: 15:43:07.220: I/flutter (28686): fvp.FINE: 15:43:07.222: 365795691 player1125400624 onEvent: reader.buffering - - 100 D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered I/flutter (28686): mdk.FINE: 15:43:07.265: 0xa6101500 ao opened: 1, reopen: 1, bad ao: 0. valid: 0 I/flutter (28686): mdk.FINE: 15:43:07.394: 0x5f70dfbc filter graph: I/flutter (28686): mdk.FINE: 15:43:07.395: +-----------+ I/flutter (28686): | src |default--[48000Hz fltp:5.1]--swr:defaultI/flutter (28686): | (abuffer) | I/flutter (28686): +-----------+ I/flutter (28686): I/flutter (28686): +---------------+ I/flutter (28686): swr:default--[48000Hz flt:stereo]--default| dst | I/flutter (28686): | (abuffersink) | I/flutter (28686): +---------------+ I/flutter (28686): I/flutter (28686): +-------------+ I/flutter (28686): src:default--[48000Hz fltp:5.1]--default| swr |default--[48000Hz flt:stereo]--dst:default I/flutter (28686): | (aresample) | I/flutter (28686): +-------------+ I/flutter (28686): D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 768 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 1024 frames delivered I/flutter (28686): mdk.FINE: 15:43:07.406: >>>>>>>>1st audio frame (after seek) rendered: 1, ao: 15, a: 0, delta: 15 +0.021333 I/flutter (28686): mdk.FINE: 15:43:07.407: 0x43142020 audio stream#1 AOT frame is sent D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 512 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 1024 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 1024 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 256 frames delivered D/.azukaar.auror(28686): PlayerBase::stop() from IPlayer D/AudioTrack(28686): stop(2410): called with 512 frames delivered I/ACodec (28686): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (28686): Scaled Width is 3840, height is 2076 D/SurfaceUtils(28686): set up nativeWindow 0x4757bd38 for 3840x2076, color 0x106, rotation 0, usage 0x2900 I/flutter (28686): mdk.FINE: 15:43:07.456: AMEDIACODEC_INFO_OUTPUT_BUFFERS_CHANGED I/ACodec (28686): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (28686): Scaled Width is 3840, height is 2076 I/flutter (28686): mdk.FINE: 15:43:08.123: AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED I/flutter (28686): mdk.FINE: 15:43:08.127: MediaFormat: color-range: int32(2), color-standard: int32(1), color-transfer: int32(3), mime: string(video/raw), stride: int32(3840), slice-height: int32(2076), color-format: int32(262), crop: Rect(0, 0, 3839, 2075), display-width: int32(3840), display-height: int32(2076), android._dataspace: int32(12), hdr-static-info: data, width: int32(3840), height: int32(2076)} I/flutter (28686): mdk.FINE: 15:43:08.128: unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 I/flutter (28686): mdk.FINE: 15:43:08.130: size: 3840x2076, bytes: 3840x2076 I/flutter (28686): mdk.FINE: 15:43:08.130: 0x43142020 #1/1 video seek_done: 1, seek_wait_frame_: 0/0 I/flutter (28686): mdk.FINE: 15:43:08.131: 0x43142020 video stream#0 sending 1 invalid AOT frame @0.000000s. seeking: 0 I/flutter (28686): mdk.FINE: 15:43:08.132: 0xa6101500 1st video frame to render @0.000000s, sync time: 0.907000 I/flutter (28686): mdk.FINE: 15:43:08.134: VideoRenderer clear buffered frames I/flutter (28686): mdk.FINE: 15:43:08.134: 0-track seek end video frame @0.000000 seek_pos_: -1 I/flutter (28686): mdk.FINE: 15:43:08.135: 0xa6101500 1st video frame to render @0.000000s, sync time: 0.908000 I/flutter (28686): fvp.FINE: 15:43:08.135: 365795691 player1125400624 onEvent: video - size - 0 I/flutter (28686): mdk.FINE: 15:43:08.136: 0x43142020 video stream#0 AOT frame is sent I/flutter (28686): mdk.FINE: 15:43:08.136: VideoRenderer WxH=3840.000000x2076.000000 3840.000000x2076.000000, frame: 3840x2076 I/flutter (28686): mdk.FINE: 15:43:08.137: update transform 2d. scale: (1.000000, 1.000000), orientation: 0 I/flutter (28686): mdk.FINE: 15:43:08.137: m: mat<4, 4>( I/flutter (28686): mdk.FINE: 15:43:08.138: 1 0 0 0 I/flutter (28686): mdk.FINE: 15:43:08.138: 0 1 0 0 I/flutter (28686): mdk.FINE: 15:43:08.139: 0 0 1 0 I/flutter (28686): mdk.FINE: 15:43:08.139: 0 0 0 1 I/flutter (28686): mdk.FINE: 15:43:08.141: ) I/flutter (28686): mdk.FINE: 15:43:08.142: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:08.142: ThreadLocal>>::Data::Data() thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:08.142: T *ThreadLocal>>::get() const allocate and initialize ThreadLocal data I/flutter (28686): mdk.FINE: 15:43:08.150: new Context object 0x9ffccf50(0) for native context handle 0x42ae73d0 I/flutter (28686): mdk.FINE: 15:43:08.150: ctx->api_: 0xa063a870 I/flutter (28686): mdk.FINE: 15:43:08.151: probing gl context... native: 0x0 I/flutter (28686): mdk.FINE: 15:43:08.151: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:08.152: EGL_VERSION: 1.5 Android META-EGL I/flutter (28686): mdk.FINE: 15:43:08.153: EGL_VENDOR: Android I/flutter (28686): mdk.FINE: 15:43:08.153: EGL_CLIENT_APIS: OpenGL_ES OpenGL I/flutter (28686): mdk.FINE: 15:43:08.153: Current EGL dso path: /system/lib/libEGL.so I/flutter (28686): mdk.FINE: 15:43:08.154: default FrameReader0x43142020 #1 seekComplete 0 I/flutter (28686): mdk.FINE: 15:43:08.154: default 0x43142020 FrameReader::update MediaStatus 0X124=>0X124 I/flutter (28686): mdk.FINE: 15:43:08.155: default FrameReader 0x43142020 callbacks 0, seeking 0 flag 0, seekComplete#1 @0 I/flutter (28686): mdk.FINE: 15:43:08.156: GLESv2 dso loaded: /system/lib/libGLESv2.so I/flutter (28686): mdk.FINE: 15:43:08.156: resolving gl common functions... I/flutter (28686): mdk.FINE: 15:43:08.156: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:08.157: using opengl api resolver: EGL I/flutter (28686): mdk.FINE: 15:43:08.157: probing gl client context... major_: 0 I/flutter (28686): mdk.FINE: 15:43:08.157: GL_VENDOR: NVIDIA CorporationI/flutter (28686): mdk.FINE: 15:43:08.158: GL_RENDERER: NVIDIA Tegra I/flutter (28686): mdk.FINE: 15:43:08.158: GL_VERSION: OpenGL ES 3.2 NVIDIA 495.00 I/flutter (28686): mdk.FINE: 15:43:08.158: GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.20 I/flutter (28686): mdk.FINE: 15:43:08.159: EGL_ANDROID_front_buffer_auto_refresh EGL_ANDROID_get_frame_timestamps EGL_ANDROID_get_native_client_buffer EGL_ANDROID_image_native_buffer EGL_ANDROID_presentation_time EGL_ANDROID_recordable EGL_ANGLE_platform_angle EGL_EXT_buffer_age EGL_EXT_client_extensions EGL_EXT_create_context_robustness EGL_EXT_gl_colorspace_bt2020_linear EGL_EXT_gl_colorspace_bt2020_pq EGL_EXT_gl_colorspace_display_p3 EGL_EXT_gl_colorspace_display_p3_linear EGL_EXT_gl_colorspace_display_p3_passthrough EGL_EXT_gl_colorspace_scrgb EGL_EXT_gl_colorspace_scrgb_linear EGL_EXT_pixel_format_float EGL_EXT_protected_content EGL_EXT_surface_CTA861_3_metadata EGL_EXT_surface_SMPTE2086_metadata EGL_IMG_context_priority EGL_KHR_client_get_all_proc_addresses EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image I/flutter (28686): mdk.FINE: 15:43:08.160: OpenGL Context thread: -1476922944 I/flutter (28686): mdk.FINE: 15:43:08.168: OpenGL ES3.2 No profile, EGL150, GLSL320 I/flutter (28686): Features PBO: 1, UBO: 1, RG texture: 1, 16bit texture: 1 I/flutter (28686): mdk.FINE: 15:43:08.168: resolving gl extensions... I/flutter (28686): mdk.FINE: 15:43:08.169: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (28686): mdk.FINE: 15:43:08.169: using opengl api resolver: EGL I/flutter (28686): mdk.FINE: 15:43:08.170: context version: 320 I/flutter (28686): mdk.FINE: 15:43:08.171: gl api resolved. thread@ -1476922944 I/flutter (28686): mdk.FINE: 15:43:08.172: I/flutter (28686): mdk.FINE: 15:43:08.172: 0x9ffccf50/0x42ae73d0 Context::setLocalData local data 0x42aa1d60 for key: 0x2. size: 1 I/flutter (28686): mdk.FINE: 15:43:08.172: 0x9ffccf50/0x42ae73d0 Context::setLocalData local data 0xa3219160 for key: 0x3. size: 2 I/flutter (28686): mdk.FINE: 15:43:08.173: 0xa11294d0mdk::GLVideoRenderer::Private::Renderers::Renderers() I/flutter (28686): mdk.FINE: 15:43:08.173: 0x9ffccf50/0x42ae73d0 Context::setLocalData local data 0xa1e0dcc0 for key: 0x1. size: 3 I/flutter (28686): mdk.FINE: 15:43:08.174: release MediaCodec output buffer which was not rendered @16 I/flutter (28686): mdk.FINE: 15:43:08.193: release MediaCodec output buffer which was not rendered @15 I/flutter (28686): mdk.FINE: 15:43:08.237: release MediaCodec output buffer which was not rendered @14 I/flutter (28686): mdk.FINE: 15:43:08.238: release MediaCodec output buffer which was not rendered @13 I/flutter (28686): mdk.FINE: 15:43:08.271: 0x9ffccf50/0x42ae73d0 Context::setLocalData local data 0xa3218670 for key: 0x0. size: 4 I/flutter (28686): mdk.FINE: 15:43:08.272: AHardwareBuffer from AImageReader Surface to EGLImage I/flutter (28686): mdk.FINE: 15:43:08.274: unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 => mapped rgba, alpha, bpc:8, bpp:32(32), channels:(4), map: 0 1 2 3 I/flutter (28686): mdk.FINE: 15:43:08.274: RGBA8 | RGBA | UNSIGNED_BYTE I/flutter (28686): mdk.FINE: 15:43:08.277: frame color: BT709 BT709 RGB Limited. gamma: 2.200000, signal peak: 1.000000 I/flutter (28686): mdk.FINE: 15:43:08.278: - I/flutter (28686): mdk.FINE: 15:43:08.279: output color: BT709 UNSPECIFIED RGB Full. gamma: 2.200000, signal peak: 1.000000 I/flutter (28686): mdk.FINE: 15:43:08.294: rgb primaries matrix: mat<3, 3>( I/flutter (28686): mdk.FINE: 15:43:08.300: 1 0 0 I/flutter (28686): mdk.FINE: 15:43:08.300: 0 1 0 I/flutter (28686): mdk.FINE: 15:43:08.301: 0 0 1 I/flutter (28686): mdk.FINE: 15:43:08.303: ) I/flutter (28686): mdk.FINE: 15:43:08.303: scale: 1.000000, color transform: mat<4, 4>( I/flutter (28686): mdk.FINE: 15:43:08.303: 1 0 0 0 I/flutter (28686): mdk.FINE: 15:43:08.304: 0 1 0 0 I/flutter (28686): mdk.FINE: 15:43:08.304: 0 0 1 0 I/flutter (28686): mdk.FINE: 15:43:08.305: 0 0 0 1 I/flutter (28686): mdk.FINE: 15:43:08.305: ) I/flutter (28686): mdk.FINE: 15:43:08.306: EQ: mat<4, 4>( I/flutter (28686): mdk.FINE: 15:43:08.306: 1 0 0 0 I/flutter (28686): mdk.FINE: 15:43:08.307: 0 1 0 0 I/flutter (28686): mdk.FINE: 15:43:08.308: 0 0 1 0 I/flutter (28686): mdk.FINE: 15:43:08.308: 0 0 0 1 I/flutter (28686): mdk.FINE: 15:43:08.309: ) I/flutter (28686): mdk.FINE: 15:43:08.309: shader id: 2306 I/flutter (28686): mdk.FINE: 15:43:08.310: dump UBO layout: I/flutter (28686): align @offset +size /stride address name ~ path: type -> parent I/flutter (28686): 16@0 +64/16 0x9ffcea5c u_colorMatrix ~ u_colorMatrix: mat4 -> 0x0 I/flutter (28686): 4 @64+4 /4 0x9ffce7dc u_ScaleA ~ u_ScaleA: float -> 0x0 I/flutter (28686): mdk.FINE: 15:43:08.310: material changed: 0x0 => 0x90a I/flutter (28686): mdk.FINE: 15:43:08.311: planar: 0, alpha: 1, texture 2d: 0, external: 1, rg semi-planar: 0, 16=>8: 0, xyz: 0, yuv sampler: 0, generic packed yuv: 0, cocgsy: 0, primaries diff: 0, trc: 1=>1, tone map: 0 I/flutter (28686): mdk.FINE: 15:43:08.313: release MediaCodec output buffer which was not rendered @12 I/flutter (28686): mdk.FINE: 15:43:08.313: release MediaCodec output buffer which was not rendered @11 I/flutter (28686): mdk.FINE: 15:43:08.314: bind attribute: a_Position => 0 I/flutter (28686): mdk.FINE: 15:43:08.314: bind attribute: a_TexCoords0 => 1 fer which was not rendered @10 I/flutter (28686): mdk.FINE: 15:43:08.323: release MediaCodec output buffer which was not rendered @9 I/flutter (28686): mdk.FINE: 15:43:08.324: release MediaCodec output buffer which was not rendered @8 I/flutter (28686): mdk.FINE: 15:43:08.410: release MediaCodec output bufI/flutter (28686): mdk.FINE: 15:43:08.443: release MediaCodec output buffer which was not rendered @6 I/flutter (28686): mdk.FINE: 15:43:08.445: release MediaCodec output buffer which was not rendered @16 I/flutter (28686): mdk.FINE: 15:43:08.446: release MediaCodec output buffer which was not rendered @15 I/flutter (28686): mdk.FINE: 15:43:08.447: release MediaCodec output buffer which was not rendered @14 I/flutter (28686): mdk.FINE: 15:43:08.447: release MediaCodec output buffer which was not rendered @13 I/flutter (28686): mdk.FINE: 15:43:08.448: release MediaCodec output buffer which was not rendered @12 I/flutter (28686): mdk.FINE: 15:43:08.450: release MediaCodec output buffer which was not rendered @11 I/flutter (28686): mdk.FINE: 15:43:08.451: release MediaCodec output buffer which was not rendered @10 I/flutter (28686): mdk.FINE: 15:43:08.451: UBO ConstBuffer: 0/4294967295I/flutter (28686): mdk.FINE: 15:43:08.452: uniform locations: I/flutter (28686): mdk.FINE: 15:43:08.452: u_Texture0: 2 I/flutter (28686): mdk.FINE: 15:43:08.452: u_Matrix: 0, u_TexMatrix: 1 I/flutter (28686): mdk.FINE: 15:43:08.453: build glsl elapsed: 139915us I/flutter (28686): mdk.FINE: 15:43:08.453: creating vbo... I/flutter (28686): mdk.FINE: 15:43:08.454: creating vao... I/flutter (28686): mdk.FINE: 15:43:08.462: release MediaCodec output buffer which was not rendered @9 I/flutter (28686): mdk.FINE: 15:43:08.464: release MediaCodec output buffer which was not rendered @8 I/flutter (28686): fvp.FINE: 15:43:08.464: 365795691 player1125400624 onEvent: render.video - 1st_frame - 0 I/flutter (28686): mdk.FINE: 15:43:08.465: release MediaCodec output buffer which was not rendered @7 I/flutter (28686): mdk.FINE: 15:43:08.465: release MediaCodec output buffer which was not rendered @6 I/flutter (28686): mdk.FINE: 15:43:08.465: release MediaCodec output buffer which was not rendered @16 I/flutter (28686): mdk.FINE: 15:43:08.469: release MediaCodec output buffer which was not rendered @15 I/flutter (28686): mdk.FINE: 15:43:08.470: release MediaCodec output buffer which was not rendered @14 I/flutter (28686): mdk.FINE: 15:43:08.470: release MediaCodec output buffer which was not rendered @13 I/flutter (28686): mdk.FINE: 15:43:08.488: release MediaCodec output buffer which was not rendered @12 I/flutter (28686): mdk.FINE: 15:43:08.532: release MediaCodec output buffer which was not rendered @11 I/flutter (28686): mdk.FINE: 15:43:08.574: release MediaCodec output buffer which was not rendered @10 ```
wang-bin commented 1 month ago

Here's the latest log from my NVidia shield with 0.27, it seems to mostly work but I still have choppy playback (subtle but present lags every few seconds) The thing is the lags are present regardless of the movie played, even a "small" movie of 2gb will have the same lags, which leads me to believe that it's not necessarily a performance issue. Would it be possible for the hardware decoder to not properly recognize the hardward (because the Shield is older) and run in CPU? How would I debug that?

Here are the logs for info: https://pastebin.com/69ia7J81

it's using hardware decoder, but many frames are dropped in renderer. what about disabling audio tracks: player.activeAudioTracks=[] ?

azukaar commented 1 month ago

Same results with no audio: https://pastebin.com/MAkhz9X5

``` I/flutter (12749): Fetching item details for http://sadasdads.adsa/info/movies/The Avengers (2012) I/flutter (12749): Fetching item details for http://sadasdads.adsa/info/movies/The Avengers (2012) I/flutter (12749): VP: Initializing player I/flutter (12749): fvp.FINE: 16:30:07.899: registerVideoPlayerPlatformsWith: null W/libOpenSLES(12749): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) W/libOpenSLES(12749): Leaving Object::GetInterface (SL_RESULT_FEATURE_UNSUPPORTED) I/flutter (12749): mdk.INFO: 16:30:08.079: 0.29.1 (git dba5c89) - Multimedia Development Kit. Copyright (c) 2016-2024 WangBin(QtAV author) I/flutter (12749): Build for: Android21/30 4KB ARMv7; libc++180000; Clang18.0.2 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) NDK27.1.12297006; 13:28:33 Oct 11 2024 I/flutter (12749): mdk.FINE: 16:30:08.080: global option: d3d11.sync.cpu = 1 I/flutter (12749): mdk.FINE: 16:30:08.080: global option: UserAddress = 0x90f86564 I/flutter (12749): mdk.FINE: 16:30:08.081: global option: subtitle.fonts.file = assets://flutter_assets/assets/subfont.ttf I/flutter (12749): mdk.FINE: 16:30:08.081: default 0x43140bf0 new FrameReader... I/flutter (12749): mdk.FINE: 16:30:08.082: Registered audio backends: OpenSL AudioTrack null I/flutter (12749): mdk.FINE: 16:30:08.082: OpenSL extensions: ANDROID_SDK_LEVEL_30 I/flutter (12749): mdk.FINE: 16:30:08.083: default 0x43141b60 new FrameReader... I/flutter (12749): mdk.FINE: 16:30:08.083: Registered audio backends: OpenSL AudioTrack null I/flutter (12749): mdk.FINE: 16:30:08.083: OpenSL extensions: ANDROID_SDK_LEVEL_30 I/flutter (12749): mdk.FINE: 16:30:08.084: 0x42b902a0 player.Player() I/flutter (12749): mdk.FINE: 16:30:08.084: 0x42b902a0 player.onEvent(1, 0x9062d598) I/flutter (12749): mdk.FINE: 16:30:08.084: 0x42b902a0 player.onStateChanged(1) I/flutter (12749): mdk.FINE: 16:30:08.085: 0x42b902a0 player.onMediaStatus(1) I/flutter (12749): mdk.FINE: 16:30:08.085: 0x42b902a0 player.setDecoders(video, [AMediaCodec, FFmpeg]) I/flutter (12749): mdk.FINE: 16:30:08.085: video decoders: "AMediaCodec", "FFmpeg" I/flutter (12749): mdk.FINE: 16:30:08.086: video decoders: "AMediaCodec", "FFmpeg" I/flutter (12749): mdk.FINE: 16:30:08.086: 0x42b902a0 player.setMedia(http://sadasdads.adsa/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv) I/flutter (12749): mdk.FINE: 16:30:08.086: default FrameReader0x43140bf0 state: 0=>0=>0, 0 I/flutter (12749): mdk.INFO: 16:30:08.087: default0x43140bf0 stop, current state: , drequested: 0 I/flutter (12749): mdk.FINE: 16:30:08.087: default FrameReader0x43140bf0 state: 0=>0=>0, 0 I/flutter (12749): mdk.INFO: 16:30:08.087: default0x43140bf0 stop, current state: , drequested: 0 I/flutter (12749): mdk.FINE: 16:30:08.088: 0x42b902a0 player.set(1) I/flutter (12749): mdk.FINE: 16:30:08.088: 0x47595fd0 virtual void mdk::MediaControlPush::setState(PlaybackState)@1072 requested state 0=>1, current state 0. status: 0 I/flutter (12749): mdk.FINE: 16:30:08.089: default 0x43140bf0 FrameReader.start(0, ...) I/flutter (12749): mdk.FINE: 16:30:08.089: default 0x43140bf0 FrameReader::update MediaStatus 0=>0X2 I/flutter (12749): fvp.FINE: 16:30:08.097: 3143046 player1125385728 onMediaStatus: MediaStatus(noMedia) => MediaStatus(+loading) I/flutter (12749): mdk.FINE: 16:30:08.102: default FrameReader0x43140bf0 state: 0=>0=>1, 0 I/flutter (12749): mdk.FINE: 16:30:08.102: default FrameReader0x43140bf0 state: 0=>1=>1, 0 I/flutter (12749): mdk.FINE: 16:30:08.102: 0x43140bf0start frame reader thread: -1541942848 I/flutter (12749): mdk.FINE: 16:30:08.103: Selected avformat runtime version: 61.8.100 (build: 61.8.100), license: LGPL version 2.1 or later I/flutter (12749): mdk.FINE: 16:30:08.103: avformat_version0x97632de1 I/flutter (12749): mdk.FINE: 16:30:08.103: Trying MediaIO FFmpeg I/flutter (12749): mdk.FINE: 16:30:08.104: 0x42adf390 open url: http://sadasdads.adsa/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv I/flutter (12749): mdk.FINE: 16:30:08.104: FFmpeg/Libav runtime git-2024-09-29-9d3cdf8-avbuild I/flutter (12749): mdk.FINE: 16:30:08.104: Selected avutil runtime version: 59.40.100 (build: 59.40.100), license: LGPL version 2.1 or later I/flutter (12749): mdk.FINE: 16:30:08.105: global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --disable-static --enable-shared --enable-runtime-cpudetect --disable-iamf --enable-mediacodec --enable-jni --disable-vulkan --disable-v4l2-m2m --disable-indevs --enable-indev=android_camera --disable-outdevs --disable-postproc --enable-thumb --enable-neon --ar=llvm-ar --ranlib=llvm-ranlib --nm=llvm-nm --strip=llvm-strip --target-os=android --arch=arm --enable-cross-compile --cross-prefix=arm-linux-androideabi- --pkg-config=pkg-config --cc=clang --extra-ldexeflags='-Wl,--gc-sections -Wl,-z,nocopyreloc -pie -fPIE -lunwind' --enable-lto --enable-pic --extra-cflags='-Wa,--noexecstack -fdata-sections -ffunction-sections -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIE -ffast-math -fstrict-aliasing -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp -mfpu=vfpv3-d16 --target=armv7a-linux-androideabi19' --extra-ldflags='-Wl,--gc-sections -Wl,-z,relro -Wl,-z,now --sysroot /Users/runn I/flutter (12749): mdk.FINE: 16:30:08.105: av_dict_set0x976cf34f I/flutter (12749): mdk.FINE: 16:30:08.105: FFmpeg/Libav runtime git-2024-09-29-9d3cdf8-avbuild I/flutter (12749): mdk.FINE: 16:30:08.106: 0x42b902a0 player.setActiveTracks(subtitle, {}) I/flutter (12749): mdk.FINE: 16:30:08.106: 0x47595fd0 default FrameReader0x43140bf0 unloaded media's position 0 I/flutter (12749): mdk.FINE: 16:30:08.106: default 0x43140bf0-FrameReader::seek(0, 0X2) I/flutter (12749): mdk.FINE: 16:30:08.107: default 0x43140bf0 FrameReader::update MediaStatus 0X2=>0X82 I/flutter (12749): fvp.FINE: 16:30:08.107: 3143046 player1125385728 onMediaStatus: MediaStatus(+loading) => MediaStatus(+loading+seeking) I/flutter (12749): mdk.FINE: 16:30:08.108: 0x43140bf0 default FrameReaderImpl::seekTo(0, 0X2 #1) I/flutter (12749): mdk.FINE: 16:30:08.108: 0x42b902a0 player property: cc = 0 I/flutter (12749): mdk.FINE: 16:30:08.108: 0x42b902a0 player.setActiveTracks(audio, {}) I/flutter (12749): mdk.FINE: 16:30:08.109: 0x42adf390 url opened I/flutter (12749): mdk.FINE: 16:30:08.110: default 0x43140bf0 FrameReader::update MediaStatus 0X82=>0X2 I/flutter (12749): fvp.FINE: 16:30:08.110: 3143046 player1125385728 onMediaStatus: MediaStatus(+loading+seeking) => MediaStatus(+loading) I/flutter (12749): mdk.FINE: 16:30:08.111: 0x42b757d0 avio set class I/flutter (12749): mdk.FINE: 16:30:08.111: before avformat_open_input. io: 0x42adf390(FFmpeg)/pb: 0x42b757d0, url: http://sadasdads.adsa/file/movies/The Avengers (2012)/The Avengers (2012) Bluray-2160p.mkv I/flutter (12749): mdk.FINE: 16:30:08.112: after avformat_open_input. pb: 0x42b757d0, iformat: 0x97753c74, context flags: 2097280, input format flags: 0 I/flutter (12749): mdk.FINE: 16:30:08.112: [FFmpeg:hevc] Unknown profile bitstream I/flutter (12749): mdk.FINE: 16:30:08.112: [FFmpeg:hevc] Unknown profile bitstream I/flutter (12749): mdk.FINE: 16:30:08.113: supports 208 ffmpeg sw pixel formats. unsupported: uyyvyy411 rgb8 x2rgb10be x2bgr10be gbrap14be gbrap14le I/flutter (12749): mdk.INFO: 16:30:08.113: Format: matroska,webm, range: 0 +8575710ms, bitrate: 38744292, size: 0 I/flutter (12749): Metadata: I/flutter (12749): ENCODER: Lavf58.20.100 I/flutter (12749): Streams: 2 I/flutter (12749): Video: I/flutter (12749): stream#0, range: 0 +8575710ms, frames: 0 I/flutter (12749): codec: hevc tag: 0 profile: 1 level: 150, yuv420p, bpc:8, bpp:12(8,8,8), channels:(1,1,1), map: 0 1 2 0, bitrate: 0, 3840x2076, fps: 24.4167, bframes: 0, range: Limited I/flutter (12749): extra data(129): 01 21 40 00 00 00 00 00 00 00 00 00 96 F0 00 FC FD F8 F8 00 00 0F 03 20 00 01 00 19 40 01 0C 01 FF FF 21 40 00 00 03 00 00 03 00 00 03 00 00 03 00 96 97 02 40 21 00 01 00 3B 42 01 01 21 40 00 00 03 00 00 03 00 00 03 00 00 03 00 96 A0 01 E0 20 02 08 7D E5 97 B9 08 46 45 FF 8C 04 04 00 00 0F A4 00 01 77 05 80 17 79 44 00 00 2B BF AA 00 00 05 77 F5 51 22 00 01 00 07 44 01 C0 93 7C 0C C9 I/flutter (12749): Metadata: I/flutter (12749): DURATION: 02:22:55.710000000 I/flutter (12749): Audio: I/flutter (12749): stream#1, range: 0 +8575704ms, frames: 0 I/flutter (12749): codec: aac tag: 0 profile: 1 level: -99, sample size: 0/16, block align: 0, frame_size: 1024, f32p 5.1(6) @48000Hz, bitrate: 0 I/flutter (12749): extra data(2): 11 B0 I/flutter (12749): Met I/flutter (12749): fvp.FINE: 16:30:08.116: 3143046 player1125385728 onEvent: metadata - - 0 I/flutter (12749): mdk.FINE: 16:30:08.116: default 0x43140bf0 FrameReader::update MediaStatus 0X2=>0X4 W/AudioCapabilities(12749): Unsupported mime audio/mpeg-L2 W/AudioCapabilities(12749): Unsupported mime audio/x-ms-wma W/VideoCapabilities(12749): Unsupported mime image/vnd.android.heic W/VideoCapabilities(12749): Unsupported mime video/dolby-vision W/VideoCapabilities(12749): Unsupported mime video/dolby-vision W/VideoCapabilities(12749): Unsupported mime video/x-motion-jpeg W/VideoCapabilities(12749): Unsupported mime video/wvc1 W/VideoCapabilities(12749): Unsupported mime video/x-ms-wmv I/VideoCapabilities(12749): Unsupported profile 4 for video/mp4v-es I/OMXClient(12749): IOmx service obtained I/NdkMediaCodec(12749): com.azukaar.aurora D/SurfaceUtils(12749): connecting to surface 0x4756da88, reason connectToSurface I/MediaCodec(12749): [OMX.Nvidia.h265.decode] setting surface generation to 13054977 D/SurfaceUtils(12749): disconnecting from surface 0x4756da88, reason connectToSurface(reconnect) D/SurfaceUtils(12749): connecting to surface 0x4756da88, reason connectToSurface(reconnect) I/ACodec (12749): Enable timestamp filtering for Video Decoder I/flutter (12749): fvp.FINE: 16:30:08.183: 3143046 player1125385728 onMediaStatus: MediaStatus(+loading) => MediaStatus(+loaded) I/ACodec (12749): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (12749): Scaled Width is 3840, height is 2076 I/flutter (12749): mdk.INFO: 16:30:08.192: 0x43140bf0 ***buffering progress 0%*** I/flutter (12749): mdk.FINE: 16:30:08.192: default 0x43140bf0 FrameReader::update MediaStatus 0X4=>0X14 I/flutter (12749): fvp.FINE: 16:30:08.193: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded) => MediaStatus(+loaded+buffering) I/flutter (12749): mdk.INFO: 16:30:08.194: ++++++++++++BUFFERING START++++++++++++ I/flutter (12749): mdk.FINE: 16:30:08.194: I/flutter (12749): fvp.FINE: 16:30:08.194: 3143046 player1125385728 onEvent: reader.buffering - - 0 D/SurfaceUtils(12749): set up nativeWindow 0x4756da88 for 3840x2076, color 0x106, rotation 0, usage 0x2900 W/Gralloc4(12749): allocator 3.x is not supported W/Gralloc3(12749): allocator 3.x is not supported E/libc (12749): Access denied finding property "ro.vendor.sys.NV_ASYNC" E/libc (12749): Access denied finding property "ro.vendor.sys.NV_LOGFPS" E/libc (12749): Access denied finding property "ro.vendor.sys.NV_PROCESS_NAME" E/libc (12749): Access denied finding property "ro.vendor.sys.NV_FPSDYNAMIC" I/flutter (12749): mdk.FINE: 16:30:08.203: default FrameReader0x43140bf0 state: 0=>1=>1, 1 I/flutter (12749): mdk.FINE: 16:30:08.204: default FrameReader0x43140bf0 update state: 0=>1 I/flutter (12749): fvp.FINE: 16:30:08.206: 3143046 player1125385728 onPlaybackStateChanged: PlaybackState.stopped => PlaybackState.playing I/flutter (12749): mdk.FINE: 16:30:08.209: 0x43140bf0 start to decode video#0 packet @0.000000/0.000000 pos: 966 I/flutter (12749): mdk.INFO: 16:30:08.209: 0x43140bf0 ***buffering progress 100%*** I/flutter (12749): mdk.FINE: 16:30:08.210: default 0x43140bf0 FrameReader::update MediaStatus 0X14=>0X124 I/flutter (12749): fvp.FINE: 16:30:08.211: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded+buffering) => MediaStatus(+loaded+prepared+buffered) I/flutter (12749): mdk.INFO: 16:30:08.211: ++++++++++++BUFFERING END++++++++++++ I/flutter (12749): mdk.FINE: 16:30:08.212: I/flutter (12749): fvp.FINE: 16:30:08.212: 3143046 player1125385728 onEvent: reader.buffering - - 100 I/flutter (12749): mdk.INFO: 16:30:08.213: virtual int64_t mdk::PacketIOWrapper::seek(int64_t, SeekFlag)@704 seek target(from 0): 0ms, flags: +FromStart. now: 0.000000 I/flutter (12749): mdk.FINE: 16:30:08.214: starting decode loop thread mdk.vdec0@-1536511552default 0x43140bf0 FrameReader::update MediaStatus 0X124=>0X1A4 I/flutter (12749): mdk.FINE: 16:30:08.214: I/flutter (12749): fvp.FINE: 16:30:08.215: 3143046 player1125385728 onEvent: thread.video - - 1 I/flutter (12749): fvp.FINE: 16:30:08.215: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded+prepared+buffered) => MediaStatus(+loaded+prepared+buffered+seeking) I/flutter (12749): mdk.FINE: 16:30:08.216: 0x43140bf0 video stream#0 starting decoding loop from decoder index 0... I/flutter (12749): mdk.FINE: 16:30:08.217: Seek start. target time: 0 avseek flags: 1I/flutter (12749): mdk.FINE: 16:30:08.217: 0x43140bf0 creating video decoder: AMediaCodec... I/flutter (12749): mdk.INFO: 16:30:08.217: 0x43140bf0 opening video decoder: AMediaCodec... I/flutter (12749): mdk.FINE: 16:30:08.218: CodecForMimeType: video/hevc, profile: 1, level: -1 I/flutter (12749): mdk.FINE: 16:30:08.218: -1536511552 JMI: JNI Modern Interface. Version 0.1.0 I/flutter (12749): mdk.FINE: 16:30:08.240: MediaCodecInfo name: OMX.google.aac.decoder, mime: audio/mp4a-latm I/flutter (12749): mdk.FINE: 16:30:08.241: MediaCodecInfo name: OMX.google.amrnb.decoder, mime: audio/3gpp I/flutter (12749): mdk.FINE: 16:30:08.244: MediaCodecInfo name: OMX.google.amrwb.decoder, mime: audio/amr-wb I/flutter (12749): mdk.FINE: 16:30:08.245: MediaCodecInfo name: OMX.google.flac.decoder, mime: audio/flac I/flutter (12749): mdk.FINE: 16:30:08.245: MediaCodecInfo name: OMX.google.g711.alaw.decoder, mime: audio/g711-alaw I/flutter (12749): mdk.FINE: 16:30:08.246: MediaCodecInfo name: OMX.google.g711.mlaw.decoder, mime: audio/g711-mlaw I/flutter (12749): mdk.FINE: 16:30:08.247: MediaCodecInfo name: OMX.google.mp3.decoder, mime: audio/mpeg I/flutter (12749): mdk.FINE: 16:30:08.248: MediaCodecInfo name: OMX.google.opus.decoder, mime: audio/opus I/flutter (12749): mdk.FINE: 16:30:08.248: MediaCodecInfo name: OMX.google.raw.decoder, mime: audio/raw I/flutter (12749): mdk.FINE: 16:30:08.249: MediaCodecInfo name: OMX.google.vorbis.decoder, mime: audio/vorbis I/flutter (12749): mdk.FINE: 16:30:08.250: MediaCodecInfo name: OMX.Nvidia.mp2.decoder, mime: audio/mpeg-L2 I/flutter (12749): mdk.FINE: 16:30:08.250: MediaCodecInfo name: OMX.Nvidia.wma.decoder, mime: audio/x-ms-wma I/flutter (12749): mdk.FINE: 16:30:08.251: MediaCodecInfo name: OMX.Nvidia.h264.decode, mime: video/avc I/flutter (12749): mdk.FINE: 16:30:08.251: MediaCodecInfo name: OMX.Nvidia.h264.decode.secure, mime: video/avc I/flutter (12749): mdk.FINE: 16:30:08.252: MediaCodecInfo name: OMX.Nvidia.DOVI.decode, mime: video/dolby-vision I/flutter (12749): mdk.FINE: 16:30:08.252: MediaCodecInfo name: OMX.Nvidia.DOVI.decode.secure, mime: video/dolby-vision I/flutter (12749): mdk.FINE: 16:30:08.253: MediaCodecInfo name: OMX.Nvidia.h263.decode, mime: video/3gpp I/flutter (12749): mdk.FINE: 16:30:08.253: MediaCodecInfo name: OMX.Nvidia.h265.decode, mime: video/hevc video/hevc -profile: 1 I/flutter (12749): mdk.FINE: 16:30:08.254: profileLevels count: 3 I/flutter (12749): mdk.FINE: 16:30:08.254: profile: 1 level: 131072 I/flutter (12749): mdk.FINE: 16:30:08.254: [Match]. I/flutter (12749): mdk.FINE: 16:30:08.255: MediaCodecInfo name: OMX.Nvidia.h265.decode.secure, mime: video/hevc video/hevc -profile: 1 I/flutter (12749): mdk.FINE: 16:30:08.256: profileLevels count: 3 I/flutter (12749): mdk.FINE: 16:30:08.256: profile: 1 level: 131072 I/flutter (12749): mdk.FINE: 16:30:08.256: [Match]. I/flutter (12749): mdk.FINE: 16:30:08.257: MediaCodecInfo name: OMX.Nvidia.mjpeg.decoder, mime: video/x-motion-jpeg I/flutter (12749): mdk.FINE: 16:30:08.257: MediaCodecInfo name: OMX.Nvidia.mpeg2v.decode, mime: video/mpeg2 I/flutter (12749): mdk.FINE: 16:30:08.257: MediaCodecInfo name: OMX.Nvidia.mp4.decode, mime: video/mp4v-es I/flutter (12749): mdk.FINE: 16:30:08.257: MediaCodecInfo name: OMX.Nvidia.vc1.decode, mime: video/wvc1 video/x-ms-wmv I/flutter (12749): mdk.FINE: 16:30:08.258: MediaCodecInfo name: OMX.Nvidia.vp8.decode, mime: video/x-vnd.on2.vp8 I/flutter (12749): mdk.FINE: 16:30:08.258: MediaCodecInfo name: OMX.Nvidia.vp9.decode, mime: video/x-vnd.on2.vp9 I/flutter (12749): mdk.FINE: 16:30:08.258: MediaCodecInfo name: OMX.Nvidia.vp9.decode.secure, mime: video/x-vnd.on2.vp9 I/flutter (12749): mdk.FINE: 16:30:08.259: MediaCodecInfo name: OMX.google.h264.decoder, mime: video/avc I/flutter (12749): mdk.FINE: 16:30:08.259: MediaCodecInfo name: OMX.google.h263.decoder, mime: video/3gpp I/flutter (12749): mdk.FINE: 16:30:08.260: MediaCodecInfo name: OMX.google.hevc.decoder, mime: video/hevc video/hevc -profile: 1 I/flutter (12749): mdk.FINE: 16:30:08.260: profileLevels count: 2 I/flutter (12749): mdk.FINE: 16:30:08.261: profile: 1 level: 65536 I/flutter (12749): mdk.FINE: 16:30:08.261: [Match]. I/flutter (12749): mdk.FINE: 16:30:08.261: MediaCodecInfo name: OMX.google.mpeg4.decoder, mime: video/mp4v-es I/flutter (12749): mdk.FINE: 16:30:08.262: MediaCodecInfo name: OMX.google.vp8.decoder, mime: video/x-vnd.on2.vp8 I/flutter (12749): mdk.FINE: 16:30:08.262: MediaCodecInfo name: OMX.google.vp9.decoder, mime: video/x-vnd.on2.vp9 I/flutter (12749): mdk.FINE: 16:30:08.262: found codecs count: 3 | 0 I/flutter (12749): mdk.FINE: 16:30:08.263: video/hevc AMediaCodec_createCodecByName: OMX.Nvidia.h265.decode I/flutter (12749): mdk.FINE: 16:30:08.263: AMediaCodec *ndk::AMediaCodec_createCodecByName(const char *) via ndk: true I/flutter (12749): mdk.FINE: 16:30:08.263: try to convert mp4 extra data to annexb I/flutter (12749): mdk.FINE: 16:30:08.264: nal length field bytes: 4, annexb extradata 0x4304a150 size: 103 I/flutter (12749): mdk.FINE: 16:30:08.264: NALU length bytes: 4 I/flutter (12749): mdk.FINE: 16:30:08.264: 0x430edd00mdk::NativeVideoBufferPool::NativeVideoBufferPool() I/flutter (12749): mdk.FINE: 16:30:08.265: resetReader: 5 I/flutter (12749): mdk.FINE: 16:30:08.265: tunnel: 0, window: 0x4756da88/0, surface: 0x0/1, image: 1 I/flutter (12749): mdk.FINE: 16:30:08.265: AMediaCodec selected video codec name: OMX.Nvidia.h265.decode I/flutter (12749): mdk.FINE: 16:30:08.266: Java_com_mediadevkit_fvp_FvpPlugin_nativeSetSurface I/flutter (12749): mdk.FINE: 16:30:08.266: Rendering thread @-1531444800 I/flutter (12749): mdk.FINE: 16:30:08.266: 0x42b76bf0 start RenderLoop I/flutter (12749): mdk.FINE: 16:30:08.267: 0xa2510ad0->PlatformSurface::Event::NativeHandle: 0x0>>>0xffcf6498 I/flutter (12749): mdk.FINE: 16:30:08.267: getVideoOutContext 0x0 => 0xa2510fb0. vo count: 1 I/flutter (12749): mdk.FINE: 16:30:08.267: auto mdk::VideoPresenter::VideoPresenter()::(anonymous class)::operator()(PlatformSurface *) const: 0x0=>0xa2510fb0 RenderAPI.type: 1 I/flutter (12749): mdk.FINE: 16:30:08.268: createRenderContext of RenderAPI::Type 1 from surface 0xa2510ad0 with extra native res 0x0 I/flutter (12749): mdk.FINE: 16:30:08.268: ThreadLocal::Data::Data() thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.269: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (12749): mdk.FINE: 16:30:08.269: ThreadLocal::Data::Data() thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.270: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (12749): mdk.FINE: 16:30:08.270: creating internal shared offscreen context for type: EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.270: creating EGL context from window: 0x0 with shared context: 0x0 extra: 0x0 I/flutter (12749): mdk.FINE: 16:30:08.271: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.271: ThreadLocal>::Data::Data() thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.272: T *ThreadLocal>::get() const allocate and initialize ThreadLocal data I/flutter (12749): mdk.FINE: 16:30:08.272: dso.load: libEGL.sotest: true I/flutter (12749): mdk.FINE: 16:30:08.272: libEGL.so test load result 0x84a967dd... I/flutter (12749): mdk.FINE: 16:30:08.273: initialize EGL display from eglGetDisplay() I/flutter (12749): mdk.FINE: 16:30:08.273: creating surfaceless offscreen context... WARNING: client api may not support surfaceless context. Can be disabled by setting environment var EGL_SURFACELESS=0 I/flutter (12749): mdk.FINE: 16:30:08.274: Try to create context for OpenGL ES 3 I/flutter (12749): fvp.FINE: 16:30:08.274: 3143046 player1125385728 onEvent: decoder.video - AMediaCodec - 0 I/flutter (12749): mdk.FINE: 16:30:08.274: 0x43140bf0 decode stored recovery packets: 0 I/flutter (12749): mdk.INFO: 16:30:08.275: 0x43140bf0 ***buffering progress 0%*** I/flutter (12749): mdk.FINE: 16:30:08.275: default 0x43140bf0 FrameReader::update MediaStatus 0X1A4=>0X194 I/flutter (12749): fvp.FINE: 16:30:08.276: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded+prepared+buffered+seeking) => MediaStatus(+loaded+prepared+buffering+seeking) I/flutter (12749): mdk.INFO: 16:30:08.276: ++++++++++++BUFFERING START++++++++++++ I/flutter (12749): mdk.FINE: 16:30:08.277: I/flutter (12749): fvp.FINE: 16:30:08.277: 3143046 player1125385728 onEvent: reader.buffering - - 0 I/flutter (12749): mdk.FINE: 16:30:08.278: 0x43140bf0 video stream#0 is seeking #1... got flush pkt. flush decoder and drop frames until seek target 0.0000s... I/flutter (12749): mdk.FINE: 16:30:08.278: 0x47595fd0 1st video frame to render @-1.000000s, sync time: 0.100000 I/flutter (12749): mdk.FINE: 16:30:08.278: invalid video frame @-1.000000 I/flutter (12749): mdk.FINE: 16:30:08.279: creating EGL context from window: 0xa13c0018 with shared context: 0x42a7d690 extra: 0x0 I/flutter (12749): mdk.FINE: 16:30:08.279: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.280: initialize EGL display from eglGetDisplay() I/flutter (12749): mdk.FINE: 16:30:08.280: Try to create context for OpenGL ES 3 I/flutter (12749): mdk.FINE: 16:30:08.281: ThreadLocal::Data::Data() thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.281: T *ThreadLocal::get() const allocate and initialize ThreadLocal data I/flutter (12749): mdk.FINE: 16:30:08.283: ++++++++++onContextCreated(surface 0xa2510ad0, ctx 0xa2511710)+++++++++++ I/flutter (12749): mdk.FINE: 16:30:08.284: getVideoOutContext 0xffcf6498 => 0xa2513990. vo count: 2 I/flutter (12749): mdk.FINE: 16:30:08.284: PlatformSurface::Event::Resize 3840x2076 I/flutter (12749): mdk.FINE: 16:30:08.285: 0x42b902a8 setVideoSurfaceSize(3840x2076, 0xffcf6498) I/flutter (12749): mdk.FINE: 16:30:08.285: PlatformSurface::Event::Resize 3840x2076 I/flutter (12749): mdk.FINE: 16:30:08.285: 0x42b902a8 setVideoSurfaceSize(3840x2076, 0xffcf6498) I/flutter (12749): mdk.FINE: 16:30:08.328: Seek end I/flutter (12749): mdk.FINE: 16:30:08.329: 1 packets is read after seek. read more to get target pts I/flutter (12749): mdk.FINE: 16:30:08.329: 2 packets is read after seek. read more to get target pts I/flutter (12749): mdk.FINE: 16:30:08.330: 3 packets is read after seek. read more to get target pts I/flutter (12749): mdk.FINE: 16:30:08.330: 3 packets is read after seek. seek result pts: 0.022000s, requested: 0ms I/flutter (12749): mdk.FINE: 16:30:08.331: default 0x43140bf0 FrameReader::update MediaStatus 0X194=>0X114 I/flutter (12749): fvp.FINE: 16:30:08.331: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded+prepared+buffering+seeking) => MediaStatus(+loaded+prepared+buffering) I/flutter (12749): mdk.FINE: 16:30:08.332: seek_drop_non_video_: 0 ms, seek_wait_frame_: 0... I/flutter (12749): mdk.INFO: 16:30:08.332: 0x43140bf0 ***buffering progress 12%*** I/flutter (12749): fvp.FINE: 16:30:08.333: 3143046 player1125385728 onEvent: reader.buffering - - 12 I/flutter (12749): mdk.INFO: 16:30:08.334: 0x43140bf0 ***buffering progress 16%*** I/flutter (12749): fvp.FINE: 16:30:08.335: 3143046 player1125385728 onEvent: reader.buffering - - 16 I/flutter (12749): mdk.INFO: 16:30:08.337: 0x43140bf0 ***buffering progress 41%*** I/flutter (12749): fvp.FINE: 16:30:08.338: 3143046 player1125385728 onEvent: reader.buffering - - 41 I/flutter (12749): mdk.INFO: 16:30:08.339: 0x43140bf0 ***buffering progress 45%*** I/flutter (12749): fvp.FINE: 16:30:08.340: 3143046 player1125385728 onEvent: reader.buffering - - 45 I/ACodec (12749): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (12749): Scaled Width is 3840, height is 2076 D/SurfaceUtils(12749): set up nativeWindow 0x4756da88 for 3840x2076, color 0x106, rotation 0, usage 0x2900 I/flutter (12749): mdk.FINE: 16:30:08.354: AMEDIACODEC_INFO_OUTPUT_BUFFERS_CHANGED I/ACodec (12749): Get OMX_IndexConfigScale: 0x10000/0x10000 I/ACodec (12749): Scaled Width is 3840, height is 2076 I/flutter (12749): mdk.INFO: 16:30:08.610: 0x43140bf0 ***buffering progress 100%*** I/flutter (12749): mdk.FINE: 16:30:08.611: default 0x43140bf0 FrameReader::update MediaStatus 0X114=>0X124 I/flutter (12749): fvp.FINE: 16:30:08.614: 3143046 player1125385728 onMediaStatus: MediaStatus(+loaded+prepared+buffering) => MediaStatus(+loaded+prepared+buffered) I/flutter (12749): mdk.INFO: 16:30:08.619: ++++++++++++BUFFERING END++++++++++++ I/flutter (12749): mdk.FINE: 16:30:08.622: I/flutter (12749): fvp.FINE: 16:30:08.622: 3143046 player1125385728 onEvent: reader.buffering - - 100 I/flutter (12749): mdk.FINE: 16:30:08.623: AMEDIACODEC_INFO_OUTPUT_FORMAT_CHANGED I/flutter (12749): mdk.FINE: 16:30:08.626: MediaFormat: color-range: int32(2), color-standard: int32(1), color-transfer: int32(3), mime: string(video/raw), stride: int32(3840), slice-height: int32(2076), color-format: int32(262), crop: Rect(0, 0, 3839, 2075), display-width: int32(3840), display-height: int32(2076), android._dataspace: int32(260), hdr-static-info: data, width: int32(3840), height: int32(2076)} I/flutter (12749): mdk.FINE: 16:30:08.627: unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 I/flutter (12749): mdk.FINE: 16:30:08.628: size: 3840x2076, bytes: 3840x2076 I/flutter (12749): mdk.FINE: 16:30:08.630: 0x43140bf0 #1/1 video seek_done: 1, seek_wait_frame_: 0/0 I/flutter (12749): mdk.FINE: 16:30:08.631: 0x43140bf0 video stream#0 sending 1 invalid AOT frame @0.000000s. seeking: 0 I/flutter (12749): mdk.FINE: 16:30:08.631: 0x47595fd0 1st video frame to render @0.000000s, sync time: 0.004000 I/flutter (12749): mdk.FINE: 16:30:08.631: VideoRenderer clear buffered frames I/flutter (12749): mdk.FINE: 16:30:08.632: 0-track seek end video frame @0.000000 seek_pos_: -1 I/flutter (12749): fvp.FINE: 16:30:08.632: 3143046 player1125385728 onEvent: video - size - 0 I/flutter (12749): mdk.FINE: 16:30:08.633: 0x43140bf0 video stream#0 AOT frame is sent I/flutter (12749): mdk.FINE: 16:30:08.633: VideoRenderer WxH=3840.000000x2076.000000 3840.000000x2076.000000, frame: 3840x2076 I/flutter (12749): mdk.FINE: 16:30:08.633: update transform 2d. scale: (1.000000, 1.000000), orientation: 0 I/flutter (12749): mdk.FINE: 16:30:08.634: m: mat<4, 4>( I/flutter (12749): mdk.FINE: 16:30:08.634: 1 0 0 0 I/flutter (12749): mdk.FINE: 16:30:08.642: 0 1 0 0 I/flutter (12749): mdk.FINE: 16:30:08.642: 0 0 1 0 I/flutter (12749): mdk.FINE: 16:30:08.643: 0 0 0 1 I/flutter (12749): mdk.FINE: 16:30:08.643: ) I/flutter (12749): mdk.FINE: 16:30:08.644: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.648: ThreadLocal>>::Data::Data() thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.649: T *ThreadLocal>>::get() const allocate and initialize ThreadLocal data I/flutter (12749): mdk.FINE: 16:30:08.652: new Context object 0xa1386a10(0) for native context handle 0x42addd10 I/flutter (12749): mdk.FINE: 16:30:08.653: ctx->api_: 0xa0794a10 I/flutter (12749): mdk.FINE: 16:30:08.655: probing gl context... native: 0x0 I/flutter (12749): mdk.FINE: 16:30:08.656: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.658: EGL_VERSION: 1.5 Android META-EGL I/flutter (12749): mdk.FINE: 16:30:08.659: EGL_VENDOR: Android I/flutter (12749): mdk.FINE: 16:30:08.659: EGL_CLIENT_APIS: OpenGL_ES OpenGL I/flutter (12749): mdk.FINE: 16:30:08.660: Current EGL dso path: /system/lib/libEGL.so I/flutter (12749): mdk.FINE: 16:30:08.661: default FrameReader0x43140bf0 #1 seekComplete 0 I/flutter (12749): mdk.FINE: 16:30:08.662: default 0x43140bf0 FrameReader::update MediaStatus 0X124=>0X124 I/flutter (12749): mdk.FINE: 16:30:08.662: default FrameReader 0x43140bf0 callbacks 0, seeking 0 flag 0, seekComplete#1 @0 I/flutter (12749): mdk.FINE: 16:30:08.738: GLESv2 dso loaded: /system/lib/libGLESv2.so I/flutter (12749): mdk.FINE: 16:30:08.741: resolving gl common functions... I/flutter (12749): mdk.FINE: 16:30:08.743: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.745: using opengl api resolver: EGL I/flutter (12749): mdk.FINE: 16:30:08.746: probing gl client context... major_: 0 I/flutter (12749): mdk.FINE: 16:30:08.748: GL_VENDOR: NVIDIA Corporation I/flutter (12749): mdk.FINE: 16:30:08.750: GL_RENDERER: NVIDIA Tegra I/flutter (12749): mdk.FINE: 16:30:08.752: GL_VERSION: OpenGL ES 3.2 NVIDIA 495.00 I/flutter (12749): mdk.FINE: 16:30:08.752: GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.20 I/flutter (12749): mdk.FINE: 16:30:08.753: EGL_ANDROID_front_buffer_auto_refresh EGL_ANDROID_get_frame_timestamps EGL_ANDROID_get_native_client_buffer EGL_ANDROID_image_native_buffer EGL_ANDROID_presentation_time EGL_ANDROID_recordable EGL_ANGLE_platform_angle EGL_EXT_buffer_age EGL_EXT_client_extensions EGL_EXT_create_context_robustness EGL_EXT_gl_colorspace_bt2020_linear EGL_EXT_gl_colorspace_bt2020_pq EGL_EXT_gl_colorspace_display_p3 EGL_EXT_gl_colorspace_display_p3_linear EGL_EXT_gl_colorspace_display_p3_passthrough EGL_EXT_gl_colorspace_scrgb EGL_EXT_gl_colorspace_scrgb_linear EGL_EXT_pixel_format_float EGL_EXT_protected_content EGL_EXT_surface_CTA861_3_metadata EGL_EXT_surface_SMPTE2086_metadata EGL_IMG_context_priority EGL_KHR_client_get_all_proc_addresses EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image I/flutter (12749): mdk.FINE: 16:30:08.754: OpenGL Context thread: -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.756: OpenGL ES3.2 No profile, EGL150, GLSL320 I/flutter (12749): Features PBO: 1, UBO: 1, RG texture: 1, 16bit texture: 1 I/flutter (12749): mdk.FINE: 16:30:08.756: resolving gl extensions... I/flutter (12749): mdk.FINE: 16:30:08.757: select gl api resolver for EGL|OpenGL|OpenGLES I/flutter (12749): mdk.FINE: 16:30:08.757: using opengl api resolver: EGL I/flutter (12749): mdk.FINE: 16:30:08.757: context version: 320 I/flutter (12749): mdk.FINE: 16:30:08.758: gl api resolved. thread@ -1531444800 I/flutter (12749): mdk.FINE: 16:30:08.758: I/flutter (12749): mdk.FINE: 16:30:08.758: 0xa1386a10/0x42addd10 Context::setLocalData local data 0x42aa7ad0 for key: 0x2. size: 1 I/flutter (12749): mdk.FINE: 16:30:08.759: 0xa1386a10/0x42addd10 Context::setLocalData local data 0x42ab2890 for key: 0x3. size: 2 I/flutter (12749): mdk.FINE: 16:30:08.759: 0xa25149d0mdk::GLVideoRenderer::Private::Renderers::Renderers() I/flutter (12749): mdk.FINE: 16:30:08.760: 0xa1386a10/0x42addd10 Context::setLocalData local data 0xa3ad5e20 for key: 0x1. size: 3 I/flutter (12749): mdk.FINE: 16:30:08.766: 0xa1386a10/0x42addd10 Context::setLocalData local data 0xa3ad64b0 for key: 0x0. size: 4 I/flutter (12749): mdk.FINE: 16:30:08.767: AHardwareBuffer from AImageReader Surface to EGLImage I/flutter (12749): mdk.FINE: 16:30:08.769: unknown, bpc:0, bpp:0(), channels:(), map: 0 0 0 0 => mapped rgba, alpha, bpc:8, bpp:32(32), channels:(4), map: 0 1 2 3 I/flutter (12749): mdk.FINE: 16:30:08.770: RGBA8 | RGBA | UNSIGNED_BYTE I/flutter (12749): mdk.FINE: 16:30:08.770: frame color: BT709 BT709 RGB Limited. gamma: 2.200000, signal peak: 1.000000 I/flutter (12749): mdk.FINE: 16:30:08.771: - I/flutter (12749): mdk.FINE: 16:30:08.772: output color: BT709 UNSPECIFIED RGB Full. gamma: 2.200000, signal peak: 1.000000 I/flutter (12749): mdk.FINE: 16:30:08.773: rgb primaries matrix: mat<3, 3>( I/flutter (12749): mdk.FINE: 16:30:08.774: 1 0 0 I/flutter (12749): mdk.FINE: 16:30:08.774: 0 1 0 I/flutter (12749): mdk.FINE: 16:30:08.774: 0 0 1 I/flutter (12749): mdk.FINE: 16:30:08.775: ) I/flutter (12749): mdk.FINE: 16:30:08.776: scale: 1.000000, color transform: mat<4, 4>( I/flutter (12749): mdk.FINE: 16:30:08.776: 1 0 0 0 I/flutter (12749): mdk.FINE: 16:30:08.776: 0 1 0 0 I/flutter (12749): mdk.FINE: 16:30:08.777: 0 0 1 0 I/flutter (12749): mdk.FINE: 16:30:08.777: 0 0 0 1 I/flutter (12749): mdk.FINE: 16:30:08.780: ) I/flutter (12749): mdk.FINE: 16:30:08.781: EQ: mat<4, 4>( I/flutter (12749): mdk.FINE: 16:30:08.782: 1 0 0 0 I/flutter (12749): mdk.FINE: 16:30:08.782: 0 1 0 0 I/flutter (12749): mdk.FINE: 16:30:08.783: 0 0 1 0 I/flutter (12749): mdk.FINE: 16:30:08.783: 0 0 0 1 I/flutter (12749): mdk.FINE: 16:30:08.784: ) I/flutter (12749): mdk.FINE: 16:30:08.785: shader id: 2306 I/flutter (12749): mdk.FINE: 16:30:08.785: dump UBO layout: I/flutter (12749): align @offset +size /stride address name ~ path: type -> parent I/flutter (12749): 16@0 +64/16 0xa138721c u_colorMatrix ~ u_colorMatrix: mat4 -> 0x0 I/flutter (12749): 4 @64+4 /4 0xa138761c u_ScaleA ~ u_ScaleA: float -> 0x0 I/flutter (12749): mdk.FINE: 16:30:08.786: material changed: 0x0 => 0x90a I/flutter (12749): mdk.FINE: 16:30:08.786: planar: 0, alpha: 1, texture 2d: 0, external: 1, rg semi-planar: 0, 16=>8: 0, xyz: 0, yuv sampler: 0, generic packed yuv: 0, cocgsy: 0, primaries diff: 0, trc: 1=>1, tone map: 0 I/flutter (12749): mdk.FINE: 16:30:08.786: bind attribute: a_Position => 0 I/flutter (12749): mdk.FINE: 16:30:08.787: bind attribute: a_TexCoords0 => 1 I/flutter (12749): mdk.FINE: 16:30:08.788: UBO ConstBuffer: 0/4294967295 I/flutter (12749): mdk.FINE: 16:30:08.791: uniform locations: I/flutter (12749): mdk.FINE: 16:30:08.792: u_Texture0: 2 I/flutter (12749): mdk.FINE: 16:30:08.792: u_Matrix: 0, u_TexMatrix: 1 I/flutter (12749): mdk.FINE: 16:30:08.793: build glsl elapsed: 1118us I/flutter (12749): mdk.FINE: 16:30:08.793: creating vbo... I/flutter (12749): mdk.FINE: 16:30:08.794: creating vao... I/flutter (12749): fvp.FINE: 16:30:08.794: 3143046 player1125385728 onEvent: render.video - 1st_frame - 0 I/flutter (12749): mdk.FINE: 16:30:08.815: release MediaCodec output buffer which was not rendered @16 I/flutter (12749): mdk.FINE: 16:30:08.879: release MediaCodec output buffer which was not rendered @14 I/flutter (12749): mdk.FINE: 16:30:08.960: release MediaCodec output buffer which was not rendered @12 I/flutter (12749): mdk.FINE: 16:30:09.003: release MediaCodec output buffer which was not rendered @11 Application finished. ```
wang-bin commented 1 month ago

@azukaar try master branch code and send me log again, audio can be enabled.

azukaar commented 1 month ago

This is the log after a few secs of playback : https://pastebin.com/WYeucfsJ

I/flutter (29194): mdk.FINE: 11:40:20.174: 0x475bf570>25232 00:00:25.2/02:22:55 cache 0v 3.6s/49591KB 6945KB/s |+4|<4ms update 41.5ms 24.0fps draw 1/2 +0ms gpu 1903/2012us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.300: 0x475bf570>25358 00:00:25.3/02:22:55 cache 0v 3.6s/49509KB 6670KB/s |+3|<4ms update 41.9ms 24.0fps draw 1/2 +0ms gpu 1899/2012us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.426: 0x475bf570>25483 00:00:25.4/02:22:55 cache 0v 3.6s/49467KB 6535KB/s |+2|<4ms update 41.9ms 24.0fps draw 1/2 +0ms gpu 1896/2012us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.547: 0x475bf570>25608 00:00:25.6/02:22:55 cache 0v 3.6s/49487KB 6406KB/s |+3|<4ms update 41.7ms 24.0fps draw 1/2 +0ms gpu 1882/2003us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.674: 0x475bf570>25733 00:00:25.7/02:22:55 cache 0v 3.6s/49574KB 6162KB/s |+3|<4ms update 41.7ms 24.0fps draw 1/2 +0ms gpu 1889/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.801: 0x475bf570>25858 00:00:25.8/02:22:55 cache 0v 3.6s/49468KB 6107KB/s |+2|<4ms update 41.9ms 23.7fps draw 1/2 +0ms gpu 1903/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:20.926: 0x475bf570>25983 00:00:25.9/02:22:55 cache 0v 3.6s/49404KB 5893KB/s |+2|<4ms update 41.7ms 23.7fps draw 1/2 +0ms gpu 1906/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.044: 0x475bf570>26108 00:00:26.1/02:22:55 cache 0v 3.6s/49263KB 6575KB/s |+2|<4ms update 41.2ms 23.7fps draw 1/2 +0ms gpu 1898/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.169: 0x475bf570>26233 00:00:26.2/02:22:55 cache 0v 3.6s/49131KB 6346KB/s |+2|<4ms update 41.5ms 23.7fps draw 1/2 +0ms gpu 1886/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.293: 0x475bf570>26359 00:00:26.3/02:22:55 cache 0v 3.6s/48937KB 6414KB/s |+3|<4ms update 41.3ms 23.8fps draw 1/2 +0ms gpu 1891/2045us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.419: 0x475bf570>26484 00:00:26.4/02:22:55 cache 0v 3.6s/48729KB 6280KB/s |+3|<4ms update 41.3ms 23.8fps draw 1/2 +0ms gpu 1870/1942us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.550: 0x475bf570>26609 00:00:26.6/02:22:55 cache 0v 3.6s/48486KB 5772KB/s |+2|<4ms update 41.3ms 23.9fps draw 1/2 +0ms gpu 1871/1942us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.671: 0x475bf570>26734 00:00:26.7/02:22:55 cache 0v 3.6s/48323KB 5633KB/s |+1|<4ms update 41.8ms 23.9fps draw 1/2 +0ms gpu 1868/1949us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.797: 0x475bf570>26859 00:00:26.8/02:22:55 cache 0v 3.6s/47870KB 5174KB/s |+0|<4ms update 41.8ms 24.0fps draw 1/2 +0ms gpu 1876/1949us drop 18
I/flutter (29194): mdk.FINE: 11:40:21.924: 0x475bf570>26984 00:00:26.9/02:22:55 cache 0v 3.6s/47600KB 4645KB/s |+3|<4ms update 42.0ms 24.4fps draw 1/3 +0ms gpu 1870/1949us drop 18

Does this mean that 18 frames have been dropped in total? If yes it does not match what I see on screen, I can clearly see many more frame drops that do not increment that value. Sometime even the sound stutters

what about when FPS goes < 24, could it be what I see? 23.7 is very close to 24 FPS, but if the frames are dropped instead of drawn, it could be what I see no? The thing is my Windows PC also goes to 23.9 FPS but has no visible stutter so probably not the issue