[FFmpeg-devel] [PATCH v2] avfilter/pthread: rewrite implementation

Michael Niedermayer michael at niedermayer.cc
Sat Jul 8 02:45:06 EEST 2017


On Fri, Jul 07, 2017 at 09:04:37PM +0700, Muhammad Faiz wrote:
> Avoid pthread_cond_broadcast that wakes up all workers. Make each of them
> uses distict mutex/cond. Also let main thread help running jobs.
> 
> Benchmark using afir with threads=5 and 4096 taps fir:
> channels=1:
> old:
>     1849650 decicycles in afir_execute,       2 runs,      0 skips
>     1525719 decicycles in afir_execute,    1024 runs,      0 skips
>     1546032 decicycles in afir_execute,   16356 runs,     28 skips
> new:
>     1495525 decicycles in afir_execute,       2 runs,      0 skips
>      968897 decicycles in afir_execute,    1024 runs,      0 skips
>      941286 decicycles in afir_execute,   16384 runs,      0 skips
> 
> channels=2:
> old:
>     3135485 decicycles in afir_execute,       2 runs,      0 skips
>     1967158 decicycles in afir_execute,    1024 runs,      0 skips
>     1802430 decicycles in afir_execute,   16364 runs,     20 skips
> new:
>     1864750 decicycles in afir_execute,       2 runs,      0 skips
>     1437792 decicycles in afir_execute,    1024 runs,      0 skips
>     1183963 decicycles in afir_execute,   16382 runs,      2 skips
> 
> channels=4:
> old:
>     4879925 decicycles in afir_execute,       2 runs,      0 skips
>     3557950 decicycles in afir_execute,    1022 runs,      2 skips
>     3206843 decicycles in afir_execute,   16379 runs,      5 skips
> new:
>     2962320 decicycles in afir_execute,       2 runs,      0 skips
>     2450430 decicycles in afir_execute,    1024 runs,      0 skips
>     2446219 decicycles in afir_execute,   16383 runs,      1 skips
> 
> channels=8:
> old:
>     6032455 decicycles in afir_execute,       2 runs,      0 skips
>     4838614 decicycles in afir_execute,    1023 runs,      1 skips
>     4720760 decicycles in afir_execute,   16369 runs,     15 skips
> new:
>     5228150 decicycles in afir_execute,       2 runs,      0 skips
>     4592129 decicycles in afir_execute,    1023 runs,      1 skips
>     4469067 decicycles in afir_execute,   16383 runs,      1 skips

this causes a strange change:

./ffmpeg -i ~/videos/matrixbench_mpeg2.mpg  -vcodec libxavs  -vf scale=80x60 -t 1 file3.nut

results in different files before and after this patch. Neither plays
i suspect this is not a bug in the patch but something odd elsewhere
but i dont know

-rw-r----- 1 michael michael 57671 Jul  8 00:48 file3.nut
-rw-r----- 1 michael michael 62162 Jul  8 00:48 file3p.nut

framecrc difference of video with -vcodec copy -copyinkf -f framecrc

--- a   2017-07-08 01:41:49.717555033 +0200
+++ b   2017-07-08 01:42:09.877555273 +0200
@@ -5,28 +5,28 @@
 #dimensions 0: 80x60
 #sar 0: 1/1
 0,          0,          0,     2048,     1860, 0xaa19412e, F=0x0
-0,       2048,       2048,     2048,     1261, 0xd0bd2d34, F=0x0
-0,       4096,       4096,     2048,     1261, 0x30083a11, F=0x0
-0,       6144,       6144,     2048,     1347, 0xfd5b5c17, F=0x0
-0,       8192,       8192,     2048,      933, 0x3e95a0aa, F=0x0
-0,      10240,      10240,     2048,     1299, 0x5fd141e1, F=0x0
-0,      12288,      12288,     2048,     1311, 0xcb90563e, F=0x0
-0,      14336,      14336,     2048,     1288, 0x55553cee, F=0x0
-0,      16384,      16384,     2048,     1295, 0x68d34476, F=0x0
-0,      18432,      18432,     2048,     1397, 0xf0646699, F=0x0
-0,      20480,      20480,     2048,     1353, 0xbd0557f9, F=0x0
-0,      22528,      22528,     2048,     1358, 0x90095601, F=0x0
-0,      24576,      24576,     2048,     2004, 0x8de57d88, F=0x0
-0,      26624,      26624,     2048,     1477, 0x6c099b28, F=0x0
-0,      28672,      28672,     2048,     1515, 0x2fd78855, F=0x0
+0,       2048,       2048,     2048,     1827, 0x1a47f795, F=0x0
+0,       4096,       4096,     2048,     1379, 0x50435dbb, F=0x0
+0,       6144,       6144,     2048,     1912, 0x9b2529a8, F=0x0
+0,       8192,       8192,     2048,     1052, 0x6fe1ce3b, F=0x0
+0,      10240,      10240,     2048,     1862, 0x10e30eae, F=0x0
+0,      12288,      12288,     2048,     1432, 0x93858555, F=0x0
+0,      14336,      14336,     2048,     1850, 0xaf3b039d, F=0x0
+0,      16384,      16384,     2048,     1408, 0x049e668a, F=0x0
+0,      18432,      18432,     2048,     1956, 0x751c36c6, F=0x0
+0,      20480,      20480,     2048,     1465, 0xb6e58045, F=0x0
+0,      22528,      22528,     2048,     1916, 0x22dc1fe7, F=0x0
+0,      24576,      24576,     2048,     2038, 0x56548c7c, F=0x0
+0,      26624,      26624,     2048,     1490, 0x7e42a072, F=0x0
+0,      28672,      28672,     2048,     1521, 0x6e128b71, F=0x0
 0,      30720,      30720,     2048,     1523, 0xa5819af8, F=0x0
 0,      32768,      32768,     2048,     1528, 0x9898a156, F=0x0
-0,      34816,      34816,     2048,     1601, 0x9873cdf4, F=0x0
+0,      34816,      34816,     2048,     1613, 0x5e97d399, F=0x0
 0,      36864,      36864,     2048,     1597, 0xf02ad0e6, F=0x0
-0,      38912,      38912,     2048,     1620, 0x4da2da72, F=0x0
-0,      40960,      40960,     2048,     1668, 0xb794dc64, F=0x0
+0,      38912,      38912,     2048,     1625, 0x9bdddcbb, F=0x0
+0,      40960,      40960,     2048,     1673, 0x0a11de8f, F=0x0
 0,      43008,      43008,     2048,     1678, 0xd81de01a, F=0x0
 0,      45056,      45056,     2048,     1647, 0x5ca1d51c, F=0x0
-0,      47104,      47104,     2048,     1643, 0x8010d916, F=0x0
-0,      49152,      49152,     2048,     2118, 0x985ea130, F=0x0
+0,      47104,      47104,     2048,     1655, 0xca23ddf2, F=0x0
+0,      49152,      49152,     2048,     2158, 0x4619aaac, F=0x0
 0,      49153,      49153,     2048,        4, 0x00b300b2, F=0x0



[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The bravest are surely those who have the clearest vision
of what is before them, glory and danger alike, and yet
notwithstanding go out to meet it. -- Thucydides
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170708/5aef14da/attachment.sig>


More information about the ffmpeg-devel mailing list