Originally committed as revision 5146 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -217,7 +217,7 @@ static int audio_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| AVStream *st; | AVStream *st; | ||||
| int ret; | int ret; | ||||
| if (!ap || ap->sample_rate <= 0 || ap->channels <= 0) | |||||
| if (ap->sample_rate <= 0 || ap->channels <= 0) | |||||
| return -1; | return -1; | ||||
| st = av_new_stream(s1, 0); | st = av_new_stream(s1, 0); | ||||
| @@ -68,7 +68,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| const char *video_device; | const char *video_device; | ||||
| int j; | int j; | ||||
| if (!ap || ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) | |||||
| if (ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) | |||||
| return -1; | return -1; | ||||
| width = ap->width; | width = ap->width; | ||||
| @@ -245,7 +245,7 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| int format = -1; | int format = -1; | ||||
| const char *video_device; | const char *video_device; | ||||
| if (!ap || ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) | |||||
| if (ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) | |||||
| return -1; | return -1; | ||||
| width = ap->width; | width = ap->width; | ||||
| @@ -120,7 +120,7 @@ static int img_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| return -ENOMEM; | return -ENOMEM; | ||||
| } | } | ||||
| if (ap && ap->image_format) | |||||
| if (ap->image_format) | |||||
| s->img_fmt = ap->image_format; | s->img_fmt = ap->image_format; | ||||
| pstrcpy(s->path, sizeof(s->path), s1->filename); | pstrcpy(s->path, sizeof(s->path), s1->filename); | ||||
| @@ -133,7 +133,7 @@ static int img_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| else | else | ||||
| s->is_pipe = 1; | s->is_pipe = 1; | ||||
| if (!ap || !ap->time_base.num) { | |||||
| if (!ap->time_base.num) { | |||||
| st->codec->time_base= (AVRational){1,25}; | st->codec->time_base= (AVRational){1,25}; | ||||
| } else { | } else { | ||||
| st->codec->time_base= ap->time_base; | st->codec->time_base= ap->time_base; | ||||
| @@ -255,7 +255,7 @@ static int img_set_parameters(AVFormatContext *s, AVFormatParameters *ap) | |||||
| int i; | int i; | ||||
| /* find output image format */ | /* find output image format */ | ||||
| if (ap && ap->image_format) { | |||||
| if (ap->image_format) { | |||||
| img_fmt = ap->image_format; | img_fmt = ap->image_format; | ||||
| } else { | } else { | ||||
| img_fmt = guess_image_format(s->filename); | img_fmt = guess_image_format(s->filename); | ||||
| @@ -187,13 +187,13 @@ static int img_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| st->need_parsing= 1; | st->need_parsing= 1; | ||||
| } | } | ||||
| if (!ap || !ap->time_base.num) { | |||||
| if (!ap->time_base.num) { | |||||
| av_set_pts_info(st, 60, 1, 25); | av_set_pts_info(st, 60, 1, 25); | ||||
| } else { | } else { | ||||
| av_set_pts_info(st, 60, ap->time_base.num, ap->time_base.den); | av_set_pts_info(st, 60, ap->time_base.num, ap->time_base.den); | ||||
| } | } | ||||
| if(ap && ap->width && ap->height){ | |||||
| if(ap->width && ap->height){ | |||||
| st->codec->width = ap->width; | st->codec->width = ap->width; | ||||
| st->codec->height= ap->height; | st->codec->height= ap->height; | ||||
| } | } | ||||
| @@ -48,7 +48,7 @@ static int raw_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| st = av_new_stream(s, 0); | st = av_new_stream(s, 0); | ||||
| if (!st) | if (!st) | ||||
| return AVERROR_NOMEM; | return AVERROR_NOMEM; | ||||
| if (ap) { | |||||
| id = s->iformat->value; | id = s->iformat->value; | ||||
| if (id == CODEC_ID_RAWVIDEO) { | if (id == CODEC_ID_RAWVIDEO) { | ||||
| st->codec->codec_type = CODEC_TYPE_VIDEO; | st->codec->codec_type = CODEC_TYPE_VIDEO; | ||||
| @@ -74,9 +74,6 @@ static int raw_read_header(AVFormatContext *s, AVFormatParameters *ap) | |||||
| default: | default: | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| } else { | |||||
| return -1; | |||||
| } | |||||
| return 0; | return 0; | ||||
| } | } | ||||
| @@ -289,7 +286,7 @@ static int video_read_header(AVFormatContext *s, | |||||
| /* for mjpeg, specify frame rate */ | /* for mjpeg, specify frame rate */ | ||||
| /* for mpeg4 specify it too (most mpeg4 streams dont have the fixed_vop_rate set ...)*/ | /* for mpeg4 specify it too (most mpeg4 streams dont have the fixed_vop_rate set ...)*/ | ||||
| if (ap && ap->time_base.num) { | |||||
| if (ap->time_base.num) { | |||||
| av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); | av_set_pts_info(st, 64, ap->time_base.num, ap->time_base.den); | ||||
| } else if ( st->codec->codec_id == CODEC_ID_MJPEG || | } else if ( st->codec->codec_id == CODEC_ID_MJPEG || | ||||
| st->codec->codec_id == CODEC_ID_MPEG4 || | st->codec->codec_id == CODEC_ID_MPEG4 || | ||||
| @@ -994,7 +994,7 @@ static int rtsp_read_header(AVFormatContext *s, | |||||
| rt->state = RTSP_STATE_IDLE; | rt->state = RTSP_STATE_IDLE; | ||||
| rt->seek_timestamp = 0; /* default is to start stream at position | rt->seek_timestamp = 0; /* default is to start stream at position | ||||
| zero */ | zero */ | ||||
| if (ap && ap->initial_pause) { | |||||
| if (ap->initial_pause) { | |||||
| /* do not start immediately */ | /* do not start immediately */ | ||||
| } else { | } else { | ||||
| if (rtsp_read_play(s) < 0) { | if (rtsp_read_play(s) < 0) { | ||||
| @@ -465,6 +465,12 @@ int av_open_input_stream(AVFormatContext **ic_ptr, | |||||
| { | { | ||||
| int err; | int err; | ||||
| AVFormatContext *ic; | AVFormatContext *ic; | ||||
| AVFormatParameters default_ap; | |||||
| if(!ap){ | |||||
| ap=&default_ap; | |||||
| memset(ap, 0, sizeof(default_ap)); | |||||
| } | |||||
| ic = av_alloc_format_context(); | ic = av_alloc_format_context(); | ||||
| if (!ic) { | if (!ic) { | ||||
| @@ -384,7 +384,7 @@ static int v4l2_read_header(AVFormatContext *s1, AVFormatParameters *ap) | |||||
| uint32_t desired_format, capabilities; | uint32_t desired_format, capabilities; | ||||
| const char *video_device; | const char *video_device; | ||||
| if (!ap || ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) { | |||||
| if (ap->width <= 0 || ap->height <= 0 || ap->time_base.den <= 0) { | |||||
| av_log(s1, AV_LOG_ERROR, "Missing/Wrong parameters\n"); | av_log(s1, AV_LOG_ERROR, "Missing/Wrong parameters\n"); | ||||
| return -1; | return -1; | ||||