[ Doubango / IMSDroid ] propositions of patch h264 Single Nal Unit / Negociate h264 profile level / bandwidth on SDP
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
```
Hi,
Here as a patch file that brings the following improvments and correction:
1/ it implements the single nal unit mode packetization that greatly improve
the interoperability between doubango and other H.264 videophones.
2 ) It fixes the profile / level negociation
3 ) It Adds bandwidth information ( field b= on SDP )
- h264 Single Nal Unit Mode packetization.
Many SIP videophone do not support packetization mode 1 so, this patch makes
djoubango encode in packetization mode 0 that can be decoded even if
packetization mode 1 or 2 is negociated. On the other hand, djoubango will
still be capable of decoding both mode O and 1. In short to be compatible with
all the h264 decoders.
- Profile level negociation
If a remote terminal offers a different profile / level than ours, that
standard mandates that we should negociate the lowset. This patch add this
behavior. The profile/level settings now specify the MAXIMUM profile level
negociable by djoubango.
- Bandwidth information on SDP (b=)
It adds the b=AS:xxx in the SDP according to the negociated profile.
This prevent remote end to send a video bitrate that is too high that causes
slow video decoding on Android.
Building :
ffmpeg
After patch your ffmpeg , make clean , make all and copy new static libraries
and includes in doubango/thirdparties/android/xxxx repository
else you have the archives of build result in attachement on the next thread
(error 400. "That’s an error. 400" by google ;-) .
doubango
copy x264.h x264_config.h on doubango/thirdparties/android/include ( for
x264_nal_t definition )
apply patch on doubango repository and rebuild .
IMSDroid
apply patch and rebuild .
You have IMSDroid V2 patched on file on the next thread (error 400. "That’s
an error. 400" by google ;-) .
files :
doubango_h264SingleNalUnit.patch : patch for doubango V2
IMSDroid_h264SingleNalUnit.patch : patch for imsdroid V2
ffmpeg_h264SingleNalUnit.patch : patch for ffmpeg (git://git.ffmpeg.org/ffmpeg)
doubango.thirdparties.android.tar.gz : result of ffmpeg build (arm5) for
doubango
imsdroid_V2.apk : IMSDroid V2 with all patch .
Best regards
philippe
PS : Have make another solution for SingleNalUnit , with dynamic memory
allocation , but pointer are randomly corrupted , i understand if you have an
idea ?
file : doubango_h264SignleNalDynamic.patch
```
Original issue reported on code.google.com by `verney.p...@gmail.com` on 4 May 2011 at 9:23
Attachments:
- [doubango_h264SingleNalUnit.patch](https://storage.googleapis.com/google-code-attachments/imsdroid/issue-225/comment-0/doubango_h264SingleNalUnit.patch)
- [IMSDroid_h264SingleNalUnit.patch](https://storage.googleapis.com/google-code-attachments/imsdroid/issue-225/comment-0/IMSDroid_h264SingleNalUnit.patch)
- [ffmpeg_h264SingleNalUnit.patch](https://storage.googleapis.com/google-code-attachments/imsdroid/issue-225/comment-0/ffmpeg_h264SingleNalUnit.patch)
- [doubango_h264SignleNalDynamic.patch](https://storage.googleapis.com/google-code-attachments/imsdroid/issue-225/comment-0/doubango_h264SignleNalDynamic.patch)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.