[FFmpeg-devel] [PATCH] libavformat/mov.c : Avoid seek request with invalid seek offset ( 9223372036854775799 ) after EOS
Malviya, Janpriya
Janpriya_Malviya at bose.com
Fri Apr 22 11:37:01 EEST 2022
Hello ffmpeg Dev team,
While integrating FFmpeg for M4A , MP4 stream & facing issue that mov demuxer trying to request seek for invalid seek offset.
Issue details:-
- Modified doc/examples/demuxing_decoding.c example to support Custom IO call-back because we have our own mechanism to read data from source
- In custom IO seek call back , we do not support “whence” values AVSEEK_SIZE & SEEK_END , used to find stream size ( returning -1 in both the cases ).
- In attached screen shot , where we are observing seek with invalid seek offset and the seek requested after End of stream is detected
- Seek offset value 9223372036854775799 always the same ( I think INT64_MAX – 8 , 8 is length Atom type & size field )
- If we allow to return proper stream size in seek callback then this problem is not observed.
Fix :
In attached patch to verify EOS condition before going to parse atom data.
Signed-off-by: Janpriya Malviya <Janpriya_Malviya at bose.com>
---
libavformat/mov.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 6c847de..9704550 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -7556,6 +7556,10 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if (atom.size >= 8) {
a.size = avio_rb32(pb);
a.type = avio_rl32(pb);
+
+ if(avio_feof(pb))
+ continue;
+
if (((a.type == MKTAG('f','r','e','e') && c->moov_retry) ||
a.type == MKTAG('h','o','o','v')) &&
a.size >= 8 &&
--
2.7.4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: issueImage.png
Type: image/png
Size: 191430 bytes
Desc: issueImage.png
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20220422/07c8aec2/attachment.png>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: reproduce_issue.c
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20220422/07c8aec2/attachment.c>
More information about the ffmpeg-devel
mailing list