Skip to content

[RFC] global/clang-format: Add .clang-format configuration for consistent formatting #74

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

softworkz
Copy link
Collaborator

This is an attempt to create and establish a common definition for
code formatting. Besides .clang-format, there don't seem to be many
good candidates for C when looking for non-proprietary open-source
solutions, so there's wasn't really much choice.

I have tried to configure everything according to the current
guidelines, to which it should come pretty close. There are a few
things for which I couldn't find any FFmpeg rules, or where it wasn't
clear and I made choices that seemed reasonable.

This is in no way intended to prescribe any formatting detail rules,
it's rather meant as an invitation to collaborate on this and ideally
end up with something "official" that allows to check and fix
formatting in CI flows or Patchwork and locally for everybody using
editors with clang-format support or using clang-format from the
command line.

Signed-off-by: softworkz [email protected]

@softworkz softworkz changed the title global/clang-format: Add .clang-format configuration for consistent formatting [RFC] global/clang-format: Add .clang-format configuration for consistent formatting Apr 21, 2025
…tent formatting

This is an attempt to create and establish a common definition for
code formatting. Besides .clang-format, there don't seem to be many
good candidates for C when looking for non-proprietary open-source
solutions, so there's wasn't really much choice.

I have tried to configure everything according to the current
guidelines, to which it should come pretty close. There are a few
things for which I couldn't find any FFmpeg rules, or where it wasn't
clear and I made choices that seemed reasonable.

This is in no way intended to prescribe any formatting detail rules,
it's rather meant as an invitation to collaborate on this and ideally
end up with something "official" that allows to check and fix
formatting in CI flows or Patchwork and locally for everybody using
editors with clang-format support or using clang-format from the
command line.

Signed-off-by: softworkz <[email protected]>
@softworkz softworkz force-pushed the submit_clang_format branch from 9d4e79d to 272c74b Compare April 21, 2025 23:51
@softworkz
Copy link
Collaborator Author

/submit

Copy link

Submitted as [email protected]

To fetch this version into FETCH_HEAD:

git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-74/softworkz/submit_clang_format-v1

To fetch this version to local tag pr-ffstaging-74/softworkz/submit_clang_format-v1:

git fetch --no-tags https://github.com/ffstaging/FFmpeg tag pr-ffstaging-74/softworkz/submit_clang_format-v1

Copy link

On the FFmpeg mailing list, "softworkz ." wrote (reply to this):

