[SCM] exiv2 packaging branch, master, updated. debian/0.25-3.1-3734-gdcbc29a
Maximiliano Curia
maxy at moszumanska.debian.org
Thu Jul 13 17:43:21 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/exiv2.git;a=commitdiff;h=9b131f3
The following commit has been merged in the master branch:
commit 9b131f3c612ece1b1bca79fd2045006b7be8ef8b
Author: Andreas Huggel <ahuggel at gmx.net>
Date: Mon Aug 20 15:33:32 2012 +0000
Merge branch 'gsoc2012'
---
src/CMakeLists.txt | 15 +-
src/Makefile | 6 +-
src/asfvideo.cpp | 746 ++++++++++++++
src/asfvideo.hpp | 185 ++++
src/canonmn.cpp | 14 +-
src/image.cpp | 8 +
src/matroskavideo.cpp | 731 ++++++++++++++
src/{xmpsidecar.hpp => matroskavideo.hpp} | 95 +-
src/properties.cpp | 391 +++++++-
src/quicktimevideo.cpp | 1451 +++++++++++++++++++++++++++
src/quicktimevideo.hpp | 229 +++++
src/riffvideo.cpp | 1196 ++++++++++++++++++++++
src/riffvideo.hpp | 215 ++++
src/tags_int.hpp | 2 +-
test/Makefile | 3 +-
test/data/video/video-asf-unicode.asf | Bin 0 -> 599146 bytes
test/data/video/video-asf-with-chapters.wmv | Bin 0 -> 16382993 bytes
test/data/video/video-asf.wmv | Bin 0 -> 11251586 bytes
test/data/video/video-avi.avi | Bin 0 -> 990292 bytes
test/data/video/video-matroska.mkv | Bin 0 -> 11888787 bytes
test/data/video/video-quicktime.mp4 | Bin 0 -> 5030060 bytes
test/data/video/video-test.out | Bin 0 -> 18043 bytes
test/video-test.sh | 62 ++
xmpsdk/CMakeLists.txt | 6 +
24 files changed, 5313 insertions(+), 42 deletions(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 6b1bf02..51908a4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -32,7 +32,8 @@ SET( LIBEXIV2_PRIVATE_HDR canonmn_int.hpp
)
# Add standalone C++ header files to this list
-SET( LIBEXIV2_HDR basicio.hpp
+SET( LIBEXIV2_HDR asfvideo.hpp
+ basicio.hpp
bmpimage.hpp
convert.hpp
cr2image.hpp
@@ -49,6 +50,7 @@ SET( LIBEXIV2_HDR basicio.hpp
iptc.hpp
jp2image.hpp
jpgimage.hpp
+ matroskavideo.hpp
metadatum.hpp
mrwimage.hpp
orfimage.hpp
@@ -56,7 +58,9 @@ SET( LIBEXIV2_HDR basicio.hpp
preview.hpp
properties.hpp
psdimage.hpp
+ quicktimevideo.hpp
rafimage.hpp
+ riffvideo.hpp
rw2image.hpp
tags.hpp
tgaimage.hpp
@@ -69,7 +73,8 @@ SET( LIBEXIV2_HDR basicio.hpp
)
# Add library C++ source files to this list
-SET( LIBEXIV2_SRC basicio.cpp
+SET( LIBEXIV2_SRC asfvideo.cpp
+ basicio.cpp
bmpimage.cpp
canonmn.cpp
convert.cpp
@@ -89,6 +94,7 @@ SET( LIBEXIV2_SRC basicio.cpp
jp2image.cpp
jpgimage.cpp
makernote.cpp
+ matroskavideo.cpp
metadatum.cpp
minoltamn.cpp
mrwimage.cpp
@@ -101,7 +107,9 @@ SET( LIBEXIV2_SRC basicio.cpp
preview.cpp
properties.cpp
psdimage.cpp
+ quicktimevideo.cpp
rafimage.cpp
+ riffvideo.cpp
rw2image.cpp
samsungmn.cpp
sigmamn.cpp
@@ -182,13 +190,16 @@ msvc_runtime_configure(${EXIV2_ENABLE_SHARED})
# ******************************************************************************
# exiv2lib library
+
ADD_LIBRARY( exiv2lib ${STATIC_FLAG} ${LIBEXIV2_SRC} ${LIBEXIV2_HDR} )
+
SET_TARGET_PROPERTIES( exiv2lib PROPERTIES
VERSION ${GENERIC_LIB_VERSION}
SOVERSION ${GENERIC_LIB_SOVERSION}
DEFINE_SYMBOL EXV_BUILDING_LIB
OUTPUT_NAME exiv2
)
+
if ( MSVC )
source_group("Header Files" FILES ${LIBEXIV2_HDR} )
endif()
diff --git a/src/Makefile b/src/Makefile
index 78b736d..277770b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -65,7 +65,8 @@ CCHDR = exiv2.hpp \
version.hpp
# Add library C++ source files to this list
-CCSRC = basicio.cpp \
+CCSRC = asfvideo.cpp \
+ basicio.cpp \
bmpimage.cpp \
canonmn.cpp \
convert.cpp \
@@ -84,6 +85,7 @@ CCSRC = basicio.cpp \
jp2image.cpp \
jpgimage.cpp \
makernote.cpp \
+ matroskavideo.cpp \
metadatum.cpp \
minoltamn.cpp \
mrwimage.cpp \
@@ -99,7 +101,9 @@ endif
CCSRC += preview.cpp \
properties.cpp \
psdimage.cpp \
+ quicktimevideo.cpp \
rafimage.cpp \
+ riffvideo.cpp \
rw2image.cpp \
samsungmn.cpp \
sigmamn.cpp \
diff --git a/src/asfvideo.cpp b/src/asfvideo.cpp
new file mode 100644
index 0000000..7e160c6
--- /dev/null
+++ b/src/asfvideo.cpp
@@ -0,0 +1,746 @@
+// ***************************************************************** -*- C++ -*-
+/*
+ * Copyright (C) 2004-2012 Andreas Huggel <ahuggel at gmx.net>
+ *
+ * This program is part of the Exiv2 distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301 USA.
+ */
+/*
+ File: asfvideo.cpp
+ Version: $Rev$
+ Author(s): Abhinav Badola for GSoC 2012 (AB) <mail.abu.to at gmail.com>
+ History: 08-Aug-12, AB: created
+ Credits: See header file
+ */
+// *****************************************************************************
+#include "rcsid_int.hpp"
+EXIV2_RCSID("@(#) $Id$")
+
+// *****************************************************************************
+// included header files
+#include "asfvideo.hpp"
+#include "futils.hpp"
+#include "basicio.hpp"
+#include "tags.hpp"
+#include "tags_int.hpp"
+#include "types.hpp"
+#include "riffvideo.hpp"
+#include "convert.hpp"
+
+// + standard includes
+#include <cmath>
+#include <cstring>
+#include <ctype.h>
+
+// *****************************************************************************
+// class member definitions
+namespace Exiv2 {
+ namespace Internal {
+
+ /*!
+ Tag Look-up list for ASF Type Video Files
+ Associates the GUID of a Tag with its Tag Name(i.e. Human Readable Form)
+ Tags have been diferentiated into Various Categories.
+ The categories have been listed above the Tag Groups
+
+ */
+ extern const TagVocabulary GUIDReferenceTags[] = {
+ /// Top-level ASF object GUIDS
+ { "75B22630-668E-11CF-A6D9-00AA0062CE6C", "Header" },
+ { "75B22636-668E-11CF-A6D9-00AA0062CE6C", "Data" },
+ { "33000890-E5B1-11CF-89F4-00A0C90349CB", "Simple_Index" },
+ { "D6E229D3-35DA-11D1-9034-00A0C90349BE", "Index" },
+ { "FEB103F8-12AD-4C64-840F-2A1D2F7AD48C", "Media_Index" },
+ { "3CB73FD0-0C4A-4803-953D-EDF7B6228F0C", "Timecode_Index" },
+
+ /// Header Object GUIDs
+ { "8CABDCA1-A947-11CF-8EE4-00C00C205365", "File_Properties" },
+ { "B7DC0791-A9B7-11CF-8EE6-00C00C205365", "Stream_Properties" },
+ { "5FBF03B5-A92E-11CF-8EE3-00C00C205365", "Header_Extension" },
+ { "86D15240-311D-11D0-A3A4-00A0C90348F6", "Codec_List" },
+ { "1EFB1A30-0B62-11D0-A39B-00A0C90348F6", "Script_Command" },
+ { "F487CD01-A951-11CF-8EE6-00C00C205365", "Marker" },
+ { "D6E229DC-35DA-11D1-9034-00A0C90349BE", "Bitrate_Mutual_Exclusion" },
+ { "75B22635-668E-11CF-A6D9-00AA0062CE6C", "Error_Correction" },
+ { "75B22633-668E-11CF-A6D9-00AA0062CE6C", "Content_Description" },
+ { "D2D0A440-E307-11D2-97F0-00A0C95EA850", "Extended_Content_Description" },
+ { "2211B3FA-BD23-11D2-B4B7-00A0C955FC6E", "Content_Branding" },
+ { "7BF875CE-468D-11D1-8D82-006097C9A2B2", "Stream_Bitrate_Properties" },
+ { "2211B3FB-BD23-11D2-B4B7-00A0C955FC6E", "Content_Encryption" },
+ { "298AE614-2622-4C17-B935-DAE07EE9289C", "Extended_Content_Encryption" },
+ { "2211B3FC-BD23-11D2-B4B7-00A0C955FC6E", "Digital_Signature" },
+ { "1806D474-CADF-4509-A4BA-9AABCB96AAE8", "Padding" },
+
+ /// Header Extension Object GUIDs
+ { "14E6A5CB-C672-4332-8399-A96952065B5A", "Extended_Stream_Properties" },
+ { "A08649CF-4775-4670-8A16-6E35357566CD", "Advanced_Mutual_Exclusion" },
+ { "D1465A40-5A79-4338-B71B-E36B8FD6C249", "Group_Mutual_Exclusion" },
+ { "D4FED15B-88D3-454F-81F0-ED5C45999E24", "Stream_Prioritization" },
+ { "A69609E6-517B-11D2-B6AF-00C04FD908E9", "Bandwidth_Sharing" },
+ { "7C4346A9-EFE0-4BFC-B229-393EDE415C85", "Language_List" },
+ { "C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA", "Metadata" },
+ { "44231C94-9498-49D1-A141-1D134E457054", "Metadata_Library" },
+ { "D6E229DF-35DA-11D1-9034-00A0C90349BE", "Index_Parameters" },
+ { "6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7", "Media_Index_Parameters" },
+ { "F55E496D-9797-4B5D-8C8B-604DFE9BFB24", "Timecode_Index_Parameters" },
+ { "26F18B5D-4584-47EC-9F5F-0E651F0452C9", "Compatibility" },
+ { "43058533-6981-49E6-9B74-AD12CB86D58C", "Advanced_Content_Encryption" },
+
+ /// Stream Properties Object Stream Type GUIDs
+ { "F8699E40-5B4D-11CF-A8FD-00805F5C442B", "Audio_Media" },
+ { "BC19EFC0-5B4D-11CF-A8FD-00805F5C442B", "Video_Media" },
+ { "59DACFC0-59E6-11D0-A3AC-00A0C90348F6", "Command_Media" },
+ { "B61BE100-5B4E-11CF-A8FD-00805F5C442B", "JFIF_Media" },
+ { "35907DE0-E415-11CF-A917-00805F5C442B", "Degradable_JPEG_Media" },
+ { "91BD222C-F21C-497A-8B6D-5AA86BFC0185", "File_Transfer_Media" },
+ { "3AFB65E2-47EF-40F2-AC2C-70A90D71D343", "Binary_Media" },
+
+ /// Web stream Type-Specific Data GUIDs
+ { "776257D4-C627-41CB-8F81-7AC7FF1C40CC", "Web_Stream_Media_Subtype" },
+ { "DA1E6B13-8359-4050-B398-388E965BF00C", "Web_Stream_Format" },
+
+ /// Stream Properties Object Error Correction Type GUIDs
+ { "20FB5700-5B55-11CF-A8FD-00805F5C442B", "No_Error_Correction" },
+ { "BFC3CD50-618F-11CF-8BB2-00AA00B4E220", "Audio_Spread" },
+
+ /// Header Extension Object GUIDs
+ { "ABD3D211-A9BA-11cf-8EE6-00C00C205365", "Reserved_1" },
+
+ /// Advanced Content Encryption Object System ID GUIDs
+ { "7A079BB6-DAA4-4e12-A5CA-91D38DC11A8D", "Content_Encryption_System_Windows_Media_DRM_Network_Devices" },
+
+ /// Codec List Object GUIDs
+ { "86D15241-311D-11D0-A3A4-00A0C90348F6", "Reserved_2" },
+
+ /// Script Command Object GUIDs
+ { "4B1ACBE3-100B-11D0-A39B-00A0C90348F6", "Reserved_3" },
+
+ /// Marker Object GUIDs
+ { "4CFEDB20-75F6-11CF-9C0F-00A0C90349CB", "Reserved_4" },
+
+ /// Mutual Exclusion Object Exclusion Type GUIDs
+ { "D6E22A00-35DA-11D1-9034-00A0C90349BE", "Mutex_Language" },
+ { "D6E22A01-35DA-11D1-9034-00A0C90349BE", "Mutex_Bitrate" },
+ { "D6E22A02-35DA-11D1-9034-00A0C90349BE", "Mutex_Unknown" },
+
+ /// Bandwidth Sharing Object GUIDs
+ { "AF6060AA-5197-11D2-B6AF-00C04FD908E9", "Bandwidth_Sharing_Exclusive" },
+ { "AF6060AB-5197-11D2-B6AF-00C04FD908E9", "Bandwidth_Sharing_Partial" },
+
+ /// Standard Payload Extension System GUIDs
+ { "399595EC-8667-4E2D-8FDB-98814CE76C1E", "Payload_Extension_System_Timecode" },
+ { "E165EC0E-19ED-45D7-B4A7-25CBD1E28E9B", "Payload_Extension_System_File_Name" },
+ { "D590DC20-07BC-436C-9CF7-F3BBFBF1A4DC", "Payload_Extension_System_Content_Type" },
+ { "1B1EE554-F9EA-4BC8-821A-376B74E4C4B8", "Payload_Extension_System_Pixel_Aspect_Ratio" },
+ { "C6BD9450-867F-4907-83A3-C77921B733AD", "Payload_Extension_System_Sample_Duration" },
+ { "6698B84E-0AFA-4330-AEB2-1C0A98D7A44D", "Payload_Extension_System_Encryption_Sample_ID" },
+ { "00E1AF06-7BEC-11D1-A582-00C04FC29CFB", "Payload_Extension_System_Degradable_JPEG" }
+ };
+
+ //! Audio codec type-specific data in ASF
+ extern const TagDetails audioCodec[] = {
+ { 0x161, "Windows Media Audio (7, 8, and 9 Series)" },
+ { 0x162, "Windows Media Audio 9 Professional" },
+ { 0x163, "Windows Media Audio 9 Lossless" },
+ { 0x7A21, "GSM-AMR (CBR, no SID)" },
+ { 0x7A22, "GSM-AMR (VBR including SID)" }
+ };
+
+ extern const TagDetails filePropertiesTags[] = {
+ { 7, "Xmp.video.FileLength" },
+ { 6, "Xmp.video.CreationDate" },
+ { 5, "Xmp.video.DataPackets" },
+ { 4, "Xmp.video.Duration" },
+ { 3, "Xmp.video.SendDuration" },
+ { 2, "Xmp.video.Preroll" },
+ { 1, "Xmp.video.MaxBitRate" }
+ };
+
+ extern const TagDetails contentDescriptionTags[] = {
+ { 1, "Xmp.video.Title" },
+ { 2, "Xmp.video.Author" },
+ { 3, "Xmp.video.Copyright" },
+ { 4, "Xmp.video.Description" },
+ { 5, "Xmp.video.Rating" }
+ };
+
+ /*!
+ @brief Function used to read data from data buffer, reads 16-bit character
+ array and stores it in std::string object.
+ @param buf Exiv2 data buffer, which stores the information
+ @return Returns std::string object .
+ */
+ std::string toString16(Exiv2::DataBuf& buf)
+ {
+ std::ostringstream os; char t;
+
+ for(int i = 0; i <= buf.size_; i += 2 ) {
+ t = buf.pData_[i] + 16 * buf.pData_[i + 1];
+ if(t == 0) {
+ if(i)
+ os << '
--
exiv2 packaging
More information about the pkg-kde-commits
mailing list