Video playback to a texture stalling

This forum is about all development around libVLC.
jules43
New Cone
New Cone
Posts: 3
Joined: 07 Apr 2016 12:07

Video playback to a texture stalling

Postby jules43 » 05 May 2016 16:00

I am using libvlc_video_set_callbacks and libvlc_video_set_format to playback a video to a D3D 11 texture.

I can then apply the texture to some geometry and see the texture. At the moment I'm allowing LibVLC to handle the audio playback directly to the system sound driver itself, so I can hear the audio too.

The video plays nicely, however if I increase the size of the target texture above about 2k or I use a high res video (4k x 2k) then after the first few frames the video stalls and I get no more frames of video.

Debug code indicates that LibVLC is still calling Lock, Unlock and Display but I'm not seeing the later frames appear on my texture.

My CPU and GPU don't appear to be maxed out, but I'm at a loss as to why it should work for a bit and then video completely stall.

I have added code to test whether the problem is in my rendering side, I can write to the texture after the Display callback and I see the texture updating dynamically.

I've also turned on LibVLC logging (see below) and the problem appears to be that the frames are taking too long to decode and so playback is failing.

However if I don't use libvlc_video_set_callbacks then LibVLC creates a window and plays back the video successfully without stalling, which would suggest it does have the capability to play the video without stalling and there must be something causing it to be much more expensive than it should be.

Can anyone suggest what could cause this? Or how to debug.

Thanks

Jules

Code: Select all

