[vlc-devel] [PATCH 2/3] modules: use vlc_align helper
Thomas Guillem
thomas at gllm.fr
Thu Feb 13 10:01:02 CET 2020
Hello, I think you can do one commit per module (or merge the VT commit into this commit).
On Wed, Feb 12, 2020, at 14:50, Marvin Scholz wrote:
> ---
> modules/audio_filter/converter/tospdif.c | 5 ++---
> modules/codec/avcodec/directx_va.c | 6 +++---
> modules/codec/qsv.c | 9 +++------
> modules/hw/nvdec/nvdec.c | 5 ++---
> modules/video_output/kms.c | 19 ++++++++-----------
> modules/video_output/opengl/interop_sw.c | 4 +---
> 6 files changed, 19 insertions(+), 29 deletions(-)
>
> diff --git a/modules/audio_filter/converter/tospdif.c
> b/modules/audio_filter/converter/tospdif.c
> index 239deae26f..1029e911a8 100644
> --- a/modules/audio_filter/converter/tospdif.c
> +++ b/modules/audio_filter/converter/tospdif.c
> @@ -519,9 +519,8 @@ static int write_buffer_dtshd( filter_t *p_filter,
> block_t *p_in_buf )
>
> /* Align so that (length_code & 0xf) == 0x8. This is reportedly
> needed
> * with some receivers, but the exact requirement is unconfirmed.
> */
> -#define ALIGN(x, y) (((x) + ((y) - 1)) & ~((y) - 1))
> - size_t i_align = ALIGN( i_in_size + 0x8, 0x10 ) - 0x8;
> -#undef ALIGN
> + size_t i_align = vlc_align( i_in_size + 0x8, 0x10 ) - 0x8;
> +
> if( i_align > i_in_size && i_align - i_in_size
> <= p_sys->p_out_buf->i_buffer - p_sys->i_out_offset )
> write_padding( p_filter, i_align - i_in_size );
> diff --git a/modules/codec/avcodec/directx_va.c
> b/modules/codec/avcodec/directx_va.c
> index d7a1e7edea..ce4660c9cf 100644
> --- a/modules/codec/avcodec/directx_va.c
> +++ b/modules/codec/avcodec/directx_va.c
> @@ -326,9 +326,9 @@ const directx_va_mode_t *directx_va_Setup(vlc_va_t
> *va, const directx_sys_t *dx_
> return NULL;
>
> assert((surface_alignment & (surface_alignment - 1)) == 0); /*
> power of 2 */
> -#define ALIGN(x, y) (((x) + ((y) - 1)) & ~((y) - 1))
> - int surface_width = ALIGN(avctx->coded_width, surface_alignment);
> - int surface_height = ALIGN(avctx->coded_height, surface_alignment);
> +
> + int surface_width = vlc_align(avctx->coded_width,
> surface_alignment);
> + int surface_height = vlc_align(avctx->coded_height,
> surface_alignment);
>
> if (avctx->coded_width != surface_width || avctx->coded_height !=
> surface_height)
> msg_Warn( va, "surface dimensions (%dx%d) differ from avcodec
> dimensions (%dx%d)",
> diff --git a/modules/codec/qsv.c b/modules/codec/qsv.c
> index b9e69bb322..8571b499dc 100644
> --- a/modules/codec/qsv.c
> +++ b/modules/codec/qsv.c
> @@ -49,9 +49,6 @@
> /* The SDK doesn't have a default bitrate, so here's one. */
> #define QSV_BITRATE_DEFAULT (842)
>
> -/* Makes x a multiple of 'align'. 'align' must be a power of 2 */
> -#define QSV_ALIGN(align, x) (((x)+(align)-1)&~((align)-1))
> -
>
> /*****************************************************************************
> * Modules descriptor
>
> *****************************************************************************/
> @@ -459,8 +456,8 @@ static int Open(vlc_object_t *this)
> sys->params.mfx.FrameInfo.FrameRateExtD =
> enc->fmt_in.video.i_frame_rate_base;
> sys->params.mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
> sys->params.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
> - sys->params.mfx.FrameInfo.Width = QSV_ALIGN(16,
> enc->fmt_in.video.i_width);
> - sys->params.mfx.FrameInfo.Height = QSV_ALIGN(32,
> enc->fmt_in.video.i_height);
> + sys->params.mfx.FrameInfo.Width =
> vlc_align(enc->fmt_in.video.i_width, 16);
> + sys->params.mfx.FrameInfo.Height =
> vlc_align(enc->fmt_in.video.i_height, 32);
> sys->params.mfx.FrameInfo.CropW =
> enc->fmt_in.video.i_visible_width;
> sys->params.mfx.FrameInfo.CropH =
> enc->fmt_in.video.i_visible_height;
> sys->params.mfx.FrameInfo.PicStruct =
> MFX_PICSTRUCT_PROGRESSIVE;
> @@ -762,7 +759,7 @@ static int submit_frame(encoder_t *enc, picture_t
> *pic, QSVFrame **new_frame)
> else
> qf->surface.Info.PicStruct = MFX_PICSTRUCT_FIELD_BFF;
>
> - //qf->surface.Data.Pitch = QSV_ALIGN(16, qf->surface.Info.Width);
> + //qf->surface.Data.Pitch = vlc_align(qf->surface.Info.Width, 16);
>
> qf->surface.Data.PitchLow = qf->pic->p[0].i_pitch;
> qf->surface.Data.Y = qf->pic->p[0].p_pixels;
> diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c
> index 19b45e2529..d416e7f721 100644
> --- a/modules/hw/nvdec/nvdec.c
> +++ b/modules/hw/nvdec/nvdec.c
> @@ -794,7 +794,6 @@ static int OpenDecoder(vlc_object_t *p_this)
> int i_sar_num, i_sar_den = 0;
>
> // try different output
> -#define ALIGN(v, mod) ((v + (mod - 1)) & ~(mod - 1))
> if (p_sys->b_is_hxxx)
> {
> uint8_t i_chroma_idc, i_depth_chroma;
> @@ -831,7 +830,7 @@ static int OpenDecoder(vlc_object_t *p_this)
> }
> }
>
> - p_dec->fmt_out.video.i_width = ALIGN(i_w, OUTPUT_WIDTH_ALIGN);
> + p_dec->fmt_out.video.i_width = vlc_align(i_w, OUTPUT_WIDTH_ALIGN);
> p_dec->fmt_out.video.i_height = i_h;
>
> if (!p_dec->fmt_in.video.i_visible_width ||
> !p_dec->fmt_in.video.i_visible_height)
> @@ -848,7 +847,7 @@ static int OpenDecoder(vlc_object_t *p_this)
> }
> else
> {
> - p_dec->fmt_out.video.i_width =
> ALIGN(p_dec->fmt_in.video.i_width, OUTPUT_WIDTH_ALIGN);
> + p_dec->fmt_out.video.i_width =
> vlc_align(p_dec->fmt_in.video.i_width, OUTPUT_WIDTH_ALIGN);
> p_dec->fmt_out.video.i_height = p_dec->fmt_in.video.i_height;
> cudaChroma = cudaVideoChromaFormat_420;
> i_depth_luma = 8;
> diff --git a/modules/video_output/kms.c b/modules/video_output/kms.c
> index 34ef0b0df5..be4a666978 100644
> --- a/modules/video_output/kms.c
> +++ b/modules/video_output/kms.c
> @@ -115,9 +115,6 @@ static void DestroyFB(vout_display_sys_t const
> *sys, uint32_t const buf)
> drmIoctl(sys->drm_fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_req);
> }
>
> -
> -#define ALIGN(v, a) (((v) + (a)-1) & ~((a)-1))
> -
> static deviceRval CreateFB(vout_display_t *vd, const int buf)
> {
> vout_display_sys_t *sys = vd->sys;
> @@ -143,23 +140,23 @@ static deviceRval CreateFB(vout_display_t *vd,
> const int buf)
> case DRM_FORMAT_P016:
> #endif
> #if defined(DRM_FORMAT_P010) || defined(DRM_FORMAT_P012) ||
> defined(DRM_FORMAT_P016)
> - sys->stride = ALIGN(sys->width*2, tile_width);
> - sys->offsets[1] = sys->stride*ALIGN(sys->height, tile_height);
> - create_req.height = 2*ALIGN(sys->height, tile_height);
> + sys->stride = vlc_align(sys->width*2, tile_width);
> + sys->offsets[1] = sys->stride*vlc_align(sys->height,
> tile_height);
> + create_req.height = 2*vlc_align(sys->height, tile_height);
> break;
> #endif
> case DRM_FORMAT_NV12:
> - sys->stride = ALIGN(sys->width, tile_width);
> - sys->offsets[1] = sys->stride*ALIGN(sys->height, tile_height);
> - create_req.height = 2*ALIGN(sys->height, tile_height);
> + sys->stride = vlc_align(sys->width, tile_width);
> + sys->offsets[1] = sys->stride*vlc_align(sys->height,
> tile_height);
> + create_req.height = 2*vlc_align(sys->height, tile_height);
> break;
> default:
> - create_req.height = ALIGN(sys->height, tile_height);
> + create_req.height = vlc_align(sys->height, tile_height);
>
> /*
> * width *4 so there's enough space for anything.
> */
> - sys->stride = ALIGN(sys->width*4, tile_width);
> + sys->stride = vlc_align(sys->width*4, tile_width);
> break;
> }
>
> diff --git a/modules/video_output/opengl/interop_sw.c
> b/modules/video_output/opengl/interop_sw.c
> index 6e4376c7b6..ca38aa38c9 100644
> --- a/modules/video_output/opengl/interop_sw.c
> +++ b/modules/video_output/opengl/interop_sw.c
> @@ -230,9 +230,7 @@ upload_plane(const struct vlc_gl_interop *interop,
> unsigned tex_idx,
> {
> if (pitch != visible_pitch)
> {
> -#define ALIGN(x, y) (((x) + ((y) - 1)) & ~((y) - 1))
> - visible_pitch = ALIGN(visible_pitch, 4);
> -#undef ALIGN
> + visible_pitch = vlc_align(visible_pitch, 4);
> size_t buf_size = visible_pitch * height;
> const uint8_t *source = pixels;
> uint8_t *destination;
> --
> 2.24.1 (Apple Git-126)
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list