summaryrefslogtreecommitdiffstats
path: root/gst/flx/gstflxdec.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-01-19 18:26:20 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-01-19 18:26:20 +0000
commit6391a023a668e63788b299546fa9d4d67d96a484 (patch)
tree2e580cf3cf49fb566880a05d5cc06223774f5fed /gst/flx/gstflxdec.c
parent265e8e0358f35bfb443f83eacf62c3d867051aed (diff)
downloadgst-plugins-bad-6391a023a668e63788b299546fa9d4d67d96a484.tar.gz
gst-plugins-bad-6391a023a668e63788b299546fa9d4d67d96a484.tar.bz2
gst-plugins-bad-6391a023a668e63788b299546fa9d4d67d96a484.zip
Small cleanups, break the loop if the buffer is null
Original commit message from CVS: Small cleanups, break the loop if the buffer is null
Diffstat (limited to 'gst/flx/gstflxdec.c')
-rw-r--r--gst/flx/gstflxdec.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
index 814a8551..d04a3110 100644
--- a/gst/flx/gstflxdec.c
+++ b/gst/flx/gstflxdec.c
@@ -180,7 +180,6 @@ gst_flxdec_init(GstFlxDec *flxdec)
GST_PADTEMPLATE_GET (src_video_factory), "src");
gst_element_add_pad(GST_ELEMENT(flxdec),flxdec->srcpad);
- flxdec->buf = NULL;
flxdec->bs = NULL;
flxdec->frame = NULL;
flxdec->delta = NULL;
@@ -545,8 +544,11 @@ gst_flxdec_loop (GstElement *element)
flxdec->state = GST_FLXDEC_PLAYING;
}
else if (flxdec->state == GST_FLXDEC_PLAYING) {
+ GstBuffer *out;
databuf = flx_get_data(flxdec, FlxFrameChunkSize);
+ if (!databuf)
+ return;
flxfh = (FlxFrameChunk *) GST_BUFFER_DATA(databuf);
@@ -560,10 +562,9 @@ gst_flxdec_loop (GstElement *element)
break;
/* create 32 bits output frame */
- flxdec->out = gst_buffer_new();
- GST_BUFFER_DATA(flxdec->out) = g_malloc(flxdec->size * 4);
- GST_BUFFER_SIZE(flxdec->out) = flxdec->size * 4;
-
+ out = gst_buffer_new();
+ GST_BUFFER_DATA(out) = g_malloc(flxdec->size * 4);
+ GST_BUFFER_SIZE(out) = flxdec->size * 4;
/* decode chunks */
flx_decode_chunks(flxdec,
@@ -582,12 +583,12 @@ gst_flxdec_loop (GstElement *element)
/* convert current frame. */
flx_colorspace_convert(flxdec->converter,
GST_BUFFER_DATA(flxdec->frame),
- GST_BUFFER_DATA(flxdec->out));
+ GST_BUFFER_DATA(out));
- GST_BUFFER_TIMESTAMP (flxdec->out) = flxdec->next_time;
+ GST_BUFFER_TIMESTAMP (out) = flxdec->next_time;
flxdec->next_time += flxdec->frame_time;
- gst_pad_push(flxdec->srcpad, flxdec->out);
+ gst_pad_push(flxdec->srcpad, out);
break;
}
@@ -617,7 +618,9 @@ gst_flxdec_change_state (GstElement *element)
break;
case GST_STATE_PAUSED_TO_READY:
gst_buffer_unref (flxdec->frame);
+ flxdec->frame = NULL;
gst_buffer_unref (flxdec->delta);
+ flxdec->delta = NULL;
break;
case GST_STATE_READY_TO_NULL:
gst_bytestream_destroy (flxdec->bs);