On Sat, May 2, 2015 at 9:31 AM, Martin Storsjö <[email protected]> wrote:
> This is printed in a separate subgroup "displaymatrix" inside a
> new group named "sidedata". The subgroup has got two values,
> "rotation" (which is the parsed rotation from the matrix) and
> "matrix" containing the full actual values.
> ---
>  avprobe.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/avprobe.c b/avprobe.c
> index 037e0c1..5d33f64 100644
> --- a/avprobe.c
> +++ b/avprobe.c
> @@ -24,6 +24,7 @@
>  #include "libavformat/avformat.h"
>  #include "libavcodec/avcodec.h"
>  #include "libavutil/avstring.h"
> +#include "libavutil/display.h"
>  #include "libavutil/opt.h"
>  #include "libavutil/pixdesc.h"
>  #include "libavutil/dict.h"
> @@ -700,6 +701,27 @@ static void show_stream(AVFormatContext *fmt_ctx, int 
> stream_idx)
>
>      probe_dict(stream->metadata, "tags");
>
> +    if (stream->nb_side_data) {
> +        int i, j;
> +        probe_object_header("sidedata");
> +        for (i = 0; i < stream->nb_side_data; i++) {
> +            const AVPacketSideData* sd = &stream->side_data[i];
> +            switch (sd->type) {
> +            case AV_PKT_DATA_DISPLAYMATRIX:
> +                probe_object_header("displaymatrix");
> +                probe_array_header("matrix", 1);
> +                for (j = 0; j < 9; j++)
> +                    probe_int(NULL, ((int32_t *)sd->data)[j]);
> +                probe_array_footer("matrix", 1);
> +                probe_int("rotation",
> +                          av_display_rotation_get((int32_t *)sd->data));
> +                probe_object_footer("displaymatrix");
> +                break;
> +            }
> +        }
> +        probe_object_footer("sidedata");
> +    }
> +
>      probe_object_footer("stream");
>  }

Looks nice.
-- 
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to