From aaeff261897b32217607394803f6d5bd348ee48e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 27 Jun 2011 09:41:40 +0200 Subject: [PATCH] basevideo: Add the caps to the GstVideoState and clean up caps/codec_data properly --- omx/gstbasevideocodec.c | 3 +++ omx/gstbasevideocodec.h | 1 + omx/gstbasevideodecoder.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/omx/gstbasevideocodec.c b/omx/gstbasevideocodec.c index 07085f7..0e229a8 100644 --- a/omx/gstbasevideocodec.c +++ b/omx/gstbasevideocodec.c @@ -114,6 +114,9 @@ gst_base_video_codec_reset (GstBaseVideoCodec * base_video_codec) base_video_codec->bytes = 0; base_video_codec->time = 0; + + gst_buffer_replace (&base_video_codec->state.codec_data, NULL); + gst_caps_replace (&base_video_codec->state.caps, NULL); } static void diff --git a/omx/gstbasevideocodec.h b/omx/gstbasevideocodec.h index 9bada93..92dab47 100644 --- a/omx/gstbasevideocodec.h +++ b/omx/gstbasevideocodec.h @@ -86,6 +86,7 @@ typedef struct _GstBaseVideoCodecClass GstBaseVideoCodecClass; struct _GstVideoState { + GstCaps *caps; GstVideoFormat format; int width, height; int fps_n, fps_d; diff --git a/omx/gstbasevideodecoder.c b/omx/gstbasevideodecoder.c index aca8d5c..b1cb53e 100644 --- a/omx/gstbasevideodecoder.c +++ b/omx/gstbasevideodecoder.c @@ -255,8 +255,12 @@ gst_base_video_decoder_sink_setcaps (GstPad * pad, GstCaps * caps) state = &GST_BASE_VIDEO_CODEC (base_video_decoder)->state; + gst_buffer_replace (&state->codec_data, NULL); + gst_caps_replace (&state->caps, NULL); memset (state, 0, sizeof (GstVideoState)); + state->caps = gst_caps_ref (caps); + structure = gst_caps_get_structure (caps, 0); gst_video_format_parse_caps (caps, NULL, &state->width, &state->height); -- 2.7.4