diff --git a/lib/accel.h b/lib/accel.h
index 08f42cf..dc3f9f7 100644
--- a/lib/accel.h
+++ b/lib/accel.h
@@ -28,17 +28,17 @@
 namespace DRing {
 class MediaFrame;
 class VideoFrame;
-}
+} // namespace DRing
 
 namespace jami {
 using MediaFrame = DRing::MediaFrame;
 using VideoFrame = DRing::VideoFrame;
-}
+} // namespace jami
 
 extern "C" {
 #if LIBAVUTIL_VERSION_MAJOR < 56
 AVFrameSideData*
-av_frame_new_side_data_from_buf (AVFrame* frame, enum AVFrameSideDataType type, AVBufferRef* buf)
+av_frame_new_side_data_from_buf(AVFrame* frame, enum AVFrameSideDataType type, AVBufferRef* buf)
 {
     auto side_data = av_frame_new_side_data(frame, type, 0);
     av_buffer_unref(&side_data->buf);
@@ -51,13 +51,13 @@
 }
 
 AVFrame*
-transferToMainMemory (AVFrame* framePtr, AVPixelFormat desiredFormat)
+transferToMainMemory(AVFrame* framePtr, AVPixelFormat desiredFormat)
 {
     AVFrame* out;
 
     auto desc = av_pix_fmt_desc_get(static_cast<AVPixelFormat>(framePtr->format));
 
-    if (desc && not (desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
+    if (desc && not(desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
         out = framePtr;
         return out;
     }
@@ -70,7 +70,9 @@
 
     out->pts = framePtr->pts;
     if (AVFrameSideData* side_data = av_frame_get_side_data(framePtr, AV_FRAME_DATA_DISPLAYMATRIX)) {
-        av_frame_new_side_data_from_buf(out, AV_FRAME_DATA_DISPLAYMATRIX, av_buffer_ref(side_data->buf));
+        av_frame_new_side_data_from_buf(out,
+                                        AV_FRAME_DATA_DISPLAYMATRIX,
+                                        av_buffer_ref(side_data->buf));
     }
     return out;
 }
\ No newline at end of file
