[FFmpeg-devel] [PATCH] avoid infinite loop when seeking flv and non seekable input

Baptiste Coudurier baptiste.coudurier
Wed Jul 23 04:41:51 CEST 2008


Hi,

$subject,

Reproduceable when trying to seek and input is non seekable (like http
through ffserver).

[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2705408, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2763520, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2818048, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2856192, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2889728, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 0, size 11469089, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2949120, flags 0
[flv @ 0x8e27eb0]skipping flv packet: type 32, size 2987264, flags 0

With patch resync happens faster:

[flv @ 0x9151eb0]type:8, size:11, dts:2412437
[flv @ 0x9151eb0]type:9, size:935, dts:2412440
[flv @ 0x9151eb0]type:36, size:13645824, dts:654311424
[flv @ 0x9151eb0]skipping flv packet: type 36, size 13645824, flags 0
[flv @ 0x9151eb0]type:12, size:4299270, dts:269270317
[flv @ 0x9151eb0]skipping flv packet: type 12, size 4299270, flags 0
[flv @ 0x9151eb0]type:0, size:2099200, dts:-805303516
[flv @ 0x9151eb0]skipping flv packet: type 0, size 2099200, flags 0
[flv @ 0x9151eb0]type:33, size:18832, dts:587340032
[flv @ 0x9151eb0]skipping flv packet: type 33, size 18832, flags 0
[flv @ 0x9151eb0]type:0, size:730320, dts:5570560
[flv @ 0x9151eb0]skipping flv packet: type 0, size 730320, flags 0
[flv @ 0x9151eb0]type:2, size:1638435, dts:8388608
[flv @ 0x9151eb0]skipping flv packet: type 2, size 1638435, flags 0
[flv @ 0x9151eb0]type:96, size:0, dts:9985
[flv @ 0x9151eb0]type:158, size:526940, dts:1258487296
[flv @ 0x9151eb0]skipping flv packet: type 158, size 526940, flags 0
[flv @ 0x9151eb0]type:0, size:730320, dts:7012352
[flv @ 0x9151eb0]skipping flv packet: type 0, size 730320, flags 0
[flv @ 0x9151eb0]type:2, size:1638435, dts:8388608
[flv @ 0x9151eb0]skipping flv packet: type 2, size 1638435, flags 0
[flv @ 0x9151eb0]type:128, size:0, dts:553692929
[flv @ 0x9151eb0]type:128, size:0, dts:1444096
[flv @ 0x9151eb0]type:0, size:2556160, dts:0
[flv @ 0x9151eb0]skipping flv packet: type 0, size 2556160, flags 0
[flv @ 0x9151eb0]type:1, size:7274533, dts:9175040
[flv @ 0x9151eb0]skipping flv packet: type 1, size 7274533, flags 0
[flv @ 0x9151eb0]type:149, size:0, dts:553692929
[flv @ 0x9151eb0]type:128, size:0, dts:1443840
[flv @ 0x9151eb0]type:0, size:11469089, dts:33573264
[flv @ 0x9151eb0]skipping flv packet: type 0, size 11469089, flags 0
[flv @ 0x9151eb0]type:22, size:589824, dts:-1340726064
[flv @ 0x9151eb0]skipping flv packet: type 22, size 589824, flags 0
[flv @ 0x9151eb0]type:0, size:10485760, dts:-1711272639
[flv @ 0x9151eb0]skipping flv packet: type 0, size 10485760, flags 0
[flv @ 0x9151eb0]type:224, size:307584, dts:553648128
[flv @ 0x9151eb0]skipping flv packet: type 224, size 307584, flags 0
[flv @ 0x9151eb0]type:0, size:0, dts:11469089
[flv @ 0x9151eb0]type:0, size:22, dts:185073664
[flv @ 0x9151eb0]skipping flv packet: type 0, size 22, flags 0
[flv @ 0x9151eb0]type:175, size:73984, dts:424251394
[flv @ 0x9151eb0]skipping flv packet: type 175, size 73984, flags 0
[flv @ 0x9151eb0]type:9, size:19, dts:2412760
[flv @ 0x9151eb0]type:8, size:11, dts:2412779
[flv @ 0x9151eb0]type:9, size:19, dts:2412800

Patch looks like a workaround yes. Im not sure if this is the right
solution.

Other suggestions:
Avoid seeking when size is really high ?
Avoid using generic seeking when protocol is slow/unseekable ?

Comments welcome.

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Smartjog USA Inc.                                http://www.smartjog.com
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: flv_skip_infinite_retry.patch
Type: text/x-diff
Size: 537 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080722/f92c2c03/attachment.patch>



More information about the ffmpeg-devel mailing list