[FFmpeg-devel,1/2] ffmpeg: handle flushing and non-flushing separately in sub2video

Submitted by Michael Niedermayer on Sept. 1, 2018, 7:51 p.m.

Details

Message ID 20180901195156.GB19650@michaelspb
State New
Headers show

Commit Message

Michael Niedermayer Sept. 1, 2018, 7:51 p.m.
On Fri, Aug 31, 2018 at 03:14:30PM +0300, Jan Ekström wrote:
> The initial fix for sub2video flushing during filter chain restarts
> seemed to add additional buffering into the filter chain, which in case
> of files did work, but when handling live streams would cause premature
> failure.
> 
> This fix reverts the timestamp filtering, and separates flushing from
> normal heartbeat functionality by adding an explicit parameter.

>  ffmpeg.c        |   57 ++++++++++++++++++++++++++++++++++++++++++++++++--------
>  ffmpeg.h        |    2 -
>  ffmpeg_filter.c |    2 -
>  3 files changed, 51 insertions(+), 10 deletions(-)
> 5e972ed74d7f00ee9243469f07c985f9890ce1f8  0001-ffmpeg-handle-flushing-and-non-flushing-separately-i.patch
> From 9ed9d80535a1e6a2a70faef296fd8d3cbfde8e55 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= <jan.ekstrom@aminocom.com>
> Date: Thu, 26 Jul 2018 19:07:38 +0300
> Subject: [PATCH 1/2] ffmpeg: handle flushing and non-flushing separately in
>  sub2video
> 
> This stops accidental flushes from happening in sub2video in case
> the filter chain gets a re-configuration/re-init. Heartbeats
> should not cause a flush and additional buffering in the filter chain.
> 
> Properly fixes filter chain flush handling, as previously the
> filter chain would keep buffering frames.
> 
> Additionally, document the various stages of sub2video.
> ---
>  fftools/ffmpeg.c        | 57 +++++++++++++++++++++++++++++++++++------
>  fftools/ffmpeg.h        |  2 +-
>  fftools/ffmpeg_filter.c |  2 +-
>  3 files changed, 51 insertions(+), 10 deletions(-)

breaks fate-sub2video
TEST    sub2video
Test sub2video failed. Look at tests/data/fate/sub2video.err for details.
make: *** [fate-sub2video] Error 1

[...]

Patch hide | download patch | download mbox

--- ./tests/ref/fate/sub2video	2018-09-01 19:32:08.768406978 +0200
+++ tests/data/fate/sub2video	2018-09-01 21:50:44.516582168 +0200
@@ -11,31 +11,31 @@ 
 0,          1,          1,        1,   518400, 0x4051c7f9
 0,          2,          2,        1,   518400, 0xfb00e17e
 1,     499000,     499000,  4960000,     1015, 0x19e092d2, F=0x0
-0,          3,          3,        1,   518400, 0x192abb74
-0,          4,          4,        1,   518400, 0x4669a88b
-0,          5,          5,        1,   518400, 0xaababe00
-0,          6,          6,        1,   518400, 0x98a211a5
-0,          7,          7,        1,   518400, 0x440e7547
-0,          8,          8,        1,   518400, 0xca5bb496
-0,          9,          9,        1,   518400, 0xf86e0b0a
-0,         10,         10,        1,   518400, 0xb80fa020
-0,         11,         11,        1,   518400, 0x41c2a54b
-0,         12,         12,        1,   518400, 0x51baf353
-0,         13,         13,        1,   518400, 0x967ea7f3
-0,         14,         14,        1,   518400, 0x819e7f89
-0,         15,         15,        1,   518400, 0x192233e1
-0,         16,         16,        1,   518400, 0xc80a0eb3
-0,         17,         17,        1,   518400, 0x08260a23
-0,         18,         18,        1,   518400, 0xc92e2caf
-0,         19,         19,        1,   518400, 0x3fe36eea
-0,         20,         20,        1,   518400, 0x0891e8d5
-0,         21,         21,        1,   518400, 0x84655095
-0,         22,         22,        1,   518400, 0x9c7fa014
-0,         23,         23,        1,   518400, 0x9c43b656
-0,         24,         24,        1,   518400, 0x2cf46221
-0,         25,         25,        1,   518400, 0x7322e11c
-0,         26,         26,        1,   518400, 0x45af1a84
-0,         27,         27,        1,   518400, 0x7b781071
+0,          3,          3,        1,   518400, 0x17f5f77c
+0,          4,          4,        1,   518400, 0x427fe2ce
+0,          5,          5,        1,   518400, 0x76d8fe7b
+0,          6,          6,        1,   518400, 0x167c5c28
+0,          7,          7,        1,   518400, 0x1d54c98e
+0,          8,          8,        1,   518400, 0x664016a4
+0,          9,          9,        1,   518400, 0x4a477278
+0,         10,         10,        1,   518400, 0xc3beffb4
+0,         11,         11,        1,   518400, 0xf052f750
+0,         12,         12,        1,   518400, 0xcd9e399a
+0,         13,         13,        1,   518400, 0x1843d70b
+0,         14,         14,        1,   518400, 0x4737acf9
+0,         15,         15,        1,   518400, 0x3a9961a0
+0,         16,         16,        1,   518400, 0x2dce2c74
+0,         17,         17,        1,   518400, 0x1d601ddc
+0,         18,         18,        1,   518400, 0xb47429b1
+0,         19,         19,        1,   518400, 0xfab24433
+0,         20,         20,        1,   518400, 0xd69d8e91
+0,         21,         21,        1,   518400, 0xc8b8ce57
+0,         22,         22,        1,   518400, 0xf6a90e9c
+0,         23,         23,        1,   518400, 0x11cc1ec4
+0,         24,         24,        1,   518400, 0xcad7cd01
+0,         25,         25,        1,   518400, 0x01596125
+0,         26,         26,        1,   518400, 0xc2b7aca0
+0,         27,         27,        1,   518400, 0x8b2d9fde
 0,         28,         28,        1,   518400, 0x4f7c706c
 0,         29,         29,        1,   518400, 0xb227603b
 0,         30,         30,        1,   518400, 0x7b4b89c2
