Merge commit '238614de679a71970c20d7c3fee08a322967ec40'

* commit '238614de679a71970c20d7c3fee08a322967ec40':
  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: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-02-06 14:53:49 +01:00
commit 6e9f3f3b65
9 changed files with 43 additions and 38 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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 }
};

View File

@ -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 */

View File

@ -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];
}
}

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -1,20 +1,20 @@
#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