toq...@gmail.com:
> From: Wu Jianhua <toq...@outlook.com>
> 
> Signed-off-by: Wu Jianhua <toq...@outlook.com>
> ---
>  libavcodec/cbs_h2645.c               |  6 ++++++
>  libavcodec/cbs_sei.h                 |  7 +++++++
>  libavcodec/cbs_sei_syntax_template.c | 18 ++++++++++++++++++
>  3 files changed, 31 insertions(+)
> 
> diff --git a/libavcodec/cbs_h2645.c b/libavcodec/cbs_h2645.c
> index 768181874c..c868770209 100644
> --- a/libavcodec/cbs_h2645.c
> +++ b/libavcodec/cbs_h2645.c
> @@ -2193,6 +2193,12 @@ static const SEIMessageTypeDescriptor 
> cbs_sei_common_types[] = {
>          sizeof(SEIRawFilmGrainCharacteristics),
>          SEI_MESSAGE_RW(sei, film_grain_characteristics),
>      },
> +    {
> +        SEI_TYPE_DISPLAY_ORIENTATION,
> +        1, 0,
> +        sizeof(SEIRawDisplayOrientation),
> +        SEI_MESSAGE_RW(sei, display_orientation)
> +    },
>      SEI_MESSAGE_TYPE_END,
>  };
>  
> diff --git a/libavcodec/cbs_sei.h b/libavcodec/cbs_sei.h
> index a0fb004ecd..7be12e33e0 100644
> --- a/libavcodec/cbs_sei.h
> +++ b/libavcodec/cbs_sei.h
> @@ -118,6 +118,13 @@ typedef struct SEIRawFilmGrainCharacteristics {
>      uint8_t      fg_characteristics_persistence_flag;
>  } SEIRawFilmGrainCharacteristics;
>  
> +typedef struct SEIRawDisplayOrientation {
> +    uint8_t      display_orientation_cancel_flag;
> +    uint8_t      display_orientation_persistence_flag;
> +    uint8_t      display_orientation_transform_type;
> +    uint8_t      display_orientation_reserved_zero_3bits;
> +} SEIRawDisplayOrientation;
> +
>  typedef struct SEIRawMessage {
>      uint32_t     payload_type;
>      uint32_t     payload_size;
> diff --git a/libavcodec/cbs_sei_syntax_template.c 
> b/libavcodec/cbs_sei_syntax_template.c
> index b105299cd9..fb19f6ee42 100644
> --- a/libavcodec/cbs_sei_syntax_template.c
> +++ b/libavcodec/cbs_sei_syntax_template.c
> @@ -277,6 +277,24 @@ SEI_FUNC(film_grain_characteristics,
>      return 0;
>  }
>  
> +SEI_FUNC(display_orientation, (CodedBitstreamContext *ctx, RWContext *rw,
> +                               SEIRawDisplayOrientation *current,
> +                               SEIMessageState *state))
> +{
> +    int err;
> +
> +    HEADER("Display Orientation");
> +
> +    flag(display_orientation_cancel_flag);
> +    if (!current->display_orientation_cancel_flag) {
> +        flag(display_orientation_persistence_flag);
> +        u(3, display_orientation_transform_type, 0, 7);
> +        ub(3, display_orientation_reserved_zero_3bits);
> +    }
> +
> +    return 0;
> +}
> +
>  static int FUNC(message)(CodedBitstreamContext *ctx, RWContext *rw,
>                           SEIRawMessage *current)
>  {

You add this to the list of common SEI messages, yet how common is it
really? H.264 and HEVC use different structures (with different parsing).

- Andreas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to