Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Unified Diff: src/chdk_live_view.h

Issue 2345493002: Uprev libmtp to 1.1.12 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libmtp@master
Patch Set: Re-upload cl Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/Makefile.in ('k') | src/chdk_ptp.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/chdk_live_view.h
diff --git a/src/chdk_live_view.h b/src/chdk_live_view.h
new file mode 100644
index 0000000000000000000000000000000000000000..8c2066943ecacc8358f9bd7db25d00fed55009f7
--- /dev/null
+++ b/src/chdk_live_view.h
@@ -0,0 +1,99 @@
+#ifndef __LIVE_VIEW_H
+#define __LIVE_VIEW_H
+
+// Note: used in modules and platform independent code.
+// Do not add platform dependent stuff in here (#ifdef/#endif compile options or camera dependent values)
+
+/*
+Protocol notes:
+- Unless otherwise specified, all structure values are packed in camera native (little
+ endian) byte order
+- Frame buffer and palette data are in native camera formats
+ Some documentation may be found at http://chdk.wikia.com/wiki/Frame_buffers
+- The frame buffer descriptions returned may not be correct depending on the
+ camera model and various camera settings (shooting mode, digital zoom, aspect ratio)
+ This may result in partial images, garbage in the "valid" area or incorrect position
+- In some cases, the requested data may not be available. If this happens, the framebuffer
+ or palette data offset will be zero.
+- The frame buffer descriptions are returned regardless of whether the data is available
+*/
+// Live View protocol version
+#define LIVE_VIEW_VERSION_MAJOR 2 // increase only with backwards incompatible changes (and reset minor)
+#define LIVE_VIEW_VERSION_MINOR 1 // increase with extensions of functionality
+
+/*
+protocol version history
+< 2.0 - development versions
+2.0 - initial release, chdk 1.1
+2.1 - added palette type 4 - 16 entry VUYA, 2 bit alpha
+*/
+
+
+// Control flags for determining which data block to transfer
+#define LV_TFR_VIEWPORT 0x01
+#define LV_TFR_BITMAP 0x04
+#define LV_TFR_PALETTE 0x08
+
+enum lv_aspect_rato {
+ LV_ASPECT_4_3,
+ LV_ASPECT_16_9,
+};
+
+/*
+Framebuffer types
+additional values will be added if new data formats appear
+*/
+enum lv_fb_type {
+ LV_FB_YUV8, // 8 bit per element UYVYYY, used for live view
+ LV_FB_PAL8, // 8 bit paletted, used for bitmap overlay. Note palette data and type sent separately
+};
+
+/*
+framebuffer data description
+NOTE YUV pixels widths are based on the number of Y elements
+*/
+typedef struct {
+ int fb_type; // framebuffer type - note future versions might use different structures depending on type
+ int data_start; // offset of data from start of live view header
+ /*
+ buffer width in pixels
+ data size is always buffer_width*visible_height*(buffer bpp based on type)
+ */
+ int buffer_width;
+ /*
+ visible size in pixels
+ describes data within the buffer which contains image data to be displayed
+ any offsets within buffer data are added before sending, so the top left
+ pixel is always the first first byte of data.
+ width must always be <= buffer_width
+ if buffer_width is > width, the additional data should be skipped
+ visible_height also defines the number of data rows
+ */
+ int visible_width;
+ int visible_height;
+
+ /*
+ margins
+ pixels offsets needed to replicate display position on cameras screen
+ not used for any buffer offsets
+ */
+ int margin_left;
+ int margin_top;
+
+ int margin_right;
+ int margin_bot;
+} lv_framebuffer_desc;
+
+typedef struct {
+ // live view sub-protocol version
+ int version_major;
+ int version_minor;
+ int lcd_aspect_ratio; // physical aspect ratio of LCD
+ int palette_type;
+ int palette_data_start;
+ // framebuffer descriptions are given as offsets, to allow expanding the structures in minor protocol changes
+ int vp_desc_start;
+ int bm_desc_start;
+} lv_data_header;
+
+#endif // __LIVE_VIEW_H
« no previous file with comments | « src/Makefile.in ('k') | src/chdk_ptp.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698