deepmedia / Transcoder

🎞 Hardware-accelerated video transcoding using Android MediaCodec APIs. Supports cropping, concatenation, clipping, audio processing, video speed and much more.
https://opensource.deepmedia.io/transcoder
Apache License 2.0
784 stars 166 forks source link

Initialize mOriginUs lazily #167

Closed jumperson closed 2 months ago

jumperson commented 2 years ago

138

Library transcode video with artifacts. Link to video

I have same issue.

I checked the diffs for v0.9.1 and v0.10.0 and found that there was an issue at https://github.com/natario1/Transcoder/commit/997de452835899f04d38913571e3ce601668fa6a .

After proceeding with the verification, it seems that some terminals have side effects with mExtractor.selectTrack(i) and mExtractor.unselectTrack(i) .

Therefore, I changed the timing to set mOriginUs .

jumperson commented 2 years ago

@natario1 Thank you for developing a great library. I would appreciate it if you could review the fix.

tudormarze commented 2 years ago

Hello @jumperson I have tried the changes from the fork and transcoding a video with the buffer.hasRemaining issue, it seems to get in an infinite loop.

In my case any video downloaded from TikTok produces that issue on an Android 12 device.

jumperson commented 2 years ago

Hello @tudormarze. Can you try taking in both #158 and #167 ? Or the main branch of StudistCorporation/Transcoder has both #158 and #167, so try it.

natario1 commented 2 months ago

I cherry-picked your commit and improved a bit on it in #200 . Thanks a lot for your investigation @jumperson , this must have been very hard to catch.