-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make high-profile available #73
Conversation
Make available high profile
Can this be merged? |
After trying with #71 some months ago I decided to go forward and make a fork which I am maintaining and has dozens of commits ahead. I have removed this profile limitation a long time ago. If you want, come take a look at https://github.com/natario1/Transcoder . Docs are still missing, but the demo app will show the new API surface. |
Sorry for late response. As supported video format list, high profile encoder is not supported yet. This means there is no guarantee that codecs of all the devices will output valid video data. This library highly depends on hardware codec impl, and sometimes nasty bugs were produced like #8 and some Nexus-4-era glitch issues. So I am conservative for profile and resolution support. This is also because this lib provides transcoding for the family album (yes, it is very precious memory which should never get glitch) app mitene, which has over a million Android users. But maybe you can check compatibility like this, or by xml file stored in /etc (?) of device. Or by testing running codec before using it. (Ah, I remembered why I added this restriction. libstagefright code in older Android forcefully overwrites profile before passing it to codec, perhaps.) |
@ypresto I'm not quite sure I understand the response with regards to merging this branch. As mentioned above, your plugin is used by Cordova's video editor plugin, which is also used by ionic native. Are there any plan to merge this fix in? |
I was misunderstanding that cordova video plugin returns null from format strategy (so original AVC video data is used regardless of its profile), but actually it does not. So, in OnePlus 6 (I also have it) era device, the codec generates high-profile video even without passing any profile parameter. Is it right? Profile validator was introduced because lollipop-era device does not well support non-baseline video. My recommendation at lollipop-era was stick with baseline (except for decoder), but now we can just remove the profile validator, and would be better to check the profile is supported by CodecProfileLevel or etc. |
@@ -36,7 +37,8 @@ public static void validateVideoOutputFormat(MediaFormat format) { | |||
} | |||
ByteBuffer spsBuffer = AvcCsdUtils.getSpsBuffer(format); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please remove lines below here, as profile validation is already not necessary.
#73 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any update? i am waiting so long time... |
It looks like this can be merge, @ypresto can you approve this? |
Bump! I would also like to consume this change. Thanks! |
No description provided.