From 06862c4645c1d0eeb66b4091b5c1c4e62d629137 Mon Sep 17 00:00:00 2001
From: "Ronald S. Bultje" <rbultje@ronald.bitfreak.net>
Date: Tue, 25 Jan 2005 15:17:23 +0000
Subject: [PATCH] gst-libs/gst/riff/riff-media.c: Add extradata to huffyuv
 (fixes #165013).

Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_video_caps_with_data):
Add extradata to huffyuv (fixes #165013).
* gst-libs/gst/riff/riff-read.c:
(gst_riff_read_strf_vids_with_data):
Fix extradata extraction if it is in the chunk size.
---
 ChangeLog                      | 9 +++++++++
 gst-libs/gst/riff/riff-media.c | 4 ++++
 gst-libs/gst/riff/riff-read.c  | 3 +++
 3 files changed, 16 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 91555503f7e..b6e0567b76a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-01-25  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
+
+	* gst-libs/gst/riff/riff-media.c:
+	(gst_riff_create_video_caps_with_data):
+	  Add extradata to huffyuv (fixes #165013).
+	* gst-libs/gst/riff/riff-read.c:
+	(gst_riff_read_strf_vids_with_data):
+	  Fix extradata extraction if it is in the chunk size.
+
 2005-01-25  Edward Hervey  <bilboed@bilboed.com>
 
 	Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index 4a1807d03c7..b93ff869987 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -94,6 +94,10 @@ gst_riff_create_video_caps_with_data (guint32 codec_fcc,
 
     case GST_MAKE_FOURCC ('H', 'F', 'Y', 'U'):
       caps = gst_caps_new_simple ("video/x-huffyuv", NULL);
+      if (strf) {
+        gst_caps_set_simple (caps, "bpp",
+            G_TYPE_INT, (int) strf->bit_cnt, NULL);
+      }
       if (codec_name)
         *codec_name = g_strdup ("Huffman Lossless Codec");
       break;
diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c
index fbbbae26a6c..21cdbbca4ac 100644
--- a/gst-libs/gst/riff/riff-read.c
+++ b/gst-libs/gst/riff/riff-read.c
@@ -600,6 +600,9 @@ gst_riff_read_strf_vids_with_data (GstRiffRead * riff,
     if (len > 0) {
       *extradata = gst_buffer_create_sub (buf, strf->size, len);
     }
+  } else if (strf->size > sizeof (gst_riff_strf_vids)) {
+    *extradata = gst_buffer_create_sub (buf,
+        sizeof (gst_riff_strf_vids), strf->size - sizeof (gst_riff_strf_vids));
   }
 
   /* debug */