Status: Untriaged
Owner: ----
Labels: Type-Bug Pri-2
Components: libvpx
New issue 1703 by cmeng...@
gmail.com: libvpx 1.8.2 failed to decode or encode for vp9 but not vp8 in aTalk implementation
https://bugs.chromium.org/p/webm/issues/detail?id=1703Please provide any additional information below.
aTalk is trying to add vp9 codec support for its media call; but facing problems.
aTalk projects sources are available on:
https://github.com/cmeng-git/atalk-androidThe libvpx is built from source v1.8.2 with the following options:
ANDROID_NDK=/opt/android/android-ndk-r18b
./configure --extra-cflags="-isystem ${NDK_SYSROOT}/usr/include/${NDK_ABIARCH} -isystem ${NDK_SYSROOT}/usr/include" \
--libc=${NDK_SYSROOT} \
--prefix=${PREFIX} \
--target=${TARGET} \
${CPU_DETECT} \
--as=yasm \
--enable-pic \
--disable-docs \
--enable-static \
--enable-libyuv \
--disable-examples \
--disable-tools \
--disable-debug \
--disable-unit-tests \
--enable-realtime-only \
--enable-vp8 \
--enable-vp9 \
--disable-webm-io
The vp9 classes can be found in project directory: org.atalk.impl.neomedia.codec.video.vp9
The call test setup is between aTalk and Conversations clients.
1. When the vp8 video codec is used, there is no problem in encode or decode of the video contents:
2. When the vp9 video code is used, below are the observed problems, and the
captured aTalk debug log:
a. During vp9 encode, aTalk makes call to vpx_codec_encode() in libvpx, but it returns with error "Invalid parameter". From vpx_encoder.c source, the error return is based on:
if (!ctx || (img && !duration))
res = VPX_CODEC_INVALID_PARAM;
However I am unable to figure out why based on the check conditions.
b. During vp9 decode, aTalk calls vpx_codec_decode(), but gets errors:
- Bitstream not supported by this decoder, then
- Unspecified internal error
Appreciate if any one can provide some helps on where can be the possible problem,
and solution if available.
========= aTalk debug log ==========
2020-07-15 06:27:47.218 1150-4452/
org.atalk.android D/aTalk: [93506] net.sf.fmj.media.Log.profile() Profile: parsing: 248 ms
2020-07-15 06:27:47.312 1150-4449/
org.atalk.android D/aTalk: [93503] net.sf.fmj.media.Log.comment() Getting the supported output formats for:
2020-07-15 06:27:47.317 1150-4449/
org.atalk.android D/aTalk: [93503] net.sf.fmj.media.Log.comment() YUV Video Format: Size = [width=720, height=1280] MaxDataLength = -1 DataType = class [B yuvType = -1 StrideY = -1 StrideUV = -1 OffsetY = -1 OffsetU = -1 OffsetV = -1
2020-07-15 06:27:47.323 1150-4449/
org.atalk.android D/aTalk: [93503] net.sf.fmj.media.Log.comment() # of nodes visited: 34
2020-07-15 06:27:47.329 1150-4449/
org.atalk.android D/aTalk: [93503] net.sf.fmj.media.Log.comment() # of formats supported: 20
2020-07-15 06:27:47.334 1150-4449/
org.atalk.android D/aTalk: [93503] net.sf.fmj.media.Log.profile() Profile: getSupportedOutputFormats: 108 ms
2020-07-15 06:27:47.355 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() Building flow graph for: null
2020-07-15 06:27:47.362 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() Building Track: 0
2020-07-15 06:27:47.367 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() Input: YUV Video Format: Size = [width=720, height=1280] MaxDataLength = -1 DataType = class [B yuvType = -1 StrideY = -1 StrideUV = -1 OffsetY = -1 OffsetU = -1 OffsetV = -1
2020-07-15 06:27:47.369 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() Custom options specified.
2020-07-15 06:27:47.371 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() An output format is specified: VP9/RTP
2020-07-15 06:27:47.373 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() An output content type is specified: raw.rtp
2020-07-15 06:27:47.423 1150-4495/
org.atalk.android D/(VPXEncoder.java:203)#doOpen: VP9 encoder opened successfully
2020-07-15 06:27:47.427 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write()
2020-07-15 06:27:47.431 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.comment() Here's the completed flow graph:
2020-07-15 06:27:47.433 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() net.sf.fmj.media.parser.RawPushBufferParser@b791b38
2020-07-15 06:27:47.435 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.codec.video.vp9.VPXEncoder@e2bd711
2020-07-15 06:27:47.437 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() format: YUV Video Format: Size = [width=720, height=1280] MaxDataLength = -1 DataType = class [B yuvType = -1 StrideY = -1 StrideUV = -1 OffsetY = -1 OffsetU = -1 OffsetV = -1
2020-07-15 06:27:47.440 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() org.atalk.impl.neomedia.codec.video.vp9.VPXEncoder@e2bd711
2020-07-15 06:27:47.444 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.codec.video.vp9.Packetizer@c57f076
2020-07-15 06:27:47.449 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() format: VP9, 720x1280, FrameRate=2.0
2020-07-15 06:27:47.452 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() org.atalk.impl.neomedia.codec.video.vp9.Packetizer@c57f076
2020-07-15 06:27:47.454 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() connects to: com.sun.media.multiplexer.RTPSyncBufferMux@df98677
2020-07-15 06:27:47.455 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write() format: VP9/RTP
2020-07-15 06:27:47.459 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.write()
2020-07-15 06:27:47.463 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.profile() Profile: graph building: 104 ms
2020-07-15 06:27:47.467 1150-4495/
org.atalk.android D/aTalk: [93510] net.sf.fmj.media.Log.profile() Profile: realize, post graph building: 0 ms
2020-07-15 06:27:48.005 1150-4506/
org.atalk.android W/(VPXEncoder.java:310)#doProcess: Failed to encode a frame: Invalid parameter
2020-07-15 06:27:48.009 1150-4506/
org.atalk.android W/(VPXEncoder.java:310)#doProcess: Failed to encode a frame: Invalid parameter
2020-07-15 06:27:48.066 1150-4506/
org.atalk.android W/(VPXEncoder.java:310)#doProcess: Failed to encode a frame: Invalid parameter
....
2020-07-15 06:27:52.402 1150-4559/
org.atalk.android I/aTalk: [93542]
net.sf.fmj.media.Log.info() Starting RTPSourceStream.
2020-07-15 06:27:52.414 1150-4559/
org.atalk.android D/aTalk: [93542] net.sf.fmj.media.Log.profile() Profile: parsing: 6 ms
2020-07-15 06:27:52.427 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.comment() Building flow graph for: null
2020-07-15 06:27:52.432 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.comment() Building Track: 0
2020-07-15 06:27:52.437 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.comment() Input: VP9/RTP, fmtps={}
2020-07-15 06:27:52.446 1150-4563/
org.atalk.android D/(VPXDecoder.java:130)#doOpen: VP9 decoder opened successfully
2020-07-15 06:27:52.449 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write()
2020-07-15 06:27:52.451 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.comment() Here's the completed flow graph:
2020-07-15 06:27:52.453 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() net.sf.fmj.media.parser.RawPushBufferParser@e629598
2020-07-15 06:27:52.455 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.codec.video.vp9.DePacketizer@51e31f1
2020-07-15 06:27:52.457 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() format: VP9/RTP, fmtps={}
2020-07-15 06:27:52.459 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() org.atalk.impl.neomedia.codec.video.vp9.DePacketizer@51e31f1
2020-07-15 06:27:52.460 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.codec.video.vp9.VPXDecoder@278e1d6
2020-07-15 06:27:52.462 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() format: VP9
2020-07-15 06:27:52.464 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() org.atalk.impl.neomedia.codec.video.vp9.VPXDecoder@278e1d6
2020-07-15 06:27:52.465 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.codec.video.SwScale@af3df0a
2020-07-15 06:27:52.469 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() format: AVFRAME, class org.atalk.impl.neomedia.codec.video.AVFrame, pixFmt 0
2020-07-15 06:27:52.474 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() org.atalk.impl.neomedia.codec.video.SwScale@af3df0a
2020-07-15 06:27:52.476 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() connects to: org.atalk.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer@387337b
2020-07-15 06:27:52.481 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write() format: RGB, 32-bit, Masks=255:65280:16711680, LineStride=-1, class [I
2020-07-15 06:27:52.484 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.write()
2020-07-15 06:27:52.485 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.profile() Profile: graph building: 57 ms
2020-07-15 06:27:52.486 1150-4563/
org.atalk.android D/aTalk: [93545] net.sf.fmj.media.Log.profile() Profile: realize, post graph building: 0 ms
2020-07-15 06:27:52.523 1150-4572/
org.atalk.android W/(VPXDecoder.java:177)#doProcess: Discarding a frame with decode error: Bitstream not supported by this decoder
2020-07-15 06:27:52.584 1150-4572/
org.atalk.android W/(VPXDecoder.java:177)#doProcess: Discarding a frame with decode error: Bitstream not supported by this decoder
2020-07-15 06:27:52.668 1150-4572/
org.atalk.android W/(VPXDecoder.java:177)#doProcess: Discarding a frame with decode error: Unspecified internal error
2020-07-15 06:27:52.759 1150-4572/
org.atalk.android W/(VPXDecoder.java:177)#doProcess: Discarding a frame with decode error: Unspecified internal error
....
--
You received this message because:
1. The project was configured to send all issue notifications to this address
You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings