Giter VIP home page Giter VIP logo

vp8.net's Issues

Question: How are you converting VP8

I want to help out with this if I can. Are you using a tool to convert c++ to c# or you doing each file by hand? I'm interested in the getting the encoder working.

Test observations

An observation note rather than an issue (27 Nov 2021):

  • Tested with the WebRTCReceiver example.
    • Initial 640x480 stream from Chrome to the Windows FOrms application is decoded with very low latency.
    • In one test latency grew very noticeably with a lag of multiple seconds.
    • In other tests latency stayed low.
    • The video decoding did fail, see screenshot, but this corresponded with console message about missinf RTP packets so is more likely a result of mssing input frames rather than a decoder bug. Signal did come back after a minute or two, when Chrome generated the next key frame.
    • No segfaults or memory leaks observed.
    • CPU and memory use very low.

vp8_decode_corruption

  • Same test but requested Chrome video resolution of 1024x768:
    • Chrome initially sends 640 x 360
      • No noticeable latency on decoder.
    • Chrome change resolution to 960x540
      • Noticeable 1 to 2s latency on decoder.
      • RTP missing packets log meessages.
      • AccessViolation exception on decoder
Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Vpx.Net.filter.filter_block2d_first_pass(Byte*, Int32*, UInt32, UInt32, UInt32, UInt32, Int16* ByRef)
   at Vpx.Net.filter.filter_block2d(Byte*, Byte*, UInt32, Int32, Int16*, Int16*)
   at Vpx.Net.filter.vp8_sixtap_predict4x4_c(Byte*, Int32, Int32, Int32, Byte*, Int32)
   at Vpx.Net.vp8_rtcd.vp8_sixtap_predict4x4_c(Byte*, Int32, Int32, Int32, Byte*, Int32)
   at Vpx.Net.vp8_rtcd.vp8_sixtap_predict4x4(Byte*, Int32, Int32, Int32, Byte*, Int32)
   at Vpx.Net.reconinter.build_inter_predictors_b(Vpx.Net.BLOCKD, Byte*, Int32, Byte*, Int32, Vpx.Net.vp8_subpix_fn_t)
   at Vpx.Net.reconinter.build_inter4x4_predictors_mb(Vpx.Net.MACROBLOCKD ByRef)
   at Vpx.Net.reconinter.vp8_build_inter_predictors_mb(Vpx.Net.MACROBLOCKD ByRef)
   at Vpx.Net.decodeframe.decode_macroblock(Vpx.Net.VP8D_COMP, Vpx.Net.MACROBLOCKD, UInt32)
   at Vpx.Net.decodeframe.decode_mb_rows(Vpx.Net.VP8D_COMP)
   at Vpx.Net.decodeframe.vp8_decode_frame(Vpx.Net.VP8D_COMP)
   at Vpx.Net.onyxd.vp8dx_receive_compressed_data(Vpx.Net.VP8D_COMP, Int64)
   at Vpx.Net.vp8_dx.vp8_decode(Vpx.Net.vpx_codec_alg_priv_t, Byte*, UInt32, IntPtr, Int64)
   at Vpx.Net.vpx_decoder.vpx_codec_decode(Vpx.Net.vpx_codec_ctx_t, Byte*, UInt32, IntPtr, Int64)
   at Vpx.Net.VP8Codec.DecodeVideo(Byte[], SIPSorceryMedia.Abstractions.VideoPixelFormatsEnum, SIPSorceryMedia.Abstractions.VideoCodecsEnum)
   at Vpx.Net.Vp8NetVideoEncoderEndPoint.GotVideoFrame(System.Net.IPEndPoint, UInt32, Byte[], SIPSorceryMedia.Abstractions.VideoFormat)
   at SIPSorcery.Net.RTPSession.OnReceive(Int32, System.Net.IPEndPoint, Byte[])
   at SIPSorcery.Net.RTCPeerConnection.OnRTPDataReceived(Int32, System.Net.IPEndPoint, Byte[])
   at SIPSorcery.Net.RtpIceChannel.OnRTPPacketReceived(SIPSorcery.Net.UdpReceiver, Int32, System.Net.IPEndPoint, Byte[])
   at SIPSorcery.Net.UdpReceiver.EndReceiveFrom(System.IAsyncResult)
   at System.Net.LazyAsyncResult.Complete(IntPtr)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Net.ContextAwareResult.Complete(IntPtr)
   at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
   at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.