--_003_BN0P223MB0358758A39DC074411914A68BAB82BN0P223MB0358NAMP_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogc29mdHdvcmt6IDxmZm1w
ZWdhZ2VudEBnbWFpbC5jb20+DQo+IFNlbnQ6IERpZW5zdGFnLCAyMi4gQXByaWwgMjAyNSAwMTo1
Mw0KPiBUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcNCj4gQ2M6IHNvZnR3b3JreiA8c29mdHdv
cmt6QGhvdG1haWwuY29tPjsgc29mdHdvcmt6DQo+IDxzb2Z0d29ya3pAaG90bWFpbC5jb20+DQo+
IFN1YmplY3Q6IFtQQVRDSF0gW1JGQ10gZ2xvYmFsL2NsYW5nLWZvcm1hdDogQWRkIC5jbGFuZy1m
b3JtYXQNCj4gY29uZmlndXJhdGlvbiBmb3IgY29uc2lzdGVudCBmb3JtYXR0aW5nDQo+IA0KPiBG
cm9tOiBzb2Z0d29ya3ogPHNvZnR3b3JrekBob3RtYWlsLmNvbT4NCj4gDQo+IFRoaXMgaXMgYW4g
YXR0ZW1wdCB0byBjcmVhdGUgYW5kIGVzdGFibGlzaCBhIGNvbW1vbiBkZWZpbml0aW9uIGZvcg0K
PiBjb2RlIGZvcm1hdHRpbmcuIEJlc2lkZXMgLmNsYW5nLWZvcm1hdCwgdGhlcmUgZG9uJ3Qgc2Vl
bSB0byBiZSBtYW55DQo+IGdvb2QgY2FuZGlkYXRlcyBmb3IgQyB3aGVuIGxvb2tpbmcgZm9yIG5v
bi1wcm9wcmlldGFyeSBvcGVuLXNvdXJjZQ0KPiBzb2x1dGlvbnMsIHNvIHRoZXJlJ3Mgd2Fzbid0
IHJlYWxseSBtdWNoIGNob2ljZS4NCj4gDQo+IEkgaGF2ZSB0cmllZCB0byBjb25maWd1cmUgZXZl
cnl0aGluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQNCj4gZ3VpZGVsaW5lcywgdG8gd2hpY2gg
aXQgc2hvdWxkIGNvbWUgcHJldHR5IGNsb3NlLiBUaGVyZSBhcmUgYSBmZXcNCj4gdGhpbmdzIGZv
ciB3aGljaCBJIGNvdWxkbid0IGZpbmQgYW55IEZGbXBlZyBydWxlcywgb3Igd2hlcmUgaXQgd2Fz
bid0DQo+IGNsZWFyIGFuZCBJIG1hZGUgY2hvaWNlcyB0aGF0IHNlZW1lZCByZWFzb25hYmxlLg0K
PiANCj4gVGhpcyBpcyBpbiBubyB3YXkgaW50ZW5kZWQgdG8gcHJlc2NyaWJlIGFueSBmb3JtYXR0
aW5nIGRldGFpbCBydWxlcywNCj4gaXQncyByYXRoZXIgbWVhbnQgYXMgYW4gaW52aXRhdGlvbiB0
byBjb2xsYWJvcmF0ZSBvbiB0aGlzIGFuZCBpZGVhbGx5DQo+IGVuZCB1cCB3aXRoIHNvbWV0aGlu
ZyAib2ZmaWNpYWwiIHRoYXQgYWxsb3dzIHRvIGNoZWNrIGFuZCBmaXgNCj4gZm9ybWF0dGluZyBp
biBDSSBmbG93cyBvciBQYXRjaHdvcmsgYW5kIGxvY2FsbHkgZm9yIGV2ZXJ5Ym9keSB1c2luZw0K
PiBlZGl0b3JzIHdpdGggY2xhbmctZm9ybWF0IHN1cHBvcnQgb3IgdXNpbmcgY2xhbmctZm9ybWF0
IGZyb20gdGhlDQo+IGNvbW1hbmQgbGluZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IHNvZnR3b3Jr
eiA8c29mdHdvcmt6QGhvdG1haWwuY29tPg0KPiAtLS0NCj4gICAgIFtSRkNdIGdsb2JhbC9jbGFu
Zy1mb3JtYXQ6IEFkZCAuY2xhbmctZm9ybWF0IGNvbmZpZ3VyYXRpb24gZm9yDQo+ICAgICBjb25z
aXN0ZW50IGZvcm1hdHRpbmcNCj4gDQo+ICAgICBUaGlzIGlzIGFuIGF0dGVtcHQgdG8gY3JlYXRl
IGFuZCBlc3RhYmxpc2ggYSBjb21tb24gZGVmaW5pdGlvbiBmb3INCj4gY29kZQ0KPiAgICAgZm9y
bWF0dGluZy4gQmVzaWRlcyAuY2xhbmctZm9ybWF0LCB0aGVyZSBkb24ndCBzZWVtIHRvIGJlIG1h
bnkNCj4gZ29vZA0KPiAgICAgY2FuZGlkYXRlcyBmb3IgQyB3aGVuIGxvb2tpbmcgZm9yIG5vbi1w
cm9wcmlldGFyeSBvcGVuLXNvdXJjZQ0KPiBzb2x1dGlvbnMsDQo+ICAgICBzbyB0aGVyZSdzIHdh
c24ndCByZWFsbHkgbXVjaCBjaG9pY2UuDQo+IA0KPiAgICAgSSBoYXZlIHRyaWVkIHRvIGNvbmZp
Z3VyZSBldmVyeXRoaW5nIGFjY29yZGluZyB0byB0aGUgY3VycmVudA0KPiAgICAgZ3VpZGVsaW5l
cywgdG8gd2hpY2ggaXQgc2hvdWxkIGNvbWUgcHJldHR5IGNsb3NlLiBUaGVyZSBhcmUgYSBmZXcN
Cj4gdGhpbmdzDQo+ICAgICBmb3Igd2hpY2ggSSBjb3VsZG4ndCBmaW5kIGFueSBGRm1wZWcgcnVs
ZXMsIG9yIHdoZXJlIGl0IHdhc24ndA0KPiBjbGVhciBhbmQNCj4gICAgIEkgbWFkZSBjaG9pY2Vz
IHRoYXQgc2VlbWVkIHJlYXNvbmFibGUuDQo+IA0KPiAgICAgVGhpcyBpcyBpbiBubyB3YXkgaW50
ZW5kZWQgdG8gcHJlc2NyaWJlIGFueSBmb3JtYXR0aW5nIGRldGFpbA0KPiBydWxlcywNCj4gICAg
IGl0J3MgcmF0aGVyIG1lYW50IGFzIGFuIGludml0YXRpb24gdG8gY29sbGFib3JhdGUgb24gdGhp
cyBhbmQNCj4gaWRlYWxseQ0KPiAgICAgZW5kIHVwIHdpdGggc29tZXRoaW5nICJvZmZpY2lhbCIg
dGhhdCBhbGxvd3MgdG8gY2hlY2sgYW5kIGZpeA0KPiBmb3JtYXR0aW5nDQo+ICAgICBpbiBDSSBm
bG93cyBvciBQYXRjaHdvcmsgYW5kIGxvY2FsbHkgZm9yIGV2ZXJ5Ym9keSB1c2luZyBlZGl0b3Jz
DQo+IHdpdGgNCj4gICAgIGNsYW5nLWZvcm1hdCBzdXBwb3J0IG9yIHVzaW5nIGNsYW5nLWZvcm1h
dCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuDQo+IA0KPiAgICAgU2lnbmVkLW9mZi1ieTogc29mdHdv
cmt6IHNvZnR3b3JrekBob3RtYWlsLmNvbQ0KPiANCj4gUHVibGlzaGVkLUFzOiBodHRwczovL2dp
dGh1Yi5jb20vZmZzdGFnaW5nL0ZGbXBlZy9yZWxlYXNlcy90YWcvcHItDQo+IGZmc3RhZ2luZy03
NCUyRnNvZnR3b3JreiUyRnN1Ym1pdF9jbGFuZ19mb3JtYXQtdjENCj4gRmV0Y2gtSXQtVmlhOiBn
aXQgZmV0Y2ggaHR0cHM6Ly9naXRodWIuY29tL2Zmc3RhZ2luZy9GRm1wZWcgcHItDQo+IGZmc3Rh
Z2luZy03NC9zb2Z0d29ya3ovc3VibWl0X2NsYW5nX2Zvcm1hdC12MQ0KPiBQdWxsLVJlcXVlc3Q6
IGh0dHBzOi8vZ2l0aHViLmNvbS9mZnN0YWdpbmcvRkZtcGVnL3B1bGwvNzQNCj4gDQo+ICAuY2xh
bmctZm9ybWF0IHwgODENCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrDQo+ICAxIGZpbGUgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKQ0KPiAgY3Jl
YXRlIG1vZGUgMTAwNjQ0IC5jbGFuZy1mb3JtYXQNCj4gDQoNCkhlcmUncyB0aGUgZmlsZSBhcyBh
dHRhY2htZW50Lg0KDQoNCg==