@@ -59,128 +59,128 @@ 
 0,         48,         48,        1,   518400, 0x7df08fba
 0,         49,         49,        1,   518400, 0xbab197ea
 1,   15355000,   15355000,  4733000,     2094, 0x3c171425, F=0x0
-0,         77,         77,        1,   518400, 0x902285d9
-0,        100,        100,        1,   518400, 0xbab197ea
+0,         77,         77,        1,   518400, 0xbab197ea
+0,         78,         78,        1,   518400, 0x902285d9
 1,   48797000,   48797000,  2560000,     2480, 0x7c0edf21, F=0x0
 0,        244,        244,        1,   518400, 0x7a11c812
-0,        257,        257,        1,   518400, 0xbab197ea
+0,        245,        245,        1,   518400, 0xbab197ea
+0,        257,        257,        1,   518400, 0x34cdddee
 1,   51433000,   51433000,  2366000,     3059, 0xc95b8a05, F=0x0
-0,        258,        258,        1,   518400, 0x34cdddee
-0,        269,        269,        1,   518400, 0xbab197ea
+0,        258,        258,        1,   518400, 0xbab197ea
 1,   53910000,   53910000,  2696000,     2095, 0x61bb15ed, F=0x0
 0,        270,        270,        1,   518400, 0x4db4ce51
-0,        283,        283,        1,   518400, 0xbab197ea
+0,        271,        271,        1,   518400, 0xbab197ea
+0,        283,        283,        1,   518400, 0xe6bc0ea9
 1,   56663000,   56663000,  1262000,     1013, 0xc9ae89b7, F=0x0
-0,        284,        284,        1,   518400, 0xe6bc0ea9
-0,        290,        290,        1,   518400, 0xbab197ea
+0,        284,        284,        1,   518400, 0xbab197ea
+0,        290,        290,        1,   518400, 0xa8643af7
 1,   58014000,   58014000,  1661000,      969, 0xe01878f0, F=0x0
-0,        291,        291,        1,   518400, 0xa8643af7
-0,        298,        298,        1,   518400, 0xbab197ea
+0,        291,        291,        1,   518400, 0xbab197ea
 1,   67724000,   67724000,  1365000,      844, 0xe7db4fc1, F=0x0
 0,        339,        339,        1,   518400, 0xb1885c67
-0,        345,        345,        1,   518400, 0xbab197ea
+0,        340,        340,        1,   518400, 0xbab197ea
 1,   69175000,   69175000,  1558000,      802, 0xf48531ba, F=0x0
 0,        346,        346,        1,   518400, 0x378e3fd0
-0,        354,        354,        1,   518400, 0xbab197ea
+0,        347,        347,        1,   518400, 0xbab197ea
+0,        354,        354,        1,   518400, 0xa3782469
 1,   70819000,   70819000,  1865000,     1709, 0xb4d5a1bd, F=0x0
-0,        355,        355,        1,   518400, 0xa3782469
-0,        363,        363,        1,   518400, 0xbab197ea
+0,        355,        355,        1,   518400, 0xbab197ea
 1,   72762000,   72762000,  1968000,     2438, 0x99d7bc82, F=0x0
 0,        364,        364,        1,   518400, 0xba23a0d5
-0,        374,        374,        1,   518400, 0xbab197ea
+0,        365,        365,        1,   518400, 0xbab197ea
+0,        374,        374,        1,   518400, 0x129de2f8
 1,   74806000,   74806000,  1831000,     2116, 0x96514097, F=0x0
