You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We are seeing this issue on private content that requires authentication, so I cannot attach actual data. We have HLS content that has segments (.ts files). Each .ts file has ID3 tags in form of PrivFrames and they are used for Nielsen analytics purpose. All .ts files have ID3 header but some files randomly do not have the actual ID3 tag. When 3-4 .ts files contiguously do not have ID3 tags, ExoPlayer still tries to parse it. When I stepped through the code, data buffer is 10 bytes with all 0x00's. So, Unexpected ID3 file identifier, expected "ID3", actual ParserException is thrown. Can you please validate that there is an actual ID3 tag and then only try to parse it?
I validated content with Apple's mediastreamvalidator tool and 3rd party id3injector tool and content is valid.
I tested by pasting the authenticated URL into Demo App and failure is seen on both v1 (r1.5.11) and v2 (r2.0.1) versions.
Exception:
E/ExoPlayerImplInternal: Internal track renderer error.
com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.ParserException: Unexpected ID3 file identifier, expected "ID3", actual "������".
at com.google.android.exoplayer.metadata.MetadataTrackRenderer.doSomeWork(MetadataTrackRenderer.java:112)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:129)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:434)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:213)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
Caused by: com.google.android.exoplayer.ParserException: Unexpected ID3 file identifier, expected "ID3", actual "������".
at com.google.android.exoplayer.metadata.id3.Id3Parser.parseId3Header(Id3Parser.java:136)
at com.google.android.exoplayer.metadata.id3.Id3Parser.parse(Id3Parser.java:49)
at com.google.android.exoplayer.metadata.id3.Id3Parser.parse(Id3Parser.java:33)
at com.google.android.exoplayer.metadata.MetadataTrackRenderer.doSomeWork(MetadataTrackRenderer.java:110)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:129)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:434)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:213)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
The text was updated successfully, but these errors were encountered:
We are seeing this issue on private content that requires authentication, so I cannot attach actual data. We have HLS content that has segments (.ts files). Each .ts file has ID3 tags in form of PrivFrames and they are used for Nielsen analytics purpose. All .ts files have ID3 header but some files randomly do not have the actual ID3 tag. When 3-4 .ts files contiguously do not have ID3 tags, ExoPlayer still tries to parse it. When I stepped through the code, data buffer is 10 bytes with all 0x00's. So, Unexpected ID3 file identifier, expected "ID3", actual ParserException is thrown. Can you please validate that there is an actual ID3 tag and then only try to parse it?
ID3 Header:
ID3 Tag example. Exception is thrown when 3-4 contiguous .ts files do not contain a tag:
Exception:
E/ExoPlayerImplInternal: Internal track renderer error.
com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.ParserException: Unexpected ID3 file identifier, expected "ID3", actual "������".
at com.google.android.exoplayer.metadata.MetadataTrackRenderer.doSomeWork(MetadataTrackRenderer.java:112)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:129)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:434)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:213)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
Caused by: com.google.android.exoplayer.ParserException: Unexpected ID3 file identifier, expected "ID3", actual "������".
at com.google.android.exoplayer.metadata.id3.Id3Parser.parseId3Header(Id3Parser.java:136)
at com.google.android.exoplayer.metadata.id3.Id3Parser.parse(Id3Parser.java:49)
at com.google.android.exoplayer.metadata.id3.Id3Parser.parse(Id3Parser.java:33)
at com.google.android.exoplayer.metadata.MetadataTrackRenderer.doSomeWork(MetadataTrackRenderer.java:110)
at com.google.android.exoplayer.SampleSourceTrackRenderer.doSomeWork(SampleSourceTrackRenderer.java:129)
at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:434)
at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:213)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
The text was updated successfully, but these errors were encountered: