mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
move decoder initialization in separate function, earlier failure detection
Originally committed as revision 15929 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f2e92ad105
commit
f4cca718cf
@ -774,16 +774,17 @@ static int svq3_decode_slice_header(H264Context *h)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int svq3_decode_frame(AVCodecContext *avctx,
|
static int svq3_decode_init(AVCodecContext *avctx)
|
||||||
void *data, int *data_size,
|
|
||||||
const uint8_t *buf, int buf_size)
|
|
||||||
{
|
{
|
||||||
MpegEncContext *const s = avctx->priv_data;
|
MpegEncContext *const s = avctx->priv_data;
|
||||||
H264Context *const h = avctx->priv_data;
|
H264Context *const h = avctx->priv_data;
|
||||||
int m, mb_type;
|
int m;
|
||||||
unsigned char *extradata;
|
unsigned char *extradata;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
|
|
||||||
|
if (decode_init(avctx) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
s->flags = avctx->flags;
|
s->flags = avctx->flags;
|
||||||
s->flags2 = avctx->flags2;
|
s->flags2 = avctx->flags2;
|
||||||
s->unrestricted_mv = 1;
|
s->unrestricted_mv = 1;
|
||||||
@ -880,6 +881,17 @@ static int svq3_decode_frame(AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int svq3_decode_frame(AVCodecContext *avctx,
|
||||||
|
void *data, int *data_size,
|
||||||
|
const uint8_t *buf, int buf_size)
|
||||||
|
{
|
||||||
|
MpegEncContext *const s = avctx->priv_data;
|
||||||
|
H264Context *const h = avctx->priv_data;
|
||||||
|
int m, mb_type;
|
||||||
|
|
||||||
/* special case for last picture */
|
/* special case for last picture */
|
||||||
if (buf_size == 0) {
|
if (buf_size == 0) {
|
||||||
if (s->next_picture_ptr && !s->low_delay) {
|
if (s->next_picture_ptr && !s->low_delay) {
|
||||||
@ -1030,7 +1042,7 @@ AVCodec svq3_decoder = {
|
|||||||
CODEC_TYPE_VIDEO,
|
CODEC_TYPE_VIDEO,
|
||||||
CODEC_ID_SVQ3,
|
CODEC_ID_SVQ3,
|
||||||
sizeof(H264Context),
|
sizeof(H264Context),
|
||||||
decode_init,
|
svq3_decode_init,
|
||||||
NULL,
|
NULL,
|
||||||
decode_end,
|
decode_end,
|
||||||
svq3_decode_frame,
|
svq3_decode_frame,
|
||||||
|
Loading…
Reference in New Issue
Block a user