From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 25ECD4C444 for ; Sun, 28 Jul 2024 07:35:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A31B268D882; Sun, 28 Jul 2024 10:35:19 +0300 (EEST) Received: from mail-yw1-f226.google.com (mail-yw1-f226.google.com [209.85.128.226]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BB23168D76C for ; Sun, 28 Jul 2024 10:35:08 +0300 (EEST) Received: by mail-yw1-f226.google.com with SMTP id 00721157ae682-65cd720cee2so10155367b3.1 for ; Sun, 28 Jul 2024 00:35:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1722152107; x=1722756907; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yGNnH1Z/JnRHGkFNph6dhIsUzzX/OsE4lLA+1qrJ0jM=; b=U5k6iQQRo1Q5uJCtZ1vMnP0zjWZcdE2lbLFcrtBJMjjmJyay9r5NdI4PaJSTFCZQG1 sICfAwjNtEwuow+y2suvgdAhKTq58HAp2APX9gxml39WJd/u1VI82RPZwQViwydV2OR6 +R5G5wA6Tx6djWpLApoeSQZBx8xkY6w2dQWYGBexDB1s6FIABOH5LoQcOLNQASrolyjb eYgXfYK+vvyMTlIi1wcbiVQztFIm1xhzart0KuilQTkasSseuSuMe4LBvlDjQtMK7Kbk onr8nfu1hpBPfgay1A78POhadR/6a5tTg7hYB4dXQD3XxNjDtFwN1rSSOG5UxOhhJ1PR /JoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722152107; x=1722756907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yGNnH1Z/JnRHGkFNph6dhIsUzzX/OsE4lLA+1qrJ0jM=; b=bhMdfTo9L2st5Rdmpdx/hkaSDU3CzGQu5fcevyOGrvuuIWFl/cMOJcRLHN911xj3wn QvwfIz15nuNzO3pY2jmOoWf4tttKBlRuphRFZ5GgQamkMbJYdP8POpM56tlvmuhgcIYK VZZH0aFOtQ+faVZl7OmwTfjgjggm5A/Ucjrw1T4fmpDHbkTr1zirh0hR6XvT9DdT9p/l vhrTsIFUSx+Gu9fP8Z+URMpQM5zDBQZvIgB35QtvmiZjDVt3gtxGv73oRegh5IAS2Ja4 egbpycUPFWT3n505HzgzhxJv18gVTH3Pd/0SHf7h2JpzbK+N15xvGt5NzBb2EOhjzoVX nObA== X-Gm-Message-State: AOJu0Yxl2H33ark0fzTBX7ucpcPQ4oliPWMK5unToHJx+in1JUYXP/Hq VdPQeuwWvJmjSqwlH9mdabJOj/PL/0gY7K4vpNHlIiU5/CzAOfcKXKKrdA9dxHSnrMTZBWoZir+ ZvD7M6+siIHghhUMf9+CfmaD9JMkoHWkXB7T6IOfD X-Google-Smtp-Source: AGHT+IHb309V6jW+DGFyLPVK920ag4CP2ugI82nwjqjTMg3OmewUtHcUeJcP9PDs+pQASw8c+Fcwge9muoBG X-Received: by 2002:a81:6905:0:b0:65f:93c1:fee9 with SMTP id 00721157ae682-67a05c8b8f9mr49379497b3.9.1722152107497; Sun, 28 Jul 2024 00:35:07 -0700 (PDT) Received: from wsx-cc1-001.. (c-76-136-218-80.hsd1.il.comcast.net. [76.136.218.80]) by smtp-relay.gmail.com with ESMTPS id 00721157ae682-6756ad425desm5735937b3.61.2024.07.28.00.35.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 28 Jul 2024 00:35:07 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Sun, 28 Jul 2024 02:34:41 -0500 Message-Id: <20240728073445.725161-4-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240728073445.725161-1-marth64@proxyid.net> References: <20240728073445.725161-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/7] avformat/dvdvideodec: Combine libdvdread and libdvdnav log callbacks X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Marth64 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The methods are effectively the same but reference different public enums, so roll them up into a macro. Signed-off-by: Marth64 --- libavformat/dvdvideodec.c | 64 +++++++++++++++------------------------ 1 file changed, 24 insertions(+), 40 deletions(-) diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c index e8301b1173..f6373d8ade 100644 --- a/libavformat/dvdvideodec.c +++ b/libavformat/dvdvideodec.c @@ -173,40 +173,28 @@ typedef struct DVDVideoDemuxContext { int subdemux_reset; /* signal that subdemuxer should be reset */ } DVDVideoDemuxContext; -static void dvdvideo_libdvdread_log(void *opaque, dvd_logger_level_t level, - const char *msg, va_list msg_va) -{ - AVFormatContext *s = opaque; - char msg_buf[DVDVIDEO_LIBDVDX_LOG_BUFFER_SIZE]; - int lavu_level = AV_LOG_DEBUG; - - vsnprintf(msg_buf, sizeof(msg_buf), msg, msg_va); - - if (level == DVD_LOGGER_LEVEL_ERROR) - lavu_level = AV_LOG_ERROR; - else if (level == DVD_LOGGER_LEVEL_WARN) - lavu_level = AV_LOG_WARNING; - - av_log(s, lavu_level, "libdvdread: %s\n", msg_buf); -} - -static void dvdvideo_libdvdnav_log(void *opaque, dvdnav_logger_level_t level, - const char *msg, va_list msg_va) -{ - AVFormatContext *s = opaque; - char msg_buf[DVDVIDEO_LIBDVDX_LOG_BUFFER_SIZE]; - int lavu_level = AV_LOG_DEBUG; - - vsnprintf(msg_buf, sizeof(msg_buf), msg, msg_va); - - if (level == DVDNAV_LOGGER_LEVEL_ERROR) - lavu_level = AV_LOG_ERROR; - /* some discs have invalid language codes set for menus, which throws noisy warnings */ - else if (level == DVDNAV_LOGGER_LEVEL_WARN && !av_strstart(msg, "Language", NULL)) - lavu_level = AV_LOG_WARNING; - - av_log(s, lavu_level, "libdvdnav: %s\n", msg_buf); -} +#define LIBDVDX_LOG_CALLBACK(X, CB_TYPE, LEVEL_TYPE, LEVEL_PREFIX) \ + static void dvdvideo_##X##_log(void *o, LEVEL_TYPE level, const char *msg, va_list msg_va) \ + { \ + AVFormatContext *s = o; \ + char msg_buf[DVDVIDEO_LIBDVDX_LOG_BUFFER_SIZE]; \ + int lavu_level = AV_LOG_DEBUG; \ + \ + vsnprintf(msg_buf, sizeof(msg_buf), msg, msg_va); \ + \ + if (level == LEVEL_PREFIX##_ERROR) \ + lavu_level = AV_LOG_ERROR; \ + else if (level == LEVEL_PREFIX##_WARN && \ + !av_strstart(msg, "Language", NULL)) /* muffle menus with invalid language */ \ + lavu_level = AV_LOG_WARNING; \ + \ + av_log(s, lavu_level, #X": %s\n", msg_buf); \ + } \ + \ + static const CB_TYPE dvdvideo_##X##_log_cb = (CB_TYPE) { .pf_log = dvdvideo_##X##_log }; \ + +LIBDVDX_LOG_CALLBACK(libdvdread, dvd_logger_cb, dvd_logger_level_t, DVD_LOGGER_LEVEL) +LIBDVDX_LOG_CALLBACK(libdvdnav, dvdnav_logger_cb, dvdnav_logger_level_t, DVDNAV_LOGGER_LEVEL) static void dvdvideo_ifo_close(AVFormatContext *s) { @@ -226,11 +214,9 @@ static int dvdvideo_ifo_open(AVFormatContext *s) { DVDVideoDemuxContext *c = s->priv_data; - dvd_logger_cb dvdread_log_cb; title_info_t title_info; - dvdread_log_cb = (dvd_logger_cb) { .pf_log = dvdvideo_libdvdread_log }; - c->dvdread = DVDOpen2(s, &dvdread_log_cb, s->url); + c->dvdread = DVDOpen2(s, &dvdvideo_libdvdread_log_cb, s->url); if (!c->dvdread) { av_log(s, AV_LOG_ERROR, "Unable to open the DVD-Video structure\n"); @@ -516,15 +502,13 @@ static int dvdvideo_play_open(AVFormatContext *s, DVDVideoPlaybackState *state) { DVDVideoDemuxContext *c = s->priv_data; - dvdnav_logger_cb dvdnav_log_cb; dvdnav_status_t dvdnav_open_status; int32_t disc_region_mask; int32_t player_region_mask; int cur_title, cur_pgcn, cur_pgn; pgc_t *pgc; - dvdnav_log_cb = (dvdnav_logger_cb) { .pf_log = dvdvideo_libdvdnav_log }; - dvdnav_open_status = dvdnav_open2(&state->dvdnav, s, &dvdnav_log_cb, s->url); + dvdnav_open_status = dvdnav_open2(&state->dvdnav, s, &dvdvideo_libdvdnav_log_cb, s->url); if (!state->dvdnav || dvdnav_open_status != DVDNAV_STATUS_OK || -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".