aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ffmpeg7/dict.pas
diff options
context:
space:
mode:
authork-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>2012-03-22 20:12:43 +0000
committerk-m_schindler <k-m_schindler@b956fd51-792f-4845-bead-9b4dfca2ff2c>2012-03-22 20:12:43 +0000
commitf93c0abaf5de7bcaf1b6cd58f3a19a99524a3849 (patch)
tree7ef6dea6d6dd544692fdde865f65439c45a745c2 /src/lib/ffmpeg7/dict.pas
parentc4f46eeed8de14c51b38de296b5dccb9e183cb1a (diff)
downloadusdx-f93c0abaf5de7bcaf1b6cd58f3a19a99524a3849.tar.gz
usdx-f93c0abaf5de7bcaf1b6cd58f3a19a99524a3849.tar.xz
usdx-f93c0abaf5de7bcaf1b6cd58f3a19a99524a3849.zip
more for ffmpeg7
git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2842 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to '')
-rw-r--r--src/lib/ffmpeg7/dict.pas109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/lib/ffmpeg7/dict.pas b/src/lib/ffmpeg7/dict.pas
new file mode 100644
index 00000000..ec2e96da
--- /dev/null
+++ b/src/lib/ffmpeg7/dict.pas
@@ -0,0 +1,109 @@
+(*
+ * AVDictionary
+ * copyright (c) 2011 Karl-Michael Schindler <karl-michael.schindler@web.de>
+ *
+ * This library 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 of the License, or (at your option) any later version.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * This is a part of the Pascal port of ffmpeg.
+ *
+ * Conversion of libavutil/dict.h
+ * avutil version 50.43.0
+ *
+ *)
+
+unit dict;
+
+{$IFDEF FPC}
+ {$MODE DELPHI}
+ {$PACKENUM 4} (* use 4-byte enums *)
+ {$PACKRECORDS C} (* C/C++-compatible record packing *)
+{$ELSE}
+ {$MINENUMSIZE 4} (* use 4-byte enums *)
+{$ENDIF}
+
+interface
+
+uses
+ ctypes,
+ UConfig;
+
+const
+ AV_DICT_MATCH_CASE = 1;
+ AV_DICT_IGNORE_SUFFIX = 2;
+ AV_DICT_DONT_STRDUP_KEY = 4;
+ AV_DICT_DONT_STRDUP_VAL = 8;
+ AV_DICT_DONT_OVERWRITE = 16; ///< Don't overwrite existing entries.
+ AV_DICT_APPEND = 32; (**< If the entry already exists, append to it. Note that no
+ delimiter is added, the strings are simply concatenated. *)
+
+type
+ PAVDictionaryEntry = ^TAVDictionaryEntry;
+ TAVDictionaryEntry = record
+ key: PAnsiChar;
+ value: PAnsiChar;
+ end;
+
+(* with the "help" of libavutil/internal.h: *)
+
+ PAVDictionary = ^TAVDictionary;
+ TAVDictionary = record
+ count: cint;
+ elems: PAVDictionaryEntry;
+ end;
+
+(**
+ * Get a dictionary entry with matching key.
+ *
+ * @param prev Set to the previous matching element to find the next.
+ * If set to NULL the first matching element is returned.
+ * @param flags Allows case as well as suffix-insensitive comparisons.
+ * @return Found entry or NULL, changing key or value leads to undefined behavior.
+ *)
+function av_dict_get(m: PAVDictionary; {const} key: PAnsiChar; {const} prev: PAVDictionaryEntry; flags: cint): PAVDictionaryEntry;
+ cdecl; external av__util;
+
+(**
+ * Set the given entry in *pm, overwriting an existing entry.
+ *
+ * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL
+ * a dictionary struct is allocated and put in *pm.
+ * @param key entry key to add to *pm (will be av_strduped depending on flags)
+ * @param value entry value to add to *pm (will be av_strduped depending on flags).
+ * Passing a NULL value will cause an existing tag to be deleted.
+ * @return >= 0 on success otherwise an error code <0
+ *)
+function av_dict_set(var pm: PAVDictionary; {const} key: PAnsiChar; {const} value: PAnsiChar; flags: cint): cint;
+ cdecl; external av__util;
+
+(**
+ * Copy entries from one AVDictionary struct into another.
+ * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
+ * this function will allocate a struct for you and put it in *dst
+ * @param src pointer to source AVDictionary struct
+ * @param flags flags to use when setting entries in *dst
+ * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
+ *)
+procedure av_dict_copy(var dst: PAVDictionary; src: PAVDictionary; flags: cint);
+ cdecl; external av__util;
+
+(**
+ * Free all the memory allocated for an AVDictionary struct.
+ *)
+procedure av_dict_free(var m: PAVDictionary);
+ cdecl; external av__util;
+
+implementation
+
+end.