History

Reapply "demux_mkv: PAR should be calculated after applying crop"

This reverts commit 81102b0f6c7db956cd222ea3e81debda36de5a78.

Kacper Michajłow committed 1 year ago

Commit 403d57d1 parent 50cda601 file · +10 −7Browse files

Unified · Split

demux/demux_mkv.c+10−7
@@ -1692,20 +1692,23 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track) · 1691 unmodified lines
16921692 sh_v->disp_w = track->v_width;
16931693 sh_v->disp_h = track->v_height;
16941694
1695+ struct mp_rect crop;
1696+ crop.x0 = track->v_crop_left;
1697+ crop.y0 = track->v_crop_top;
1698+ crop.x1 = track->v_width - track->v_crop_right;
1699+ crop.y1 = track->v_height - track->v_crop_bottom;
1700+
16951701 // Keep the codec crop rect as 0s if we have no cropping since the
16961702 // file may have broken width/height tags.
16971703 if (track->v_crop_left || track->v_crop_top ||
16981704 track->v_crop_right || track->v_crop_bottom)
16991705 {
1700− sh_v->crop.x0 = track->v_crop_left;
1701− sh_v->crop.y0 = track->v_crop_top;
1702− sh_v->crop.x1 = track->v_width - track->v_crop_right;
1703− sh_v->crop.y1 = track->v_height - track->v_crop_bottom;
1706+ sh_v->crop = crop;
17041707 }
17051708
1706− int dw = track->v_dwidth_set ? track->v_dwidth : track->v_width;
1707− int dh = track->v_dheight_set ? track->v_dheight : track->v_height;
1708− struct mp_image_params p = {.w = track->v_width, .h = track->v_height};
1709+ int dw = track->v_dwidth_set ? track->v_dwidth : mp_rect_w(crop);
1710+ int dh = track->v_dheight_set ? track->v_dheight : mp_rect_h(crop);
1711+ struct mp_image_params p = {.w = mp_rect_w(crop), .h = mp_rect_h(crop)};
17091712 mp_image_params_set_dsize(&p, dw, dh);
17101713 sh_v->par_w = p.p_w;
17111714 sh_v->par_h = p.p_h;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t