summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEdgard Lima <edgard.lima@indt.org.br>2008-02-07 13:59:41 +0000
committerEdgard Lima <edgard.lima@indt.org.br>2008-02-07 13:59:41 +0000
commit6063b1da97fb2f84ce5e6bd6d013f03b1662e740 (patch)
tree89d4a27b57b0a1c2fad3daf4436eba7cf8a229a7
parent26abf37c0365079b3dffae19c94d6690f2f1584e (diff)
downloadgst-plugins-bad-6063b1da97fb2f84ce5e6bd6d013f03b1662e740.tar.gz
gst-plugins-bad-6063b1da97fb2f84ce5e6bd6d013f03b1662e740.tar.bz2
gst-plugins-bad-6063b1da97fb2f84ce5e6bd6d013f03b1662e740.zip
Add more tags. Improve test app.
Original commit message from CVS: Add more tags. Improve test app.
-rw-r--r--ChangeLog10
-rw-r--r--ext/metadata/metadata_mapping.htm286
-rw-r--r--ext/metadata/metadataexif.c9
-rw-r--r--ext/metadata/metadatatags.c29
-rw-r--r--ext/metadata/metadatatags.h3
-rw-r--r--tests/icles/metadata_editor.c319
-rw-r--r--tests/icles/metadata_editor.glade190
7 files changed, 709 insertions, 137 deletions
diff --git a/ChangeLog b/ChangeLog
index 21cadfd8..1120e607 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-02-07 Edgard Lima <edgard.lima@indt.org.br>
+
+ * ext/metadata/metadata_mapping.htm:
+ * ext/metadata/metadataexif.c:
+ * ext/metadata/metadatatags.c:
+ * ext/metadata/metadatatags.h:
+ * tests/icles/metadata_editor.c:
+ * tests/icles/metadata_editor.glade:
+ Add more tags. Improve test app.
+
2008-02-07 Stefan Kost <ensonic@users.sf.net>
* gst/multifile/gstmultifilesink.c:
diff --git a/ext/metadata/metadata_mapping.htm b/ext/metadata/metadata_mapping.htm
index 0816fca6..4c5508ae 100644
--- a/ext/metadata/metadata_mapping.htm
+++ b/ext/metadata/metadata_mapping.htm
@@ -7,17 +7,18 @@
<META NAME="AUTHOR" CONTENT="Edgard Lima">
<META NAME="CREATED" CONTENT="20080131;12581600">
<META NAME="CHANGEDBY" CONTENT="Edgard Lima">
- <META NAME="CHANGED" CONTENT="20080205;19004300">
+ <META NAME="CHANGED" CONTENT="20080207;15491600">
+ <META NAME="CHANGEDBY" CONTENT="Edgard Lima">
<META NAME="CHANGEDBY" CONTENT="Edgard Lima">
<!-- -->
<META NAME="CHANGEDBY" CONTENT="Edgard Lima">
<STYLE TYPE="text/css">
<!--
@page { size: landscape; margin: 2cm }
- TD P { margin-bottom: 0cm }
- TD P.western { so-language: en-US }
P { margin-bottom: 0.21cm }
P.western { so-language: en-US }
+ TD P { margin-bottom: 0cm }
+ TD P.western { so-language: en-US }
-->
</STYLE>
</HEAD>
@@ -199,24 +200,78 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_CONTRAST</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_COLOR_SPACE</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-contrast&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-color-space&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_INT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">1-
+ sRGB;<BR>0xFFFF - Uncalibrated</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_COLOR_SPACE</FONT></P>
+ </TD>
+ <TD WIDTH=13% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=10% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=13%>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=14%>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_CONTRAST</FONT></P>
+ </TD>
+ <TD WIDTH=11%>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-contrast&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=11%>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_INT</FONT></P>
+ </TD>
+ <TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">from
-100 to 100:<BR>[-100, -34] – soft ;<BR>[-33, 33] – normal
;<BR>[34, 100] – hard </FONT>
</P>
</TD>
- <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_CONTRAST<BR>0-
normal;<BR>1- soft;<BR>2- hard</FONT></P>
</TD>
+ <TD WIDTH=13%>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=10%>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=13% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_CUSTOM_RENDERED</FONT></P>
+ </TD>
+ <TD WIDTH=11% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-custom-rendered&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=11% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">0-
+ Normal process;<BR>1- Custom process</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_CUSTOM_RENDERED</FONT></P>
+ </TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
@@ -229,20 +284,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_CUSTOM_RENDERED</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_DIGITAL_ZOOM</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-custom-rendered&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-digital-zoom&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">0-
- Normal process;<BR>1- Custom process</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Digital
+ zoom ratio&quot;<BR>(zero, means digital zoom not used)</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_CUSTOM_RENDERED</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_DIGITAL_ZOOM_RATIO</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -256,20 +311,22 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_DIGITAL_ZOOM</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_EXPOSURE_MODE</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-digital-zoom&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-exposure-mode&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Digital
- zoom ratio&quot;<BR>(zero, means digital zoom not used)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">0-
+ Auto exposure;<BR>1- Manual exposure;<BR>2- Auto bracket (the
+ camera shoots a series of frames of the same scene at different
+ exposure settings)</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_DIGITAL_ZOOM_RATIO</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_EXPOSURE_MODE</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -607,20 +664,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_SHUTTER_SPEED</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_SCENE_CAPTURE_TYPE</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-shutter-speed&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-scene-capture-type&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Saturation<BR>(in
- APEX units)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">0-
+ Standard;<BR>1- Landscape;<BR>2- Portrait;<BR>3- Night scene</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SHUTTER_SPEED_VALUE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SCENE_CAPTURE_TYPE</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -634,29 +691,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_WHITE_BALANCE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_SHUTTER_SPEED</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-white-balance&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-shutter-speed&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">0-
- Auto; 1- Off </FONT>
- </P>
- <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">***
- exif is until here *** </FONT>
- </P>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">2-
- Sunlight ; 3- Cloudy ; 4- Shade ; 5- Tungsten ; 6- Fluorescent ;
- 7- Incandescent; 8- Flash ; 9- Horizon (sun on the horizon)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Saturation<BR>(in
+ APEX units)</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_WHITE_BALANCE</FONT></P>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">(only
- 0 and 1)</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SHUTTER_SPEED_VALUE</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -670,21 +718,29 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CREATOR_TOOL</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CAPTURE_WHITE_BALANCE</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;creator-tool&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;capture-white-balance&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">The
- name of the first known tool used to create the resource. Or
- firmware or driver version of device</FONT></P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">0-
+ Auto; 1- Off </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">***
+ exif is until here *** </FONT>
+ </P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">2-
+ Sunlight ; 3- Cloudy ; 4- Shade ; 5- Tungsten ; 6- Fluorescent ;
+ 7- Incandescent; 8- Flash ; 9- Horizon (sun on the horizon)</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SOFTWARE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_WHITE_BALANCE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">(only
+ 0 and 1)</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -698,20 +754,21 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MAKE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CREATOR_TOOL</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;device-make&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;creator-tool&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">The
- manufacturer of the recording equipment</FONT></P>
+ name of the first known tool used to create the resource. Or
+ firmware or driver version of device</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_MAKE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SOFTWARE</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -725,20 +782,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MODEL</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MAKE</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;device-model&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;device-make&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">The
- model name or model number of the equipment</FONT></P>
+ manufacturer of the recording equipment</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_MODEL</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_MAKE</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -752,20 +809,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_HEIGHT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MODEL</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-height&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;device-model&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Image
- height in pixels</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">The
+ model name or model number of the equipment</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_PIXEL_Y_DIMENSION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_MODEL</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -779,20 +836,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_WIDTH</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_HEIGHT</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-width&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-height&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Image
- width in pixels</FONT></P>
+ height in pixels</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_PIXEL_X_DIMENSION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_PIXEL_Y_DIMENSION</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -806,21 +863,20 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_XRESOLUTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_WIDTH</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-xresolution&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-width&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_UINT</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Horizontal
- resolution in pixels per inch.<BR>Here it is always in inches.<BR>In
- EXIF it depends on EXIF_TAG_RESOLUTION_UNIT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Image
+ width in pixels</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_X_RESOLUTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_PIXEL_X_DIMENSION</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -834,21 +890,21 @@
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_YRESOLUTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_XRESOLUTION</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-yresolution&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-xresolution&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Vertical
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Horizontal
resolution in pixels per inch.<BR>Here it is always in inches.<BR>In
EXIF it depends on EXIF_TAG_RESOLUTION_UNIT</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_Y_RESOLUTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_X_RESOLUTION</FONT></P>
</TD>
<TD WIDTH=13%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -859,27 +915,27 @@
</TR>
<TR VALIGN=TOP>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COMPOSER</FONT></P>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_YRESOLUTION</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;composer&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;image-yresolution&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Name
- of the creator of the object, e.g. writer, photographer or graphic
- artist.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Vertical
+ resolution in pixels per inch.<BR>Here it is always in inches.<BR>In
+ EXIF it depends on EXIF_TAG_RESOLUTION_UNIT</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_Y_RESOLUTION</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_BYLINE</FONT></P>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=10% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
@@ -887,82 +943,110 @@
</TR>
<TR VALIGN=TOP>
<TD WIDTH=13%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COPYRIGHT</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COMPOSER</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;copyright&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;composer&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Any
- necessary copyright notice.</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Name
+ of the creator of the object, e.g. writer, photographer or graphic
+ artist.</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=13%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_COPYRIGHT_NOTICE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_BYLINE</FONT></P>
</TD>
<TD WIDTH=10%>
- <P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:rights”</FONT></P>
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DESCRIPTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COPYRIGHT</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;description&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;copyright&quot;</FONT></P>
</TD>
<TD WIDTH=11% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">A
- textual description of the data</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Any
+ necessary copyright notice.</FONT></P>
</TD>
<TD WIDTH=14% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=13% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_CAPTION</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_COPYRIGHT_NOTICE</FONT></P>
</TD>
<TD WIDTH=10% BGCOLOR="#e6e6ff">
- <P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:description”</FONT></P>
+ <P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:rights”</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=13%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_TITLE</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DESCRIPTION</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=11%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;title&quot;</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;description&quot;</FONT></P>
</TD>
<TD WIDTH=11%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">A
- shorthand reference for the object.</FONT></P>
+ textual description of the data</FONT></P>
</TD>
<TD WIDTH=14%>
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
</TD>
<TD WIDTH=13%>
- <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_OBJECT_NAME</FONT></P>
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_CAPTION</FONT></P>
</TD>
<TD WIDTH=10%>
+ <P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:description”</FONT></P>
+ </TD>
+ </TR>
+ <TR VALIGN=TOP>
+ <TD WIDTH=13% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_TITLE</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=11% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">&quot;title&quot;</FONT></P>
+ </TD>
+ <TD WIDTH=11% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">A
+ shorthand reference for the object.</FONT></P>
+ </TD>
+ <TD WIDTH=14% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
+ </TD>
+ <TD WIDTH=13% BGCOLOR="#e6e6ff">
+ <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_OBJECT_NAME</FONT></P>
+ </TD>
+ <TD WIDTH=10% BGCOLOR="#e6e6ff">
<P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:title”</FONT></P>
</TD>
</TR>
diff --git a/ext/metadata/metadataexif.c b/ext/metadata/metadataexif.c
index 33052869..14527fb6 100644
--- a/ext/metadata/metadataexif.c
+++ b/ext/metadata/metadataexif.c
@@ -146,6 +146,9 @@ static MapIntStr mappedTags[] = {
{EXIF_TAG_BRIGHTNESS_VALUE, /*SRATIONAL,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_BRIGHTNESS /*GST_TYPE_FRACTION*/},
+ {EXIF_TAG_COLOR_SPACE, /*SHORT,*/ EXIF_IFD_EXIF,
+ GST_TAG_CAPTURE_COLOR_SPACE /*G_TYPE_UINT*/},
+
{EXIF_TAG_CONTRAST, /*SHORT,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_CONTRAST /*G_TYPE_INT*/},
@@ -158,6 +161,9 @@ static MapIntStr mappedTags[] = {
{EXIF_TAG_EXPOSURE_PROGRAM, /*SHORT,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_EXPOSURE_PROGRAM /*G_TYPE_UINT*/},
+ {EXIF_TAG_EXPOSURE_MODE, /*SHORT,*/ EXIF_IFD_EXIF,
+ GST_TAG_CAPTURE_EXPOSURE_MODE /*G_TYPE_UINT*/},
+
{EXIF_TAG_EXPOSURE_TIME, /*RATIONAL,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_EXPOSURE_TIME /*GST_TYPE_FRACTION*/},
@@ -185,6 +191,9 @@ static MapIntStr mappedTags[] = {
{EXIF_TAG_SATURATION, /*SHORT,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_SATURATION /*G_TYPE_INT*/},
+ {EXIF_TAG_SCENE_CAPTURE_TYPE, /*SHORT,*/ EXIF_IFD_EXIF,
+ GST_TAG_CAPTURE_SCENE_CAPTURE_TYPE /*G_TYPE_UINT*/},
+
{EXIF_TAG_SHUTTER_SPEED_VALUE, /*SRATIONAL,*/ EXIF_IFD_EXIF,
GST_TAG_CAPTURE_SHUTTER_SPEED /*GST_TYPE_FRACTION*/},
diff --git a/ext/metadata/metadatatags.c b/ext/metadata/metadatatags.c
index fd4d27e0..e8b0c1f3 100644
--- a/ext/metadata/metadatatags.c
+++ b/ext/metadata/metadatatags.c
@@ -127,6 +127,14 @@ metadata_tags_exif_register (void)
"Brightness (APEX from -99.99 to 99.99)", NULL);
/*
+ * 1- sRGB
+ * 0xFFFF - Uncalibrated
+ */
+
+ gst_tag_register (GST_TAG_CAPTURE_COLOR_SPACE, GST_TAG_FLAG_META,
+ G_TYPE_UINT, GST_TAG_CAPTURE_COLOR_SPACE, "Color Space", NULL);
+
+ /*
from -100 to 100
[-100, -34] - soft
[-33, 33] - normal
@@ -134,7 +142,7 @@ metadata_tags_exif_register (void)
*** exif is just 0, 1, 2 (normal, soft and hard)
*/
gst_tag_register (GST_TAG_CAPTURE_CONTRAST, GST_TAG_FLAG_META, G_TYPE_INT,
- GST_TAG_CAPTURE_CONTRAST, "", NULL);
+ GST_TAG_CAPTURE_CONTRAST, "Contrast", NULL);
/*
* 0- Normal process
@@ -152,6 +160,16 @@ metadata_tags_exif_register (void)
NULL);
/*
+ * 0 - Auto exposure
+ * 1 - Manual exposure
+ * 2 - Auto bracket (the camera shoots a series of frames of the same scene
+ * at different exposure settings)
+ */
+
+ gst_tag_register (GST_TAG_CAPTURE_EXPOSURE_MODE, GST_TAG_FLAG_META,
+ G_TYPE_UINT, GST_TAG_CAPTURE_EXPOSURE_MODE, "Exposure Mode", NULL);
+
+ /*
0 - not defined
1- Manual
2- Normal program
@@ -310,6 +328,15 @@ metadata_tags_exif_register (void)
gst_tag_register (GST_TAG_CAPTURE_SATURATION, GST_TAG_FLAG_META, G_TYPE_INT,
GST_TAG_CAPTURE_SATURATION, "The saturation", NULL);
+ /*
+ * 0 - Standard
+ * 1 - Landscape
+ * 2 - Portrait
+ * 3 - Night scene
+ */
+ gst_tag_register (GST_TAG_CAPTURE_SCENE_CAPTURE_TYPE, GST_TAG_FLAG_META,
+ G_TYPE_UINT, GST_TAG_CAPTURE_SCENE_CAPTURE_TYPE, "Scene Type", NULL);
+
gst_tag_register (GST_TAG_CAPTURE_SHUTTER_SPEED, GST_TAG_FLAG_META,
GST_TYPE_FRACTION, GST_TAG_CAPTURE_SHUTTER_SPEED, "Shutter speed (APEX)",
NULL);
diff --git a/ext/metadata/metadatatags.h b/ext/metadata/metadatatags.h
index 0db30c54..1e298166 100644
--- a/ext/metadata/metadatatags.h
+++ b/ext/metadata/metadatatags.h
@@ -81,9 +81,11 @@ typedef enum {
#define GST_TAG_CAPTURE_APERTURE "capture-aperture"
#define GST_TAG_CAPTURE_BRIGHTNESS "capture-brightness"
+#define GST_TAG_CAPTURE_COLOR_SPACE "capture-color-space"
#define GST_TAG_CAPTURE_CONTRAST "capture-contrast"
#define GST_TAG_CAPTURE_CUSTOM_RENDERED "capture-custom-rendered"
#define GST_TAG_CAPTURE_DIGITAL_ZOOM "capture-digital-zoom"
+#define GST_TAG_CAPTURE_EXPOSURE_MODE "capture-exposure-mode"
#define GST_TAG_CAPTURE_EXPOSURE_PROGRAM "capture-exposure-program"
#define GST_TAG_CAPTURE_EXPOSURE_TIME "capture-exposure-time"
#define GST_TAG_CAPTURE_FLASH "capture-flash"
@@ -94,6 +96,7 @@ typedef enum {
#define GST_TAG_CAPTURE_LIGHT_SOURCE "capture-light-source"
#define GST_TAG_CAPTURE_ORIENTATION "capture-orientation"
#define GST_TAG_CAPTURE_SATURATION "capture-saturation"
+#define GST_TAG_CAPTURE_SCENE_CAPTURE_TYPE "capture-scene-capture-type"
#define GST_TAG_CAPTURE_SHUTTER_SPEED "capture-shutter-speed"
#define GST_TAG_CAPTURE_WHITE_BALANCE "capture-white-balance"
diff --git a/tests/icles/metadata_editor.c b/tests/icles/metadata_editor.c
index d59e4cd3..02212bb2 100644
--- a/tests/icles/metadata_editor.c
+++ b/tests/icles/metadata_editor.c
@@ -62,11 +62,22 @@ enum
COL_VALUE,
NUM_COLS
};
-
-#define ENC_ERROR (-1)
-#define ENC_DONE (0)
+/* *INDENT-OFF* */
+typedef enum _AppOptions {
+ APP_OPT_DEMUX_EXIF = (1 << 0),
+ APP_OPT_DEMUX_IPTC = (1 << 1),
+ APP_OPT_DEMUX_XMP = (1 << 2),
+ APP_OPT_MUX_EXIF = (1 << 3),
+ APP_OPT_MUX_IPTC = (1 << 4),
+ APP_OPT_MUX_XMP = (1 << 5),
+ APP_OPT_ALL = (1 << 6) - 1,
+} AppOptions;
+
+#define ENC_ERROR (-1)
+#define ENC_DONE (0)
#define ENC_UNKNOWN (1)
+/* *INDENT-OFF* */
/*
* functions prototypes
@@ -79,7 +90,7 @@ static int
me_gst_setup_view_pipeline (const gchar * filename, GdkWindow * window);
static int
me_gst_setup_capture_pipeline (const gchar * src_file, const gchar * dest_file,
- gint * encode_status);
+ gint * encode_status, gboolean use_v4l2);
static int
me_gst_setup_encode_pipeline (const gchar * src_file, const gchar * dest_file,
gint * encode_status);
@@ -87,6 +98,7 @@ me_gst_setup_encode_pipeline (const gchar * src_file, const gchar * dest_file,
/* ui related functions */
static void ui_refresh ();
+static void process_file();
/*
* Global Vars
@@ -103,6 +115,8 @@ GstElement *gst_video_sink = NULL;
GstElement *gst_file_sink = NULL;
GstElement *gst_pipeline = NULL;
+AppOptions app_options = APP_OPT_ALL;
+
GstTagList *tag_list = NULL;
GladeXML *ui_glade_xml = NULL;
@@ -113,7 +127,8 @@ GtkWidget *ui_tree = NULL;
GtkEntry *ui_entry_insert_tag = NULL;
GtkEntry *ui_entry_insert_value = NULL;
-GtkToggleButton *ui_chk_bnt_capture = NULL;
+GtkToggleButton *ui_chk_bnt_capture_v4l2 = NULL;
+GtkToggleButton *ui_chk_bnt_capture_test = NULL;
GString *filename = NULL;
@@ -264,6 +279,10 @@ on_buttonInsert_clicked (GtkButton * button, gpointer user_data)
const gchar *tag = gtk_entry_get_text (ui_entry_insert_tag);
const gchar *value = gtk_entry_get_text (ui_entry_insert_value);
+ if ( tag_list == NULL ) {
+ tag_list = gst_tag_list_new ();
+ }
+
if (tag && value && tag[0] != '\0') {
/* insert just new tags (the ones already in list should be modified) */
@@ -314,16 +333,20 @@ on_buttonSaveFile_clicked (GtkButton * button, gpointer user_data)
GString *src_file = NULL;
gint enc_status = ENC_UNKNOWN;
+ const gboolean use_v4l2 =
+ gtk_toggle_button_get_active (ui_chk_bnt_capture_v4l2);
+ const gboolean use_test =
+ gtk_toggle_button_get_active (ui_chk_bnt_capture_test);
gst_element_set_state (gst_pipeline, GST_STATE_NULL);
gst_element_get_state (gst_pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
src_file = g_string_new (filename->str);
- if (gtk_toggle_button_get_active (ui_chk_bnt_capture)) {
+ if (use_v4l2 || use_test) {
setup_new_filename (filename, ".jpg");
if (me_gst_setup_capture_pipeline (src_file->str, filename->str,
- &enc_status)) {
+ &enc_status, use_v4l2)) {
goto done;
}
} else {
@@ -381,13 +404,130 @@ done:
}
void
-on_checkbuttonCapture_toggled (GtkToggleButton * togglebutton,
+on_checkbuttonCaptureV4l2_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ gtk_toggle_button_set_active(ui_chk_bnt_capture_test, FALSE);
+}
+
+void
+on_checkbuttonCaptureTest_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ gtk_toggle_button_set_active(ui_chk_bnt_capture_v4l2, FALSE);
+}
+
+void
+on_checkbuttonOptionsDemuxExif_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_DEMUX_EXIF;
+ else
+ app_options &= ~APP_OPT_DEMUX_EXIF;
+}
+
+void
+on_checkbuttonOptionsDemuxIptc_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_DEMUX_IPTC;
+ else
+ app_options &= ~APP_OPT_DEMUX_IPTC;
+}
+
+void
+on_checkbuttonOptionsDemuxXmp_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_DEMUX_XMP;
+ else
+ app_options &= ~APP_OPT_DEMUX_XMP;
+}
+
+void
+on_checkbuttonOptionsMuxExif_toggled (GtkToggleButton * togglebutton,
gpointer user_data)
{
- if (gtk_toggle_button_get_active (togglebutton)) {
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_MUX_EXIF;
+ else
+ app_options &= ~APP_OPT_MUX_EXIF;
+}
+
+void
+on_checkbuttonOptionsMuxIptc_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_MUX_IPTC;
+ else
+ app_options &= ~APP_OPT_MUX_IPTC;
+}
+
+void
+on_checkbuttonOptionsMuxXmp_toggled (GtkToggleButton * togglebutton,
+ gpointer user_data)
+{
+ if (gtk_toggle_button_get_active (togglebutton))
+ app_options |= APP_OPT_MUX_XMP;
+ else
+ app_options &= ~APP_OPT_MUX_XMP;
+}
+
+void
+on_buttonOpenFile_clicked (GtkButton * button, gpointer user_data)
+{
+ GtkWidget *dialog;
+ gboolean open = FALSE;
+
+ dialog = gtk_file_chooser_dialog_new ("Open File",
+ GTK_WINDOW(ui_main_window),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ NULL);
+
+ if (filename) {
+ const char *p = filename->str;
+ char *q = filename->str + filename->len - 1;
+ for (;p != q; --q) {
+ if ( *q == '/' )
+ break;
+ }
+ if ( p != q )
+ *q = '\0';
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER (dialog),
+ filename->str);
+ if ( p != q )
+ *q = '/';
+ }
+
+ open = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT;
+
+ if (open) {
+ char *str;
+
+ str = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+ if (filename)
+ g_string_free (filename, TRUE);
+ filename = g_string_new(str);
+ g_free (str);
+ }
+
+ gtk_widget_destroy (dialog);
+
+ if (open) {
+ process_file();
}
+
}
+
/*
* UI handling functions
*/
@@ -520,6 +660,62 @@ ui_refresh ()
}
static int
+ui_connect_signals()
+{
+
+ glade_xml_signal_connect(ui_glade_xml, "on_checkbuttonCaptureV4l2_toggled",
+ (GCallback)on_checkbuttonCaptureV4l2_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_checkbuttonCaptureTest_toggled",
+ (GCallback)on_checkbuttonCaptureTest_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsDemuxExif_toggled",
+ (GCallback) on_checkbuttonOptionsDemuxExif_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsDemuxIptc_toggled",
+ (GCallback) on_checkbuttonOptionsDemuxIptc_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsDemuxXmp_toggled",
+ (GCallback) on_checkbuttonOptionsDemuxXmp_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsMuxExif_toggled",
+ (GCallback) on_checkbuttonOptionsMuxExif_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsMuxIptc_toggled",
+ (GCallback) on_checkbuttonOptionsMuxIptc_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml,
+ "on_checkbuttonOptionsMuxXmp_toggled",
+ (GCallback) on_checkbuttonOptionsMuxXmp_toggled);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_buttonSaveFile_clicked",
+ (GCallback)on_buttonSaveFile_clicked);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_windowMain_delete_event",
+ (GCallback)on_windowMain_delete_event);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_drawingMain_expose_event",
+ (GCallback)on_drawingMain_expose_event);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_windowMain_configure_event",
+ (GCallback)on_windowMain_configure_event);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_buttonInsert_clicked",
+ (GCallback)on_buttonInsert_clicked);
+
+ glade_xml_signal_connect(ui_glade_xml, "on_buttonOpenFile_clicked",
+ (GCallback)on_buttonOpenFile_clicked);
+
+ return 0;
+
+}
+
+static int
ui_create ()
{
int ret = 0;
@@ -544,18 +740,23 @@ ui_create ()
ui_entry_insert_value =
GTK_ENTRY (glade_xml_get_widget (ui_glade_xml, "entryValue"));
- ui_chk_bnt_capture =
+ ui_chk_bnt_capture_v4l2 =
+ GTK_TOGGLE_BUTTON (glade_xml_get_widget (ui_glade_xml,
+ "checkbuttonCaptureV4l2"));
+
+ ui_chk_bnt_capture_test =
GTK_TOGGLE_BUTTON (glade_xml_get_widget (ui_glade_xml,
- "checkbuttonCapture"));
+ "checkbuttonCaptureTest"));
- if (!(ui_main_window && ui_drawing && ui_tree && ui_entry_insert_tag
- && ui_entry_insert_value && ui_chk_bnt_capture)) {
+ if (!(ui_main_window && ui_drawing && ui_tree
+ && ui_entry_insert_tag && ui_entry_insert_value
+ && ui_chk_bnt_capture_v4l2 && ui_chk_bnt_capture_test)) {
fprintf (stderr, "Some widgets couldn't be created\n");
ret = -105;
goto done;
}
- glade_xml_signal_autoconnect (ui_glade_xml);
+ ui_connect_signals();
ui_setup_tree_view (GTK_TREE_VIEW (ui_tree));
@@ -752,7 +953,7 @@ done:
static int
me_gst_setup_capture_pipeline (const gchar * src_file, const gchar * dest_file,
- gint * encode_status)
+ gint * encode_status, gboolean use_v4l2)
{
int ret = 0;
GstBus *bus = NULL;
@@ -763,7 +964,10 @@ me_gst_setup_capture_pipeline (const gchar * src_file, const gchar * dest_file,
me_gst_cleanup_elements ();
/* create elements */
- gst_source = gst_element_factory_make ("v4l2src", NULL);
+ if ( use_v4l2 )
+ gst_source = gst_element_factory_make ("v4l2src", NULL);
+ else
+ gst_source = gst_element_factory_make ("videotestsrc", NULL);
gst_video_convert = gst_element_factory_make ("ffmpegcolorspace", NULL);
gst_image_enc = gst_element_factory_make ("jpegenc", NULL);
gst_metadata_mux = gst_element_factory_make ("metadatamux", NULL);
@@ -788,6 +992,20 @@ me_gst_setup_capture_pipeline (const gchar * src_file, const gchar * dest_file,
/* set elements's properties */
g_object_set (gst_source, "num-buffers", 1, NULL);
g_object_set (gst_file_sink, "location", dest_file, NULL);
+ if ( app_options & APP_OPT_MUX_EXIF )
+ g_object_set (gst_metadata_mux, "exif", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "exif", FALSE, NULL);
+
+ if ( app_options & APP_OPT_MUX_IPTC )
+ g_object_set (gst_metadata_mux, "iptc", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "iptc", FALSE, NULL);
+
+ if ( app_options & APP_OPT_MUX_XMP )
+ g_object_set (gst_metadata_mux, "xmp", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "xmp", FALSE, NULL);
/* adding and linking elements */
gst_bin_add_many (GST_BIN (gst_pipeline), gst_source, gst_video_convert,
@@ -859,6 +1077,36 @@ me_gst_setup_encode_pipeline (const gchar * src_file, const gchar * dest_file,
g_object_set (gst_source, "location", src_file, NULL);
g_object_set (gst_file_sink, "location", dest_file, NULL);
+ if ( app_options & APP_OPT_DEMUX_EXIF )
+ g_object_set (gst_metadata_demux, "exif", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_demux, "exif", FALSE, NULL);
+
+ if ( app_options & APP_OPT_DEMUX_IPTC )
+ g_object_set (gst_metadata_demux, "iptc", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_demux, "iptc", FALSE, NULL);
+
+ if ( app_options & APP_OPT_DEMUX_XMP )
+ g_object_set (gst_metadata_demux, "xmp", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_demux, "xmp", FALSE, NULL);
+
+ if ( app_options & APP_OPT_MUX_EXIF )
+ g_object_set (gst_metadata_mux, "exif", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "exif", FALSE, NULL);
+
+ if ( app_options & APP_OPT_MUX_IPTC )
+ g_object_set (gst_metadata_mux, "iptc", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "iptc", FALSE, NULL);
+
+ if ( app_options & APP_OPT_MUX_XMP )
+ g_object_set (gst_metadata_mux, "xmp", TRUE, NULL);
+ else
+ g_object_set (gst_metadata_mux, "xmp", FALSE, NULL);
+
/* adding and linking elements */
gst_bin_add_many (GST_BIN (gst_pipeline), gst_source, gst_metadata_demux,
gst_metadata_mux, gst_file_sink, NULL);
@@ -967,34 +1215,47 @@ done:
}
+static void
+process_file() {
+ /* filename for future usage (title and file name to be created) */
+ me_gst_cleanup_elements ();
+
+ if (tag_list) {
+ gst_tag_list_free (tag_list);
+ tag_list = NULL;
+ }
+
+ /* create pipeline */
+ me_gst_setup_view_pipeline (filename->str, ui_drawing->window);
+
+ gst_element_set_state (gst_pipeline, GST_STATE_PLAYING);
+
+ ui_refresh ();
+
+}
+
int
main (int argc, char *argv[])
{
int ret = 0;
- if (argc != 2) {
- fprintf (stderr, "Give the name of a jpeg file as argument\n");
- ret = -5;
- goto done;
+ if (argc >= 2) {
+ if (filename)
+ g_string_free (filename, TRUE);
+ filename = g_string_new (argv[1]);
}
gst_init (&argc, &argv);
gtk_init (&argc, &argv);
- /* filename for future usage (title and file name to be created) */
- if (filename)
- g_string_free (filename, TRUE);
- filename = g_string_new (argv[1]);
-
/* create UI */
if ((ret = ui_create ())) {
goto done;
}
- /* create pipeline */
- me_gst_setup_view_pipeline (argv[1], ui_drawing->window);
-
- gst_element_set_state (gst_pipeline, GST_STATE_PLAYING);
+ if (argc >= 2) {
+ process_file();
+ }
gtk_main ();
diff --git a/tests/icles/metadata_editor.glade b/tests/icles/metadata_editor.glade
index 871d8e6b..521e82f8 100644
--- a/tests/icles/metadata_editor.glade
+++ b/tests/icles/metadata_editor.glade
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.2.0 on Mon Dec 17 11:42:47 2007 by edlima@feisty-laptop-->
+<!--Generated with glade3 3.4.0 on Thu Feb 7 14:44:35 2008 -->
<glade-interface>
<widget class="GtkWindow" id="windowMain">
<property name="width_request">800</property>
@@ -96,6 +96,7 @@
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Insert</property>
+ <property name="response_id">0</property>
<signal name="clicked" handler="on_buttonInsert_clicked"/>
</widget>
<packing>
@@ -110,6 +111,7 @@
<property name="receives_default">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Save File</property>
+ <property name="response_id">0</property>
<signal name="clicked" handler="on_buttonSaveFile_clicked"/>
</widget>
<packing>
@@ -124,13 +126,188 @@
</packing>
</child>
<child>
- <widget class="GtkCheckButton" id="checkbuttonCapture">
+ <widget class="GtkHBox" id="hboxOptions">
<property name="visible">True</property>
- <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">Capture image from camera</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="on_checkbuttonCapture_toggled"/>
+ <child>
+ <widget class="GtkVBox" id="vboxCaptureOptions">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonCaptureV4l2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Capture image from camera</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonCaptureV4l2_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonCaptureTest">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Capture image from videotestsrc</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonCaptureTest_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="buttonOpenFile">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">Open File...</property>
+ <property name="response_id">0</property>
+ <signal name="clicked" handler="on_buttonOpenFile_clicked"/>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vboxOptionsDemux">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkLabel" id="labelDemux">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Demux options:</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxExif">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">exif</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsDemuxExif_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxIptc">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">iptc</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsDemuxIptc_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsDemuxXmp">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">xmp</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsDemuxXmp_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vboxOptionsMux">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <child>
+ <widget class="GtkLabel" id="labelMux">
+ <property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Mux options:</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsMuxExif">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">exif</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsMuxExif_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsMuxIptc">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">iptc</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsMuxIptc_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkCheckButton" id="checkbuttonOptionsMuxXmp">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">xmp</property>
+ <property name="response_id">0</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbuttonOptionsMuxXmp_toggled"/>
+ </widget>
+ <packing>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="position">2</property>
@@ -145,6 +322,7 @@
</child>
</widget>
<packing>
+ <property name="resize">True</property>
<property name="shrink">False</property>
</packing>
</child>