This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit b6fe3a94ba5cf8d672117870bf4cb900affb9815
Author:     Niklas Haas <[email protected]>
AuthorDate: Fri Oct 2 20:41:55 2026 +0200
Commit:     James Almer <[email protected]>
CommitDate: Fri Oct 23 20:33:53 2026 +0000

    avformat/jpegmpf: split common definitions off from jpegmpfenc
    
    Also replaces one instance of magic numbers by an enum.
    
    Signed-off-by: Niklas Haas <[email protected]>
---
 libavformat/jpegmpf.h    | 62 ++++++++++++++++++++++++++++++++++++++++++++++++
 libavformat/jpegmpfenc.c | 33 ++++----------------------
 2 files changed, 66 insertions(+), 29 deletions(-)

diff --git a/libavformat/jpegmpf.h b/libavformat/jpegmpf.h
new file mode 100644
index 0000000000..69a6ab5a18
--- /dev/null
+++ b/libavformat/jpegmpf.h
@@ -0,0 +1,62 @@
+/*
+ * JPEG Multi-Picture Format common definitions
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * Shared definitions for JPEG Multi-Picture Format (CIPA DC-007).
+ */
+
+#ifndef AVFORMAT_JPEGMPF_H
+#define AVFORMAT_JPEGMPF_H
+
+/* Individual Image Attribute bits, from CIPA DC-007 Figure 8 */
+enum MPFAttribute {
+    MPF_DEPENDENT_PARENT = 0x80000000,
+    MPF_DEPENDENT_CHILD  = 0x40000000,
+    MPF_FORMAT_JPEG      = 0x00000000,
+};
+
+/* MP Type Codes, from CIPA DC-007 Table 4 */
+enum MPFType {
+    MPF_TYPE_UNDEFINED = 0x000000,
+    MPF_TYPE_PRIMARY   = 0x030000, /* Baseline MP Primary Image */
+    MPF_TYPE_GAIN_MAP  = 0x050000,
+};
+
+/* MP Index IFD tags, from CIPA DC-007 Table 3 */
+enum MPFTag {
+    MPF_TAG_MPFVersion      = 0xB000,
+    MPF_TAG_NumberOfImages  = 0xB001,
+    MPF_TAG_MPEntry         = 0xB002,
+};
+
+/* APP2 extension segments */
+typedef enum MPFExt {
+    MPF_EXT_XMP,        /* GContainer directory, First Individual Image only */
+    MPF_EXT_INDEX,      /* MP Index IFD, First Individual Image only */
+    MPF_EXT_ISO21496,   /* ISO 21496-1 version fields (in the base image) */
+    MPF_EXT_NB,
+} MPFExt;
+
+/* Namespace URIs of the GContainer XMP extension */
+#define XMP_CONTAINER_NS "http://ns.google.com/photos/1.0/container/";
+#define XMP_ITEM_NS      "http://ns.google.com/photos/1.0/container/item/";
+
+#endif /* AVFORMAT_JPEGMPF_H */
diff --git a/libavformat/jpegmpfenc.c b/libavformat/jpegmpfenc.c
index 7cceb331a7..5f9e8145dd 100644
--- a/libavformat/jpegmpfenc.c
+++ b/libavformat/jpegmpfenc.c
@@ -40,26 +40,9 @@
 
 #include "avformat.h"
 #include "avio_internal.h"
+#include "jpegmpf.h"
 #include "mux.h"
 
-/* Namespace URIs of the GContainer XMP extension */
-#define XMP_CONTAINER_NS "http://ns.google.com/photos/1.0/container/";
-#define XMP_ITEM_NS      "http://ns.google.com/photos/1.0/container/item/";
-
-/* Individual Image Attribute bits, from CIPA DC-007 Figure 8 */
-enum MPFAttribute {
-    MPF_DEPENDENT_PARENT = 0x80000000,
-    MPF_DEPENDENT_CHILD  = 0x40000000,
-    MPF_FORMAT_JPEG      = 0x00000000,
-};
-
-/* MP Index IFD tags, from CIPA DC-007 Table 3 */
-enum MPFTag {
-    MPF_TAG_MPFVersion      = 0xB000,
-    MPF_TAG_NumberOfImages  = 0xB001,
-    MPF_TAG_MPEntry         = 0xB002,
-};
-
 typedef enum MPFRole {
     MPF_ROLE_UNKNOWN = 0,
     MPF_ROLE_PRIMARY,
@@ -67,20 +50,12 @@ typedef enum MPFRole {
     MPF_ROLE_NB,
 } MPFRole;
 
-/* APP2 extension segments */
-typedef enum MPFExt {
-    MPF_EXT_XMP,        /* GContainer directory, First Individual Image only */
-    MPF_EXT_INDEX,      /* MP Index IFD, First Individual Image only */
-    MPF_EXT_ISO21496,   /* ISO 21496-1 version fields (in the base image) */
-    MPF_EXT_NB,
-} MPFExt;
-
 static const struct {
     const char *name;
-    uint32_t    type;  /* from CIPA DC-007 Table 4 */
+    enum MPFType type;
 } mpf_roles[MPF_ROLE_NB] = {
-    [MPF_ROLE_PRIMARY]  = { "primary image",    0x030000 },
-    [MPF_ROLE_GAIN_MAP] = { "gain map image",   0x050000 },
+    [MPF_ROLE_PRIMARY]  = { "primary image",    MPF_TYPE_PRIMARY  },
+    [MPF_ROLE_GAIN_MAP] = { "gain map image",   MPF_TYPE_GAIN_MAP },
 };
 
 typedef struct MPFImage MPFImage;

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to