#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "common.h"#include "avcodec.h"#include "dsputil.h"#include "mpegvideo.h"#include "indeo3data.h"

Go to the source code of this file.
Data Structures | |
| struct | YUVBufs |
| struct | Indeo3DecodeContext |
| struct | ustr_t |
Defines | |
| #define | min(a, b) ((a) < (b) ? (a) : (b)) |
| #define | LV1_CHECK(buf1, rle_v3, lv1, lp2) |
| #define | RLE_V3_CHECK(buf1, rle_v1, rle_v2, rle_v3) |
| #define | LP2_CHECK(buf1, rle_v3, lp2) |
| #define | RLE_V2_CHECK(buf1, rle_v2, rle_v3, lp2) |
Functions | |
| static void | build_modpred (Indeo3DecodeContext *s) |
| static void | iv_Decode_Chunk (Indeo3DecodeContext *s, unsigned char *cur, unsigned char *ref, int width, int height, unsigned char *buf1, long fflags2, unsigned char *hdr, unsigned char *buf2, int min_width_160) |
| static void | iv_alloc_frames (Indeo3DecodeContext *s) |
| static void | iv_free_func (Indeo3DecodeContext *s) |
| static unsigned long | iv_decode_frame (Indeo3DecodeContext *s, unsigned char *buf, int buf_size) |
| static int | indeo3_decode_init (AVCodecContext *avctx) |
| static int | indeo3_decode_frame (AVCodecContext *avctx, void *data, int *data_size, unsigned char *buf, int buf_size) |
| static int | indeo3_decode_end (AVCodecContext *avctx) |
Variables | |
| static int | corrector_type_0 [24] |
| static int | corrector_type_2 [8] = { 9, 7, 6, 8, 5, 4, 3, 2 } |
| AVCodec | indeo3_decoder |
| #define LP2_CHECK | ( | buf1, | |||
| rle_v3, | |||||
| lp2 | ) |
Value:
if(lp2 == 0 && rle_v3 != 0) \ rle_v3 = 0; \ else { \ buf1--; \ rle_v3 = 1; \ }
Definition at line 294 of file indeo3.c.
Referenced by iv_Decode_Chunk().
| #define LV1_CHECK | ( | buf1, | |||
| rle_v3, | |||||
| lv1, | |||||
| lp2 | ) |
Value:
if((lv1 & 0x80) != 0) { \ if(rle_v3 != 0) \ rle_v3 = 0; \ else { \ rle_v3 = 1; \ buf1 -= 2; \ } \ } \ lp2 = 4;
Definition at line 269 of file indeo3.c.
Referenced by iv_Decode_Chunk().
Definition at line 99 of file indeo3.c.
Referenced by PerspectiveCanvas::button_press_event(), HistogramSlider::button_press_event(), PluginAClientWindow::create_objects(), dering(), dering_altivec(), direct_search(), divide_index(), do_a_deblock_C(), MWindow::fit_autos(), foveon_avg(), foveon_interpolate(), ColorBalanceWhite::handle_event(), ZoomTextBox::handle_event(), HSV::hsv_to_rgb(), isVertMinMaxOk_C(), iv_decode_frame(), lossless_jpeg_load_raw(), median4(), mpeg3_update_index(), pred_intra_mode(), IVTCMain::process_realtime(), psycho_1_minimum_mask(), ThresholdUnit::render_data(), HSV::rgb_to_hsv(), scale_colors(), Asset::set_timecode(), and HistogramSlider::update().
| #define RLE_V2_CHECK | ( | buf1, | |||
| rle_v2, | |||||
| rle_v3, | |||||
| lp2 | ) |
Value:
rle_v2--; \
if(rle_v2 == 0) { \
rle_v3 = 0; \
buf1 += 2; \
} \
lp2 = 4;
Definition at line 303 of file indeo3.c.
Referenced by iv_Decode_Chunk().
| #define RLE_V3_CHECK | ( | buf1, | |||
| rle_v1, | |||||
| rle_v2, | |||||
| rle_v3 | ) |
Value:
if(rle_v3 == 0) { \ rle_v2 = *buf1; \ rle_v1 = 1; \ if(rle_v2 > 32) { \ rle_v2 -= 32; \ rle_v1 = 0; \ } \ rle_v3 = 1; \ } \ buf1--;
Definition at line 281 of file indeo3.c.
Referenced by iv_Decode_Chunk().
| static void build_modpred | ( | Indeo3DecodeContext * | s | ) | [static] |
Definition at line 64 of file indeo3.c.
References av_malloc(), Indeo3DecodeContext::corrector_type, corrector_type_0, corrector_type_2, and Indeo3DecodeContext::ModPred.
Referenced by indeo3_decode_init().

| static int indeo3_decode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 1131 of file indeo3.c.
References iv_free_func(), AVCodecContext::priv_data, and s.

