diff options
author | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-12-16 11:39:00 +0000 |
---|---|---|
committer | Ronald S. Bultje <rbultje@ronald.bitfreak.net> | 2004-12-16 11:39:00 +0000 |
commit | 2439970ffd86abc943a7d67679aad645e2230f70 (patch) | |
tree | b02d2cd6f280b6695dfbe583442ec3dbf03a5521 /gst-libs/gst/resample | |
parent | 839354ce28f9aeb3d912e1d3398f3d64f98a9717 (diff) | |
download | gst-plugins-bad-2439970ffd86abc943a7d67679aad645e2230f70.tar.gz gst-plugins-bad-2439970ffd86abc943a7d67679aad645e2230f70.tar.bz2 gst-plugins-bad-2439970ffd86abc943a7d67679aad645e2230f70.zip |
gst/: Fix memleak (#159215).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst-libs/gst/resample/resample.c: (gst_resample_close):
* gst-libs/gst/resample/resample.h:
* gst/audioscale/gstaudioscale.c:
Fix memleak (#159215).
Diffstat (limited to 'gst-libs/gst/resample')
-rw-r--r-- | gst-libs/gst/resample/resample.c | 22 | ||||
-rw-r--r-- | gst-libs/gst/resample/resample.h | 3 |
2 files changed, 20 insertions, 5 deletions
diff --git a/gst-libs/gst/resample/resample.c b/gst-libs/gst/resample/resample.c index 63ade390..cd899159 100644 --- a/gst-libs/gst/resample/resample.c +++ b/gst-libs/gst/resample/resample.c @@ -133,6 +133,22 @@ gst_resample_reinit (gst_resample_t * r) } } +void +gst_resample_close (gst_resample_t * r) +{ + if (r->buffer) { + free (r->buffer); + r->buffer = NULL; + r->buffer_len = 0; + } + if (r->hack_union.s.out_tmp) { + free (r->hack_union.s.out_tmp); + r->hack_union.s.out_tmp = NULL; + r->hack_union.s.out_tmp_len = 0; + } + +} + /* * Prepare to be confused. * @@ -252,8 +268,7 @@ gst_resample_nearest_s16 (gst_resample_t * r) SCALE_LOOP (o_ptr[0] = i_ptr[0], 1); break; case 2: - SCALE_LOOP (o_ptr[0] = i_ptr[0]; - o_ptr[1] = i_ptr[1], 2); + SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2); break; default: { @@ -612,8 +627,7 @@ gst_resample_nearest_float (gst_resample_t * r) SCALE_LOOP (o_ptr[0] = i_ptr[0], 1); break; case 2: - SCALE_LOOP (o_ptr[0] = i_ptr[0]; - o_ptr[1] = i_ptr[1], 2); + SCALE_LOOP (o_ptr[0] = i_ptr[0]; o_ptr[1] = i_ptr[1], 2); break; default: { diff --git a/gst-libs/gst/resample/resample.h b/gst-libs/gst/resample/resample.h index 34d6f9d6..e8879514 100644 --- a/gst-libs/gst/resample/resample.h +++ b/gst-libs/gst/resample/resample.h @@ -98,7 +98,8 @@ void gst_resample_init(gst_resample_t *r); void gst_resample_reinit(gst_resample_t *r); +void gst_resample_close (gst_resample_t * r); + void gst_resample_scale(gst_resample_t *r, void *i_buf, unsigned int size); #endif /* __GST_RESAMPLE_H__ */ - |