Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Cc: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Subject: [FFmpeg-devel] [PATCH 9/9] avcodec/ffv1: Move ffv1_template.c inclusion to dec/enc templates
Date: Sun, 16 Oct 2022 22:46:55 +0200
Message-ID: <GV1P250MB0737BFBF0D0D054EECE89C428F269@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <GV1P250MB0737E9E7EBF1A7F66965F3958F269@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM>

Both the FFV1 decoder and encoder use a template of their own
to generate code multiple times. They also use a common template,
used by both decoder and encoder templates which is currently
instantiated in ffv1.h (and therefore also in ffv1.c, which
doesn't need it at all).

All these templates have the prerequisite that two macros
are defined, namely RENAME() and TYPE. The codec-specific
templates call the functions generated via the common template
via the RENAME() macro and therefore the macros used for
the common template must coincide with the macros used for
the codec-specific templates. But then it is better to not
instantiate the common template in ffv1.h, but in the codec
specific templates.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/ffv1.h             | 12 ------------
 libavcodec/ffv1dec_template.c |  2 ++
 libavcodec/ffv1enc_template.c |  2 ++
 3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h
index 3532815501..005f308784 100644
--- a/libavcodec/ffv1.h
+++ b/libavcodec/ffv1.h
@@ -182,16 +182,4 @@ static inline void update_vlc_state(VlcState *const state, const int v)
     state->count = count;
 }
 
-#define TYPE int16_t
-#define RENAME(name) name
-#include "ffv1_template.c"
-#undef TYPE
-#undef RENAME
-
-#define TYPE int32_t
-#define RENAME(name) name ## 32
-#include "ffv1_template.c"
-#undef TYPE
-#undef RENAME
-
 #endif /* AVCODEC_FFV1_H */
diff --git a/libavcodec/ffv1dec_template.c b/libavcodec/ffv1dec_template.c
index 9b1d65e825..590ccac022 100644
--- a/libavcodec/ffv1dec_template.c
+++ b/libavcodec/ffv1dec_template.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "ffv1_template.c"
+
 static av_always_inline int RENAME(decode_line)(FFV1Context *s, int w,
                                                  TYPE *sample[2],
                                                  int plane_index, int bits)
diff --git a/libavcodec/ffv1enc_template.c b/libavcodec/ffv1enc_template.c
index 8a4a387923..8953dbe07c 100644
--- a/libavcodec/ffv1enc_template.c
+++ b/libavcodec/ffv1enc_template.c
@@ -20,6 +20,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "ffv1_template.c"
+
 static av_always_inline int RENAME(encode_line)(FFV1Context *s, int w,
                                                 TYPE *sample[3],
                                                 int plane_index, int bits)
-- 
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".

  parent reply	other threads:[~2022-10-16 20:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-16 20:43 [FFmpeg-devel] [PATCH 1/9] avcodec/(ffv1|h264|png|snow)dec: Remove comment out DRAW_HORIZ_BAND cap Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 2/9] avcodec/vc1_block: Remove dead calls to ff_mpeg_draw_horiz_band() Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 3/9] avcodec/mpegvideo: Don't check for draw_horiz_band Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 4/9] avcodec/mpegvideo: Reindent after the last commit Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 5/9] avcodec/h261: Use ptrdiff_t for stride Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 6/9] avcodec/mpegvideo: Move VIDEO_FORMAT_* defines to mpeg12enc.c Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 7/9] avcodec/mpegutils: Return early in ff_draw_horiz_band() Andreas Rheinhardt
2022-10-16 20:46 ` [FFmpeg-devel] [PATCH 8/9] avcodec/mpegutils: Reindent after the previous commit Andreas Rheinhardt
2022-10-16 20:46 ` Andreas Rheinhardt [this message]
2022-10-19 12:13 ` [FFmpeg-devel] [PATCH 1/9] avcodec/(ffv1|h264|png|snow)dec: Remove comment out DRAW_HORIZ_BAND cap Andreas Rheinhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=GV1P250MB0737BFBF0D0D054EECE89C428F269@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM \
    --to=andreas.rheinhardt@outlook.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git