mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavc/hevc_ps: fix crop info for monochrome
The values of SubWidthC and SubHeightC are 1 in the ITU-T H.265. The current code use the value of 2. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
5ecd580953
commit
70d2bab80b
@ -70,6 +70,14 @@ static const AVRational vui_sar[] = {
|
||||
{ 2, 1 },
|
||||
};
|
||||
|
||||
static const uint8_t hevc_sub_width_c[] = {
|
||||
1, 2, 2, 1
|
||||
};
|
||||
|
||||
static const uint8_t hevc_sub_height_c[] = {
|
||||
1, 2, 1, 1
|
||||
};
|
||||
|
||||
static void remove_pps(HEVCParamSets *s, int id)
|
||||
{
|
||||
if (s->pps_list[id] && s->pps == (const HEVCPPS*)s->pps_list[id]->data)
|
||||
@ -628,8 +636,8 @@ static void decode_vui(GetBitContext *gb, AVCodecContext *avctx,
|
||||
vui->default_display_window_flag = get_bits1(gb);
|
||||
|
||||
if (vui->default_display_window_flag) {
|
||||
int vert_mult = 1 + (sps->chroma_format_idc < 2);
|
||||
int horiz_mult = 1 + (sps->chroma_format_idc < 3);
|
||||
int vert_mult = hevc_sub_height_c[sps->chroma_format_idc];
|
||||
int horiz_mult = hevc_sub_width_c[sps->chroma_format_idc];
|
||||
vui->def_disp_win.left_offset = get_ue_golomb_long(gb) * horiz_mult;
|
||||
vui->def_disp_win.right_offset = get_ue_golomb_long(gb) * horiz_mult;
|
||||
vui->def_disp_win.top_offset = get_ue_golomb_long(gb) * vert_mult;
|
||||
@ -923,8 +931,8 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id,
|
||||
return ret;
|
||||
|
||||
if (get_bits1(gb)) { // pic_conformance_flag
|
||||
int vert_mult = 1 + (sps->chroma_format_idc < 2);
|
||||
int horiz_mult = 1 + (sps->chroma_format_idc < 3);
|
||||
int vert_mult = hevc_sub_height_c[sps->chroma_format_idc];
|
||||
int horiz_mult = hevc_sub_width_c[sps->chroma_format_idc];
|
||||
sps->pic_conf_win.left_offset = get_ue_golomb_long(gb) * horiz_mult;
|
||||
sps->pic_conf_win.right_offset = get_ue_golomb_long(gb) * horiz_mult;
|
||||
sps->pic_conf_win.top_offset = get_ue_golomb_long(gb) * vert_mult;
|
||||
|
@ -250,6 +250,9 @@ FATE_HEVC-$(call DEMDEC, MOV, HEVC) += fate-hevc-extradata-reload
|
||||
|
||||
fate-hevc-extradata-reload: CMD = framemd5 -i $(TARGET_SAMPLES)/hevc/extradata-reload-multi-stsd.mov -sws_flags bitexact
|
||||
|
||||
fate-hevc-monochrome-crop: CMD = probeframes -show_entries frame=width,height:stream=width,height $(TARGET_SAMPLES)/hevc/hevc-monochrome.hevc
|
||||
FATE_HEVC_FFPROBE-$(call DEMDEC, HEVC, HEVC) += fate-hevc-monochrome-crop
|
||||
|
||||
FATE_SAMPLES_AVCONV += $(FATE_HEVC-yes)
|
||||
FATE_SAMPLES_FFPROBE += $(FATE_HEVC_FFPROBE-yes)
|
||||
|
||||
|
8
tests/ref/fate/hevc-monochrome-crop
Normal file
8
tests/ref/fate/hevc-monochrome-crop
Normal file
@ -0,0 +1,8 @@
|
||||
[FRAME]
|
||||
width=384
|
||||
height=240
|
||||
[/FRAME]
|
||||
[STREAM]
|
||||
width=384
|
||||
height=240
|
||||
[/STREAM]
|
Loading…
Reference in New Issue
Block a user