Issues encountered running VLC in PNaCl

This forum is about all development around libVLC.
DiamondLovesYou
New Cone
New Cone
Posts: 1
Joined: 30 May 2015 14:05

Issues encountered running VLC in PNaCl

Postby DiamondLovesYou » 30 May 2015 15:46

Hello all,

I'm having an issue within VLC's core. Before I describe the problem, let me go into the stuff I need to do to get VLC to work in PNaCl/NaCl. I've added modules, including an access module for the Pepper APIs (henceforth referred to as PPAPI) via PPB_URLLoader/PPB_File*, vout modules via OpenGL ES 2, an aout module, and a control module. Additionally, I've modified the build system for the purposes of static linking and am using preprocessor magic to get the modules subsystem to initialize them. All of this is C, except the control module which is C++ (originally for `constexpr` but doesn't use libc++, ie `-nodefaultlibs`). So far: "60 files changed, 6761 insertions(+), 31 deletions(-)".

I have made it to the point where I can successfully play video and audio (though, in audio's case, only the first three seconds; see the first code block).

Before I continue, I'd like to provide some information regarding PNaCl as a platform. In no particular order:
  • Libc is Newlib
  • Compiler is clang
  • Both `_POSIX_TIMERS > 0` and `_POSIX_MONOTONIC_CLOCK > 0` are true, ie clock_gettime && clock_getres are supported
  • `_POSIX_CLOCK_SELECTION > 0` is *false*, ie clock_nanosleep isn't supported. However, pthread_condattr_setclock is provided.
  • Valid Pexe's (PNaCl's exe) don't allow asm, no fused float ops, and SIMD is allowed.
My problem is with the `input` and `demux` threads: they don't seem to wait. Here's the log (each prefixed URL is for the line that precedes it, not that it matters in this case b/c the URL is always the same):

Code: Select all

[module `core`] [header `unknown`] [object `libvlc`]: VLC media player - 3.0.0-git Vetinari index.html:1 [module `core`] [header `unknown`] [object `libvlc`]: Copyright © 1996-2015 the VideoLAN team index.html:1 [module `core`] [header `unknown`] [object `libvlc`]: revision 2.2.0-git-3355-g8a7b141 index.html:1 [module `core`] [header `unknown`] [object `libvlc`]: configured with /home/dick/workspace/src/vlc/configure '--host=le32-unknown-nacl' '--target=le32-unknown-nacl' '--disable-share... localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: meta ok for (null), need to fetch art localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: processing request item: null, node: Playlist, skip: 0 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: rebuilding array of current - root Playlist localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: rebuild done - 1 items, index -1 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: starting playback of new item index.html:1 [module `core`] [header `unknown`] [object `playlist`]: resyncing on http://localhost:8081/test.avi index.html:1 [module `core`] [header `unknown`] [object `playlist`]: http://localhost:8081/test.avi is at 0 index.html:1 [module `core`] [header `unknown`] [object `playlist`]: creating new input thread index.html:1 [module `core`] [header `unknown`] [object `input`]: Creating an input for 'http://localhost:8081/test.avi' index.html:1 [module `core`] [header `unknown`] [object `art finder`]: looking for meta fetcher module matching "any": 0 candidates index.html:1 [module `core`] [header `unknown`] [object `art finder`]: no meta fetcher modules index.html:1 [module `core`] [header `unknown`] [object `playlist`]: searching art for http://localhost:8081/test.avi index.html:1 [module `core`] [header `unknown`] [object `playlist`]: requesting art for new input thread index.html:1 [module `core`] [header `unknown`] [object `art finder`]: looking for art finder module matching "any": 1 candidates index.html:1 [module `core`] [header `unknown`] [object `art finder`]: no art finder modules matched index.html:1 [module `core`] [header `unknown`] [object `playlist`]: art not found for http://localhost:8081/test.avi index.html:1 [module `core`] [header `unknown`] [object `art finder`]: looking for meta fetcher module matching "any": 0 candidates index.html:1 [module `core`] [header `unknown`] [object `art finder`]: no meta fetcher modules index.html:1 [module `core`] [header `unknown`] [object `libvlc`]: searching art for http://localhost:8081/test.avi index.html:1 [module `core`] [header `unknown`] [object `art finder`]: looking for art finder module matching "any": 1 candidates index.html:1 [module `core`] [header `unknown`] [object `art finder`]: no art finder modules matched index.html:1 [module `core`] [header `unknown`] [object `libvlc`]: art not found for http://localhost:8081/test.avi index.html:1 [module `core`] [header `unknown`] [object `input`]: using timeshift granularity of 50 MiB, in path '/tmp' index.html:1 [module `core`] [header `unknown`] [object `input`]: `http://localhost:8081/test.avi' gives access `http' demux `' path `localhost:8081/test.avi' index.html:1 [module `core`] [header `unknown`] [object `input`]: specified demux `any' index.html:1 [module `core`] [header `unknown`] [object `input`]: creating demux: access='http' demux='any' location='localhost:8081/test.avi' file='(null)' index.html:1 [module `core`] [header `unknown`] [object `demux`]: looking for access_demux module matching "http": 6 candidates index.html:1 [module `core`] [header `unknown`] [object `demux`]: no access_demux modules matched index.html:1 [module `core`] [header `unknown`] [object `input`]: creating access 'http' location='localhost:8081/test.avi', path='(null)' index.html:1 [module `core`] [header `unknown`] [object `access`]: looking for access module matching "http": 13 candidates index.html:1 [module `ppapi_access`] [header `unknown`] [object `access`]: attempting to open PPB_URLLoader localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `access`]: using access module "ppapi_access" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: Using stream method for AStream* localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: starting pre-buffering localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: received first data after 0 ms localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: pre-buffering done 1024 bytes in 0s - 15151 KiB/s localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: looking for stream_filter module matching "any": 7 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: no stream_filter modules matched localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: looking for stream_filter module matching "record": 7 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `stream`]: using stream_filter module "record" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: creating demux: access='http' demux='any' location='localhost:8081/test.avi' file='(null)' localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `demux`]: looking for demux module matching "any": 59 candidates localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: RIFF size:368050168 pos:0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found LIST chunk: 'AVI ' localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: <list 'AVI '> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: LIST size:306 pos:12 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found LIST chunk: 'hdrl' localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: <list 'hdrl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: avih size:56 pos:24 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: avih: streams:2 flags: HAS_INDEX IS_INTERLEAVED 624x352 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: LIST size:116 pos:88 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found LIST chunk: 'strl' localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: <list 'strl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: strh size:56 pos:100 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: strh: type:vids handler:0x44495658 samplesize:0 23.98fps localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: strf size:40 pos:164 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: strf: video:XVID 624x352 planes:1 12bpp localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: </list 'strl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: LIST size:106 pos:212 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found LIST chunk: 'strl' localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: <list 'strl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: strh size:56 pos:224 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: strh: type:auds handler:0x00000055 samplesize:0 41.67fps localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: strf size:30 pos:288 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: strf: audio:0x0055 channels:2 48000Hz 0bits/sample 144kb/s localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: </list 'strl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: </list 'hdrl'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: LIST size:38 pos:326 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found LIST chunk: 'INFO' localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: <list 'INFO'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: ISFT size:26 pos:338 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: ISFT: Software : Some super fast AVI muxer localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: </list 'INFO'> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: JUNK size:3716 pos:372 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: found chunk, fourcc: LIST size:365089444 pos:4096 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: skipping movi chunk localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: </list 'AVI '> localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: * LIST-root size:368050176 pos:0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: + RIFF-AVI size:368050168 pos:0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | + LIST-hdrl size:306 pos:12 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | + avih size:56 pos:24 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | + LIST-strl size:116 pos:88 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | | + strh size:56 pos:100 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | | + strf size:40 pos:164 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | + LIST-strl size:106 pos:212 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | | + strh size:56 pos:224 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | | + strf size:30 pos:288 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | + LIST-INFO size:38 pos:326 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | | + ISFT size:26 pos:338 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | + JUNK size:3716 pos:372 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `stream`]: | + LIST-movi size:365089444 pos:4096 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `demux`]: AVIH: 2 stream, flags HAS_INDEX IS_INTERLEAVED localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[0] rate:24000 scale:1001 samplesize:0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[0] video(XVID) 624x352 12bpp 23.976025fps localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: selecting program id=0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[1] rate:48000 scale:1152 samplesize:0 localhost:8081/Player/index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[1] audio(0x55 - MPEG Audio layer 3) 2 channels 48000Hz 0bits index.html:1 [module `avi`] [header `unknown`] [object `demux`]: cannot find idx1 chunk, no index defined index.html:1 [module `avi`] [header `unknown`] [object `demux`]: selected standard index for stream[0] index.html:1 [module `avi`] [header `unknown`] [object `demux`]: selected standard index for stream[1] index.html:1 [module `avi`] [header `unknown`] [object `demux`]: no key frame set for track 0 index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[0] created 0 index entries index.html:1 [module `avi`] [header `unknown`] [object `demux`]: no key frame set for track 1 index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[1] created 0 index entries index.html:1 [module `avi`] [header `unknown`] [object `demux`]: broken or missing index, 'seek' will be approximative or will exhibit strange behavior index.html:1 [module `avi`] [header `unknown`] [object `demux`]: cannot create index (unseekable stream) index.html:1 [module `avi`] [header `unknown`] [object `demux`]: cannot find idx1 chunk, no index defined index.html:1 [module `avi`] [header `unknown`] [object `demux`]: selected standard index for stream[0] index.html:1 [module `avi`] [header `unknown`] [object `demux`]: selected standard index for stream[1] index.html:1 [module `avi`] [header `unknown`] [object `demux`]: no key frame set for track 0 index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[0] created 0 index entries index.html:1 [module `avi`] [header `unknown`] [object `demux`]: no key frame set for track 1 index.html:1 [module `avi`] [header `unknown`] [object `demux`]: stream[1] created 0 index entries index.html:1 [module `avi`] [header `unknown`] [object `demux`]: broken or missing index, 'seek' will be approximative or will exhibit strange behavior index.html:1 [module `core`] [header `unknown`] [object `demux`]: using demux module "avi" index.html:1 [module `core`] [header `unknown`] [object `decoder`]: looking for decoder module matching "any": 28 candidates index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: CPU flags: 0x00000000 index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: trying to use direct rendering index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: allowing 4 thread(s) for decoding index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: codec (mpeg4) started index.html:1 [module `core`] [header `unknown`] [object `decoder`]: using decoder module "avcodec" index.html:1 [module `core`] [header `unknown`] [object `decoder`]: looking for decoder module matching "any": 28 candidates index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: CPU flags: 0x00000000 localhost:8081/Player/index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: codec (mp3) started localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: using decoder module "avcodec" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `packetizer`]: looking for packetizer module matching "any": 20 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `packetizer`]: using packetizer module "mpeg_audio" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `demux meta`]: looking for meta reader module matching "any": 0 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `demux meta`]: no meta reader modules localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: `http://localhost:8081/test.avi' successfully opened localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 0% localhost:8081/Player/index.html:1 [module `mpeg_audio`] [header `unknown`] [object `packetizer`]: MPGA channels:2 samplerate:48000 bitrate:32 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 2% localhost:8081/Player/index.html:1 [module `avcodec`] [header `unknown`] [object `decoder`]: available software decoder output format 0 (yuv420p) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 5% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `playlist`]: reusing audio output localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 7% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 10% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 12% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 15% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 17% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 20% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `spu text`]: looking for text renderer module matching "any": 1 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 22% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `spu text`]: using text renderer module "tdummy" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 25% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 27% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `scale`]: looking for video filter2 module matching "any": 51 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 30% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 32% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 35% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 37% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 40% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 42% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 45% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 47% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 50% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 52% index.html:1 [module `swscale`] [header `unknown`] [object `scale`]: 32x32 (32x32) chroma: YUVA -> 16x16 (16x16) chroma: RGBA with scaling using Bicubic (good quality) index.html:1 [module `core`] [header `unknown`] [object `scale`]: using video filter2 module "swscale" index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 55% index.html:1 [module `core`] [header `unknown`] [object `scale`]: looking for video filter2 module matching "any": 51 candidates index.html:1 [module `yuvp`] [header `unknown`] [object `scale`]: YUVP to YUVA converter index.html:1 [module `core`] [header `unknown`] [object `scale`]: using video filter2 module "yuvp" index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 57% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 60% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 62% index.html:1 [module `core`] [header `unknown`] [object `video output`]: Deinterlacing available index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 65% index.html:1 [module `core`] [header `unknown`] [object `video output`]: deinterlace -1, mode blend, is_needed 0 index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 67% index.html:1 [module `core`] [header `unknown`] [object `window`]: looking for vout window module matching "any": 1 candidates index.html:1 [module `core`] [header `unknown`] [object `window`]: using vout window module "ppapi_vout_window" index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 70% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 72% index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 75% index.html:1 [module `core`] [header `unknown`] [object `video output`]: Opening vout display wrapper index.html:1 [module `core`] [header `unknown`] [object `vout display`]: looking for vout display module matching "any": 6 candidates index.html:1 [module `ppapi_vout_graphics3d`] [header `unknown`] [object `vout display`]: couldn't get max supported width: `-5`; defaulting to `624` index.html:1 [module `ppapi_vout_graphics3d`] [header `unknown`] [object `vout display`]: couldn't get max supported height: `-5`; defaulting to `352` localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 77% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 80% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 82% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 85% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 87% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 90% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 92% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 95% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 97% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Buffering 100% localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `input`]: Stream buffering done (1025 ms in 4 ms) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `vout display`]: VoutDisplayEvent 'resize' 624x352 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `gl`]: looking for opengl es2 module matching "ppapi_vout_gl": 1 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `gl`]: using opengl es2 module "ppapi_vout_gl" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: output 's16l' 44100 Hz Stereo frame=1 samples/4 bytes localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `volume`]: looking for audio volume module matching "any": 2 candidates localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `volume`]: using audio volume module "integer_mixer" localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: input 's16l' 48000 Hz Stereo frame=1 samples/4 bytes localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `vout display`]: using vout display module "ppapi_vout_graphics3d" index.html:1 [module `core`] [header `unknown`] [object `audio filter`]: looking for audio filter module matching "scaletempo": 12 candidates index.html:1 [module `scaletempo`] [header `unknown`] [object `audio filter`]: format: 48000 rate, 2 nch, 4 bps, fl32 index.html:1 [module `core`] [header `unknown`] [object `video output`]: Not enough display buffers in the pool, requested 3 got 1 index.html:1 [module `scaletempo`] [header `unknown`] [object `audio filter`]: params: 30 stride, 0.200 overlap, 14 search index.html:1 [module `scaletempo`] [header `unknown`] [object `audio filter`]: 1.000 scale, 1440.000 stride_in, 1440 stride_out, 1152 standing, 288 overlap, 672 search, 2400 queue, fl32 mode index.html:1 [module `core`] [header `unknown`] [object `audio filter`]: using audio filter module "scaletempo" index.html:1 [module `core`] [header `unknown`] [object `audio output`]: conversion: 's16l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo index.html:1 [module `core`] [header `unknown`] [object `video output`]: original format sz 624x352, of (0,0), vsz 624x352, 4cc I420, sar 1:1, msk r0x0 g0x0 b0x0 index.html:1 [module `core`] [header `unknown`] [object `audio converter`]: looking for audio converter module matching "any": 7 candidates index.html:1 [module `audio_format`] [header `unknown`] [object `audio converter`]: s16l->f32l, bits per sample: 16->32 index.html:1 [module `core`] [header `unknown`] [object `audio converter`]: using audio converter module "audio_format" index.html:1 [module `core`] [header `unknown`] [object `spu text`]: removing module "tdummy" index.html:1 [module `core`] [header `unknown`] [object `audio output`]: conversion pipeline complete index.html:1 [module `core`] [header `unknown`] [object `audio output`]: conversion: 'f32l'->'s16l' 48000 Hz->48000 Hz Stereo->Stereo index.html:1 [module `core`] [header `unknown`] [object `spu text`]: looking for text renderer module matching "any": 1 candidates index.html:1 [module `core`] [header `unknown`] [object `spu text`]: using text renderer module "tdummy" index.html:1 [module `core`] [header `unknown`] [object `audio converter`]: looking for audio converter module matching "any": 7 candidates index.html:1 [module `audio_format`] [header `unknown`] [object `audio converter`]: f32l->s16l, bits per sample: 16->16 index.html:1 [module `core`] [header `unknown`] [object `audio converter`]: using audio converter module "audio_format" index.html:1 [module `core`] [header `unknown`] [object `audio output`]: conversion pipeline complete index.html:1 [module `core`] [header `unknown`] [object `audio resampler`]: looking for audio resampler module matching "any": 1 candidates index.html:1 [module `core`] [header `unknown`] [object `audio resampler`]: using audio resampler module "ugly_resampler" index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Received first picture index.html:1 [module `core`] [header `unknown`] [object `input`]: Decoder wait done in 61 ms index.html:1 [module `core`] [header `unknown`] [object `audio output`]: playback too late (30660): flushing buffers index.html:1 [module `core`] [header `unknown`] [object `audio output`]: playback too late (90783): up-sampling localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3003461 us, block->i_pts = 119626254 us, now = 116622793 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3027146 us, block->i_pts = 119650254 us, now = 116623108 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3050859 us, block->i_pts = 119674254 us, now = 116623395 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3074601 us, block->i_pts = 119698254 us, now = 116623653 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3098293 us, block->i_pts = 119722254 us, now = 116623961 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3122009 us, block->i_pts = 119746254 us, now = 116624245 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3145736 us, block->i_pts = 119770254 us, now = 116624518 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3169486 us, block->i_pts = 119794254 us, now = 116624768 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3193228 us, block->i_pts = 119818254 us, now = 116625026 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3216977 us, block->i_pts = 119842254 us, now = 116625277 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3240717 us, block->i_pts = 119866254 us, now = 116625537 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3264471 us, block->i_pts = 119890254 us, now = 116625783 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3288216 us, block->i_pts = 119914254 us, now = 116626038 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3311944 us, block->i_pts = 119938254 us, now = 116626310 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3335689 us, block->i_pts = 119962254 us, now = 116626565 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3359421 us, block->i_pts = 119986254 us, now = 116626833 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3383175 us, block->i_pts = 120010254 us, now = 116627079 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3406901 us, block->i_pts = 120034254 us, now = 116627353 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3430645 us, block->i_pts = 120058254 us, now = 116627609 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3454357 us, block->i_pts = 120082254 us, now = 116627897 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3478109 us, block->i_pts = 120106254 us, now = 116628145 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3501872 us, block->i_pts = 120130254 us, now = 116628382 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3525615 us, block->i_pts = 120154254 us, now = 116628639 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3549327 us, block->i_pts = 120178254 us, now = 116628927 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3573066 us, block->i_pts = 120202254 us, now = 116629188 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3596787 us, block->i_pts = 120226254 us, now = 116629467 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3620525 us, block->i_pts = 120250254 us, now = 116629729 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3644272 us, block->i_pts = 120274254 us, now = 116629982 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3667967 us, block->i_pts = 120298254 us, now = 116630287 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3691708 us, block->i_pts = 120322254 us, now = 116630546 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3715429 us, block->i_pts = 120346254 us, now = 116630825 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3739162 us, block->i_pts = 120370254 us, now = 116631092 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3762913 us, block->i_pts = 120394254 us, now = 116631341 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3786655 us, block->i_pts = 120418254 us, now = 116631599 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3810366 us, block->i_pts = 120442254 us, now = 116631888 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3834109 us, block->i_pts = 120466254 us, now = 116632145 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3857856 us, block->i_pts = 120490254 us, now = 116632398 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3881598 us, block->i_pts = 120514254 us, now = 116632656 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3905332 us, block->i_pts = 120538254 us, now = 116632922 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3929064 us, block->i_pts = 120562254 us, now = 116633190 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3952775 us, block->i_pts = 120586254 us, now = 116633479 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too early (advance = 3976520 us, block->i_pts = 120610254 us, now = 116633734 us): dropped localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Timestamp conversion failed (*pi_ts0 120634254, delay 1000000, buffering 0, bound 3000000) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Could not convert timestamp 120634254 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Timestamp conversion failed (*pi_ts0 120658254, delay 1000000, buffering 0, bound 3000000) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Could not convert timestamp 120658254 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Timestamp conversion failed (*pi_ts0 120682254, delay 1000000, buffering 0, bound 3000000) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Could not convert timestamp 120682254 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer ... about a billion more of the last three lines (locks chrome's dev console up almost instantly from the number sent) ... [module `core`] [header `unknown`] [object `decoder`]: Timestamp conversion failed (*pi_ts0 130882254, delay 1000000, buffering 0, bound 3000000) localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: Could not convert timestamp 130882254 localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer localhost:8081/Player/index.html:1 [module `core`] [header `unknown`] [object `audio output`]: buffer too late (-77405725 us): dropped ... more of the last line ...
During this time, CPU utilization is at 400% percent (Linux). What follows are some debug `msg_Err`s I placed in a few threads (the numbers before the URLs means the line was printed that many times):

Code: Select all

[module `core`] [header `unknown`] [object `decoder`]: DecoderThread 0xfeaaffa3 iteration count for the last second: `1364` index.html:1 [module `core`] [header `unknown`] [object `input`]: InputThread 0xfebcff36 iteration count for the last second: `9450` 100 index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer index.html:1 [module `core`] [header `unknown`] [object `decoder`]: DecoderThread 0xfeb3ffa3 iteration count for the last second: `28` 12 index.html:1 [module `core`] [header `unknown`] [object `decoder`]: discarded audio buffer index.html:1 [module `ppapi_vout_gl`] [header `unknown`] [object `gl`]: SwapperThread 0xfed0ffd8 iteration count for the last second: `11`
I've done quit a bit of grepping in vlc and based on my analysis, I think the cause of this issue is the result of a failure to *actually* wait. However, having never working on VLC or in this field before, I'm kinda out of my depth. I'm pretty knowledgeable about PNaCl (I'm the GSOC participant adding the PNaCl cross to upstream Rust, as well as the author of the existing fork for such support), so feel free to ask me questions about PNaCl in general or the code I've added to VLC thus far.

Please advise. Thanks!

Rémi Denis-Courmont
Developer
Developer
Posts: 15257
Joined: 07 Jun 2004 16:01
VLC version: master
Operating System: Linux
Contact:

Re: Issues encountered running VLC in PNaCl

Postby Rémi Denis-Courmont » 30 May 2015 16:24

I would not be that surprised if the input thread, one of the decoder thread, the video output thread ran into a live loop in some corner cases. Their main loops are far from trivial...

It might also be that VLC does not work well in the never tested combination with the monotonic clock and without the clock selection.
Rémi Denis-Courmont
https://www.remlab.net/
Private messages soliciting support will be systematically discarded


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 25 guests