On Fri, 18 Mar 2022 02:20:11 GMT, Alexander Matveev <almat...@openjdk.org> 
wrote:

>> - Added support for fragmented MP4 with HEVC/H.265, H.264 and AAC. 
>>  - Added support for elementary AAC streams without any container for audio 
>> only streams.
>>  - Added "aacparse" plugin from GStreamer. Required on Linux, since decoder 
>> cannot handle AAC elementary streams directly. DirectShow decoder works 
>> without it.
>>  - DirectShow H.264 decoder on Windows and H.265/H.264 decoder on Linux will 
>> be reloaded when fMP4 stream changes resolution. Dynamic format change did 
>> not worked for these streams on Windows and Linux.
>
> Alexander Matveev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8277309: Add support for H.265/HEVC to HTTP Live Streaming [v3]

Fixed several issues found during additional testing:
- sendHeader was true by default which caused sending first and second segment 
together for MP2TS and MP3/AAC elementary streams. This variable should be true 
only for fragmented MP4.
- Removed G_SIGNAL_NO_RECURSE flag from javasource signals. From GLib doc 
"G_SIGNAL_NO_RECURSE - Signals being emitted for an object while currently 
being in emission for this very object will not be emitted recursively, but 
instead cause the first emission to be restarted." Basically it caused skipping 
data segments since in some cases loadNextSegment() was called twice. We do use 
signal mechanism from separate thread when reading duration. This issue is 
intermittent. All GStreamer provided elements do not use G_SIGNAL_NO_RECURSE 
flag, so not sure why javasource was using it.
- Fixed duration calculation. We should not count duration of header, since 
header does not contain any data.
- Added code which will adjust PTS during rendering to start with 0, otherwise 
(after duration fix) we will drop frames with PTS > duration. Note: In fMP4 HLS 
streams PTS starts with N and goes upto duration + N. Our rendering code 
expects start with 0 and stop at duration.
- Minor code cleanup and removal of unnecessary "if (segment.start != 0)" check 
in hlsprogressbuffer.

-------------

PR: https://git.openjdk.java.net/jfx/pull/726

Reply via email to