From f0e7f52fd60c8f46101c3632e89a325fc7476344 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" 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 91555503f7..b6e0567b76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-01-25 Ronald S. Bultje + + * 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 Reviewed by: Ronald S. Bultje diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c index 4a1807d03c..b93ff86998 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 fbbbae26a6..21cdbbca4a 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 */