[aravis] gv_stream: accept packet_type=0x0100 as valid stream packets.



commit b0011f70a7f04d9064be0fa5d8f9a589329fd97c
Author: Emmanuel Pacaud <emmanuel gnome org>
Date:   Sun Jun 9 22:16:50 2013 +0200

    gv_stream: accept packet_type=0x0100 as valid stream packets.
    
    This adds support for resent packets emited by BlackFly PointGrey
    cameras.

 src/arvgvsp.c     |    4 ++--
 src/arvgvsp.h     |    2 ++
 src/arvgvstream.c |    4 +++-
 3 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/src/arvgvsp.c b/src/arvgvsp.c
index 7ff26ae..91cc469 100644
--- a/src/arvgvsp.c
+++ b/src/arvgvsp.c
@@ -169,8 +169,8 @@ arv_gvsp_packet_to_string (const ArvGvspPacket *packet, size_t packet_size)
        packet_type = arv_gvsp_packet_get_packet_type (packet);
        content_type = arv_gvsp_packet_get_content_type (packet);
 
-       g_string_append_printf (string, "packet_type  = %s\n", arv_gvsp_packet_type_to_string (packet_type));
-       g_string_append_printf (string, "content_type = %s\n", arv_gvsp_content_type_to_string 
(content_type));
+       g_string_append_printf (string, "packet_type  = %s (%04x)\n", arv_gvsp_packet_type_to_string 
(packet_type), packet_type);
+       g_string_append_printf (string, "content_type = %s (%04x)\n", arv_gvsp_content_type_to_string 
(content_type), content_type);
 
        switch (content_type) {
                case ARV_GVSP_CONTENT_TYPE_DATA_LEADER:
diff --git a/src/arvgvsp.h b/src/arvgvsp.h
index 063f327..06e5606 100644
--- a/src/arvgvsp.h
+++ b/src/arvgvsp.h
@@ -37,11 +37,13 @@ G_BEGIN_DECLS
 /**
  * ArvGvspPacketType:
  * @ARV_GVSP_PACKET_TYPE_OK: valid packet
+ * @ARV_GVSP_PACKET_TYPE_RESEND: resent packet (BlackFly PointGrey camera support)
  * @ARV_GVSP_PACKET_TYPE_ERROR: error packet, indicating invalid resend request
  */
 
 typedef enum {
        ARV_GVSP_PACKET_TYPE_OK =               0x0000,
+       ARV_GVSP_PACKET_TYPE_RESEND =           0x0100,
        ARV_GVSP_PACKET_TYPE_ERROR =            0x800c
 } ArvGvspPacketType;
 
diff --git a/src/arvgvstream.c b/src/arvgvstream.c
index 19d9bab..c1a94e3 100644
--- a/src/arvgvstream.c
+++ b/src/arvgvstream.c
@@ -615,8 +615,10 @@ arv_gv_stream_thread (void *data)
                        frame = _find_frame_data (thread_data, frame_id, packet, packet_id, read_count, 
time_us);
 
                        if (frame != NULL) {
+                               ArvGvspPacketType packet_type = arv_gvsp_packet_get_packet_type (packet);
 
-                               if (arv_gvsp_packet_get_packet_type (packet) != ARV_GVSP_PACKET_TYPE_OK) {
+                               if (packet_type != ARV_GVSP_PACKET_TYPE_OK &&
+                                   packet_type != ARV_GVSP_PACKET_TYPE_RESEND) {
                                        arv_debug_stream_thread ("[GvStream::stream_thread]"
                                                                 " Error packet at dt = %Lu, packet id = %u"
                                                                 " frame id = %u",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]