obs-ffmpeg: Improve color space handling
Add support for VIDEO_CS_SRGB. Use SMPTE 170M for 601 instead of undef/BT470BG. This is the American/Chromium way of handling 601. Add color metadata to the container file as well via ffmpeg-mux.
This commit is contained in:
@@ -429,9 +429,25 @@ static bool init_encoder(struct nvenc_data *enc, obs_data_t *settings)
|
||||
vui_params->videoSignalTypePresentFlag = 1;
|
||||
vui_params->videoFullRangeFlag = (voi->range == VIDEO_RANGE_FULL);
|
||||
vui_params->colourDescriptionPresentFlag = 1;
|
||||
vui_params->colourMatrix = (voi->colorspace == VIDEO_CS_709) ? 1 : 5;
|
||||
vui_params->colourPrimaries = 1;
|
||||
vui_params->transferCharacteristics = 1;
|
||||
|
||||
switch (voi->colorspace) {
|
||||
case VIDEO_CS_DEFAULT:
|
||||
case VIDEO_CS_601:
|
||||
vui_params->colourPrimaries = 6;
|
||||
vui_params->transferCharacteristics = 6;
|
||||
vui_params->colourMatrix = 6;
|
||||
break;
|
||||
case VIDEO_CS_709:
|
||||
vui_params->colourPrimaries = 1;
|
||||
vui_params->transferCharacteristics = 1;
|
||||
vui_params->colourMatrix = 1;
|
||||
break;
|
||||
case VIDEO_CS_SRGB:
|
||||
vui_params->colourPrimaries = 1;
|
||||
vui_params->transferCharacteristics = 13;
|
||||
vui_params->colourMatrix = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
enc->bframes = bf > 0;
|
||||
|
||||
|
Reference in New Issue
Block a user