[FFmpeg-devel] [PATCH v2] avcodec/hevc_sei: Support HEVC paired fields.
Michael Niedermayer
michael at niedermayer.cc
Mon Sep 25 02:45:55 EEST 2017
On Sun, Sep 24, 2017 at 02:36:55PM -0500, Brian Matherly wrote:
> From: Brian Matherly <brian.matherly-at-yahoo.com at ffmpeg.org>
>
> Correctly set the interlaced_frame and top_field_first fields when pic_struct
> indicates paired fields.
> ---
> libavcodec/hevc_sei.c | 4 +-
> tests/fate/hevc.mak | 3 +
> tests/ref/fate/hevc-paired-fields | 120 ++++++++++++++++++++++++++++++++++++++
> 3 files changed, 125 insertions(+), 2 deletions(-)
> create mode 100644 tests/ref/fate/hevc-paired-fields
>
> diff --git a/libavcodec/hevc_sei.c b/libavcodec/hevc_sei.c
> index cd55d50..d0f9966 100644
> --- a/libavcodec/hevc_sei.c
> +++ b/libavcodec/hevc_sei.c
> @@ -137,10 +137,10 @@ static int decode_nal_sei_pic_timing(HEVCSEIContext *s, GetBitContext *gb, const
> if (sps->vui.frame_field_info_present_flag) {
> int pic_struct = get_bits(gb, 4);
> h->picture_struct = AV_PICTURE_STRUCTURE_UNKNOWN;
> - if (pic_struct == 2) {
> + if (pic_struct == 2 || pic_struct == 10 || pic_struct == 12) {
> av_log(logctx, AV_LOG_DEBUG, "BOTTOM Field\n");
> h->picture_struct = AV_PICTURE_STRUCTURE_BOTTOM_FIELD;
> - } else if (pic_struct == 1) {
> + } else if (pic_struct == 1 || pic_struct == 9 || pic_struct == 11) {
> av_log(logctx, AV_LOG_DEBUG, "TOP Field\n");
> h->picture_struct = AV_PICTURE_STRUCTURE_TOP_FIELD;
> }
> diff --git a/tests/fate/hevc.mak b/tests/fate/hevc.mak
> index d23d1ba..a763170 100644
> --- a/tests/fate/hevc.mak
> +++ b/tests/fate/hevc.mak
> @@ -225,6 +225,9 @@ $(foreach N,$(HEVC_SAMPLES_444_12BIT),$(eval $(call FATE_HEVC_TEST_444_12BIT,$(N
> fate-hevc-paramchange-yuv420p-yuv420p10: CMD = framecrc -vsync 0 -i $(TARGET_SAMPLES)/hevc/paramchange_yuv420p_yuv420p10.hevc -sws_flags area+accurate_rnd+bitexact
> FATE_HEVC += fate-hevc-paramchange-yuv420p-yuv420p10
>
> +fate-hevc-paired-fields: CMD = probeframes $(TARGET_SAMPLES)/hevc/paired_fields.hevc
> +FATE_HEVC += fate-hevc-paired-fields
> +
> tests/data/hevc-mp4.mov: TAG = GEN
> tests/data/hevc-mp4.mov: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data
> $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \
this is missing a dependancy on ffporbe
running this without ffprobe being build prior:
make -j12 fate-hevc-paired-fields V=2
...
./tests/fate-run.sh: 79: eval: ffprobe: not found
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Its not that you shouldnt use gotos but rather that you should write
readable code and code with gotos often but not always is less readable
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170925/814e2757/attachment.sig>
More information about the ffmpeg-devel
mailing list