LibVLCWrapper: VLCMediaPlayer::SetSurface(texture=2a7932e0, width=4096, height=2048, format=RGBA) LibVLCWrapper: VLCMediaPlayer::SetDataSource(path=E:\FPVR\360Videos\JamesEGray.360_tb.mp4) LibVLCWrapper: VLCMediaPlayer::PrepareAsync() LibVLCWrapper: VLC media player - 2.2.2 Weatherwax LibVLCWrapper: Copyright © 1996-2016 the VideoLAN team LibVLCWrapper: revision 2.2.2-0-g6259d80 LibVLCWrapper: configured with ../extras/package/win32/../../../configure '--enable-update-check' '--enable-lua' '--enable-faad' '--enable-flac' '--enable-theora' '--enable-twolame' '--enable-quicktime' '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca' '--enable-mpc' '--enable-libass' '--enable-x264' '--enable-schroedinger' '--enable-realrtsp' '--enable-live555' '--enable-dvdread' '--enable-shout' '--enable-goom' '--enable-caca' '--disable-sdl' '--enable-qt' '--enable-skins2' '--enable-sse' '--enable-mmx' '--enable-libcddb' '--enable-zvbi' '--disable-telx' '--enable-nls' '--host=x86_64-w64-mingw32' 'host_alias=x86_64-w64-mingw32' LibVLCWrapper: Creating an input for 'JamesEGray.360_tb.mp4' LibVLCWrapper: using timeshift granularity of 50 MiB, in path 'C:\Users\jules\AppData\Local\Temp' LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerOpening) - LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=0.000000 LibVLCWrapper: `file:///E:/FPVR/360Videos/JamesEGray.360_tb.mp4' gives access `file' demux `' path `/E:/FPVR/360Videos/JamesEGray.360_tb.mp4' LibVLCWrapper: specified demux `any' LibVLCWrapper: creating demux: access='file' demux='any' location='/E:/FPVR/360Videos/JamesEGray.360_tb.mp4' file='E:\FPVR\360Videos\JamesEGray.360_tb.mp4' LibVLCWrapper: looking for access_demux module matching "file": 10 candidates LibVLCWrapper: no access_demux modules matched LibVLCWrapper: creating access 'file' location='/E:/FPVR/360Videos/JamesEGray.360_tb.mp4', path='E:\FPVR\360Videos\JamesEGray.360_tb.mp4' LibVLCWrapper: looking for access module matching "file": 20 candidates LibVLCWrapper: opening file `E:\FPVR\360Videos\JamesEGray.360_tb.mp4' LibVLCWrapper: using access module "filesystem" LibVLCWrapper: Using stream method for AStream* LibVLCWrapper: starting pre-buffering LibVLCWrapper: received first data after 0 ms LibVLCWrapper: pre-buffering done 1024 bytes in 0s - 499 KiB/s LibVLCWrapper: looking for stream_filter module matching "any": 5 candidates LibVLCWrapper: no stream_filter modules matched LibVLCWrapper: looking for stream_filter module matching "record": 5 candidates LibVLCWrapper: using stream_filter module "record" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerPausableChanged) - pausable=1 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerSeekableChanged) - seekable=1 LibVLCWrapper: creating demux: access='file' demux='any' location='/E:/FPVR/360Videos/JamesEGray.360_tb.mp4' file='E:\FPVR\360Videos\JamesEGray.360_tb.mp4' LibVLCWrapper: looking for demux module matching "mp4": 62 candidates LibVLCWrapper: Unknown uuid type box LibVLCWrapper: unknown box type hdlr (incompletely loaded) LibVLCWrapper: unknown box type hdlr (incompletely loaded) LibVLCWrapper: unknown box type cTIM (incompletely loaded) LibVLCWrapper: unknown box type cTSC (incompletely loaded) LibVLCWrapper: unknown box type cTSZ (incompletely loaded) LibVLCWrapper: added fragment moov LibVLCWrapper: dumping root Box "root" LibVLCWrapper: | + ftyp size 24 offset 0 LibVLCWrapper: | + uuid size 4063 offset 24 LibVLCWrapper: | + free size 145340 offset 4087 LibVLCWrapper: | + mdat size 956165606 offset 149427 LibVLCWrapper: | + moov size 149461 offset 956315033 LibVLCWrapper: | | + mvhd size 108 offset 956315041 LibVLCWrapper: | | + trak size 84379 offset 956315149 LibVLCWrapper: | | | + tkhd size 92 offset 956315157 LibVLCWrapper: | | | + edts size 36 offset 956315249 LibVLCWrapper: | | | | + elst size 28 offset 956315257 LibVLCWrapper: | | | + mdia size 84243 offset 956315285 LibVLCWrapper: | | | | + mdhd size 32 offset 956315293 LibVLCWrapper: | | | | + hdlr size 64 offset 956315325 LibVLCWrapper: | | | | + minf size 84139 offset 956315389 LibVLCWrapper: | | | | | + vmhd size 20 offset 956315397 LibVLCWrapper: | | | | | + hdlr size 64 offset 956315417 LibVLCWrapper: | | | | | + dinf size 36 offset 956315481 LibVLCWrapper: | | | | | | + dref size 28 offset 956315489 LibVLCWrapper: | | | | | | | + url size 12 offset 956315505 LibVLCWrapper: | | | | | + stbl size 84011 offset 956315517 LibVLCWrapper: | | | | | | + stsd size 181 offset 956315525 LibVLCWrapper: | | | | | | | + avc1 size 165 offset 956315541 LibVLCWrapper: | | | | | | | | + avcC size 79 offset 956315627 LibVLCWrapper: | | | | | | + stts size 24 offset 956315706 LibVLCWrapper: | | | | | | + stss size 932 offset 956315730 LibVLCWrapper: | | | | | | + sdtp size 7542 offset 956316662 LibVLCWrapper: | | | | | | + stsc size 28 offset 956324204 LibVLCWrapper: | | | | | | + stsz size 30140 offset 956324232 LibVLCWrapper: | | | | | | + stco size 3028 offset 956354372 LibVLCWrapper: | | | | | | + ctts size 42128 offset 956357400 LibVLCWrapper: | | + trak size 64908 offset 956399528 LibVLCWrapper: | | | + tkhd size 92 offset 956399536 LibVLCWrapper: | | | + edts size 36 offset 956399628 LibVLCWrapper: | | | | + elst size 28 offset 956399636 LibVLCWrapper: | | | + mdia size 64772 offset 956399664 LibVLCWrapper: | | | | + mdhd size 32 offset 956399672 LibVLCWrapper: | | | | + hdlr size 68 offset 956399704 LibVLCWrapper: | | | | + minf size 64664 offset 956399772 LibVLCWrapper: | | | | | + smhd size 16 offset 956399780 LibVLCWrapper: | | | | | + hdlr size 68 offset 956399796 LibVLCWrapper: | | | | | + dinf size 36 offset 956399864 LibVLCWrapper: | | | | | | + dref size 28 offset 956399872 LibVLCWrapper: | | | | | | | + url size 12 offset 956399888 LibVLCWrapper: | | | | | + stbl size 64536 offset 956399900 LibVLCWrapper: | | | | | | + stsd size 100 offset 956399908 LibVLCWrapper: | | | | | | | + mp4a size 84 offset 956399924 LibVLCWrapper: | | | | | | | | + esds size 48 offset 956399960 LibVLCWrapper: | | | | | | + stts size 376 offset 956400008 LibVLCWrapper: | | | | | | + stsc size 4528 offset 956400384 LibVLCWrapper: | | | | | | + stsz size 56496 offset 956404912 LibVLCWrapper: | | | | | | + stco size 3028 offset 956461408 LibVLCWrapper: | | + udta size 58 offset 956464436 LibVLCWrapper: | | | + cTIM size 23 offset 956464444 LibVLCWrapper: | | | + cTSC size 14 offset 956464467 LibVLCWrapper: | | | + cTSZ size 13 offset 956464481 LibVLCWrapper: unrecognized major file specification (mp42). LibVLCWrapper: found 2 tracks LibVLCWrapper: elst box found LibVLCWrapper: - [0] duration=301200ms media time=0ms) rate=1.0 LibVLCWrapper: track[Id 0x1] read 753 chunk LibVLCWrapper: STTS table of 1 entries LibVLCWrapper: CTTS table of 5264 entries LibVLCWrapper: track[Id 0x1] read 7530 samples length:301s LibVLCWrapper: selecting program id=0 LibVLCWrapper: adding track[Id 0x1] video (enable) language eng LibVLCWrapper: elst box found LibVLCWrapper: - [0] duration=301200ms media time=0ms) rate=1.0 LibVLCWrapper: track[Id 0x2] read 753 chunk LibVLCWrapper: STTS table of 45 entries LibVLCWrapper: track[Id 0x2] read 14119 samples length:301s LibVLCWrapper: adding track[Id 0x2] audio (enable) language eng LibVLCWrapper: fragment offset 956315033, data 149443<->956315033, duration 0 LibVLCWrapper: using demux module "mp4" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerLengthChanged) - length=301205 LibVLCWrapper: looking for a subtitle file in E:\FPVR\360Videos\ LibVLCWrapper: looking for decoder module matching "any": 43 candidates LibVLCWrapper: CPU flags: 0x010013db LibVLCWrapper: trying to use direct rendering LibVLCWrapper: allowing 4 thread(s) for decoding LibVLCWrapper: avcodec codec (H264 - MPEG-4 AVC (part 10)) started LibVLCWrapper: using frame thread mode with 4 threads LibVLCWrapper: using decoder module "avcodec" LibVLCWrapper: looking for decoder module matching "any": 43 candidates LibVLCWrapper: using decoder module "faad" LibVLCWrapper: looking for meta reader module matching "any": 1 candidates LibVLCWrapper: Trying Lua scripts in C:\Users\jules\AppData\Roaming\vlc\lua\meta\reader LibVLCWrapper: Trying Lua scripts in E:\Dev\UbietyVR\Assets\Plugins\x86_64\lua\meta\reader LibVLCWrapper: no meta reader modules matched LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaParsedChanged) - parsed=1, w=4096, h=2048 LibVLCWrapper: `file:///E:/FPVR/360Videos/JamesEGray.360_tb.mp4' successfully opened LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerPlaying) - LibVLCWrapper: elst (0) gives 0ms (movie)-> 0ms (track) LibVLCWrapper: track[Id 0x1] using Sync Sample Box (stss) LibVLCWrapper: stss gives 0 --> 0 (sample number) LibVLCWrapper: elst (0) gives 0ms (movie)-> 0ms (track) LibVLCWrapper: track[Id 0x2] does not provide Sync Sample Box (stss) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=0.000000 LibVLCWrapper: Buffering 0% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=0.000000 LibVLCWrapper: decoded zero sample LibVLCWrapper: Buffering 0% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=7.000000 LibVLCWrapper: available hardware decoder output format 61 (dxva2_vld) LibVLCWrapper: Buffering 7% ware decoder output format 0 (yuv420p) LibVLCWrapper: looking for hw decoder module matching "none": 1 candidates .000000 LibVLCWrapper: reusing audio output LibVLCWrapper: Opening DirectSound Audio Output LibVLCWrapper: Buffering 13% LibVLCWrapper: no hw decoder modules matched LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=14.000000 LibVLCWrapper: looking for text renderer module matching "any": 2 candidates LibVLCWrapper: Buffering 14% LibVLCWrapper: Windows speaker config: Stereo and stream has 2 channels, using 2 channels LibVLCWrapper: Using Arial as font from file C:\WINDOWS\Fonts\arial.ttf LibVLCWrapper: Using Courier New as mono-font from file C:\WINDOWS\Fonts\cour.ttf LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=21.000000 LibVLCWrapper: Buffering 21% LibVLCWrapper: output 'f32l' 48000 Hz Stereo frame=1 samples/8 bytes LibVLCWrapper: looking for audio volume module matching "any": 2 candidates LibVLCWrapper: using text renderer module "freetype" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=26.000000 LibVLCWrapper: looking for video filter2 module matching "any": 57 candidates LibVLCWrapper: using audio volume module "float_mixer" LibVLCWrapper: VideoFrame::VideoFrame() LibVLCWrapper: input 'f32l' 48000 Hz Stereo frame=1 samples/8 bytes LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=28.000000 LibVLCWrapper: VideoFrame::Initialize(width=4096, height=2048, format=1) returns true (hr=00000000) LibVLCWrapper: 32x32 (32x32) chroma: YUVA -> 16x16 (16x16) chroma: RGBA with scaling using Bicubic (good quality) LibVLCWrapper: Buffering 28% ter2 module "swscale" 2048, format=1) returns 2a8f03f0 LibVLCWrapper: looking for audio filter module matching "scaletempo": 13 candidates LibVLCWrapper: looking for video filter2 module matching "any": 57 candidates LibVLCWrapper: VideoFrame::VideoFrame() LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=35.000000 LibVLCWrapper: format: 48000 rate, 2 nch, 4 bps, fl32 LibVLCWrapper: Buffering 35% de, 0.200 overlap, 14 search LibVLCWrapper: VideoFrame::Initialize(width=4096, height=2048, format=1) returns true (hr=00000000) LibVLCWrapper: YUVP to YUVA converter =4096, height=2048, format=1) returns 2a8eff90 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=40.000000 LibVLCWrapper: 1.000 scale, 1440.000 stride_in, 1440 stride_out, 1152 standing, 288 overlap, 672 search, 2400 queue, fl32 mode LibVLCWrapper: using video filter2 module "yuvp" LibVLCWrapper: Buffering 40% LibVLCWrapper: using audio filter module "scaletempo" LibVLCWrapper: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=42.000000 LibVLCWrapper: Deinterlacing available LibVLCWrapper: Buffering 42% LibVLCWrapper: conversion pipeline complete LibVLCWrapper: deinterlace 0, mode blend, is_needed 0 LibVLCWrapper: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=49.000000 LibVLCWrapper: Opening vout display wrapper LibVLCWrapper: looking for vout display module matching "vmem": 11 candidates LibVLCWrapper: conversion pipeline complete LibVLCWrapper: looking for audio resampler module matching "any": 3 candidates LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=53.000000 LibVLCWrapper: VoutDisplayEvent 'fullscreen' 0 LibVLCWrapper: Buffering 53% LibVLCWrapper: VoutDisplayEvent 'resize' 4096x2048 window LibVLCWrapper: using audio resampler module "samplerate" LibVLCWrapper: End of audio preroll LibVLCWrapper: using vout display module "vmem" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=56.000000 LibVLCWrapper: Buffering 56% pt decoder to display is needed LibVLCWrapper: looking for video filter2 module matching "any": 57 candidates LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=64.000000 LibVLCWrapper: Buffering 64% LibVLCWrapper: 4096x2048 (4096x2050) chroma: I420 -> 4096x2048 (4096x2048) chroma: RGBA with scaling using Bicubic (good quality) LibVLCWrapper: using video filter2 module "swscale" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=66.000000 LibVLCWrapper: Buffering 66% ' (000000004196F4F0) appended to chain LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=71.000000 LibVLCWrapper: original format sz 4096x2050, of (0,0), vsz 4096x2048, 4cc I420, sar 1:1, msk r0x0 g0x0 b0x0 LibVLCWrapper: Failed to change zoom LibVLCWrapper: removing module "freetype" LibVLCWrapper: Buffering 71% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=78.000000 LibVLCWrapper: Failed to set on top LibVLCWrapper: looking for text renderer module matching "any": 2 candidates LibVLCWrapper: Buffering 78% LibVLCWrapper: Failed to change source AR LibVLCWrapper: Using Arial as font from file C:\WINDOWS\Fonts\arial.ttf LibVLCWrapper: Using Courier New as mono-font from file C:\WINDOWS\Fonts\cour.ttf LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=80.000000 LibVLCWrapper: Buffering 80% LibVLCWrapper: using fontsize: 2 LibVLCWrapper: using text renderer module "freetype" LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=85.000000 LibVLCWrapper: Buffering 85% gned LibVLCWrapper: disabling direct rendering LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=92.000000 LibVLCWrapper: Buffering 92% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=93.000000 LibVLCWrapper: Buffering 93% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=99.000000 LibVLCWrapper: Buffering 99% LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerBuffering) - cache=100.000000 LibVLCWrapper: End of video preroll LibVLCWrapper: Received first picture LibVLCWrapper: Stream buffering done (320 ms in 188 ms) LibVLCWrapper: Decoder wait done in 169 ms LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=0 LibVLCWrapper: VideoFrame::VideoFrame() LibVLCWrapper: VideoFrame::Initialize(width=4096, height=2048, format=1) returns true (hr=00000000) LibVLCWrapper: VideoFrame::Create(width=4096, height=2048, format=1) returns 2acca8d0 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=280 LibVLCWrapper: picture is too late to be displayed (missing 207 ms) LibVLCWrapper: picture is too late to be displayed (missing 178 ms) LibVLCWrapper: picture is too late to be displayed (missing 155 ms) LibVLCWrapper: picture is too late to be displayed (missing 257 ms) LibVLCWrapper: picture is too late to be displayed (missing 231 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=520 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=795 LibVLCWrapper: picture is too late to be displayed (missing 77 ms) LibVLCWrapper: picture is too late to be displayed (missing 43 ms) LibVLCWrapper: picture might be displayed late (missing 9 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=1040 LibVLCWrapper: picture is too late to be displayed (missing 77 ms) LibVLCWrapper: picture is too late to be displayed (missing 47 ms) LibVLCWrapper: picture might be displayed late (missing 19 ms) LibVLCWrapper: picture is too late to be displayed (missing 100 ms) LibVLCWrapper: picture is too late to be displayed (missing 71 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=1285 LibVLCWrapper: picture is too late to be displayed (missing 146 ms) LibVLCWrapper: picture is too late to be displayed (missing 117 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=1560 LibVLCWrapper: picture is too late to be displayed (missing 35 ms) LibVLCWrapper: picture might be displayed late (missing 5 ms) LibVLCWrapper: picture is too late to be displayed (missing 73 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=1801 LibVLCWrapper: picture is too late to be displayed (missing 143 ms) LibVLCWrapper: picture is too late to be displayed (missing 117 ms) LibVLCWrapper: picture is too late to be displayed (missing 186 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=2074 LibVLCWrapper: picture is too late to be displayed (missing 274 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=2320 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=2565 LibVLCWrapper: picture is too late to be displayed (missing 139 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=2840 LibVLCWrapper: picture is too late to be displayed (missing 299 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=3080 LibVLCWrapper: picture is too late to be displayed (missing 457 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=3355 LibVLCWrapper: picture is too late to be displayed (missing 620 ms) LibVLCWrapper: picture is too late to be displayed (missing 782 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=3600 LibVLCWrapper: picture is too late to be displayed (missing 846 ms) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=3845 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=4121 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=4360 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=4634 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=4880 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=5125 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=5401 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=5641 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=5914 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=6160 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=6405 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=6680 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=6920 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=7195 LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=7440 LibVLCWrapper: More than 4 late frames, dropping frame LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=7685 LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerTimeChanged) - new_time=7960 LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: more than 5 seconds of late video -> dropping frame (computer too slow ?) LibVLCWrapper: control: stopping input LibVLCWrapper: can't get output picture LibVLCWrapper: can't get output picture LibVLCWrapper: can't get output picture LibVLCWrapper: removing module "avcodec" LibVLCWrapper: can't get output picture LibVLCWrapper: ffmpeg codec (H264 - MPEG-4 AVC (part 10)) stopped LibVLCWrapper: killing decoder fourcc `h264', 18 PES in FIFO LibVLCWrapper: saving a free vout LibVLCWrapper: reusing provided vout LibVLCWrapper: removing module "faad" LibVLCWrapper: killing decoder fourcc `mp4a', 0 PES in FIFO LibVLCWrapper: removing module "samplerate" LibVLCWrapper: removing module "scaletempo" LibVLCWrapper: closing audio device LibVLCWrapper: removing module "float_mixer" LibVLCWrapper: keeping audio output LibVLCWrapper: removing module "mp4" LibVLCWrapper: freeing all memory LibVLCWrapper: removing module "record" LibVLCWrapper: removing module "filesystem" LibVLCWrapper: Program doesn't contain anymore ES LibVLCWrapper: VLCMediaPlayer::OnMediaEvent(MediaPlayerStopped) - LibVLCWrapper: removing module "directsound" LibVLCWrapper: destroying useless vout LibVLCWrapper: Filter 000000004196F4F0 removed from chain LibVLCWrapper: removing module "swscale" LibVLCWrapper: removing module "vmem" LibVLCWrapper: removing module "freetype" LibVLCWrapper: removing module "yuvp" LibVLCWrapper: removing module "swscale" LibVLCWrapper: VLCMediaPlayer::Destroy() LibVLCWrapper: VLCMediaPlayer::Shutdown() LibVLCWrapper: VideoFrame::Release() LibVLCWrapper: VideoFrame::~VideoFrame() LibVLCWrapper: VideoFrame::Release() LibVLCWrapper: VideoFrame::~VideoFrame() LibVLCWrapper: VideoFrame::Release() LibVLCWrapper: VideoFrame::~VideoFrame() LibVLCWrapper: removing all interfaces LibVLCWrapper: exiting LibVLCWrapper: no exit handler LibVLCWrapper: VLCMediaPlayer::~VLCMediaPlayer()

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Video playback to a texture stalling

