diff options
author | Edgard Lima <edgard.lima@indt.org.br> | 2008-02-07 13:59:41 +0000 |
---|---|---|
committer | Edgard Lima <edgard.lima@indt.org.br> | 2008-02-07 13:59:41 +0000 |
commit | 6063b1da97fb2f84ce5e6bd6d013f03b1662e740 (patch) | |
tree | 89d4a27b57b0a1c2fad3daf4436eba7cf8a229a7 | |
parent | 26abf37c0365079b3dffae19c94d6690f2f1584e (diff) | |
download | gst-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-- | ChangeLog | 10 | ||||
-rw-r--r-- | ext/metadata/metadata_mapping.htm | 286 | ||||
-rw-r--r-- | ext/metadata/metadataexif.c | 9 | ||||
-rw-r--r-- | ext/metadata/metadatatags.c | 29 | ||||
-rw-r--r-- | ext/metadata/metadatatags.h | 3 | ||||
-rw-r--r-- | tests/icles/metadata_editor.c | 319 | ||||
-rw-r--r-- | tests/icles/metadata_editor.glade | 190 |
7 files changed, 709 insertions, 137 deletions
@@ -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">"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">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">"capture-contrast"</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">"capture-custom-rendered"</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">"capture-custom-rendered"</FONT></P> + <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">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"<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">"capture-digital-zoom"</FONT></P> + <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">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"<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">"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,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">"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 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">"creator-tool"</FONT></P> + <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_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">"device-make"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"creator-tool"</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">"device-model"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"device-make"</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">"image-height"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"device-model"</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">"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,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">"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">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">"image-yresolution"</FONT></P> + <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">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">"composer"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"image-yresolution"</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">"copyright"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"composer"</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">"description"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"copyright"</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">"title"</FONT></P> + <P CLASS="western" ALIGN=LEFT><FONT SIZE=1 STYLE="font-size: 8pt">"description"</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">"title"</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> |