Skip to content

Commit d5f2dd3

Browse files
StypoxPriveetee
andcommitted
fix: detect access units for YouTube HLS AVC1
Co-authored-by: Priveetee <brahim.benyoucefpro@proton.me>
1 parent 5836f3a commit d5f2dd3

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

app/src/main/java/org/schabi/newpipe/player/helper/PlayerDataSource.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import androidx.annotation.Nullable;
99

1010
import com.google.android.exoplayer2.database.StandaloneDatabaseProvider;
11+
import com.google.android.exoplayer2.extractor.ts.DefaultTsPayloadReaderFactory;
1112
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
1213
import com.google.android.exoplayer2.source.SingleSampleMediaSource;
1314
import com.google.android.exoplayer2.source.dash.DashMediaSource;
1415
import com.google.android.exoplayer2.source.dash.DefaultDashChunkSource;
16+
import com.google.android.exoplayer2.source.hls.DefaultHlsExtractorFactory;
1517
import com.google.android.exoplayer2.source.hls.HlsMediaSource;
1618
import com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker;
1719
import com.google.android.exoplayer2.source.smoothstreaming.DefaultSsChunkSource;
@@ -175,7 +177,11 @@ public SingleSampleMediaSource.Factory getSingleSampleMediaSourceFactory() {
175177

176178
//region YouTube media source factories
177179
public HlsMediaSource.Factory getYoutubeHlsMediaSourceFactory() {
178-
return new HlsMediaSource.Factory(ytHlsCacheDataSourceFactory);
180+
// these custom flags fix AVC1/H264 stutter on some Pixel devices, see
181+
// https://github.com/InfinityLoop1308/PipePipeClient/pull/24
182+
final int payloadReaderFlags = DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS;
183+
return new HlsMediaSource.Factory(ytHlsCacheDataSourceFactory)
184+
.setExtractorFactory(new DefaultHlsExtractorFactory(payloadReaderFlags, true));
179185
}
180186

181187
public DashMediaSource.Factory getYoutubeDashMediaSourceFactory() {

0 commit comments

Comments
 (0)