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

Paul B Mahol onemda at gmail.com
Thu Jun 30 09:23:36 CEST 2016


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.

>
> seems that lut filter doesn't depend on drawutils. So probably will
> repost as separated patch.
>
> Thank's
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list