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

Muhammad Faiz mfcc64 at gmail.com
Thu Jun 30 20:23:48 CEST 2016


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.

Thank's


More information about the ffmpeg-devel mailing list