]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/avcodec.h
dnxhddec: better support for 4:4:4
[ffmpeg] / libavcodec / avcodec.h
index aac51985f0cb2accf4be6ce1cffacb04df56cdef..ff70d254af3211f24036da9eb984648f646f033c 100644 (file)
@@ -296,6 +296,7 @@ enum AVCodecID {
     AV_CODEC_ID_HAP,
     AV_CODEC_ID_DDS,
     AV_CODEC_ID_DXV,
+    AV_CODEC_ID_SCREENPRESSO,
 
     AV_CODEC_ID_Y41P = 0x8000,
     AV_CODEC_ID_AVRP,
@@ -1411,28 +1412,19 @@ typedef struct AVPacket {
      * Duration of this packet in AVStream->time_base units, 0 if unknown.
      * Equals next_pts - this_pts in presentation order.
      */
-    int   duration;
+    int64_t duration;
 
     int64_t pos;                            ///< byte position in stream, -1 if unknown
 
+#if FF_API_CONVERGENCE_DURATION
     /**
-     * Time difference in AVStream->time_base units from the pts of this
-     * packet to the point at which the output from the decoder has converged
-     * independent from the availability of previous frames. That is, the
-     * frames are virtually identical no matter if decoding started from
-     * the very first frame or from this keyframe.
-     * Is AV_NOPTS_VALUE if unknown.
-     * This field is not the display duration of the current packet.
-     * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY
-     * set.
-     *
-     * The purpose of this field is to allow seeking in streams that have no
-     * keyframes in the conventional sense. It corresponds to the
-     * recovery point SEI in H.264 and match_time_delta in NUT. It is also
-     * essential for some types of subtitle streams to ensure that all
-     * subtitles are correctly displayed after seeking.
+     * @deprecated Same as the duration field, but as int64_t. This was required
+     * for Matroska subtitles, whose duration values could overflow when the
+     * duration field was still an int.
      */
+    attribute_deprecated
     int64_t convergence_duration;
+#endif
 } AVPacket;
 #define AV_PKT_FLAG_KEY     0x0001 ///< The packet contains a keyframe
 #define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
@@ -1532,11 +1524,7 @@ typedef struct AVCodecContext {
      * - decoding: Set by user, may be overwritten by libavcodec
      *             if this info is available in the stream
      */
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-    int bit_rate;
-#else
     int64_t bit_rate;
-#endif
 
     /**
      * number of bits the bitstream is allowed to diverge from the reference.
@@ -2467,22 +2455,14 @@ typedef struct AVCodecContext {
      * - encoding: Set by user.
      * - decoding: Set by user, may be overwritten by libavcodec.
      */
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-    int rc_max_rate;
-#else
     int64_t rc_max_rate;
-#endif
 
     /**
      * minimum bitrate
      * - encoding: Set by user.
      * - decoding: unused
      */
-#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI
-    int rc_min_rate;
-#else
     int64_t rc_min_rate;
-#endif
 
 #if FF_API_MPV_OPT
     /**
@@ -4337,24 +4317,13 @@ typedef struct AVCodecParserContext {
      */
     int key_frame;
 
+#if FF_API_CONVERGENCE_DURATION
     /**
-     * Time difference in stream time base units from the pts of this
-     * packet to the point at which the output from the decoder has converged
-     * independent from the availability of previous frames. That is, the
-     * frames are virtually identical no matter if decoding started from
-     * the very first frame or from this keyframe.
-     * Is AV_NOPTS_VALUE if unknown.
-     * This field is not the display duration of the current frame.
-     * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY
-     * set.
-     *
-     * The purpose of this field is to allow seeking in streams that have no
-     * keyframes in the conventional sense. It corresponds to the
-     * recovery point SEI in H.264 and match_time_delta in NUT. It is also
-     * essential for some types of subtitle streams to ensure that all
-     * subtitles are correctly displayed after seeking.
+     * @deprecated unused
      */
+    attribute_deprecated
     int64_t convergence_duration;
+#endif
 
     // Timestamp generation support:
     /**