On 12/16/2011 09:14 AM, Martin Storsjö wrote:
> Also define a codec capability for codecs that can handle
> parameters changed externally between decoded packets.
> ---
> libavcodec/avcodec.h | 26 ++++++++++++++++++++++++++
> libavcodec/version.h | 2 +-
> 2 files changed, 27 insertions(+), 1 deletions(-)
>
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 2cdaef6..f649c94 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -773,6 +773,10 @@ typedef struct RcOverride{
> * Codec supports slice-based (or partition-based) multithreading.
> */
> #define CODEC_CAP_SLICE_THREADS 0x2000
> +/**
> + * Codec supports changed parameters at any point.
> + */
> +#define CODEC_CAP_PARAM_CHANGE 0x4000
>
> //The following defines may change, don't expect compatibility if you use
> them.
> #define MB_TYPE_INTRA4x4 0x0001
> @@ -856,6 +860,7 @@ typedef struct AVPanScan{
> enum AVPacketSideDataType {
> AV_PKT_DATA_PALETTE,
> AV_PKT_DATA_NEW_EXTRADATA,
> + AV_PKT_DATA_PARAM_CHANGE,
> };
>
> typedef struct AVPacket {
> @@ -925,6 +930,27 @@ typedef struct AVPacket {
> #define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted
>
> /**
> + * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:
> + * u32le param_flags
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)
> + * u32le channel_count
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)
> + * u64le channel_layout
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)
> + * u32le sample_rate
> + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)
> + * u32le width
> + * u32le height
> + */
> +
> +enum AVSideDataParamChangeFlags {
> + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001,
> + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002,
> + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004,
> + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008,
> +};
> +
> +/**
> * Audio Video Frame.
> * New fields can be added to the end of AVFRAME with minor version
> * bumps. Removal, reordering and changes to existing fields require
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index b6c12a8..0284263 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -21,7 +21,7 @@
> #define AVCODEC_VERSION_H
>
> #define LIBAVCODEC_VERSION_MAJOR 53
> -#define LIBAVCODEC_VERSION_MINOR 29
> +#define LIBAVCODEC_VERSION_MINOR 30
> #define LIBAVCODEC_VERSION_MICRO 0
>
> #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
lgtm.
-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel