This case will work fine, even if those are explicitly set.
Unified · Split
| @@ -113,6 +113,8 @@ typedef struct mkv_track { · 112 unmodified lines | |||
| 113 | struct pl_color_repr repr; | 113 | struct pl_color_repr repr; |
| 114 | struct pl_color_space color; | 114 | struct pl_color_space color; |
| 115 | uint32_t v_crop_top, v_crop_left, v_crop_right, v_crop_bottom; | 115 | uint32_t v_crop_top, v_crop_left, v_crop_right, v_crop_bottom; |
| 116 | float v_projection_pose_yaw; | ||
| 117 | float v_projection_pose_pitch; | ||
| 116 | float v_projection_pose_roll; | 118 | float v_projection_pose_roll; |
| 117 | 119 | ||
| 118 | uint32_t a_channels, a_bps; | 120 | uint32_t a_channels, a_bps; |
| @@ -657,14 +659,30 @@ static void parse_trackcolour(struct demuxer *demuxer, struct mkv_track *track, · 538 unmodified lines | |||
| 657 | static void parse_trackprojection(struct demuxer *demuxer, struct mkv_track *track, | 659 | static void parse_trackprojection(struct demuxer *demuxer, struct mkv_track *track, |
| 658 | struct ebml_projection *projection) | 660 | struct ebml_projection *projection) |
| 659 | { | 661 | { |
| 660 | if (projection->n_projection_pose_yaw || projection->n_projection_pose_pitch) | 662 | if (projection->n_projection_pose_yaw) { |
| 661 | MP_WARN(demuxer, "Projection pose yaw/pitch not supported!\n"); | 663 | track->v_projection_pose_yaw = projection->projection_pose_yaw; |
| 664 | MP_DBG(demuxer, "| + Projection pose yaw: %f\n", | ||
| 665 | track->v_projection_pose_yaw); | ||
| 666 | } | ||
| 667 | |||
| 668 | if (projection->n_projection_pose_pitch) { | ||
| 669 | track->v_projection_pose_pitch = projection->projection_pose_pitch; | ||
| 670 | MP_DBG(demuxer, "| + Projection pose pitch: %f\n", | ||
| 671 | track->v_projection_pose_pitch); | ||
| 672 | } | ||
| 662 | 673 | ||
| 663 | if (projection->n_projection_pose_roll) { | 674 | if (projection->n_projection_pose_roll) { |
| 664 | track->v_projection_pose_roll = projection->projection_pose_roll; | 675 | track->v_projection_pose_roll = projection->projection_pose_roll; |
| 665 | MP_DBG(demuxer, "| + Projection pose roll: %f\n", | 676 | MP_DBG(demuxer, "| + Projection pose roll: %f\n", |
| 666 | track->v_projection_pose_roll); | 677 | track->v_projection_pose_roll); |
| 667 | } | 678 | } |
| 679 | |||
| 680 | if (track->v_projection_pose_yaw || track->v_projection_pose_pitch) { | ||
| 681 | MP_WARN(demuxer, "Not supported projection: yaw %f, pitch %f, roll %f\n", | ||
| 682 | track->v_projection_pose_yaw, | ||
| 683 | track->v_projection_pose_pitch, | ||
| 684 | track->v_projection_pose_roll); | ||
| 685 | } | ||
| 668 | } | 686 | } |
| 669 | 687 | ||
| 670 | static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track, | 688 | static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track, |