--_003_BN0P223MB0358758A39DC074411914A68BAB82BN0P223MB0358NAMP_
Content-Type: application/x-zip-compressed; name=".clang-format.zip"
Content-Description: .clang-format.zip
Content-Disposition: attachment; filename=".clang-format.zip"; size=1010;
	creation-date="Mon, 21 Apr 2025 23:55:03 GMT";
	modification-date="Mon, 21 Apr 2025 23:56:27 GMT"
Content-Transfer-Encoding: base64

UEsDBBQAAAAIAK8OlloLWFCeUgMAAHUKAAANAAAALmNsYW5nLWZvcm1hdI1WW2/aMBR+96+wNmk3
qdXa7SnaC1BaoVFAQNW3SSY5gFfHzmynLf9+x3ZIAg60fugl/s7tO985ycXFBekzA9lULuxOQELx
3E0eCPlIe4JvZA7S0k+Uywz/YJYrSXUpwBB/21tb0NMCZF+z9AmsN29OcBGgAyUNpKXlz9AzpvJs
GoPWfWRwA6lg2kdvLHqpVsYM88LuxlyC6clsoHLndZ+c1mw3XS+sLlNbagimzRnD2gYkVqCZzCpA
fNZMmCqrpWZccLnZh4orfmG7KoGhSVkB2QRe0MKHjxN45HY7Zsa6EsjIsYyPMrvdg+PzkyAzlsvS
8xGZNLAHA0u2wqfnzgSeQRPE1S7OBA7BZrMbriF1jelibKLqSgaorL5Q6VM3s9iYNnLMViD2yLgB
e+idsspDzzidKS5RmbWCO5FzvtlaEoltsVXa57NAvUNoMqF0KNlKQJaEALH8ji4qfTSPfRjndqCE
k7GvyV3gpLnpQU1R40awm3zS18Ce+rBWGhwcOqsflMaqnHjAo2ZFgV5P9RRD+/GtqT9J5x7pdKeV
qHlJYiXtoUNZ5uH6Lae3pUydkJM3kQPBzEHVkURqaJj55D3QB4nB3+d1+Io/pBd0choaejTEf970
uigEt15CDQsxAYfIOaRKZ0k3VUElPtk54M6Ty13h04gnFGX3G6CgfjXRtVY5XaHr3OnQKkWFwj++
sOwvSgof0J0qNS00rEGDTOErQR2XuRzznJ8i+rsLcs9NSpGRnFmLvklYkCfybNLrcznDV0pPb8ow
R50k1rgZvh5yQHceGOMwkQo5xrr8fGRjburMG2R70JbYbqZ3/vVgVfDd7C0D2la7vWeH09ukqyH3
7LXZEUvlKD/CXUeU3MCaS+7k0CKn7tpIpqLMICwLssBlVT1pSu+Yy4A5t41nGrCiZ9hDBzjlG6U5
+PV3QeewgdeEfv7z6/LbZxIsON7bXUKvDhEfYsT1ASK+/+FKWxR+DxL3G8LMu68STKWzUw1srDY8
ZWKiTsJCQ5svj6anvlEHqBlDiUckHW8/0zZZ/CvRqPoKQtMo/kh6GXjXdotMO1AMM8Fd51fGVQUZ
yZ7ciLaDTk8j91LLvIxYa2fHsIbjdnYRrH15JugRE8ewy8tL8h9QSwECPwAUAAAACACvDpZaC1hQ
nlIDAAB1CgAADQAkAAAAAAAAACAAAAAAAAAALmNsYW5nLWZvcm1hdAoAIAAAAAAAAQAYAOENMZQY
s9sBAAAAAAAAAAAAAAAAAAAAAFBLBQYAAAAAAQABAF8AAAB9AwAAAAA=

