return 0;
}
-static void export_stream_params(AVCodecContext *avctx, const HEVCParamSets *ps,
- const HEVCSPS *sps)
+static void export_stream_params(HEVCContext *s, const HEVCSPS *sps)
{
+ AVCodecContext *avctx = s->avctx;
+ const HEVCParamSets *ps = &s->ps;
const HEVCVPS *vps = (const HEVCVPS*)ps->vps_list[sps->vps_id]->data;
const HEVCWindow *ow = &sps->output_window;
unsigned int num = 0, den = 0;
if (num != 0 && den != 0)
av_reduce(&avctx->framerate.den, &avctx->framerate.num,
num, den, 1 << 30);
+
+ if (s->sei.alternative_transfer.present &&
+ av_color_transfer_name(s->sei.alternative_transfer.preferred_transfer_characteristics) &&
+ s->sei.alternative_transfer.preferred_transfer_characteristics != AVCOL_TRC_UNSPECIFIED) {
+ avctx->color_trc = s->sei.alternative_transfer.preferred_transfer_characteristics;
+ }
}
static enum AVPixelFormat get_format(HEVCContext *s, const HEVCSPS *sps)
if (ret < 0)
goto fail;
- export_stream_params(s->avctx, &s->ps, sps);
+ export_stream_params(s, sps);
s->avctx->pix_fmt = pix_fmt;
s->avctx->properties |= FF_CODEC_PROPERTY_CLOSED_CAPTIONS;
}
- if (s->sei.alternative_transfer.present &&
- av_color_transfer_name(s->sei.alternative_transfer.preferred_transfer_characteristics) &&
- s->sei.alternative_transfer.preferred_transfer_characteristics != AVCOL_TRC_UNSPECIFIED) {
- s->avctx->color_trc = out->color_trc = s->sei.alternative_transfer.preferred_transfer_characteristics;
- }
-
return 0;
}
for (i = 0; i < FF_ARRAY_ELEMS(s->ps.sps_list); i++) {
if (first && s->ps.sps_list[i]) {
const HEVCSPS *sps = (const HEVCSPS*)s->ps.sps_list[i]->data;
- export_stream_params(s->avctx, &s->ps, sps);
+ export_stream_params(s, sps);
break;
}
}