|
|
@ -399,12 +399,12 @@ int ff_h264_update_thread_context(AVCodecContext *dst, |
|
|
|
|
|
|
|
|
|
|
|
h->enable_er = h1->enable_er; |
|
|
|
h->enable_er = h1->enable_er; |
|
|
|
h->workaround_bugs = h1->workaround_bugs; |
|
|
|
h->workaround_bugs = h1->workaround_bugs; |
|
|
|
|
|
|
|
h->x264_build = h1->x264_build; |
|
|
|
h->droppable = h1->droppable; |
|
|
|
h->droppable = h1->droppable; |
|
|
|
|
|
|
|
|
|
|
|
// extradata/NAL handling
|
|
|
|
// extradata/NAL handling
|
|
|
|
h->is_avc = h1->is_avc; |
|
|
|
h->is_avc = h1->is_avc; |
|
|
|
h->nal_length_size = h1->nal_length_size; |
|
|
|
h->nal_length_size = h1->nal_length_size; |
|
|
|
h->sei.unregistered.x264_build = h1->sei.unregistered.x264_build; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
memcpy(&h->poc, &h1->poc, sizeof(h->poc)); |
|
|
|
memcpy(&h->poc, &h1->poc, sizeof(h->poc)); |
|
|
|
|
|
|
|
|
|
|
@ -545,6 +545,9 @@ static int h264_frame_start(H264Context *h) |
|
|
|
|
|
|
|
|
|
|
|
h->mb_aff_frame = h->ps.sps->mb_aff && (h->picture_structure == PICT_FRAME); |
|
|
|
h->mb_aff_frame = h->ps.sps->mb_aff && (h->picture_structure == PICT_FRAME); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (h->sei.unregistered.x264_build >= 0) |
|
|
|
|
|
|
|
h->x264_build = h->sei.unregistered.x264_build; |
|
|
|
|
|
|
|
|
|
|
|
assert(h->cur_pic_ptr->long_ref == 0); |
|
|
|
assert(h->cur_pic_ptr->long_ref == 0); |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
@ -912,7 +915,7 @@ static int h264_slice_header_init(H264Context *h) |
|
|
|
|
|
|
|
|
|
|
|
if (sps->timing_info_present_flag) { |
|
|
|
if (sps->timing_info_present_flag) { |
|
|
|
int64_t den = sps->time_scale; |
|
|
|
int64_t den = sps->time_scale; |
|
|
|
if (h->sei.unregistered.x264_build < 44U) |
|
|
|
if (h->x264_build < 44U) |
|
|
|
den *= 2; |
|
|
|
den *= 2; |
|
|
|
av_reduce(&h->avctx->framerate.den, &h->avctx->framerate.num, |
|
|
|
av_reduce(&h->avctx->framerate.den, &h->avctx->framerate.num, |
|
|
|
sps->num_units_in_tick * h->avctx->ticks_per_frame, den, 1 << 30); |
|
|
|
sps->num_units_in_tick * h->avctx->ticks_per_frame, den, 1 << 30); |
|
|
|