--_003_BN0P223MB0358758A39DC074411914A68BAB82BN0P223MB0358NAMP_
Content-Type: application/x-gzip; name=".clang-format.tar.gz"
Content-Description: .clang-format.tar.gz
Content-Disposition: attachment; filename=".clang-format.tar.gz"; size=967;
	creation-date="Mon, 21 Apr 2025 23:54:35 GMT";
	modification-date="Mon, 21 Apr 2025 23:56:27 GMT"
Content-Transfer-Encoding: base64

H4sICKHaBmgEAC5jbGFuZy1mb3JtYXQudGFyAO1W3Y7SQBTmuk8x0cS/BAIqbtJ4A4iGiCxZMN6Z
zLaHMtrO1Jnpury9Z2ZKW5jCmhj1hnOxZWe+8/+d0/ailPKkuxEyo7rzd6SPcnV1hU8rx8/h4M2w
Mxj2+4PhcDi4wvPB4M2r1x3S7/wDKZSmstP/Y18HSf25uX8l3W43GFMF8TVf6V0KIUH5sPgcBI/J
KGUJz4Br8oQwHuMPqpngRBYpqMDejjYa5HUOfCxp9B20Va/FmXDQieAKokKzOxgpVVpWtULj3lN4
B0hTab3XGqNICqWmWa53c8ZBjXg8EZmxug9OSrq73qy0LCJdSHCqtcxhox0SM5CUxyXAlw1NVRnV
WlKWMp7sXfkZ/6S7MoCpimgO8QJ+ooZ17wfwhentnCptUghmpsp4FOvtHuzL6wAroxkvbD08lRr2
WcGa3uLpOVnAHcgAcZWJM46ds+XyHZMQmca0VWwhqkwmyKxxKqLv7ZXFxjSRc3oL6R7pN2AP/SC0
sNAzRpeCcWRmxeBW5A1LtjrwyLbaCmnjWSHfwTU5IGTK6W0Kcegc+PQ7uij5UR9bN8bsRKSGxjYn
c4GTZqYHOUWUGcH24gdjCfT7GHBTg4FDa/YTXGciCyzgi6R5jlZP9RRd2/GtSn+ynHuk4Z0UaVWX
0GfSHjrlReauHzL6vuCRIXL4IHKSUnWQtUeRCupmPvwd6GeOzn/P6vQe/3BL6PA01PVoiv88aHWV
p0xbCtVV8AtwiLyBSMg4bC+VY4kN9gZw5/H1Lrdh+BOKtPsIkBO7mshGiozcounM8FALQVKBP57R
+BtSCg/IThSS5BI2IIFH8DxAHhcZn7OMnSp03zj5xFRE3PeFRtuBW5An4qzDGzO+xFfKSCaFm6PW
Ila4Jb4eMkBzFujjMJASOce87HzEc6aqyGtkc9DW2G4qd/b1oIWzXe8tBVKXu32kp9fvw7aGfKL3
9Y5YC1PyI9xLryTvYMM4M3RoFKfq2oxHaRGDWxbBCpdVeVKn3jKXDnNuGy8lYEZ3sIdOcMoTIRnY
9dclN5DAfUiefn3be/E0cBoM7/UuJINDxCMf8fIA4d+/MqmtcrsHA/MEN/PmqwRDae1UDZuLhEU0
XYiTMNfQ+suj7qlt1AFqSZHiXpGOt59qqqx+FKhUfgWhqud/xi0NrGm9xUobkA9TzlzrV8aghMz4
iCdp00CrpZl5qcWWRrSxs31YXeNmdB6seXnG6VEljmG9Xi/oXOQiF7nIRf63/AJm0wzaABIAAA==

--_003_BN0P223MB0358758A39DC074411914A68BAB82BN0P223MB0358NAMP_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

--_003_BN0P223MB0358758A39DC074411914A68BAB82BN0P223MB0358NAMP_--

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant