From 0c35e0c4db9351cd6a5f3ddf6f80a6e4eb2ddd66 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Thu, 8 Apr 2010 12:56:09 +0300 Subject: [PATCH] matroskamux: use riff lib more Remove BITMAPINFOHEADER and use the one from riff-lib. Also remove the WAVEFORMATEX_SIZE define and use a sizeof together with the respective struct. Besides better code reuse this lessens the ununsed symbols in the docs. --- gst/matroska/matroska-mux.c | 28 ++++++++++++++-------------- gst/matroska/matroska-mux.h | 16 ---------------- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c index 9040a64..fd51f9b 100644 --- a/gst/matroska/matroska-mux.c +++ b/gst/matroska/matroska-mux.c @@ -741,8 +741,8 @@ skip_details: || !strcmp (mimetype, "video/x-h263") || !strcmp (mimetype, "video/x-msmpeg") || !strcmp (mimetype, "video/x-wmv")) { - BITMAPINFOHEADER *bih; - gint size = sizeof (BITMAPINFOHEADER); + gst_riff_strf_vids *bih; + gint size = sizeof (gst_riff_strf_vids); guint32 fourcc = 0; if (!strcmp (mimetype, "video/x-xvid")) @@ -802,22 +802,22 @@ skip_details: if (!fourcc) goto refuse_caps; - bih = g_new0 (BITMAPINFOHEADER, 1); - GST_WRITE_UINT32_LE (&bih->bi_size, size); - GST_WRITE_UINT32_LE (&bih->bi_width, videocontext->pixel_width); - GST_WRITE_UINT32_LE (&bih->bi_height, videocontext->pixel_height); - GST_WRITE_UINT32_LE (&bih->bi_compression, fourcc); - GST_WRITE_UINT16_LE (&bih->bi_planes, (guint16) 1); - GST_WRITE_UINT16_LE (&bih->bi_bit_count, (guint16) 24); - GST_WRITE_UINT32_LE (&bih->bi_size_image, videocontext->pixel_width * + bih = g_new0 (gst_riff_strf_vids, 1); + GST_WRITE_UINT32_LE (&bih->size, size); + GST_WRITE_UINT32_LE (&bih->width, videocontext->pixel_width); + GST_WRITE_UINT32_LE (&bih->height, videocontext->pixel_height); + GST_WRITE_UINT32_LE (&bih->compression, fourcc); + GST_WRITE_UINT16_LE (&bih->planes, (guint16) 1); + GST_WRITE_UINT16_LE (&bih->bit_cnt, (guint16) 24); + GST_WRITE_UINT32_LE (&bih->image_size, videocontext->pixel_width * videocontext->pixel_height * 3); /* process codec private/initialization data, if any */ if (codec_buf) { size += GST_BUFFER_SIZE (codec_buf); bih = g_realloc (bih, size); - GST_WRITE_UINT32_LE (&bih->bi_size, size); - memcpy ((guint8 *) bih + sizeof (BITMAPINFOHEADER), + GST_WRITE_UINT32_LE (&bih->size, size); + memcpy ((guint8 *) bih + sizeof (gst_riff_strf_vids), GST_BUFFER_DATA (codec_buf), GST_BUFFER_SIZE (codec_buf)); } @@ -1624,7 +1624,7 @@ gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) if (gst_structure_get_int (structure, "depth", &depth)) audiocontext->bitdepth = depth; - codec_priv_size = WAVEFORMATEX_SIZE; + codec_priv_size = sizeof (gst_riff_strf_auds); if (buf) codec_priv_size += GST_BUFFER_SIZE (buf); @@ -1643,7 +1643,7 @@ gst_matroska_mux_audio_pad_setcaps (GstPad * pad, GstCaps * caps) /* process codec private/initialization data, if any */ if (buf) { - memcpy ((guint8 *) codec_priv + WAVEFORMATEX_SIZE, + memcpy ((guint8 *) codec_priv + sizeof (gst_riff_strf_auds), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); } diff --git a/gst/matroska/matroska-mux.h b/gst/matroska/matroska-mux.h index a44ae84..201df0c 100644 --- a/gst/matroska/matroska-mux.h +++ b/gst/matroska/matroska-mux.h @@ -42,22 +42,6 @@ G_BEGIN_DECLS #define GST_IS_MATROSKA_MUX_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MATROSKA_MUX)) -typedef struct _BITMAPINFOHEADER { - guint32 bi_size; - guint32 bi_width; - guint32 bi_height; - guint16 bi_planes; - guint16 bi_bit_count; - guint32 bi_compression; - guint32 bi_size_image; - guint32 bi_x_pels_per_meter; - guint32 bi_y_pels_per_meter; - guint32 bi_clr_used; - guint32 bi_clr_important; -} BITMAPINFOHEADER; - -#define WAVEFORMATEX_SIZE 18 - typedef enum { GST_MATROSKA_MUX_STATE_START, GST_MATROSKA_MUX_STATE_HEADER, -- 2.7.4