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