diff options
author | Eric Hameleers <alien@slackware.com> | 2019-05-30 15:40:39 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2019-05-30 15:40:39 +0000 |
commit | 151b29c19fd5232d380eea97c5cd97b238dc418e (patch) | |
tree | a853e1532f3702f74d58d80c04b605d871028502 /vlc/build/patches | |
parent | dc82bdebb7f3ab59e0e5305ef08d88b6754e7ee4 (diff) | |
download | asb-151b29c19fd5232d380eea97c5cd97b238dc418e.tar.gz asb-151b29c19fd5232d380eea97c5cd97b238dc418e.tar.xz |
Initial revision
Diffstat (limited to 'vlc/build/patches')
-rw-r--r-- | vlc/build/patches/ffmpeg_avcodec_h264_slice_sei_params.patch | 48 | ||||
-rw-r--r-- | vlc/build/patches/ffmpeg_avcodec_hevcdec_sei_params.patch | 79 |
2 files changed, 127 insertions, 0 deletions
diff --git a/vlc/build/patches/ffmpeg_avcodec_h264_slice_sei_params.patch b/vlc/build/patches/ffmpeg_avcodec_h264_slice_sei_params.patch new file mode 100644 index 00000000..4010520f --- /dev/null +++ b/vlc/build/patches/ffmpeg_avcodec_h264_slice_sei_params.patch @@ -0,0 +1,48 @@ +From 1b3d0743f592a51a6a65eea2f667c0c2815ff9e2 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <robux4@ycbcr.xyz> +Date: Wed, 29 May 2019 15:15:49 +0200 +Subject: [PATCH] avcodec/h264_slice: set the SEI parameters early on the + AVCodecContext + +It's better to do it before the buffers are actually created. At least in VLC +we currently don't support changing some parameters dynamically easily so we +don't use the information if it comes after the buffer are created. + +Co-authored-by: James Almer <jamrial@gmail.com> +--- + libavcodec/h264_slice.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c +index 1c9a270fb6..5ceee107a0 100644 +--- a/libavcodec/h264_slice.c ++++ b/libavcodec/h264_slice.c +@@ -1092,6 +1092,12 @@ static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_sl + h->avctx->colorspace = sps->colorspace; + } + } ++ ++ if (h->sei.alternative_transfer.present && ++ av_color_transfer_name(h->sei.alternative_transfer.preferred_transfer_characteristics) && ++ h->sei.alternative_transfer.preferred_transfer_characteristics != AVCOL_TRC_UNSPECIFIED) { ++ h->avctx->color_trc = h->sei.alternative_transfer.preferred_transfer_characteristics; ++ } + } + + if (!h->context_initialized || must_reinit || needs_reinit) { +@@ -1332,12 +1338,6 @@ static int h264_export_frame_props(H264Context *h) + h->sei.picture_timing.timecode_cnt = 0; + } + +- if (h->sei.alternative_transfer.present && +- av_color_transfer_name(h->sei.alternative_transfer.preferred_transfer_characteristics) && +- h->sei.alternative_transfer.preferred_transfer_characteristics != AVCOL_TRC_UNSPECIFIED) { +- h->avctx->color_trc = cur->f->color_trc = h->sei.alternative_transfer.preferred_transfer_characteristics; +- } +- + return 0; + } + +-- +2.19.1.windows.1 + diff --git a/vlc/build/patches/ffmpeg_avcodec_hevcdec_sei_params.patch b/vlc/build/patches/ffmpeg_avcodec_hevcdec_sei_params.patch new file mode 100644 index 00000000..13420086 --- /dev/null +++ b/vlc/build/patches/ffmpeg_avcodec_hevcdec_sei_params.patch @@ -0,0 +1,79 @@ +From 66fac4911abbc52333bc35dcff0cab7fa6f0171d Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <robux4@ycbcr.xyz> +Date: Fri, 24 May 2019 08:58:00 +0200 +Subject: [PATCH] avcodec/hevcdec: set the SEI parameters early on the + AVCodecContext + +It's better to do it before the buffers are actually created. At least in VLC +we currently don't support changing some parameters dynamically easily so we +don't use the information if it comes after the buffer are created. + +Co-authored-by: James Almer <jamrial@gmail.com> +--- + libavcodec/hevcdec.c | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c +index 515b346535..f1934975d5 100644 +--- a/libavcodec/hevcdec.c ++++ b/libavcodec/hevcdec.c +@@ -310,9 +310,10 @@ static int decode_lt_rps(HEVCContext *s, LongTermRPS *rps, GetBitContext *gb) + 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; +@@ -355,6 +356,12 @@ static void export_stream_params(AVCodecContext *avctx, const HEVCParamSets *ps, + 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) +@@ -447,7 +454,7 @@ static int set_sps(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; + +@@ -2778,12 +2785,6 @@ static int set_side_data(HEVCContext *s) + 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; + } + +@@ -3179,7 +3180,7 @@ static int hevc_decode_extradata(HEVCContext *s, uint8_t *buf, int length, int f + 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; + } + } +-- +2.19.1.windows.1 + |