| static int indeo3_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| unsigned char * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 1079 of file indeo3.c.
References av_log(), AV_LOG_ERROR, Indeo3DecodeContext::avctx, CODEC_FLAG_GRAY, Indeo3DecodeContext::cur_frame, AVCodecContext::flags, Indeo3DecodeContext::frame, AVCodecContext::get_buffer, Indeo3DecodeContext::height, iv_decode_frame(), memcpy, AVCodecContext::priv_data, AVCodecContext::release_buffer, s, src, YUVBufs::Ubuf, YUVBufs::uv_w, YUVBufs::Vbuf, YUVBufs::y_w, and YUVBufs::Ybuf.

| static int indeo3_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 1063 of file indeo3.c.
References Indeo3DecodeContext::avctx, build_modpred(), AVCodecContext::has_b_frames, AVCodecContext::height, Indeo3DecodeContext::height, iv_alloc_frames(), AVCodecContext::pix_fmt, PIX_FMT_YUV410P, AVCodecContext::priv_data, s, AVCodecContext::width, and Indeo3DecodeContext::width.

| static void iv_alloc_frames | ( | Indeo3DecodeContext * | s | ) | [static] |
Definition at line 103 of file indeo3.c.
References av_malloc(), av_realloc(), Indeo3DecodeContext::height, Indeo3DecodeContext::iv_frame, NULL, YUVBufs::the_buf, YUVBufs::the_buf_size, YUVBufs::Ubuf, YUVBufs::uv_h, YUVBufs::uv_w, YUVBufs::Vbuf, Indeo3DecodeContext::width, YUVBufs::y_h, YUVBufs::y_w, and YUVBufs::Ybuf.
Referenced by indeo3_decode_init().

| static void iv_Decode_Chunk | ( | Indeo3DecodeContext * | s, | |
| unsigned char * | cur, | |||
| unsigned char * | ref, | |||
| int | width, | |||
| int | height, | |||
| unsigned char * | buf1, | |||
| long | fflags2, | |||
| unsigned char * | hdr, | |||
| unsigned char * | buf2, | |||
| int | min_width_160 | |||
| ) | [static] |
Definition at line 311 of file indeo3.c.
References av_log(), AV_LOG_ERROR, Indeo3DecodeContext::avctx, correction, correctionhighorder, correctionloworder, Indeo3DecodeContext::corrector_type, ustr_t::height, le2me_16, le2me_32, LP2_CHECK, LV1_CHECK, memcpy, Indeo3DecodeContext::ModPred, NULL, RLE_V2_CHECK, RLE_V3_CHECK, ustr_t::split_direction, ustr_t::split_flag, ustr_t::usl7, ustr_t::width, ustr_t::xpos, and ustr_t::ypos.
Referenced by iv_decode_frame().

| static unsigned long iv_decode_frame | ( | Indeo3DecodeContext * | s, | |
| unsigned char * | buf, | |||
| int | buf_size | |||
| ) | [static] |
Definition at line 181 of file indeo3.c.
References avcodec_check_dimensions(), Indeo3DecodeContext::avctx, CODEC_FLAG_GRAY, Indeo3DecodeContext::cur_frame, AVCodecContext::flags, iv_Decode_Chunk(), Indeo3DecodeContext::iv_frame, le2me_16, le2me_32, min, NULL, Indeo3DecodeContext::ref_frame, YUVBufs::Ubuf, YUVBufs::Vbuf, and YUVBufs::Ybuf.
Referenced by indeo3_decode_frame().

| static void iv_free_func | ( | Indeo3DecodeContext * | s | ) | [static] |
Definition at line 161 of file indeo3.c.
References av_free(), Indeo3DecodeContext::corrector_type, Indeo3DecodeContext::iv_frame, Indeo3DecodeContext::ModPred, NULL, YUVBufs::the_buf, YUVBufs::the_buf_size, YUVBufs::Ubuf, YUVBufs::uv_h, YUVBufs::uv_w, YUVBufs::Vbuf, YUVBufs::y_h, YUVBufs::y_w, and YUVBufs::Ybuf.
Referenced by indeo3_decode_end().

int corrector_type_0[24] [static] |
Initial value:
{
195, 159, 133, 115, 101, 93, 87, 77,
195, 159, 133, 115, 101, 93, 87, 77,
128, 79, 79, 79, 79, 79, 79, 79
}
Definition at line 56 of file indeo3.c.
Referenced by build_modpred().
int corrector_type_2[8] = { 9, 7, 6, 8, 5, 4, 3, 2 } [static] |
Initial value:
{
"indeo3",
CODEC_TYPE_VIDEO,
CODEC_ID_INDEO3,
sizeof(Indeo3DecodeContext),
indeo3_decode_init,
NULL,
indeo3_decode_end,
indeo3_decode_frame,
0,
NULL
}
Definition at line 1140 of file indeo3.c.
Referenced by avcodec_register_all().
1.5.5