linkedin / linkedin/LiTr

Better debugging for TrackTranscoderException

Open
#261 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
663
Forks
92
PR merge metrics
No merged PRs in 30d

Description

```
Transformation job error
com.linkedin.android.litr.exception.TrackTranscoderException: Failed to configure encoder codec.Media transformation failed for job id: null
Media format: {color-format=6, durationUs=7832955, mime=video/x-vnd.on2.vp9, profile=32, width=768, bitrate=8000000, frame-rate=30, height=1280}
Diagnostic info: null
at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodec(CodecUtils.java:217)
// ...
Caused by: java.lang.IllegalStateException
at com.linkedin.android.litr.utils.CodecUtils.createAndConfigureCodec(CodecUtils.java:283)
at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodecByType(CodecUtils.java:230)
at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodec(CodecUtils.java:205)
```

I did some debugging and that exception from `CodecUtils.java:283` is coming from an `IllegalArgumentException` from the native code, but there's not much info to go on.

I have tried a variation of including / not including these keys on `createVideoFormat`:

`KEY_PROFILE`
`KEY_COLOR_FORMAT`
`KEY_BIT_RATE`
`KEY_DURATION`

Replacing `createVideoFormat` with `null` works but I'm trying to downscale a video.

What's the best way to figure out what's going on?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing CodecUtils.java at lines 205, 217, 230, and 283, then review how createVideoFormat is called with KEY_PROFILE, KEY_COLOR_FORMAT, KEY_BIT_RATE, and KEY_DURATION. Reproduce the VP9 downscaling failure and inspect the native IllegalArgumentException path; done should mean TrackTranscoderException provides more useful diagnostic information than the current null details.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
audio-video-rtc, mobile
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.