+ 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];
+ AVStereo3D *stereo;
+ AVSphericalMapping *spherical;
+
+ 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;
+ case AV_PKT_DATA_STEREO3D:
+ stereo = (AVStereo3D *)sd->data;
+ probe_object_header("stereo3d");
+ probe_str("type", av_stereo3d_type_name(stereo->type));
+ probe_int("inverted",
+ !!(stereo->flags & AV_STEREO3D_FLAG_INVERT));
+ probe_object_footer("stereo3d");
+ break;
+ case AV_PKT_DATA_SPHERICAL:
+ spherical = (AVSphericalMapping *)sd->data;
+ probe_object_header("spherical");
+
+ if (spherical->projection == AV_SPHERICAL_EQUIRECTANGULAR)
+ probe_str("projection", "equirectangular");
+ else if (spherical->projection == AV_SPHERICAL_CUBEMAP)
+ probe_str("projection", "cubemap");
+ else
+ probe_str("projection", "unknown");
+
+ probe_object_header("orientation");
+ probe_int("yaw", (double) spherical->yaw / (1 << 16));
+ probe_int("pitch", (double) spherical->pitch / (1 << 16));
+ probe_int("roll", (double) spherical->roll / (1 << 16));
+ probe_object_footer("orientation");
+
+ probe_object_footer("spherical");
+ break;
+ }
+ }
+ probe_object_footer("sidedata");
+ }
+