gstreamer/ext/tarkin/wavelet.h
Wim Taymans 57ce0321c8 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
2002-02-03 16:30:31 +00:00

55 lines
1.6 KiB
C

#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