Commit 53f3d5be authored by Luca Ognibene's avatar Luca Ognibene

ext/ffmpeg/gstffmpegdec.c (struct _GstFFMpegDec)

Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c (struct _GstFFMpegDec)
(gst_ffmpegdec_open, gst_ffmpegdec_negotiate):
Cache the pixel format value and renegotiate the pipeline
if this value changes. Fixes segfault when decoding a
stream with different colorspaces like a sequence of jpeg.
parent 5f377234
2005-07-11 Luca Ognibene <luogni@tin.it>
* ext/ffmpeg/gstffmpegdec.c (struct _GstFFMpegDec)
(gst_ffmpegdec_open, gst_ffmpegdec_negotiate):
Cache the pixel format value and renegotiate the pipeline
if this value changes. Fixes segfault when decoding a
stream with different colorspaces like a sequence of jpeg.
2005-07-11 daniel fischer <dan@f3c.com>
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
......
......@@ -54,6 +54,7 @@ struct _GstFFMpegDec
union {
struct {
gint width, height, fps, fps_base;
enum PixelFormat pix_fmt;
} video;
struct {
gint channels, samplerate;
......@@ -414,6 +415,7 @@ gst_ffmpegdec_open (GstFFMpegDec *ffmpegdec)
ffmpegdec->format.video.height = 0;
ffmpegdec->format.video.fps = 0;
ffmpegdec->format.video.fps_base = 0;
ffmpegdec->format.video.pix_fmt = PIX_FMT_NB;
break;
case CODEC_TYPE_AUDIO:
ffmpegdec->format.audio.samplerate = 0;
......@@ -583,7 +585,8 @@ gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec)
ffmpegdec->format.video.height == ffmpegdec->context->height &&
ffmpegdec->format.video.fps == ffmpegdec->context->frame_rate &&
ffmpegdec->format.video.fps_base ==
ffmpegdec->context->frame_rate_base)
ffmpegdec->context->frame_rate_base &&
ffmpegdec->format.video.pix_fmt == ffmpegdec->context->pix_fmt)
return TRUE;
GST_DEBUG ("Renegotiating video from %dx%d@%d/%dfps to %dx%d@%d/%dfps",
ffmpegdec->format.video.width, ffmpegdec->format.video.height,
......@@ -594,6 +597,7 @@ gst_ffmpegdec_negotiate (GstFFMpegDec * ffmpegdec)
ffmpegdec->format.video.height = ffmpegdec->context->height;
ffmpegdec->format.video.fps = ffmpegdec->context->frame_rate;
ffmpegdec->format.video.fps_base = ffmpegdec->context->frame_rate_base;
ffmpegdec->format.video.pix_fmt = ffmpegdec->context->pix_fmt;
break;
case CODEC_TYPE_AUDIO:
if (ffmpegdec->format.audio.samplerate ==
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment