Merge remote-tracking branch 'qatar/master'
* qatar/master: (71 commits) movenc: Allow writing to a non-seekable output if using empty moov movenc: Support adding isml (smooth streaming live) metadata libavcodec: Don't crash in avcodec_encode_audio if time_base isn't set sunrast: Document the different Sun Raster file format types. sunrast: Add a check for experimental type. libspeexenc: use AVSampleFormat instead of deprecated/removed SampleFormat lavf: remove disabled FF_API_SET_PTS_INFO cruft lavf: remove disabled FF_API_OLD_INTERRUPT_CB cruft lavf: remove disabled FF_API_REORDER_PRIVATE cruft lavf: remove disabled FF_API_SEEK_PUBLIC cruft lavf: remove disabled FF_API_STREAM_COPY cruft lavf: remove disabled FF_API_PRELOAD cruft lavf: remove disabled FF_API_NEW_STREAM cruft lavf: remove disabled FF_API_RTSP_URL_OPTIONS cruft lavf: remove disabled FF_API_MUXRATE cruft lavf: remove disabled FF_API_FILESIZE cruft lavf: remove disabled FF_API_TIMESTAMP cruft lavf: remove disabled FF_API_LOOP_OUTPUT cruft lavf: remove disabled FF_API_LOOP_INPUT cruft lavf: remove disabled FF_API_AVSTREAM_QUALITY cruft ... Conflicts: doc/APIchanges libavcodec/8bps.c libavcodec/avcodec.h libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/options.c libavcodec/sunrast.c libavcodec/utils.c libavcodec/version.h libavcodec/x86/h264_deblock.asm libavdevice/libdc1394.c libavdevice/v4l2.c libavformat/avformat.h libavformat/avio.c libavformat/avio.h libavformat/aviobuf.c libavformat/dv.c libavformat/mov.c libavformat/utils.c libavformat/version.h libavformat/wtv.c libavutil/Makefile libavutil/file.c libswscale/x86/input.asm libswscale/x86/swscale_mmx.c libswscale/x86/swscale_template.c tests/ref/lavf/ffm Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -424,102 +424,11 @@ static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st, AVProbeDa
|
||||
/************************************************************/
|
||||
/* input media file */
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
static AVDictionary *convert_format_parameters(AVFormatParameters *ap)
|
||||
{
|
||||
char buf[1024];
|
||||
AVDictionary *opts = NULL;
|
||||
|
||||
if (!ap)
|
||||
return NULL;
|
||||
|
||||
AV_NOWARN_DEPRECATED(
|
||||
if (ap->time_base.num) {
|
||||
snprintf(buf, sizeof(buf), "%d/%d", ap->time_base.den, ap->time_base.num);
|
||||
av_dict_set(&opts, "framerate", buf, 0);
|
||||
}
|
||||
if (ap->sample_rate) {
|
||||
snprintf(buf, sizeof(buf), "%d", ap->sample_rate);
|
||||
av_dict_set(&opts, "sample_rate", buf, 0);
|
||||
}
|
||||
if (ap->channels) {
|
||||
snprintf(buf, sizeof(buf), "%d", ap->channels);
|
||||
av_dict_set(&opts, "channels", buf, 0);
|
||||
}
|
||||
if (ap->width || ap->height) {
|
||||
snprintf(buf, sizeof(buf), "%dx%d", ap->width, ap->height);
|
||||
av_dict_set(&opts, "video_size", buf, 0);
|
||||
}
|
||||
if (ap->pix_fmt != PIX_FMT_NONE) {
|
||||
av_dict_set(&opts, "pixel_format", av_get_pix_fmt_name(ap->pix_fmt), 0);
|
||||
}
|
||||
if (ap->channel) {
|
||||
snprintf(buf, sizeof(buf), "%d", ap->channel);
|
||||
av_dict_set(&opts, "channel", buf, 0);
|
||||
}
|
||||
if (ap->standard) {
|
||||
av_dict_set(&opts, "standard", ap->standard, 0);
|
||||
}
|
||||
if (ap->mpeg2ts_compute_pcr) {
|
||||
av_dict_set(&opts, "mpeg2ts_compute_pcr", "1", 0);
|
||||
}
|
||||
if (ap->initial_pause) {
|
||||
av_dict_set(&opts, "initial_pause", "1", 0);
|
||||
}
|
||||
)
|
||||
return opts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a media file from an IO stream. 'fmt' must be specified.
|
||||
*/
|
||||
int av_open_input_stream(AVFormatContext **ic_ptr,
|
||||
AVIOContext *pb, const char *filename,
|
||||
AVInputFormat *fmt, AVFormatParameters *ap)
|
||||
{
|
||||
int err;
|
||||
AVDictionary *opts;
|
||||
AVFormatContext *ic;
|
||||
AVFormatParameters default_ap;
|
||||
|
||||
if(!ap){
|
||||
ap=&default_ap;
|
||||
memset(ap, 0, sizeof(default_ap));
|
||||
}
|
||||
opts = convert_format_parameters(ap);
|
||||
|
||||
AV_NOWARN_DEPRECATED(
|
||||
if(!ap->prealloced_context)
|
||||
*ic_ptr = ic = avformat_alloc_context();
|
||||
else
|
||||
ic = *ic_ptr;
|
||||
)
|
||||
if (!ic) {
|
||||
err = AVERROR(ENOMEM);
|
||||
goto fail;
|
||||
}
|
||||
if (pb && fmt && fmt->flags & AVFMT_NOFILE)
|
||||
av_log(ic, AV_LOG_WARNING, "Custom AVIOContext makes no sense and "
|
||||
"will be ignored with AVFMT_NOFILE format.\n");
|
||||
else
|
||||
ic->pb = pb;
|
||||
|
||||
if ((err = avformat_open_input(&ic, filename, fmt, &opts)) < 0)
|
||||
goto fail;
|
||||
ic->pb = ic->pb ? ic->pb : pb; // don't leak custom pb if it wasn't set above
|
||||
|
||||
fail:
|
||||
*ic_ptr = ic;
|
||||
av_dict_free(&opts);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
int av_demuxer_open(AVFormatContext *ic, AVFormatParameters *ap){
|
||||
int av_demuxer_open(AVFormatContext *ic){
|
||||
int err;
|
||||
|
||||
if (ic->iformat->read_header) {
|
||||
err = ic->iformat->read_header(ic, ap);
|
||||
err = ic->iformat->read_header(ic);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
@@ -608,27 +517,6 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
int av_open_input_file(AVFormatContext **ic_ptr, const char *filename,
|
||||
AVInputFormat *fmt,
|
||||
int buf_size,
|
||||
AVFormatParameters *ap)
|
||||
{
|
||||
int err;
|
||||
AVDictionary *opts = convert_format_parameters(ap);
|
||||
|
||||
AV_NOWARN_DEPRECATED(
|
||||
if (!ap || !ap->prealloced_context)
|
||||
*ic_ptr = NULL;
|
||||
)
|
||||
|
||||
err = avformat_open_input(ic_ptr, filename, fmt, &opts);
|
||||
|
||||
av_dict_free(&opts);
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* open input file and probe the format if necessary */
|
||||
static int init_input(AVFormatContext *s, const char *filename, AVDictionary **options)
|
||||
{
|
||||
@@ -661,7 +549,6 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputForma
|
||||
{
|
||||
AVFormatContext *s = *ps;
|
||||
int ret = 0;
|
||||
AVFormatParameters ap = { { 0 } };
|
||||
AVDictionary *tmp = NULL;
|
||||
|
||||
if (!s && !(s = avformat_alloc_context()))
|
||||
@@ -708,7 +595,7 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputForma
|
||||
ff_id3v2_read(s, ID3v2_DEFAULT_MAGIC);
|
||||
|
||||
if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->iformat->read_header)
|
||||
if ((ret = s->iformat->read_header(s, &ap)) < 0)
|
||||
if ((ret = s->iformat->read_header(s)) < 0)
|
||||
goto fail;
|
||||
|
||||
if (!(s->flags&AVFMT_FLAG_PRIV_OPT) && s->pb && !s->data_offset)
|
||||
@@ -1461,13 +1348,6 @@ void ff_read_frame_flush(AVFormatContext *s)
|
||||
}
|
||||
}
|
||||
|
||||
#if FF_API_SEEK_PUBLIC
|
||||
void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
|
||||
{
|
||||
ff_update_cur_dts(s, ref_st, timestamp);
|
||||
}
|
||||
#endif
|
||||
|
||||
void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
|
||||
{
|
||||
int i;
|
||||
@@ -1589,12 +1469,6 @@ int av_index_search_timestamp(AVStream *st, int64_t wanted_timestamp,
|
||||
wanted_timestamp, flags);
|
||||
}
|
||||
|
||||
#if FF_API_SEEK_PUBLIC
|
||||
int av_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts, int flags){
|
||||
return ff_seek_frame_binary(s, stream_index, target_ts, flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
int ff_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts, int flags)
|
||||
{
|
||||
AVInputFormat *avif= s->iformat;
|
||||
@@ -1657,18 +1531,6 @@ int ff_seek_frame_binary(AVFormatContext *s, int stream_index, int64_t target_ts
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if FF_API_SEEK_PUBLIC
|
||||
int64_t av_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts,
|
||||
int64_t pos_min, int64_t pos_max, int64_t pos_limit,
|
||||
int64_t ts_min, int64_t ts_max, int flags, int64_t *ts_ret,
|
||||
int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t ))
|
||||
{
|
||||
return ff_gen_search(s, stream_index, target_ts, pos_min, pos_max,
|
||||
pos_limit, ts_min, ts_max, flags, ts_ret,
|
||||
read_timestamp);
|
||||
}
|
||||
#endif
|
||||
|
||||
int64_t ff_gen_search(AVFormatContext *s, int stream_index, int64_t target_ts,
|
||||
int64_t pos_min, int64_t pos_max, int64_t pos_limit,
|
||||
int64_t ts_min, int64_t ts_max, int flags, int64_t *ts_ret,
|
||||
@@ -2382,13 +2244,6 @@ static int tb_unreliable(AVCodecContext *c){
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
int av_find_stream_info(AVFormatContext *ic)
|
||||
{
|
||||
return avformat_find_stream_info(ic, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
||||
{
|
||||
int i, count, ret, read_size, j;
|
||||
@@ -2825,16 +2680,6 @@ int av_read_pause(AVFormatContext *s)
|
||||
return AVERROR(ENOSYS);
|
||||
}
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
void av_close_input_stream(AVFormatContext *s)
|
||||
{
|
||||
flush_packet_queue(s);
|
||||
if (s->iformat->read_close)
|
||||
s->iformat->read_close(s);
|
||||
avformat_free_context(s);
|
||||
}
|
||||
#endif
|
||||
|
||||
void avformat_free_context(AVFormatContext *s)
|
||||
{
|
||||
int i;
|
||||
@@ -2898,16 +2743,6 @@ void avformat_close_input(AVFormatContext **ps)
|
||||
avio_close(pb);
|
||||
}
|
||||
|
||||
#if FF_API_NEW_STREAM
|
||||
AVStream *av_new_stream(AVFormatContext *s, int id)
|
||||
{
|
||||
AVStream *st = avformat_new_stream(s, NULL);
|
||||
if (st)
|
||||
st->id = id;
|
||||
return st;
|
||||
}
|
||||
#endif
|
||||
|
||||
AVStream *avformat_new_stream(AVFormatContext *s, AVCodec *c)
|
||||
{
|
||||
AVStream *st;
|
||||
@@ -3008,24 +2843,6 @@ AVChapter *avpriv_new_chapter(AVFormatContext *s, int id, AVRational time_base,
|
||||
/************************************************************/
|
||||
/* output media file */
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap)
|
||||
{
|
||||
if (s->oformat->priv_data_size > 0) {
|
||||
s->priv_data = av_mallocz(s->oformat->priv_data_size);
|
||||
if (!s->priv_data)
|
||||
return AVERROR(ENOMEM);
|
||||
if (s->oformat->priv_class) {
|
||||
*(const AVClass**)s->priv_data= s->oformat->priv_class;
|
||||
av_opt_set_defaults(s->priv_data);
|
||||
}
|
||||
} else
|
||||
s->priv_data = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int avformat_alloc_output_context2(AVFormatContext **avctx, AVOutputFormat *oformat,
|
||||
const char *format, const char *filename)
|
||||
{
|
||||
@@ -3122,13 +2939,6 @@ static int validate_codec_tag(AVFormatContext *s, AVStream *st)
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if FF_API_FORMAT_PARAMETERS
|
||||
int av_write_header(AVFormatContext *s)
|
||||
{
|
||||
return avformat_write_header(s, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
int avformat_write_header(AVFormatContext *s, AVDictionary **options)
|
||||
{
|
||||
int ret = 0, i;
|
||||
@@ -3724,16 +3534,6 @@ static void dump_stream_format(AVFormatContext *ic, int i, int index, int is_out
|
||||
dump_metadata(NULL, st->metadata, " ");
|
||||
}
|
||||
|
||||
#if FF_API_DUMP_FORMAT
|
||||
void dump_format(AVFormatContext *ic,
|
||||
int index,
|
||||
const char *url,
|
||||
int is_output)
|
||||
{
|
||||
av_dump_format(ic, index, url, is_output);
|
||||
}
|
||||
#endif
|
||||
|
||||
void av_dump_format(AVFormatContext *ic,
|
||||
int index,
|
||||
const char *url,
|
||||
@@ -3825,26 +3625,6 @@ uint64_t ff_ntp_time(void)
|
||||
return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US;
|
||||
}
|
||||
|
||||
#if FF_API_PARSE_DATE
|
||||
#include "libavutil/parseutils.h"
|
||||
|
||||
int64_t parse_date(const char *timestr, int duration)
|
||||
{
|
||||
int64_t timeval;
|
||||
av_parse_time(&timeval, timestr, duration);
|
||||
return timeval;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if FF_API_FIND_INFO_TAG
|
||||
#include "libavutil/parseutils.h"
|
||||
|
||||
int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info)
|
||||
{
|
||||
return av_find_info_tag(arg, arg_size, tag1, info);
|
||||
}
|
||||
#endif
|
||||
|
||||
int av_get_frame_filename(char *buf, int buf_size,
|
||||
const char *path, int number)
|
||||
{
|
||||
|
Reference in New Issue
Block a user