summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ffmpeg_filter.c2
-rw-r--r--libavcodec/allcodecs.c2
-rw-r--r--libavcodec/alsdec.c4
-rw-r--r--libavcodec/assenc.c6
-rw-r--r--libavcodec/avcodec.h5
-rw-r--r--libavcodec/dvbsub.c8
-rw-r--r--libavcodec/dvdsubenc.c6
-rw-r--r--libavcodec/movtextenc.c5
-rw-r--r--libavcodec/srtenc.c7
-rw-r--r--libavcodec/utils.c6
-rw-r--r--libavcodec/xsubenc.c15
-rw-r--r--libavfilter/af_amix.c2
-rw-r--r--libavfilter/af_channelsplit.c2
-rw-r--r--libavfilter/af_join.c2
-rw-r--r--libavfilter/asink_anullsink.c2
-rw-r--r--libavfilter/asrc_anullsrc.c2
-rw-r--r--libavfilter/avfilter.c3
-rw-r--r--libavfilter/avfiltergraph.c2
-rw-r--r--libavfilter/buffersink.c4
-rw-r--r--libavfilter/buffersrc.c6
-rw-r--r--libavfilter/buffersrc.h2
-rw-r--r--libavfilter/split.c4
-rw-r--r--libavfilter/src_movie.c2
-rw-r--r--libavfilter/vf_frei0r.c2
-rw-r--r--libavfilter/vsink_nullsink.c2
-rw-r--r--libavfilter/vsrc_testsrc.c4
26 files changed, 54 insertions, 53 deletions
diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c
index 1887ffec4e..8478edf0a5 100644
--- a/ffmpeg_filter.c
+++ b/ffmpeg_filter.c
@@ -295,7 +295,7 @@ static int configure_output_video_filter(FilterGraph *fg, OutputFilter *ofilter,
snprintf(name, sizeof(name), "output stream %d:%d", ost->file_index, ost->index);
ret = avfilter_graph_create_filter(&ofilter->filter,
avfilter_get_by_name("ffbuffersink"),
- name, NULL, NULL/*buffersink_params*/, fg->graph);
+ name, NULL, NULL, fg->graph);
av_freep(&buffersink_params);
if (ret < 0)
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 8806c6a598..03340efa09 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -325,8 +325,6 @@ void avcodec_register_all(void)
REGISTER_DECODER (SHORTEN, shorten);
REGISTER_DECODER (SIPR, sipr);
REGISTER_DECODER (SMACKAUD, smackaud);
- REGISTER_ENCDEC (SONIC, sonic);
- REGISTER_ENCODER (SONIC_LS, sonic_ls);
REGISTER_DECODER (TRUEHD, truehd);
REGISTER_DECODER (TRUESPEECH, truespeech);
REGISTER_DECODER (TTA, tta);
diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c
index 672fcba286..226312e897 100644
--- a/libavcodec/alsdec.c
+++ b/libavcodec/alsdec.c
@@ -651,10 +651,10 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
for (k = 1; k < sub_blocks; k++)
s[k] = s[k - 1] + decode_rice(gb, 0);
}
- for (k = 0; k < sub_blocks; k++)
+ for (k = 1; k < sub_blocks; k++)
if (s[k] > 32) {
av_log(avctx, AV_LOG_ERROR, "k invalid for rice code.\n");
- return -1;
+ return AVERROR_INVALIDDATA;
}
if (get_bits1(gb))
diff --git a/libavcodec/assenc.c b/libavcodec/assenc.c
index 779a55a1f7..7ed21eedbc 100644
--- a/libavcodec/assenc.c
+++ b/libavcodec/assenc.c
@@ -37,9 +37,9 @@ static av_cold int ass_encode_init(AVCodecContext *avctx)
}
static int ass_encode_frame(AVCodecContext *avctx,
- unsigned char *buf, int bufsize, void *data)
+ unsigned char *buf, int bufsize,
+ const AVSubtitle *sub)
{
- AVSubtitle *sub = data;
int i, len, total_len = 0;
for (i=0; i<sub->num_rects; i++) {
@@ -67,5 +67,5 @@ AVCodec ff_ass_encoder = {
.type = AVMEDIA_TYPE_SUBTITLE,
.id = AV_CODEC_ID_SSA,
.init = ass_encode_init,
- .encode = ass_encode_frame,
+ .encode_sub = ass_encode_frame,
};
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 62a261a5da..fdfd5c4c7c 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -3099,6 +3099,8 @@ typedef struct AVProfile {
typedef struct AVCodecDefault AVCodecDefault;
+struct AVSubtitle;
+
/**
* AVCodec.
*/
@@ -3171,7 +3173,8 @@ typedef struct AVCodec {
void (*init_static_data)(struct AVCodec *codec);
int (*init)(AVCodecContext *);
- int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
+ int (*encode_sub)(AVCodecContext *, uint8_t *buf, int buf_size,
+ const struct AVSubtitle *sub);
/**
* Encode data to an AVPacket.
*
diff --git a/libavcodec/dvbsub.c b/libavcodec/dvbsub.c
index 37bb3e1ec0..562db6a586 100644
--- a/libavcodec/dvbsub.c
+++ b/libavcodec/dvbsub.c
@@ -248,7 +248,7 @@ static void dvb_encode_rle8(uint8_t **pq,
}
static int encode_dvb_subtitles(DVBSubtitleContext *s,
- uint8_t *outbuf, AVSubtitle *h)
+ uint8_t *outbuf, const AVSubtitle *h)
{
uint8_t *q, *pseg_len;
int page_id, region_id, clut_id, object_id, i, bpp_index, page_state;
@@ -444,10 +444,10 @@ static int encode_dvb_subtitles(DVBSubtitleContext *s,
}
static int dvbsub_encode(AVCodecContext *avctx,
- unsigned char *buf, int buf_size, void *data)
+ unsigned char *buf, int buf_size,
+ const AVSubtitle *sub)
{
DVBSubtitleContext *s = avctx->priv_data;
- AVSubtitle *sub = data;
int ret;
ret = encode_dvb_subtitles(s, buf, sub);
@@ -459,6 +459,6 @@ AVCodec ff_dvbsub_encoder = {
.type = AVMEDIA_TYPE_SUBTITLE,
.id = AV_CODEC_ID_DVB_SUBTITLE,
.priv_data_size = sizeof(DVBSubtitleContext),
- .encode = dvbsub_encode,
+ .encode_sub = dvbsub_encode,
.long_name = NULL_IF_CONFIG_SMALL("DVB subtitles"),
};
diff --git a/libavcodec/dvdsubenc.c b/libavcodec/dvdsubenc.c
index d913708026..2e0c37da4d 100644
--- a/libavcodec/dvdsubenc.c
+++ b/libavcodec/dvdsubenc.c
@@ -416,10 +416,10 @@ static int dvdsub_init(AVCodecContext *avctx)
}
static int dvdsub_encode(AVCodecContext *avctx,
- unsigned char *buf, int buf_size, void *data)
+ unsigned char *buf, int buf_size,
+ const AVSubtitle *sub)
{
//DVDSubtitleContext *s = avctx->priv_data;
- AVSubtitle *sub = data;
int ret;
ret = encode_dvd_subtitles(avctx, buf, buf_size, sub);
@@ -431,7 +431,7 @@ AVCodec ff_dvdsub_encoder = {
.type = AVMEDIA_TYPE_SUBTITLE,
.id = AV_CODEC_ID_DVD_SUBTITLE,
.init = dvdsub_init,
- .encode = dvdsub_encode,
+ .encode_sub = dvdsub_encode,
.long_name = NULL_IF_CONFIG_SMALL("DVD subtitles"),
.priv_data_size = sizeof(DVDSubtitleContext),
};
diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 3f73f8b4bd..7f1b5b830f 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -104,10 +104,9 @@ static const ASSCodesCallbacks mov_text_callbacks = {
};
static int mov_text_encode_frame(AVCodecContext *avctx, unsigned char *buf,
- int bufsize, void *data)
+ int bufsize, const AVSubtitle *sub)
{
MovTextContext *s = avctx->priv_data;
- AVSubtitle *sub = data;
ASSDialog *dialog;
int i, len, num;
@@ -157,6 +156,6 @@ AVCodec ff_movtext_encoder = {
.id = AV_CODEC_ID_MOV_TEXT,
.priv_data_size = sizeof(MovTextContext),
.init = mov_text_encode_init,
- .encode = mov_text_encode_frame,
+ .encode_sub = mov_text_encode_frame,
.close = mov_text_encode_close,
};
diff --git a/libavcodec/srtenc.c b/libavcodec/srtenc.c
index fa85ef543b..473c88f09a 100644
--- a/libavcodec/srtenc.c
+++ b/libavcodec/srtenc.c
@@ -233,10 +233,9 @@ static const ASSCodesCallbacks srt_callbacks = {
};
static int srt_encode_frame(AVCodecContext *avctx,
- unsigned char *buf, int bufsize, void *data)
+ unsigned char *buf, int bufsize, const AVSubtitle *sub)
{
SRTContext *s = avctx->priv_data;
- AVSubtitle *sub = data;
ASSDialog *dialog;
int i, len, num;
@@ -299,7 +298,7 @@ AVCodec ff_srt_encoder = {
.id = AV_CODEC_ID_SRT,
.priv_data_size = sizeof(SRTContext),
.init = srt_encode_init,
- .encode = srt_encode_frame,
+ .encode_sub = srt_encode_frame,
.close = srt_encode_close,
};
#endif
@@ -312,7 +311,7 @@ AVCodec ff_subrip_encoder = {
.id = AV_CODEC_ID_SUBRIP,
.priv_data_size = sizeof(SRTContext),
.init = srt_encode_init,
- .encode = srt_encode_frame,
+ .encode_sub = srt_encode_frame,
.close = srt_encode_close,
};
#endif
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 30b0d21a5b..09b07e2423 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -134,7 +134,7 @@ static void avcodec_init(void)
int av_codec_is_encoder(const AVCodec *codec)
{
- return codec && (codec->encode || codec->encode2);
+ return codec && (codec->encode_sub || codec->encode2);
}
int av_codec_is_decoder(const AVCodec *codec)
@@ -804,7 +804,7 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
goto end;
}
if (codec->priv_class) {
- *(const AVClass**)avctx->priv_data= codec->priv_class;
+ *(const AVClass**)avctx->priv_data = codec->priv_class;
av_opt_set_defaults(avctx->priv_data);
}
}
@@ -1407,7 +1407,7 @@ int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
return -1;
}
- ret = avctx->codec->encode(avctx, buf, buf_size, (void *)(intptr_t)sub);
+ ret = avctx->codec->encode_sub(avctx, buf, buf_size, sub);
avctx->frame_number++;
return ret;
}
diff --git a/libavcodec/xsubenc.c b/libavcodec/xsubenc.c
index 210a9bfa75..cb2a908cad 100644
--- a/libavcodec/xsubenc.c
+++ b/libavcodec/xsubenc.c
@@ -111,9 +111,8 @@ static int make_tc(uint64_t ms, int *tc)
}
static int xsub_encode(AVCodecContext *avctx, unsigned char *buf,
- int bufsize, void *data)
+ int bufsize, const AVSubtitle *h)
{
- AVSubtitle *h = data;
uint64_t startTime = h->pts / 1000; // FIXME: need better solution...
uint64_t endTime = startTime + h->end_display_time - h->start_display_time;
int start_tc[4], end_tc[4];
@@ -211,10 +210,10 @@ static av_cold int xsub_encoder_init(AVCodecContext *avctx)
}
AVCodec ff_xsub_encoder = {
- .name = "xsub",
- .type = AVMEDIA_TYPE_SUBTITLE,
- .id = AV_CODEC_ID_XSUB,
- .init = xsub_encoder_init,
- .encode = xsub_encode,
- .long_name = NULL_IF_CONFIG_SMALL("DivX subtitles (XSUB)"),
+ .name = "xsub",
+ .type = AVMEDIA_TYPE_SUBTITLE,
+ .id = AV_CODEC_ID_XSUB,
+ .init = xsub_encoder_init,
+ .encode_sub = xsub_encode,
+ .long_name = NULL_IF_CONFIG_SMALL("DivX subtitles (XSUB)"),
};
diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c
index cfe23159e2..9d0f998f62 100644
--- a/libavfilter/af_amix.c
+++ b/libavfilter/af_amix.c
@@ -549,7 +549,7 @@ AVFilter avfilter_af_amix = {
.uninit = uninit,
.query_formats = query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.config_props = config_output,
diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c
index 06f786842f..81f91ad393 100644
--- a/libavfilter/af_channelsplit.c
+++ b/libavfilter/af_channelsplit.c
@@ -142,6 +142,6 @@ AVFilter avfilter_af_channelsplit = {
.type = AVMEDIA_TYPE_AUDIO,
.filter_samples = filter_samples, },
{ NULL }},
- .outputs = (const AVFilterPad[]){{ NULL }},
+ .outputs = NULL,
.priv_class = &channelsplit_class,
};
diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c
index 0e75602fd3..5e338f0efb 100644
--- a/libavfilter/af_join.c
+++ b/libavfilter/af_join.c
@@ -494,7 +494,7 @@ AVFilter avfilter_af_join = {
.uninit = join_uninit,
.query_formats = join_query_formats,
- .inputs = (const AVFilterPad[]){{ NULL }},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]){{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.config_props = join_config_output,
diff --git a/libavfilter/asink_anullsink.c b/libavfilter/asink_anullsink.c
index 506619bf1a..4eee5041df 100644
--- a/libavfilter/asink_anullsink.c
+++ b/libavfilter/asink_anullsink.c
@@ -41,5 +41,5 @@ AVFilter avfilter_asink_anullsink = {
},
{ .name = NULL},
},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
};
diff --git a/libavfilter/asrc_anullsrc.c b/libavfilter/asrc_anullsrc.c
index 5cdf126fd5..4e28e294af 100644
--- a/libavfilter/asrc_anullsrc.c
+++ b/libavfilter/asrc_anullsrc.c
@@ -126,7 +126,7 @@ AVFilter avfilter_asrc_anullsrc = {
.init = init,
.priv_size = sizeof(ANullContext),
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 3bac29d5ac..9f49a8b2b1 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -436,6 +436,9 @@ static int pad_count(const AVFilterPad *pads)
{
int count;
+ if (!pads)
+ return 0;
+
for(count = 0; pads->name; count ++) pads ++;
return count;
}
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index f98e0e40f3..b745c3c991 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -679,7 +679,7 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter)
best_count_diff = count_diff;
}
}
- av_assert1(best_idx>=0);
+ av_assert0(best_idx >= 0);
FFSWAP(uint64_t, outlink->in_channel_layouts->channel_layouts[0],
outlink->in_channel_layouts->channel_layouts[best_idx]);
}
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index 50cd6d4e96..2e84fb4507 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -156,7 +156,7 @@ AVFilter avfilter_vsink_buffer = {
.min_perms = AV_PERM_READ,
.needs_fifo = 1 },
{ .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
};
AVFilter avfilter_asink_abuffer = {
@@ -175,5 +175,5 @@ AVFilter avfilter_asink_abuffer = {
.min_perms = AV_PERM_READ,
.needs_fifo = 1 },
{ .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
};
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 25c6386d4e..db2db3a482 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -94,7 +94,7 @@ int av_buffersrc_add_frame(AVFilterContext *buffer_src,
return ret;
}
-int av_buffersrc_write_frame(AVFilterContext *buffer_filter, AVFrame *frame)
+int av_buffersrc_write_frame(AVFilterContext *buffer_filter, const AVFrame *frame)
{
return av_buffersrc_add_frame(buffer_filter, frame, 0);
}
@@ -409,7 +409,7 @@ AVFilter avfilter_vsrc_buffer = {
.init = init_video,
.uninit = uninit,
- .inputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.request_frame = request_frame,
@@ -428,7 +428,7 @@ AVFilter avfilter_asrc_abuffer = {
.init = init_audio,
.uninit = uninit,
- .inputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_AUDIO,
.request_frame = request_frame,
diff --git a/libavfilter/buffersrc.h b/libavfilter/buffersrc.h
index d25316125f..7f3c8d8ec3 100644
--- a/libavfilter/buffersrc.h
+++ b/libavfilter/buffersrc.h
@@ -90,6 +90,6 @@ int av_buffersrc_buffer(AVFilterContext *s, AVFilterBufferRef *buf);
* @warning frame data will be memcpy()ed, which may be a big performance
* hit. Use av_buffersrc_buffer() to avoid copying the data.
*/
-int av_buffersrc_write_frame(AVFilterContext *s, AVFrame *frame);
+int av_buffersrc_write_frame(AVFilterContext *s, const AVFrame *frame);
#endif /* AVFILTER_BUFFERSRC_H */
diff --git a/libavfilter/split.c b/libavfilter/split.c
index b0d36f34ce..e036a93f21 100644
--- a/libavfilter/split.c
+++ b/libavfilter/split.c
@@ -133,7 +133,7 @@ AVFilter avfilter_vf_split = {
.draw_slice = draw_slice,
.end_frame = end_frame, },
{ .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .outputs = NULL,
};
static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
@@ -169,5 +169,5 @@ AVFilter avfilter_af_asplit = {
.get_audio_buffer = ff_null_get_audio_buffer,
.filter_samples = filter_samples },
{ .name = NULL }},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
};
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index f221286c02..41500f3e92 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -611,7 +611,7 @@ AVFilter avfilter_avsrc_movie = {
.uninit = movie_uninit,
.query_formats = movie_query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = NULL }},
.priv_class = &movie_class,
};
diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c
index b40a684b7c..cd0cd6b778 100644
--- a/libavfilter/vf_frei0r.c
+++ b/libavfilter/vf_frei0r.c
@@ -488,7 +488,7 @@ AVFilter avfilter_vsrc_frei0r_src = {
.query_formats = query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
diff --git a/libavfilter/vsink_nullsink.c b/libavfilter/vsink_nullsink.c
index b5aae21f77..148b250f58 100644
--- a/libavfilter/vsink_nullsink.c
+++ b/libavfilter/vsink_nullsink.c
@@ -45,5 +45,5 @@ AVFilter avfilter_vsink_nullsink = {
},
{ .name = NULL},
},
- .outputs = (const AVFilterPad[]) {{ .name = NULL }},
+ .outputs = NULL,
};
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 524ba7050e..28d114e379 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -533,7 +533,7 @@ AVFilter avfilter_vsrc_testsrc = {
.query_formats = test_query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
@@ -647,7 +647,7 @@ AVFilter avfilter_vsrc_rgbtestsrc = {
.query_formats = rgbtest_query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = NULL}},
+ .inputs = NULL,
.outputs = (const AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,