Commit 6e9f3f3b authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '238614de'

* commit '238614de':
  cdgraphics: do not rely on get_buffer() initializing the frame.
  svq1: replace struct svq1_frame_size with an array.
  vf_yadif: silence a warning.

Conflicts:
	libavcodec/svq1dec.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents fadf8459 238614de
......@@ -1856,7 +1856,7 @@ static int alloc_buffer(FrameBuffer **pool, AVCodecContext *s, FrameBuffer **pbu
/* XXX this shouldn't be needed, but some tests break without this line
* those decoders are buggy and need to be fixed.
* the following tests fail:
* cdgraphics, ansi, aasc, fraps-v1, qtrle-1bit
* ansi, aasc, fraps-v1, qtrle-1bit
*/
memset(buf->base[0], 128, ret);
......
......@@ -291,6 +291,8 @@ static int cdg_decode_frame(AVCodecContext *avctx,
av_log(avctx, AV_LOG_ERROR, "reget_buffer() failed\n");
return ret;
}
if (!avctx->frame_number)
memset(cc->frame.data[0], 0, cc->frame.linesize[0] * avctx->height);
command = bytestream_get_byte(&buf);
inst = bytestream_get_byte(&buf);
......
......@@ -37,7 +37,7 @@
#include "svq1_vlc.h"
/* standard video sizes */
const struct svq1_frame_size ff_svq1_frame_size_table[7] = {
const uint16_t ff_svq1_frame_size_table[7][2] = {
{ 160, 120 }, { 128, 96 }, { 176, 144 }, { 352, 288 },
{ 704, 576 }, { 240, 180 }, { 320, 240 }
};
......@@ -42,11 +42,6 @@
#define SVQ1_BLOCK_INTER_4V 2
#define SVQ1_BLOCK_INTRA 3
struct svq1_frame_size {
uint16_t width;
uint16_t height;
};
uint16_t ff_svq1_packet_checksum(const uint8_t *data,
const int length, int value);
......@@ -59,6 +54,6 @@ extern const uint8_t ff_svq1_inter_multistage_vlc[6][8][2];
extern const uint16_t ff_svq1_intra_mean_vlc[256][2];
extern const uint16_t ff_svq1_inter_mean_vlc[512][2];
extern const struct svq1_frame_size ff_svq1_frame_size_table[7];
extern const uint16_t ff_svq1_frame_size_table[7][2];
#endif /* AVCODEC_SVQ1_H */
......@@ -575,8 +575,8 @@ static int svq1_decode_frame_header(AVCodecContext *avctx, AVFrame *frame)
return AVERROR_INVALIDDATA;
} else {
/* get width, height from table */
width = ff_svq1_frame_size_table[frame_size_code].width;
height = ff_svq1_frame_size_table[frame_size_code].height;
width = ff_svq1_frame_size_table[frame_size_code][0];
height = ff_svq1_frame_size_table[frame_size_code][1];
}
}
......
......@@ -81,10 +81,14 @@
next2++; \
}
static void filter_line_c(uint8_t *dst,
uint8_t *prev, uint8_t *cur, uint8_t *next,
static void filter_line_c(void *dst1,
void *prev1, void *cur1, void *next1,
int w, int prefs, int mrefs, int parity, int mode)
{
uint8_t *dst = dst1;
uint8_t *prev = prev1;
uint8_t *cur = cur1;
uint8_t *next = next1;
int x;
uint8_t *prev2 = parity ? prev : cur ;
uint8_t *next2 = parity ? cur : next;
......@@ -92,11 +96,15 @@ static void filter_line_c(uint8_t *dst,
FILTER
}
static void filter_line_c_16bit(uint16_t *dst,
uint16_t *prev, uint16_t *cur, uint16_t *next,
static void filter_line_c_16bit(void *dst1,
void *prev1, void *cur1, void *next1,
int w, int prefs, int mrefs, int parity,
int mode)
{
uint16_t *dst = dst1;
uint16_t *prev = prev1;
uint16_t *cur = cur1;
uint16_t *next = next1;
int x;
uint16_t *prev2 = parity ? prev : cur ;
uint16_t *next2 = parity ? cur : next;
......
......@@ -26,14 +26,14 @@
#include "libavcodec/x86/dsputil_mmx.h"
#include "libavfilter/yadif.h"
void ff_yadif_filter_line_mmxext(uint8_t *dst, uint8_t *prev, uint8_t *cur,
uint8_t *next, int w, int prefs,
void ff_yadif_filter_line_mmxext(void *dst, void *prev, void *cur,
void *next, int w, int prefs,
int mrefs, int parity, int mode);
void ff_yadif_filter_line_sse2(uint8_t *dst, uint8_t *prev, uint8_t *cur,
uint8_t *next, int w, int prefs,
void ff_yadif_filter_line_sse2(void *dst, void *prev, void *cur,
void *next, int w, int prefs,
int mrefs, int parity, int mode);
void ff_yadif_filter_line_ssse3(uint8_t *dst, uint8_t *prev, uint8_t *cur,
uint8_t *next, int w, int prefs,
void ff_yadif_filter_line_ssse3(void *dst, void *prev, void *cur,
void *next, int w, int prefs,
int mrefs, int parity, int mode);
av_cold void ff_yadif_init_x86(YADIFContext *yadif)
......
......@@ -53,8 +53,8 @@ typedef struct YADIFContext {
AVFilterBufferRef *next;
AVFilterBufferRef *prev;
AVFilterBufferRef *out;
void (*filter_line)(uint8_t *dst,
uint8_t *prev, uint8_t *cur, uint8_t *next,
void (*filter_line)(void *dst,
void *prev, void *cur, void *next,
int w, int prefs, int mrefs, int parity, int mode);
const AVPixFmtDescriptor *csp;
......
#tb 0: 1/300
0, 0, 0, 1, 194400, 0xd919c635
0, 1, 1, 1, 194400, 0xd919c635
0, 2, 2, 1, 194400, 0x516a1007
0, 3, 3, 1, 194400, 0x516a1007
0, 4, 4, 1, 194400, 0x516a1007
0, 5, 5, 1, 194400, 0x516a1007
0, 6, 6, 1, 194400, 0x516a1007
0, 7, 7, 1, 194400, 0x516a1007
0, 8, 8, 1, 194400, 0x516a1007
0, 9, 9, 1, 194400, 0x516a1007
0, 10, 10, 1, 194400, 0x516a1007
0, 11, 11, 1, 194400, 0x516a1007
0, 12, 12, 1, 194400, 0x516a1007
0, 13, 13, 1, 194400, 0x516a1007
0, 14, 14, 1, 194400, 0x516a1007
0, 15, 15, 1, 194400, 0x516a1007
0, 0, 0, 1, 194400, 0x46ad80da
0, 1, 1, 1, 194400, 0x46ad80da
0, 2, 2, 1, 194400, 0x9392c3b9
0, 3, 3, 1, 194400, 0x9392c3b9
0, 4, 4, 1, 194400, 0x9392c3b9
0, 5, 5, 1, 194400, 0x9392c3b9
0, 6, 6, 1, 194400, 0x9392c3b9
0, 7, 7, 1, 194400, 0x9392c3b9
0, 8, 8, 1, 194400, 0x9392c3b9
0, 9, 9, 1, 194400, 0x9392c3b9
0, 10, 10, 1, 194400, 0x9392c3b9
0, 11, 11, 1, 194400, 0x9392c3b9
0, 12, 12, 1, 194400, 0x9392c3b9
0, 13, 13, 1, 194400, 0x9392c3b9
0, 14, 14, 1, 194400, 0x9392c3b9
0, 15, 15, 1, 194400, 0x9392c3b9
0, 16, 16, 1, 194400, 0x46ad80da
0, 17, 17, 1, 194400, 0x46ad80da
0, 18, 18, 1, 194400, 0x46ad80da
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment