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
tsdemuxer: if PES does not contain PTS/DTS, use last PES PTS/DTS instead #2109
Conversation
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Bump
…On Sun, Apr 7, 2019 at 04:02 stale[bot] ***@***.***> wrote:
Closed #2109 <#2109>.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#2109 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEzwZETkrQc2qJYsm7zK6o18BhZ-5028ks5veaYDgaJpZM4aZi0H>
.
|
I’ve run into issue #2415 with I’m just a little worried about there being issues with not just AVC but AAC and ID3 also missing timestamps. |
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.
* upstream/master: (81 commits) Prevent seeking to 0 when startPosition is -1 Fixes #2438 Prevent RangeError exception when parsing incomplete PES Fixes #2415 Relates to #2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments Add seek back to start functional test Fix start gap jumping with partial fragments and when seeking back to start Reset stall time after seeked and fix logger statments Fix partial and large start gap jumping Do not jump gaps larger than JUMP_THRESHOLD_SECONDS Update gap-controller comments Avoid jumping gaps that Chrome will jump Prevent reporting stalls right after "seeked" Jump start gap in Safari fixes #2436 Update gap-controller to match v1 branch gap-controller: add handling for audio-only autoplay issues in Chrome gap-controller: improve some log lines gap-controller: add unit tests for initial gap skipping + paused/hasPlayed cases gap-controller: documentation/comments improvements ... # Conflicts: # package-lock.json # scripts/travis.sh # src/controller/audio-stream-controller.js # src/controller/audio-track-controller.ts # src/controller/buffer-controller.ts # src/controller/gap-controller.js # src/controller/id3-track-controller.js # src/controller/stream-controller.js # src/controller/subtitle-stream-controller.ts # src/controller/subtitle-track-controller.ts # src/controller/timeline-controller.ts # src/demux/tsdemuxer.ts # src/events.js # src/loader/m3u8-parser.ts # src/utils/buffer-helper.ts # tests/functional/auto/setup.js # tests/test-streams.js # tests/unit/controller/ewma-bandwidth-estimator.js # tests/unit/controller/gap-controller.js # tests/unit/controller/subtitle-stream-controller.js
* upstream/master: (81 commits) Prevent seeking to 0 when startPosition is -1 Fixes #2438 Prevent RangeError exception when parsing incomplete PES Fixes #2415 Relates to #2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments Add seek back to start functional test Fix start gap jumping with partial fragments and when seeking back to start Reset stall time after seeked and fix logger statments Fix partial and large start gap jumping Do not jump gaps larger than JUMP_THRESHOLD_SECONDS Update gap-controller comments Avoid jumping gaps that Chrome will jump Prevent reporting stalls right after "seeked" Jump start gap in Safari fixes #2436 Update gap-controller to match v1 branch gap-controller: add handling for audio-only autoplay issues in Chrome gap-controller: improve some log lines gap-controller: add unit tests for initial gap skipping + paused/hasPlayed cases gap-controller: documentation/comments improvements ... # Conflicts: # package-lock.json # scripts/travis.sh # src/controller/audio-stream-controller.js # src/controller/audio-track-controller.ts # src/controller/buffer-controller.ts # src/controller/gap-controller.js # src/controller/id3-track-controller.js # src/controller/stream-controller.js # src/controller/subtitle-stream-controller.ts # src/controller/subtitle-track-controller.ts # src/controller/timeline-controller.ts # src/demux/tsdemuxer.ts # src/events.js # src/loader/m3u8-parser.ts # src/utils/buffer-helper.ts # tests/functional/auto/setup.js # tests/test-streams.js # tests/unit/controller/ewma-bandwidth-estimator.js # tests/unit/controller/gap-controller.js # tests/unit/controller/subtitle-stream-controller.js
* upstream/master: (81 commits) Prevent seeking to 0 when startPosition is -1 Fixes #2438 Prevent RangeError exception when parsing incomplete PES Fixes #2415 Relates to #2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments Add seek back to start functional test Fix start gap jumping with partial fragments and when seeking back to start Reset stall time after seeked and fix logger statments Fix partial and large start gap jumping Do not jump gaps larger than JUMP_THRESHOLD_SECONDS Update gap-controller comments Avoid jumping gaps that Chrome will jump Prevent reporting stalls right after "seeked" Jump start gap in Safari fixes #2436 Update gap-controller to match v1 branch gap-controller: add handling for audio-only autoplay issues in Chrome gap-controller: improve some log lines gap-controller: add unit tests for initial gap skipping + paused/hasPlayed cases gap-controller: documentation/comments improvements ... # Conflicts: # package-lock.json # scripts/travis.sh # src/controller/audio-stream-controller.js # src/controller/audio-track-controller.ts # src/controller/buffer-controller.ts # src/controller/gap-controller.js # src/controller/id3-track-controller.js # src/controller/stream-controller.js # src/controller/subtitle-stream-controller.ts # src/controller/subtitle-track-controller.ts # src/controller/timeline-controller.ts # src/demux/tsdemuxer.ts # src/events.js # src/loader/m3u8-parser.ts # src/utils/buffer-helper.ts # tests/functional/auto/setup.js # tests/test-streams.js # tests/unit/controller/ewma-bandwidth-estimator.js # tests/unit/controller/gap-controller.js # tests/unit/controller/subtitle-stream-controller.js
* upstream/master: (92 commits) Update package-lock Update TypeScript and run `npm audit fix` Add a lint rule to disallow use of SourceBuffer global Fix `isSupported` check in browser missing `SourceBuffer` global Fixes #2430 #2476 https add code of conduct Remove build:types from release job. Remove TypeScript types build step only include js files in release Prevent seeking to 0 when startPosition is -1 Fixes #2438 Prevent RangeError exception when parsing incomplete PES Fixes #2415 Relates to #2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments Add seek back to start functional test Fix start gap jumping with partial fragments and when seeking back to start Reset stall time after seeked and fix logger statments Fix partial and large start gap jumping ... # Conflicts: # package-lock.json # package.json # scripts/travis.sh # src/controller/audio-stream-controller.js # src/controller/buffer-controller.ts # src/controller/gap-controller.js # src/controller/id3-track-controller.js # src/controller/stream-controller.js # src/controller/subtitle-stream-controller.ts # src/controller/subtitle-track-controller.ts # src/controller/timeline-controller.ts # src/demux/tsdemuxer.ts # src/events.js # src/loader/m3u8-parser.ts # src/utils/buffer-helper.ts # tests/functional/auto/setup.js # tests/test-streams.js # tests/unit/controller/ewma-bandwidth-estimator.js # tests/unit/controller/gap-controller.js # tests/unit/controller/subtitle-stream-controller.js
* feature/v1.0.0: (95 commits) Enforce no-case-declarations Cleanup timeout calls Enforce 'no-unused-vars' lint rule Update package-lock Update TypeScript and run `npm audit fix` Add a lint rule to disallow use of SourceBuffer global Fix `isSupported` check in browser missing `SourceBuffer` global Fixes video-dev#2430 video-dev#2476 https add code of conduct Remove build:types from release job. Remove TypeScript types build step only include js files in release Prevent seeking to 0 when startPosition is -1 Fixes video-dev#2438 Prevent RangeError exception when parsing incomplete PES Fixes video-dev#2415 Relates to video-dev#2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments Add seek back to start functional test ...
I've tested these changes in the feature/v1.0.0 branch and they work very nicely! |
* feature/v1.0.0: (96 commits) Fix audio gaps introduced by changes in remuxer continuity tracking Enforce no-case-declarations Cleanup timeout calls Enforce 'no-unused-vars' lint rule Update package-lock Update TypeScript and run `npm audit fix` Add a lint rule to disallow use of SourceBuffer global Fix `isSupported` check in browser missing `SourceBuffer` global Fixes video-dev#2430 video-dev#2476 https add code of conduct Remove build:types from release job. Remove TypeScript types build step only include js files in release Prevent seeking to 0 when startPosition is -1 Fixes video-dev#2438 Prevent RangeError exception when parsing incomplete PES Fixes video-dev#2415 Relates to video-dev#2109 Log license key size (DRM functional test troubleshooting) Improve functional test assertion feedback Handle stalls when seeking into buffer gaps Update gap controller to observe buffer gaps regardless of max buffer hole Update gap-controller comments ...
This PR will ...
attempt to fix #1469
Why is this Pull Request needed?
we are currently dropping any PES packet without PTS/DTS
this was introduced by 9a80c98. this filtering was added as we were previously providing AVC samples with undefined PTS/DTS to mp4-remuxer.
the mp4-remuxer isnt resilient to that and is generating corrupted video fmp4 in that case.
let's try to be more resilient and fallback on last AVC sample PTS/DTS (PTS/DTS are optional fields of PES headers)
Are there any points in the code the reviewer needs to double check?
we need to test against streams with PES not signalling PTS/DTS.
Resolves issues:
#1469
Checklist