diff options
author | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-01-31 12:28:04 +0000 |
---|---|---|
committer | Derek Buitenhuis <derek.buitenhuis@gmail.com> | 2016-01-31 12:28:04 +0000 |
commit | 9938697c1c119a675759029ead74b91c529cdf2e (patch) | |
tree | df594b8ceda53d29763040312c6ea48c692e2781 /libavcodec/mpeg12enc.c | |
parent | b4af7d68fe14c6978a1a2f8b1bb34fd50d189160 (diff) | |
parent | d749615333084e62c9fcc480d1ae466369fdf14f (diff) | |
download | ffmpeg-9938697c1c119a675759029ead74b91c529cdf2e.tar.gz |
Merge commit 'd749615333084e62c9fcc480d1ae466369fdf14f'
* commit 'd749615333084e62c9fcc480d1ae466369fdf14f':
lavc: Move timecode_frame_start to codec private options
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diffstat (limited to 'libavcodec/mpeg12enc.c')
-rw-r--r-- | libavcodec/mpeg12enc.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index a9d0e3f66a..ea45c07055 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -206,16 +206,24 @@ static av_cold int encode_init(AVCodecContext *avctx) return -1; } +#if FF_API_PRIVATE_OPT +FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->timecode_frame_start) + s->timecode_frame_start = avctx->timecode_frame_start; +FF_ENABLE_DEPRECATION_WARNINGS +#endif + if (s->tc_opt_str) { AVRational rate = ff_mpeg12_frame_rate_tab[s->frame_rate_index]; int ret = av_timecode_init_from_string(&s->tc, rate, s->tc_opt_str, s); if (ret < 0) return ret; s->drop_frame_timecode = !!(s->tc.flags & AV_TIMECODE_FLAG_DROPFRAME); - s->avctx->timecode_frame_start = s->tc.start; + s->timecode_frame_start = s->tc.start; } else { - s->avctx->timecode_frame_start = 0; // default is -1 + s->timecode_frame_start = 0; // default is -1 } + return 0; } @@ -363,7 +371,7 @@ static void mpeg1_encode_sequence_header(MpegEncContext *s) * fake MPEG frame rate in case of low frame rate */ fps = (framerate.num + framerate.den / 2) / framerate.den; time_code = s->current_picture_ptr->f->coded_picture_number + - s->avctx->timecode_frame_start; + s->timecode_frame_start; s->gop_picture_number = s->current_picture_ptr->f->coded_picture_number; @@ -1092,14 +1100,16 @@ av_cold void ff_mpeg1_encode_init(MpegEncContext *s) #define OFFSET(x) offsetof(MpegEncContext, x) #define VE AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM #define COMMON_OPTS \ - { "gop_timecode", "MPEG GOP Timecode in hh:mm:ss[:;.]ff format", \ + { "gop_timecode", "MPEG GOP Timecode in hh:mm:ss[:;.]ff format. Overrides timecode_frame_start.", \ OFFSET(tc_opt_str), AV_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, VE },\ { "intra_vlc", "Use MPEG-2 intra VLC table.", \ OFFSET(intra_vlc_format), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ { "drop_frame_timecode", "Timecode is in drop frame format.", \ OFFSET(drop_frame_timecode), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ { "scan_offset", "Reserve space for SVCD scan offset user data.", \ - OFFSET(scan_offset), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, + OFFSET(scan_offset), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, \ + { "timecode_frame_start", "GOP timecode frame start number, in non-drop-frame format", \ + OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.i64 = -1 }, -1, INT64_MAX, VE}, \ static const AVOption mpeg1_options[] = { COMMON_OPTS |