-0,        375,        375,        1,   518400, 0x129de2f8
-0,        383,        383,        1,   518400, 0xbab197ea
+0,        375,        375,        1,   518400, 0xbab197ea
 1,   76716000,   76716000,  1262000,     1822, 0xefccc72e, F=0x0
 0,        384,        384,        1,   518400, 0x19772f0f
-0,        390,        390,        1,   518400, 0xbab197ea
+0,        385,        385,        1,   518400, 0xbab197ea
+0,        390,        390,        1,   518400, 0x56f54e73
 1,   78051000,   78051000,  1524000,      987, 0x7b927a27, F=0x0
-0,        391,        391,        1,   518400, 0x56f54e73
-0,        398,        398,        1,   518400, 0xbab197ea
+0,        391,        391,        1,   518400, 0xbab197ea
+0,        398,        398,        1,   518400, 0x300b5247
 1,   79644000,   79644000,  2662000,     2956, 0x190778f7, F=0x0
-0,        399,        399,        1,   518400, 0x300b5247
+0,        399,        399,        1,   518400, 0xbab197ea
 1,   82380000,   82380000,  2764000,     3094, 0xc021b7d3, F=0x0
-0,        412,        412,        1,   518400, 0xbab197ea
-0,        413,        413,        1,   518400, 0x6fd028fa
-0,        426,        426,        1,   518400, 0xbab197ea
+0,        412,        412,        1,   518400, 0x6fd028fa
+0,        413,        413,        1,   518400, 0xbab197ea
+0,        426,        426,        1,   518400, 0x01f80e9d
 1,   85225000,   85225000,  2366000,     2585, 0x74d0048f, F=0x0
-0,        427,        427,        1,   518400, 0x01f80e9d
-0,        438,        438,        1,   518400, 0xbab197ea
+0,        427,        427,        1,   518400, 0xbab197ea
+0,        438,        438,        1,   518400, 0xb48d90c0
 1,   87652000,   87652000,  1831000,      634, 0x8832fda1, F=0x0
-0,        439,        439,        1,   518400, 0xb48d90c0
-0,        447,        447,        1,   518400, 0xbab197ea
+0,        439,        439,        1,   518400, 0xbab197ea
 1,   91531000,   91531000,  2332000,     2080, 0x97a1146f, F=0x0
 0,        458,        458,        1,   518400, 0xcb5a0173
-0,        469,        469,        1,   518400, 0xbab197ea
+0,        459,        459,        1,   518400, 0xbab197ea
 1,   95510000,   95510000,  3299000,     2964, 0x8b8f6684, F=0x0
 0,        478,        478,        1,   518400, 0xb8a323e4
-0,        494,        494,        1,   518400, 0xbab197ea
+0,        479,        479,        1,   518400, 0xbab197ea
+0,        494,        494,        1,   518400, 0xc43518ba
 1,   98872000,   98872000,  2161000,     1875, 0x9002ef71, F=0x0
-0,        495,        495,        1,   518400, 0xc43518ba
-0,        505,        505,        1,   518400, 0xbab197ea
+0,        495,        495,        1,   518400, 0xbab197ea
 1,  101124000,  101124000,  4096000,     3872, 0x20c6ed9c, F=0x0
 0,        506,        506,        1,   518400, 0x04e38692
-0,        526,        526,        1,   518400, 0xbab197ea
+0,        507,        507,        1,   518400, 0xbab197ea
 1,  105303000,  105303000,  2730000,     3094, 0xf203a663, F=0x0
 0,        527,        527,        1,   518400, 0x856b0ee5
-0,        540,        540,        1,   518400, 0xbab197ea
+0,        528,        528,        1,   518400, 0xbab197ea
 1,  108106000,  108106000,  2059000,     2404, 0x41a7b429, F=0x0
 0,        541,        541,        1,   518400, 0x3e5beee2
-0,        551,        551,        1,   518400, 0xbab197ea
+0,        542,        542,        1,   518400, 0xbab197ea
 1,  141556000,  141556000,  1661000,     1088, 0xde20aa20, F=0x0
 0,        708,        708,        1,   518400, 0xb8bc1365
-0,        716,        716,        1,   518400, 0xbab197ea
+0,        709,        709,        1,   518400, 0xbab197ea
 0,        817,        817,        1,   518400, 0x83efa32d
 1,  163445000,  163445000,  1331000,      339, 0x8bd186ef, F=0x0
-0,        824,        824,        1,   518400, 0xbab197ea
+0,        818,        818,        1,   518400, 0xbab197ea
 0,        840,        840,        1,   518400, 0x03ea0e90
 1,  168049000,  168049000,  1900000,     1312, 0x0bf20e8d, F=0x0