Postby Jean-Baptiste Kempf » 28 Jun 2016 10:07

Are you too slow to release the lock?
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

shizhenlei
New Cone
New Cone
Posts: 1
Joined: 20 Jul 2017 04:07

Re: Video playback to a texture stalling

Postby shizhenlei » 23 Jul 2017 17:09

what might cause the problem ? I have also encountered the same problem.

oviano
Cone that earned his stripes
Cone that earned his stripes
Posts: 120
Joined: 12 Jan 2012 11:12

Re: Video playback to a texture stalling

Postby oviano » 23 Jul 2017 19:18

Most likely it's too slow to update the texture each frame, especially for larger textures and this ends up holding up decoding.

It's an inefficient way to do things, but the only official way at the moment to update hardware surfaces in this way.

When you render to a window, it's likely using the hardware to decode, and directly copying the decoded frames to the hardware surface representing the window. What you are doing is probably decoding using software (or maybe hardware, and then each frame copied to system memory), then uploading this to GPU memory for your texture, which is much less efficient.

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Video playback to a texture stalling

Postby Jean-Baptiste Kempf » 25 Jul 2017 11:53

Most likely it's too slow to update the texture each frame, especially for larger textures and this ends up holding up decoding.

It's an inefficient way to do things, but the only official way at the moment to update hardware surfaces in this way.

When you render to a window, it's likely using the hardware to decode, and directly copying the decoded frames to the hardware surface representing the window. What you are doing is probably decoding using software (or maybe hardware, and then each frame copied to system memory), then uploading this to GPU memory for your texture, which is much less efficient.
Yup. Or use the vbridge patch.
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 27 guests