diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-02-03 16:30:31 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-02-03 16:30:31 +0000 |
commit | 57ce0321c8971f964008920003a3e8b19649df85 (patch) | |
tree | babe3c6e4473b4f06142b587db73f2212ec44c42 /ext/tarkin/wavelet.h | |
parent | b1fea046869baeed3c6835f20db9f5de9fd912d2 (diff) | |
download | gst-plugins-bad-57ce0321c8971f964008920003a3e8b19649df85.tar.gz gst-plugins-bad-57ce0321c8971f964008920003a3e8b19649df85.tar.bz2 gst-plugins-bad-57ce0321c8971f964008920003a3e8b19649df85.zip |
Added a tarkin encoder/decoder plugin.
Original commit message from CVS:
Added a tarkin encoder/decoder plugin.
I moved the tarking CVS code in here temporarily until they have a
library (hence this plugin is in ext)
test with:
./gst-launch filesrc location=/opt/data/shihad.mpg ! mpegdemux video_00! { queue ! mpeg2dec ! colorspace ! tarkinenc bitrate=3000 ! disksink location=out.ogg }
./gst-launch filesrc location=out.ogg ! tarkindec ! colorspace ! xvideosink
Diffstat (limited to 'ext/tarkin/wavelet.h')
-rw-r--r-- | ext/tarkin/wavelet.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ext/tarkin/wavelet.h b/ext/tarkin/wavelet.h new file mode 100644 index 00000000..914c2799 --- /dev/null +++ b/ext/tarkin/wavelet.h @@ -0,0 +1,55 @@ +#ifndef __WAVELET_H +#define __WAVELET_H + +#include <stdint.h> + + +typedef struct { + TYPE *data; + uint32_t width; + uint32_t height; + uint32_t frames; + uint32_t scales; + uint32_t *w; + uint32_t *h; + uint32_t *f; + uint32_t (*offset)[8]; + TYPE *scratchbuf; +} Wavelet3DBuf; + + +extern Wavelet3DBuf* wavelet_3d_buf_new (uint32_t width, uint32_t height, + uint32_t frames); + +extern void wavelet_3d_buf_destroy (Wavelet3DBuf* buf); + +/** + * transform buf->data + * a_moments is the number of vanishing moments of the analyzing + * highpass filter, + * s_moments the one of the synthesizing lowpass filter. + */ +extern void wavelet_3d_buf_fwd_xform (Wavelet3DBuf* buf, + int a_moments, int s_moments); +extern void wavelet_3d_buf_inv_xform (Wavelet3DBuf* buf, + int a_moments, int s_moments); + +extern int wavelet_3d_buf_encode_coeff (const Wavelet3DBuf* buf, + uint8_t *bitstream, + uint32_t limit); + +extern void wavelet_3d_buf_decode_coeff (Wavelet3DBuf* buf, + uint8_t *bitstream, + uint32_t limit); + +#if defined(DBG_XFORM) +extern void wavelet_3d_buf_dump (char *fmt, + uint32_t first_frame_in_buf, + uint32_t id, + Wavelet3DBuf* buf, + int16_t offset); +#else +#define wavelet_3d_buf_dump(x...) +#endif + +#endif |