diff --git a/doc/APIchanges b/doc/APIchanges index 2bde666c35..2c1358fe05 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -144,6 +144,9 @@ API changes, most recent first: 2012-03-26 - a67d9cf - lavfi 2.66.100 Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions. +2013-xx-xx - lavu 52.9.0 - pixdesc.h + Add av_pix_fmt_count_planes() function for counting planes in a pixel format. + 2013-xx-xx - lavfi 3.6.0 Add AVFilterGraph.nb_filters, deprecate AVFilterGraph.filter_count. diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c index 9a8a739d39..f3aec9c845 100644 --- a/libavformat/asfenc.c +++ b/libavformat/asfenc.c @@ -804,14 +804,6 @@ static int asf_write_packet(AVFormatContext *s, AVPacket *pkt) flags &= ~AV_PKT_FLAG_KEY; pts = (pkt->pts != AV_NOPTS_VALUE) ? pkt->pts : pkt->dts; - - if (pts < 0) { - av_log(s, AV_LOG_ERROR, - "Negative dts not supported stream %d, dts %"PRId64"\n", - pkt->stream_index, pts); - return AVERROR(ENOSYS); - } - assert(pts != AV_NOPTS_VALUE); pts *= 10000; asf->duration = FFMAX(asf->duration, pts + pkt->duration * 10000); diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 1016dbaecb..31363cfb61 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -1791,3 +1791,18 @@ int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, return 0; } + +int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt) +{ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + int i, planes[4] = { 0 }, ret = 0; + + if (!desc) + return AVERROR(EINVAL); + + for (i = 0; i < desc->nb_components; i++) + planes[desc->comp[i].plane] = 1; + for (i = 0; i < FF_ARRAY_ELEMS(planes); i++) + ret += planes[i]; + return ret; +} diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h index 1042e1ed45..0947fd1f88 100644 --- a/libavutil/pixdesc.h +++ b/libavutil/pixdesc.h @@ -233,5 +233,11 @@ enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc); int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int *v_shift); +/** + * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a + * valid pixel format. + */ +int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); + #endif /* AVUTIL_PIXDESC_H */ diff --git a/libavutil/version.h b/libavutil/version.h index b8f814f587..1ff9ffeb92 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -75,8 +75,8 @@ */ #define LIBAVUTIL_VERSION_MAJOR 52 -#define LIBAVUTIL_VERSION_MINOR 19 -#define LIBAVUTIL_VERSION_MICRO 101 +#define LIBAVUTIL_VERSION_MINOR 20 +#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ LIBAVUTIL_VERSION_MINOR, \