mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
avcodec: Add support for per-frame AFD output in h264
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b75c0a72ed
commit
22291c372f
@ -608,6 +608,7 @@ static int h264_init_context(AVCodecContext *avctx, H264Context *h)
|
||||
h->frame_recovered = 0;
|
||||
h->prev_frame_num = -1;
|
||||
h->sei_fpa.frame_packing_arrangement_cancel_flag = -1;
|
||||
h->has_afd = 0;
|
||||
|
||||
h->next_outputed_poc = INT_MIN;
|
||||
for (i = 0; i < MAX_DELAYED_PIC_COUNT; i++)
|
||||
@ -869,6 +870,15 @@ static void decode_postinit(H264Context *h, int setup_finished)
|
||||
}
|
||||
}
|
||||
|
||||
if (h->has_afd) {
|
||||
AVFrameSideData *sd =
|
||||
av_frame_new_side_data(cur->f, AV_FRAME_DATA_AFD, 1);
|
||||
if (sd) {
|
||||
*sd->data = h->afd;
|
||||
h->has_afd = 0;
|
||||
}
|
||||
}
|
||||
|
||||
cur->mmco_reset = h->mmco_reset;
|
||||
h->mmco_reset = 0;
|
||||
|
||||
|
@ -781,6 +781,9 @@ typedef struct H264Context {
|
||||
|
||||
int missing_fields;
|
||||
|
||||
uint8_t afd;
|
||||
int has_afd;
|
||||
|
||||
|
||||
// Timestamp stuff
|
||||
int sei_buffering_period_present; ///< Buffering period SEI flag
|
||||
|
@ -132,7 +132,13 @@ static int decode_user_data_itu_t_t35(H264Context *h, int size)
|
||||
return -1;
|
||||
skip_bits(&h->gb, 4);
|
||||
dtg_active_format = get_bits(&h->gb, 4);
|
||||
#if FF_API_AFD
|
||||
FF_DISABLE_DEPRECATION_WARNINGS
|
||||
h->avctx->dtg_active_format = dtg_active_format;
|
||||
FF_ENABLE_DEPRECATION_WARNINGS
|
||||
#endif /* FF_API_AFD */
|
||||
h->has_afd = 1;
|
||||
h->afd = dtg_active_format;
|
||||
} else {
|
||||
skip_bits(&h->gb, 6);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user