[FFmpeg-devel] [PATCH v4] lavc: convert frame threading to the receive_frame() pattern

Michael Niedermayer michael at niedermayer.cc
Sat Dec 10 01:46:36 EET 2022


On Fri, Dec 09, 2022 at 02:37:04PM +0100, Timo Rothenpieler wrote:
> From: Anton Khirnov <anton at khirnov.net>
> 
> Reorganize the code such that the frame threading code does not call the
> decoders directly, but instead calls back into the generic decoding
> code. This avoids duplicating the logic that wraps the decoder
> invocation and will be useful in the following commits.
> ---
>  libavcodec/decode.c        |  58 +++++----
>  libavcodec/decode.h        |   7 +
>  libavcodec/internal.h      |   7 +
>  libavcodec/pthread_frame.c | 256 ++++++++++++++++++++++++-------------
>  libavcodec/thread.h        |  18 +--
>  5 files changed, 223 insertions(+), 123 deletions(-)

this patch changes the output with this:

./ffmpeg -ss 1 -i Enigma_Principles_of_Lust.flv -t 1 -bitexact -f framecrc

If someone wants to look into this ill send him the file,
it should be online but i failed to find it.

--- /tmp/test	2022-12-10 00:29:18.585089416 +0100
+++ /tmp/ref	2022-12-10 00:21:14.177412007 +0100
@@ -11,46 +11,53 @@
 0,          0,          0,        1,   153360, 0x887a0c84
 1,          0,          0,      482,     1928, 0x9228f7f2
 1,        485,        485,     1024,     4096, 0x60c21370
+0,          1,          1,        1,   153360, 0x49c60bc4
 0,          2,          2,        1,   153360, 0x22740bd4
 1,       1509,       1509,     1024,     4096, 0x77933b11
 0,          3,          3,        1,   153360, 0x244d0bb4
 1,       2536,       2536,     1024,     4096, 0xe15e8d59
+0,          4,          4,        1,   153360, 0x5f660b94
 1,       3560,       3560,     1024,     4096, 0x545cdd61
 0,          5,          5,        1,   153360, 0xb628fd45
 0,          6,          6,        1,   153360, 0x3839e5cd
 1,       4576,       4576,     1024,     4096, 0x47154132
+0,          7,          7,        1,   153360, 0xf015da05
 1,       5601,       5601,     1024,     4096, 0x7822f57e
 0,          8,          8,        1,   153360, 0x70f1d8db
 0,          9,          9,        1,   153360, 0x8968d203
 1,       6625,       6625,     1024,     4096, 0xb786e7ff
-0,         10,         10,        1,   153360, 0x5902c6cb
+0,         10,         10,        1,   153360, 0x9e73caed
 1,       7651,       7651,     1024,     4096, 0x0b467ce8
-0,         11,         11,        1,   153360, 0x68e43893
+0,         11,         11,        1,   153360, 0x5902c6cb
 1,       8675,       8675,     1024,     4096, 0x79229a46
-0,         12,         12,        1,   153360, 0x065c5e22
-0,         13,         13,        1,   153360, 0x6c2962a9
+0,         12,         12,        1,   153360, 0x68e43893
+0,         13,         13,        1,   153360, 0x065c5e22
 1,       9702,       9702,     1024,     4096, 0x63b1e107
+0,         14,         14,        1,   153360, 0x6c2962a9
 1,      10726,      10726,     1024,     4096, 0x9f4355eb
 0,         15,         15,        1,   153360, 0xff0a88e3
 1,      11753,      11753,     1024,     4096, 0xcdbae3fe
-0,         16,         16,        1,   153360, 0xd1395d5c
-0,         17,         17,        1,   153360, 0x0e1f6bc5
+0,         16,         16,        1,   153360, 0x07025790
+0,         17,         17,        1,   153360, 0xd1395d5c
 1,      12777,      12777,     1024,     4096, 0x48a38fc7
-0,         18,         18,        1,   153360, 0x1972db1e
+0,         18,         18,        1,   153360, 0x0e1f6bc5
 1,      13793,      13793,     1024,     4096, 0x3baef67f
+0,         19,         19,        1,   153360, 0x1972db1e
 0,         20,         20,        1,   153360, 0x1d6eef56
 1,      14818,      14818,     1024,     4096, 0x1009f25c
 0,         21,         21,        1,   153360, 0x7581f07c
 1,      15842,      15842,     1024,     4096, 0x01bedb12
-0,         22,         22,        1,   153360, 0xae79cdac
+0,         22,         22,        1,   153360, 0xe1a9d022
 1,      16868,      16868,     1024,     4096, 0xa00c62b0
+0,         23,         23,        1,   153360, 0xae79cdac
 0,         24,         24,        1,   153360, 0x9d05ebf3
 1,      17892,      17892,     1024,     4096, 0x9e2f639e
 0,         25,         25,        1,   153360, 0x48e4e890
 1,      18919,      18919,     1024,     4096, 0x0a627322
-0,         26,         26,        1,   153360, 0x37e0e5d7
-0,         27,         27,        1,   153360, 0x6c20f174
+0,         26,         26,        1,   153360, 0x0b35e41a
+0,         27,         27,        1,   153360, 0x37e0e5d7
 1,      19943,      19943,     1024,     4096, 0x5f670b1d
-0,         28,         28,        1,   153360, 0x727bf68a
+0,         28,         28,        1,   153360, 0x6c20f174
 1,      20959,      20959,     1024,     4096, 0xb6486ba8
+0,         29,         29,        1,   153360, 0x727bf68a
 1,      21984,      21984,       66,      264, 0x00000000

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

Those who are best at talking, realize last or never when they are wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20221210/3cba96f2/attachment.sig>


More information about the ffmpeg-devel mailing list