gst/ffmpegcolorspace/: Only set/get on the PAL8 format, ffmpegcolorspace doesn't...
authorSebastian Dröge <slomo@circular-chaos.org>
Mon, 30 Jun 2008 08:29:09 +0000 (08:29 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Mon, 30 Jun 2008 08:29:09 +0000 (08:29 +0000)
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_pixfmt_to_caps):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
(gst_ffmpegcsp_get_unit_size):
Only set/get on the PAL8 format, ffmpegcolorspace doesn't support
it on other formats. Also adjust the unit size only for that format
to not include the palette. Fixes bug #540497.

ChangeLog
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/gstffmpegcolorspace.c

index 092243041375d6ca7ef21073b83030007e4b222f..06483752436e58264d775fe4cced45b8aeb7fa51 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-06-30  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
+
+       * gst/ffmpegcolorspace/gstffmpegcodecmap.c:
+       (gst_ffmpeg_pixfmt_to_caps):
+       * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
+       (gst_ffmpegcsp_get_unit_size):
+       Only set/get on the PAL8 format, ffmpegcolorspace doesn't support
+       it on other formats. Also adjust the unit size only for that format
+       to not include the palette. Fixes bug #540497.
+
 2008-06-29  Stefan Kost  <ensonic@users.sf.net>
 
        * gst/adder/gstadder.c:
index 9d32221ef2fe34b1aeb3d45868ffb2097f7cbb3b..1d436648354b67bdd6aef0f2d27b33539a18117e 100644 (file)
@@ -390,7 +390,7 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context)
             "bpp", G_TYPE_INT, bpp,
             "depth", G_TYPE_INT, depth,
             "endianness", G_TYPE_INT, endianness, NULL);
-        if (context) {
+        if (context && context->pix_fmt == PIX_FMT_PAL8) {
           gst_ffmpeg_set_palette (caps, context);
         }
       }
index dda50a78c50416d7229f0c5fc39b868a2be4d4ad..bc71ef8e7765e1223f2114923460735d526185f2 100644 (file)
@@ -412,7 +412,8 @@ gst_ffmpegcsp_get_unit_size (GstBaseTransform * btrans, GstCaps * caps,
    * GStreamer currently puts it into the caps as 'palette_data' field,
    * so for paletted data the frame size avpicture_get_size() returns is
    * 1024 bytes larger than what GStreamer expects. */
-  if (gst_structure_has_field (structure, "palette_data")) {
+  if (gst_structure_has_field (structure, "palette_data") &&
+      ctx->pix_fmt == PIX_FMT_PAL8) {
     *size -= 4 * 256;           /* = AVPALETTE_SIZE */
   }