mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
Add more tags. Improve test app.
Original commit message from CVS: Add more tags. Improve test app.
This commit is contained in:
parent
26abf37c03
commit
6063b1da97
7 changed files with 741 additions and 169 deletions
10
ChangeLog
10
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:
|
||||
|
|
|
@ -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,23 +200,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_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">"capture-contrast"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-color-space"</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">from
|
||||
-100 to 100:<BR>[-100, -34] – soft ;<BR>[-33, 33] – normal
|
||||
;<BR>[34, 100] – hard </FONT>
|
||||
</P>
|
||||
<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_CONTRAST<BR>0-
|
||||
normal;<BR>1- soft;<BR>2- hard</FONT></P>
|
||||
<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>
|
||||
|
@ -229,20 +227,23 @@
|
|||
<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_CONTRAST</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-custom-rendered"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-contrast"</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">G_TYPE_INT</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">from
|
||||
-100 to 100:<BR>[-100, -34] – soft ;<BR>[-33, 33] – normal
|
||||
;<BR>[34, 100] – hard </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_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>
|
||||
|
@ -256,21 +257,77 @@
|
|||
<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_CUSTOM_RENDERED</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-digital-zoom"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-custom-rendered"</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">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>
|
||||
<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_DIGITAL_ZOOM</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-digital-zoom"</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">Digital
|
||||
zoom ratio"<BR>(zero, means digital zoom not used)</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_DIGITAL_ZOOM_RATIO</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_EXPOSURE_MODE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-exposure-mode"</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-
|
||||
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_EXPOSURE_MODE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
|
@ -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">"capture-shutter-speed"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-scene-capture-type"</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,15 +691,42 @@
|
|||
<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">"capture-white-balance"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-shutter-speed"</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><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><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>
|
||||
</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_WHITE_BALANCE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"capture-white-balance"</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 STYLE="margin-bottom: 0.5cm"><FONT SIZE=1 STYLE="font-size: 8pt">0-
|
||||
Auto; 1- Off </FONT>
|
||||
</P>
|
||||
|
@ -653,120 +737,93 @@
|
|||
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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_CREATOR_TOOL</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"creator-tool"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<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>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_SOFTWARE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10%>
|
||||
<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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MAKE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"device-make"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">The
|
||||
manufacturer of the recording equipment</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_MAKE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DEVICE_MODEL</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"device-model"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_MODEL</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_IMAGE_HEIGHT</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-height"</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">Image
|
||||
height in pixels</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>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
|
@ -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">"image-width"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-height"</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,163 +863,190 @@
|
|||
<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">"image-xresolution"</FONT></P>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-width"</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">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_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>
|
||||
</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_IMAGE_XRESOLUTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-xresolution"</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">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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_X_RESOLUTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_IMAGE_YRESOLUTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-yresolution"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TYPE_FRACTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">EXIF_TAG_Y_RESOLUTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10%>
|
||||
<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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COMPOSER</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"composer"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<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% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_BYLINE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_COPYRIGHT</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"copyright"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">Any
|
||||
necessary copyright notice.</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13%>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_COPYRIGHT_NOTICE</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10%>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:rights”</FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">GST_TAG_DESCRIPTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"description"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=11%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">G_TYPE_STRING</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">A
|
||||
textual description of the data</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=14%>
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13% BGCOLOR="#e6e6ff">
|
||||
<TD WIDTH=13%>
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">IPTC_TAG_CAPTION</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<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%>
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<TD WIDTH=11% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"title"</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=11%>
|
||||
<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%>
|
||||
<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%>
|
||||
<TD WIDTH=14% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=CENTER><FONT SIZE=1 STYLE="font-size: 8pt">-</FONT></P>
|
||||
</TD>
|
||||
<TD WIDTH=13%>
|
||||
<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%>
|
||||
<TD WIDTH=10% BGCOLOR="#e6e6ff">
|
||||
<P CLASS="western" ALIGN=LEFT>“<FONT SIZE=1 STYLE="font-size: 8pt">dc:title”</FONT></P>
|
||||
</TD>
|
||||
</TR>
|
||||
|
|
|
@ -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*/},
|
||||
|
||||
|
|
|
@ -126,6 +126,14 @@ metadata_tags_exif_register (void)
|
|||
GST_TYPE_FRACTION, GST_TAG_CAPTURE_BRIGHTNESS,
|
||||
"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
|
||||
|
@ -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
|
||||
|
@ -151,6 +159,16 @@ metadata_tags_exif_register (void)
|
|||
GST_TYPE_FRACTION, GST_TAG_CAPTURE_DIGITAL_ZOOM, "Digital zoom ratio",
|
||||
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
|
||||
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -62,11 +62,22 @@ enum
|
|||
COL_VALUE,
|
||||
NUM_COLS
|
||||
};
|
||||
/* *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)) {
|
||||
}
|
||||
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))
|
||||
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
|
||||
*/
|
||||
|
@ -519,6 +659,62 @@ ui_refresh ()
|
|||
gtk_window_set_title (GTK_WINDOW (ui_main_window), filename->str);
|
||||
}
|
||||
|
||||
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 ()
|
||||
{
|
||||
|
@ -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,
|
||||
"checkbuttonCapture"));
|
||||
"checkbuttonCaptureV4l2"));
|
||||
|
||||
if (!(ui_main_window && ui_drawing && ui_tree && ui_entry_insert_tag
|
||||
&& ui_entry_insert_value && ui_chk_bnt_capture)) {
|
||||
ui_chk_bnt_capture_test =
|
||||
GTK_TOGGLE_BUTTON (glade_xml_get_widget (ui_glade_xml,
|
||||
"checkbuttonCaptureTest"));
|
||||
|
||||
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 */
|
||||
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 ();
|
||||
|
||||
|
|
|
@ -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="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
|
||||
<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_checkbuttonCapture_toggled"/>
|
||||
<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>
|
||||
|
|
Loading…
Reference in a new issue