mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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:
commit
6e9f3f3b65
@ -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;
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user