Opened 13 years ago
Closed 13 years ago
#315 closed defect (fixed)
AVPictureType enum misses the undefined type
Reported by: | Martin Matuska | Owned by: | Michael Niedermayer |
---|---|---|---|
Priority: | important | Component: | avutil |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
In commit bebe72f4a05d338e04ae9ca1e9c6b72749b488aa, the enum AV_PICTURE_TYPE_* was introduced. There are still places in the code where pict_type is used as an integer and there is a case where "pict_type = 0" with the explanation "let ffmpeg decide what to do". The new enum does not know a value of 0 and C++ will fail if compiling such programs anyway as it is refered as an int (and you cannot patch them properly).
Examples:
ffmpeg.c:1290: big_picture.pict_type = 0; libavfilter/libmpcodecs/vf_blackframe.c:89: if (pict_type > 3 || pict_type < 0) pict_type = 0;
This is very important for git-oldabi but also relevant for git-master.
I suggest introducing a undefined type with a value of 0:
diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 33eacc7..a046d5b 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -104,7 +104,8 @@ enum AVMediaType { #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE} enum AVPictureType { - AV_PICTURE_TYPE_I = 1, ///< Intra + AV_PICTURE_TYPE_NONE = 0 ///< Undefined + AV_PICTURE_TYPE_I, ///< Intra AV_PICTURE_TYPE_P, ///< Predicted AV_PICTURE_TYPE_B, ///< Bi-dir predicted AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4
or fixing this problem in another way to preserve the compatibility with existing programs (oldabi).
Change History (2)
comment:1 by , 13 years ago
comment:2 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
yes, ill apply it in a moment
thx
The patch looks sane to me.
Michael?