-0,        850,        850,        1,   518400, 0xbab197ea
+0,        841,        841,        1,   518400, 0xbab197ea
+0,        850,        850,        1,   518400, 0x8780239e
 1,  170035000,  170035000,  1524000,     1279, 0xb6c2dafe, F=0x0
-0,        851,        851,        1,   518400, 0x8780239e
-0,        858,        858,        1,   518400, 0xbab197ea
+0,        851,        851,        1,   518400, 0xbab197ea
 0,        861,        861,        1,   518400, 0x6eb72347
 1,  172203000,  172203000,  1695000,     1826, 0x9a1ac769, F=0x0
-0,        869,        869,        1,   518400, 0xbab197ea
+0,        862,        862,        1,   518400, 0xbab197ea
 1,  173947000,  173947000,  1934000,     1474, 0xa9b03cdc, F=0x0
 0,        870,        870,        1,   518400, 0x9c4a3a3d
-0,        879,        879,        1,   518400, 0xbab197ea
+0,        871,        871,        1,   518400, 0xbab197ea
 1,  175957000,  175957000,  1763000,     1019, 0x20409355, F=0x0
 0,        880,        880,        1,   518400, 0xc9ebfa89
-0,        889,        889,        1,   518400, 0xbab197ea
+0,        881,        881,        1,   518400, 0xbab197ea
 0,        946,        946,        1,   518400, 0xbaf801ef
 1,  189295000,  189295000,  1968000,     1596, 0x408c726e, F=0x0
-0,        956,        956,        1,   518400, 0xbab197ea
+0,        947,        947,        1,   518400, 0xbab197ea
 1,  191356000,  191356000,  1228000,     1517, 0xae8c5c2b, F=0x0
 0,        957,        957,        1,   518400, 0x59f4e72f
-0,        963,        963,        1,   518400, 0xbab197ea
+0,        958,        958,        1,   518400, 0xbab197ea
+0,        963,        963,        1,   518400, 0x9d5b9d69
 1,  192640000,  192640000,  1763000,     2506, 0xa458d6d4, F=0x0
-0,        964,        964,        1,   518400, 0x9d5b9d69
-0,        972,        972,        1,   518400, 0xbab197ea
+0,        964,        964,        1,   518400, 0xbab197ea
 1,  195193000,  195193000,  1092000,     1074, 0x397ba9a8, F=0x0
 0,        976,        976,        1,   518400, 0x923d1ce7
-0,        981,        981,        1,   518400, 0xbab197ea
+0,        977,        977,        1,   518400, 0xbab197ea
 1,  196361000,  196361000,  1524000,     1715, 0x695ca41e, F=0x0
 0,        982,        982,        1,   518400, 0x6e652cd2
-0,        989,        989,        1,   518400, 0xbab197ea
+0,        983,        983,        1,   518400, 0xbab197ea
 1,  197946000,  197946000,  1160000,      789, 0xc63a189e, F=0x0
 0,        990,        990,        1,   518400, 0x25113966
-0,        996,        996,        1,   518400, 0xbab197ea
+0,        991,        991,        1,   518400, 0xbab197ea
+0,        996,        996,        1,   518400, 0x2dc83609
 1,  199230000,  199230000,  1627000,     1846, 0xeea8c599, F=0x0
-0,        997,        997,        1,   518400, 0x2dc83609
-0,       1004,       1004,        1,   518400, 0xbab197ea
+0,        997,        997,        1,   518400, 0xbab197ea
 1,  200924000,  200924000,  1763000,      922, 0xd4a87222, F=0x0
 0,       1005,       1005,        1,   518400, 0x90483bc6
-0,       1013,       1013,        1,   518400, 0xbab197ea
+0,       1006,       1006,        1,   518400, 0xbab197ea
 0,       1053,       1053,        1,   518400, 0x3de86ab7
 1,  210600000,  210600000,  1831000,      665, 0x55580135, F=0x0
-0,       1062,       1062,        1,   518400, 0xbab197ea
+0,       1054,       1054,        1,   518400, 0xbab197ea
 1,  214771000,  214771000,  1558000,     1216, 0x50d1f6c5, F=0x0
 0,       1074,       1074,        1,   518400, 0x8c320e68
-0,       1082,       1082,        1,   518400, 0xbab197ea
+0,       1075,       1075,        1,   518400, 0xbab197ea
 0,       1128,       1128,        1,   518400, 0x81e977b2
 1,  225640000,  225640000,  2127000,     2133, 0x670c11a5, F=0x0
-0,       1139,       1139,        1,   518400, 0xbab197ea
+0,       1129,       1129,        1,   518400, 0xbab197ea
+0,       1139,       1139,        1,   518400, 0xb046dd30
 1,  227834000,  227834000,  1262000,     1264, 0xc1d9fc57, F=0x0
-0,       1140,       1140,        1,   518400, 0xb046dd30
 0,       1145,       1145,        1,   518400, 0xbab197ea