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 | 113 | struct pl_color_repr repr; |
| 114 | 114 | struct pl_color_space color; |
| 115 | 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 | 118 | float v_projection_pose_roll; |
| 117 | 119 | |
| 118 | 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 | 659 | static void parse_trackprojection(struct demuxer *demuxer, struct mkv_track *track, |
| 658 | 660 | struct ebml_projection *projection) |
| 659 | 661 | { |
| 660 | − if (projection->n_projection_pose_yaw || projection->n_projection_pose_pitch) | |
| 661 | − MP_WARN(demuxer, "Projection pose yaw/pitch not supported!\n"); | |
| 662 | + if (projection->n_projection_pose_yaw) { | |
| 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 | 674 | if (projection->n_projection_pose_roll) { |
| 664 | 675 | track->v_projection_pose_roll = projection->projection_pose_roll; |
| 665 | 676 | MP_DBG(demuxer, "| + Projection pose roll: %f\n", |
| 666 | 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 | 688 | static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track, |