[FFmpeg-devel] [PATCH] avfilter/drawutils: change to support native endian only

Michael Niedermayer michael at niedermayer.cc
Fri Jul 8 22:27:32 EEST 2016


On Fri, Jul 01, 2016 at 01:23:48AM +0700, Muhammad Faiz wrote:
> On Thu, Jun 30, 2016 at 2:23 PM, Paul B Mahol <onemda at gmail.com> wrote:
> > On 6/29/16, Muhammad Faiz <mfcc64 at gmail.com> wrote:
> >> On Tue, Jun 28, 2016 at 5:45 PM, Michael Niedermayer
> >> <michael at niedermayer.cc> wrote:
> >>> On Tue, Jun 28, 2016 at 04:07:31PM +0700, Muhammad Faiz wrote:
> >>>> On Mon, Jun 27, 2016 at 6:02 PM, Michael Niedermayer
> >>>> <michael at niedermayer.cc> wrote:
> >>>> > On Mon, Jun 27, 2016 at 04:46:16PM +0700, Muhammad Faiz wrote:
> >>>> >> previously support little endian only because of fate problem
> >>>> >> generally native endian code is faster
> >>>> >>
> >>>> >> require 'tests/fate-run: support both le/be formats on pixfmts'
> >>>> >> need someone tests it on BE machine
> >>>> >>
> >>>> >> Signed-off-by: Muhammad Faiz <mfcc64 at gmail.com>
> >>>> >> ---
> >>>> >>  libavfilter/drawutils.c | 43 ++++++++++++++++----------
> >>>> >>  libavfilter/vf_lut.c    | 81
> >>>> >> +++++++++++++++++++++----------------------------
> >>>> >>  2 files changed, 62 insertions(+), 62 deletions(-)
> >>>> >
> >>>> > breaks fate on big endian (mips)
> >>>> >
> >>>> > Test filter-pixfmts-pad failed. Look at
> >>>> > tests/data/fate/filter-pixfmts-pad.err for details.
> >>>> > make: *** [fate-filter-pixfmts-pad] Error 1
> >>>> > make: *** Waiting for unfinished jobs....
> >>>> > --- tests/ref/fate/filter-pixfmts-lut   2016-06-26 18:25:32.960458744
> >>>> > +0200
> >>>> > +++ tests/data/fate/filter-pixfmts-lut  2016-06-27 12:48:19.049852682
> >>>> > +0200
> >>>> > @@ -3,38 +3,38 @@
> >>>> >  bgr24               fa43e3b2abfde8d9e60e157a9acc553d
> >>>> >  bgra                4e2e689897ee7a8e42b16234597bab35
> >>>> >  rgb24               a356171207723a580e7d277078072005
> >>>> > -rgb48le             5c7dd8575836d18c91e09f1915cf9aa9
> >>>> > +rgb48be             d9a7669cab9159c7f28dc92387fab304
> >>>> >  rgba                7bc854c2698b78af3e9159a19c2d9d21
> >>>> > -rgba64le            3a087ecab583d1930220592731f282b4
> >>>> > +rgba64be            612546f91b274bcc8c314386ba410c3d
> >>>> >  yuv410p             51b39a0e33f108e652457a26667319ea
> >>>> >  yuv411p             9204c5af92aef4922a05f58c1f6c095e
> >>>> >  yuv420p             7c43bb0cae8dee633375c89295598508
> >>>> > -yuv420p10le         1352712dd31cce78bd5441294004cf85
> >>>> > -yuv420p12le         c66f82da9fda458ba3abda057c58e591
> >>>> > -yuv420p14le         e45cb5e2a75bf6143da0b55004767f78
> >>>> > -yuv420p16le         eff54782c51770edfd6b84c958ac7120
> >>>> > -yuv420p9le          4a6776b3379f12ad45caee8072a13695
> >>>> > +yuv420p10be         4ef2f621258d77ef242e37e39b636f7c
> >>>> > +yuv420p12be         bfb9f581c3749fd102f5bbd2065ad67a
> >>>> > +yuv420p14be         999d29d713e52f61a5eea1765c57e660
> >>>> > +yuv420p16be         a8ff20f5a96ba42fa5968bda64e160bd
> >>>> > +yuv420p9be          862db8509f9cbaa7fd542851047a50fc
> >>>> >  yuv422p             67df35da0c35e54882492b2365438254
> >>>> > -yuv422p10le         0158371a800294015def7f0ef66c78ea
> >>>> > -yuv422p12le         bc49d3863ffb89658a17bf8c4fe773b0
> >>>> > -yuv422p14le         b55cb791d286b0b3391fe7481785e5b3
> >>>> > -yuv422p16le         fc3b2ba889ffaf1633000fc774307c33
> >>>> > -yuv422p9le          6e2a42ae36ed5e8b5112987639728af5
> >>>> > +yuv422p10be         384f3f8757ecdcb87e0f5225f92ee244
> >>>> > +yuv422p12be         b6bac207d387098f22b2f3613d668d30
> >>>> > +yuv422p14be         48b83f5ecc7931cbab467801934bbf87
> >>>> > +yuv422p16be         be0db4de9820408fd6770cdcea0535f9
> >>>> > +yuv422p9be          f2486947acf0e98977cbec23c79871b3
> >>>> >  yuv440p             5e41adcfc27be4369afd217b61b2ffe3
> >>>> > -yuv440p10le         8b49714bba268fb4a79b5a84223ad17a
> >>>> > -yuv440p12le         15ab4f453238bd9c13b18af81e22f060
> >>>> > +yuv440p10be         cbcbbbdbe4a1dc041bee11b757be89d7
> >>>> > +yuv440p12be         7603fda62bd9cb383e7d82af0bf5fefd
> >>>> >  yuv444p             a2b58590aef88db2c1f14a1a3a3b0359
> >>>> > -yuv444p10le         c076c20fc808f95b34adb88aca442f48
> >>>> > -yuv444p12le         af8d4dd88169d5cffc2f3fce6333a94c
> >>>> > -yuv444p14le         93367133e25d088d4535199ed1f1ed58
> >>>> > -yuv444p16le         800940feec14365ccd9b4863e38f6991
> >>>> > -yuv444p9le          c120044350852c4cd16a302dd1ceda79
> >>>> > +yuv444p10be         a3481fe5e95190749f2ac3288ad686c3
> >>>> > +yuv444p12be         118c1d1f8270cebec8554972adde05da
> >>>> > +yuv444p14be         6671cff7f64e9f9bc1dceb3d31a69c00
> >>>> > +yuv444p16be         27effaa1096361ffb6b69d1d0e8a35d6
> >>>> > +yuv444p9be          dcd44e88c9424d5666ac950f4e3e19e4
> >>>> >  yuva420p            518a380bf1af60ef2ecf4754eec088e9
> >>>> > -yuva420p16le        72ad4fa535b007d122666ce103ef9c8b
> >>>> > +yuva420p16be        aaa6db0ce07716dab15782dfbad5aca9
> >>>> >  yuva422p            7110ac2e37377b05b6fc5ad967dfabb5
> >>>> > -yuva422p16le        e2867210660ada5784a60b4339ac52c0
> >>>> > +yuva422p16be        f5c06d197a1096314553b1d89f43d96f
> >>>> >  yuva444p            642f3958f141dece9e99407945e2ef43
> >>>> > -yuva444p16le        ab04ba8acbe38085b0df650d82065eb0
> >>>> > +yuva444p16be        5337a7c64bd26a675d4a2bb8881e6fcb
> >>>> >  yuvj420p            65bc88887c7f06a6221155ca7f9cfca4
> >>>> >  yuvj422p            ff5baffefc8ffe4547653092fd7da200
> >>>> >  yuvj440p            ef3f27270e60ac06582e3ac7c2f3e6fa
> >>>>
> >>>> Did you apply 'tests/fate-run: support both le/be formats on pixfmts'
> >>>> first?
> >>>
> >>> i forgot the 2nd patch
> >>> but it doesnt work with it either:
> >>>
> >>> --- /home/michael/ffmpeg-git/ffmpeg/tests/ref/fate/filter-pixfmts-pad
> >>> 2016-06-28 11:55:47.679606503 +0200
> >>> +++ tests/data/fate/filter-pixfmts-pad  2016-06-28 12:11:34.867626458
> >>> +0200
> >>> @@ -7,86 +7,22 @@
> >>>  bgra                929aac15e848038e367c250037575f9f
> >>>  gbrap               6712984b4a068ffa534f0cb35b2adc6f
> >>>  gbrp                3c94d39256db2409015df913fd330a90
> >>> -gbrp10be            c2162c0bbb705fbddfa614c5942d02ed
> >>> -gbrp10le            f206db2a32ad484a59cf3e596bdc2866
> >>> -gbrp12be            3e7b2c39d897e1d4b92d29dbfa910d28
> >>> -gbrp12le            be6463331985e2c8ed7bd910093ca4a2
> >>> -gbrp14be            fc28fffc7140319d3375bd931f771b77
> >>> -gbrp14le            9ae804cf217bec0a737c36c20573cbe5
> >>> -gbrp9be             04af1d3122b4a4be680ce7ca0f421613
> >>> -gbrp9le             9a86dab5661c213ce2b7e00ae48b4d1f
> >>>  gray                ddc663a0491df3959d9c5795dceaa72e
> >>> -gray16be            0feca50dda3c94af547cec1e825b3f59
> >>> -gray16le            468bda6155bdc7a7a20c34d6e599fd16
> >>>  nv12                381574979cb04be10c9168540310afad
> >>>  nv21                0fdeb2cdd56cf5a7147dc273456fa217
> >>>  rgb0                78d500c8361ab6423a4826a00268c908
> >>>  rgb24               17f9e2e0c609009acaf2175c42d4a2a5
> >>>  rgba                b157c90191463d34fb3ce77b36c96386
> >>> -xyz12be             637d73fbe088c9499a2dda5588fdc4fd
> >>> -xyz12le             85abf80b77a9236a76ba0b00fcbdea2d
> >>>  ya8                 5fc0f471207ddf7aa01b07027d56b672
> >>>  yuv410p             cb871dcc1e84a7ef1d21f9237b88cf6e
> >>>  yuv411p             aec2c1740de9a62db0d41f4dda9121b0
> >>>  yuv420p             4398e408fc35436ce4b20468946f58b6
> >>> -yuv420p10be         27c51eb01a77cdc303c08508438c5781
> >>> -yuv420p10le         74518a7d68457c54da3300e80c683e9c
> >>> -yuv420p12be         9d4d07b459c616f98395b86da074f21b
> >>> -yuv420p12le         32086c64c814315aa9253580708a192e
> >>> -yuv420p14be         fc01de817152c5c02d3921d5627f23ff
> >>> -yuv420p14le         265e9fefb8b92f3cae678eb3cf4e00b4
> >>> -yuv420p16be         2c2006abff6eebd17139607d4858231b
> >>> -yuv420p16le         1ca89e47164d5f2481e39d4ac6eab2ed
> >>> -yuv420p9be          85330b2d6f221c24bd23094e784b0c2f
> >>> -yuv420p9le          59f0209084d1d1dd2861e058d1df63f4
> >>>  yuv422p             e43d68568d9f782908ba56bf1e09d5d5
> >>> -yuv422p10be         9e8739e5e0e0fc9579850eddfdcd8920
> >>> -yuv422p10le         18667cf7f87d8ffe1c4cc3db2100c559
> >>> -yuv422p12be         34645d3da9c725d25e24a801677d94f9
> >>> -yuv422p12le         71e32220fa1bbdcac95fb57ba0dbd4f0
> >>> -yuv422p14be         50c6ef2ad37a16d8f2ad5b4497cb43b3
> >>> -yuv422p14le         a0064be4d29079a811e5a315341da09a
> >>> -yuv422p16be         d32ef961672b50a9ff929daedab72645
> >>> -yuv422p16le         836057e9999c763697c66c21869492b8
> >>> -yuv422p9be          4070c63b2ba21b5c022c395d5992e470
> >>> -yuv422p9le          3213bed797e7b4cefa4f174dc33bf246
> >>>  yuv440p             a7e34de74c96b0224fe1381ec1db2ba7
> >>> -yuv440p10be         f87f831c7c8511f3f31d72ab4199b034
> >>> -yuv440p10le         f91a481e27be7ea4a38a878e5e4330a3
> >>> -yuv440p12be         02ca4324f64c8db5a005fccc02372621
> >>> -yuv440p12le         0e9953a09ac09fe5f1523b350cf7cb72
> >>>  yuv444p             6bfd89286dc36f2789b77d747ed8fa22
> >>> -yuv444p10be         842b0a41df79a224fb204be5934f5c8a
> >>> -yuv444p10le         b10afb5fda970dbce8aac5aab981a8cb
> >>> -yuv444p12be         23d3a9c6c36aa10c0917e0813b135155
> >>> -yuv444p12le         8f1b4b0f91d309fdaaec8a1ba6c7107f
> >>> -yuv444p14be         0987bcd77bebe8043e8d7cea5d016ed1
> >>> -yuv444p14le         2a87a84fa01237de9c08dd7e9ffbf78d
> >>> -yuv444p16be         7e080bfed69b94ec66f996ae56249408
> >>> -yuv444p16le         28508867fe7470c3539f8a84e8fb8271
> >>> -yuv444p9be          f410a76dd84f5cf4837b69638791c319
> >>> -yuv444p9le          99d39ef897c6037d6c7aa6e7a0398f84
> >>>  yuva420p            842c27169ecdcf6de79f2b787367b51c
> >>> -yuva420p10be        7e352ec163ecb109b4b69197ba9206b0
> >>> -yuva420p10le        336fcb42c5b665c2028661e73325b359
> >>> -yuva420p16be        fbdbe6d3632469ee4168eab2b125f278
> >>> -yuva420p16le        ff45de790e7bdd3c25d8aad51289aba9
> >>> -yuva420p9be         752ad41b57437a8bbf7afaff16583bd8
> >>> -yuva420p9le         8ef1f3b3e01b5ce222e4caeec3dec396
> >>>  yuva422p            91dcecc4bfdff1f0db9ef8b9b5b9ac2a
> >>> -yuva422p10be        60d5f623492b0272b6991b65fb6d0d07
> >>> -yuva422p10le        1ba292c74c8646fd077a6116142b1bc8
> >>> -yuva422p16be        cdf2eda328edeb647c4b9031d13d2623
> >>> -yuva422p16le        383226550fe9c93d6e8bf0d45d1423d1
> >>> -yuva422p9be         10028ca99a2c36f2c6a7e451a05b79c7
> >>> -yuva422p9le         0fb76788c905c6d448143aa3c5eae116
> >>>  yuva444p            fb60941a57596b277417a3c7c00aa194
> >>> -yuva444p10be        d1ba797e579c80c8861bc9c4346cc365
> >>> -yuva444p10le        251ea4ead8300d752eb355a08cbb0352
> >>> -yuva444p16be        3b78740c00b98d11699755685964e105
> >>> -yuva444p16le        5b65287e1862d2d9f1ad2cfdcde94661
> >>> -yuva444p9be         ffa19028be2f9418e0da02a62da77bc6
> >>> -yuva444p9le         e6946c10b94c271e7ea24b3bcff314e1
> >>>  yuvj411p            ca967e68759a4956729dd366adc7e7fa
> >>>  yuvj420p            c00611cd5f1558047d579d8a7d30e381
> >>>  yuvj422p            b3acdf07147a7598836065836ad8420b
> >>> Test filter-pixfmts-pad failed. Look at
> >>> tests/data/fate/filter-pixfmts-pad.err for details.
> >>> make: *** [fate-filter-pixfmts-pad] Error 1
> >>> make: *** Waiting for unfinished jobs....
> >>> --- /home/michael/ffmpeg-git/ffmpeg/tests/ref/fate/filter-pixfmts-lut
> >>> 2016-06-28 11:55:47.663606503 +0200
> >>> +++ tests/data/fate/filter-pixfmts-lut  2016-06-28 12:11:46.207626696
> >>> +0200
> >>> @@ -11,43 +11,43 @@
> >>>  yuv410p             51b39a0e33f108e652457a26667319ea
> >>>  yuv411p             9204c5af92aef4922a05f58c1f6c095e
> >>>  yuv420p             7c43bb0cae8dee633375c89295598508
> >>> -yuv420p10be         a6663932e075bcfab96148082ab9ab7c
> >>> -yuv420p10le         1352712dd31cce78bd5441294004cf85
> >>> -yuv420p12be         7e51fa387cac0df48ec51bdfa538a53d
> >>> -yuv420p12le         c66f82da9fda458ba3abda057c58e591
> >>> -yuv420p14be         99498c69bb247fadc973b6e912f32dc7
> >>> -yuv420p14le         e45cb5e2a75bf6143da0b55004767f78
> >>> +yuv420p10be         4ef2f621258d77ef242e37e39b636f7c
> >>> +yuv420p10le         7231299a1a754be60e69a4c5000d234e
> >>> +yuv420p12be         bfb9f581c3749fd102f5bbd2065ad67a
> >>> +yuv420p12le         65d56820d89366067343b9e1beed44a5
> >>> +yuv420p14be         999d29d713e52f61a5eea1765c57e660
> >>> +yuv420p14le         b34b3b92f1bb5e884ca6da2b146a7c87
> >>>  yuv420p16be         a8ff20f5a96ba42fa5968bda64e160bd
> >>>  yuv420p16le         eff54782c51770edfd6b84c958ac7120
> >>> -yuv420p9be          84f752b682dcb02178653197bc29f2f8
> >>> -yuv420p9le          4a6776b3379f12ad45caee8072a13695
> >>> +yuv420p9be          862db8509f9cbaa7fd542851047a50fc
> >>> +yuv420p9le          4222f452681f95ad5bff50c8f310afca
> >>>  yuv422p             67df35da0c35e54882492b2365438254
> >>> -yuv422p10be         5f6bbd95917512d650823040aebd44c0
> >>> -yuv422p10le         0158371a800294015def7f0ef66c78ea
> >>> -yuv422p12be         8fea3ed2bb16ef8052ab3dbc322b5bbe
> >>> -yuv422p12le         bc49d3863ffb89658a17bf8c4fe773b0
> >>> -yuv422p14be         25ab2f40ab5b54f2d3f03ced389c1da7
> >>> -yuv422p14le         b55cb791d286b0b3391fe7481785e5b3
> >>> +yuv422p10be         384f3f8757ecdcb87e0f5225f92ee244
> >>> +yuv422p10le         92719736199e67c98ff91c6d618ed7c1
> >>> +yuv422p12be         b6bac207d387098f22b2f3613d668d30
> >>> +yuv422p12le         fd62172b9451514348ae3301b45d3132
> >>> +yuv422p14be         48b83f5ecc7931cbab467801934bbf87
> >>> +yuv422p14le         c70cc978c2bbe9795583ee3bac00373a
> >>>  yuv422p16be         be0db4de9820408fd6770cdcea0535f9
> >>>  yuv422p16le         fc3b2ba889ffaf1633000fc774307c33
> >>> -yuv422p9be          ba42020043dd407327882de068d2a1c1
> >>> -yuv422p9le          6e2a42ae36ed5e8b5112987639728af5
> >>> +yuv422p9be          f2486947acf0e98977cbec23c79871b3
> >>> +yuv422p9le          b15d99b9b569b31c67e8eb6cbb565204
> >>>  yuv440p             5e41adcfc27be4369afd217b61b2ffe3
> >>>  yuv440p10be         cbcbbbdbe4a1dc041bee11b757be89d7
> >>>  yuv440p10le         8b49714bba268fb4a79b5a84223ad17a
> >>>  yuv440p12be         7603fda62bd9cb383e7d82af0bf5fefd
> >>>  yuv440p12le         15ab4f453238bd9c13b18af81e22f060
> >>>  yuv444p             a2b58590aef88db2c1f14a1a3a3b0359
> >>> -yuv444p10be         3719f137bb7759e51a5116a6e3bf0066
> >>> -yuv444p10le         c076c20fc808f95b34adb88aca442f48
> >>> -yuv444p12be         bf93db19cf2708a6f671c73d8fe5e746
> >>> -yuv444p12le         af8d4dd88169d5cffc2f3fce6333a94c
> >>> -yuv444p14be         47a825cf9f088abc744a66547e00f3a8
> >>> -yuv444p14le         93367133e25d088d4535199ed1f1ed58
> >>> +yuv444p10be         a3481fe5e95190749f2ac3288ad686c3
> >>> +yuv444p10le         dfe804ab0225502c93211ff24888882b
> >>> +yuv444p12be         118c1d1f8270cebec8554972adde05da
> >>> +yuv444p12le         350bc539cac56bfbbde11014462a1c51
> >>> +yuv444p14be         6671cff7f64e9f9bc1dceb3d31a69c00
> >>> +yuv444p14le         225886464573bb1179c61418dfe6bc92
> >>>  yuv444p16be         27effaa1096361ffb6b69d1d0e8a35d6
> >>>  yuv444p16le         800940feec14365ccd9b4863e38f6991
> >>> -yuv444p9be          55ea2c5d5d819ab983e4770d4ddf20a2
> >>> -yuv444p9le          c120044350852c4cd16a302dd1ceda79
> >>> +yuv444p9be          dcd44e88c9424d5666ac950f4e3e19e4
> >>> +yuv444p9le          2627db43507e69cb0c8c2a530e5f5d0f
> >>>  yuva420p            518a380bf1af60ef2ecf4754eec088e9
> >>>  yuva420p16be        aaa6db0ce07716dab15782dfbad5aca9
> >>>  yuva420p16le        72ad4fa535b007d122666ce103ef9c8b
> >>> Test filter-pixfmts-lut failed. Look at
> >>> tests/data/fate/filter-pixfmts-lut.err for details.
> >>
> >> filter-pixfmts-pad: all >8 bits failed, probably problem in drawutils.
> >> filter-pixfmts-lut: some >8 bits failed, (yuv444/yuv422/yuv420 9/10/12/14)
> >
> > If you can't fix this, I would prefer to post my patch for rotate filter.
> 
> OK, I gave up. I can not guess what's wrong because lack of platform.
> I hope that someone will fix it.

you only need a build env for mips and qemu to test on
linux x86-64, thats how i test it too ...

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

Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
-------------- 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/20160708/ccd6a0bc/attachment.sig>


More information about the ffmpeg-devel mailing list