Skip to content

Commit

Permalink
ffmpeg: drop get_sync_ipts() and drop related special case for video
Browse files Browse the repository at this point in the history
Idea found in a commit from Anton Khirnov
Signed-off-by: Michael Niedermayer <[email protected]>
  • Loading branch information
michaelni committed May 20, 2012
1 parent b36a0a8 commit 318e395
Showing 1 changed file with 8 additions and 15 deletions.
23 changes: 8 additions & 15 deletions ffmpeg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1680,13 +1680,6 @@ static void choose_sample_fmt(AVStream *st, AVCodec *codec)
}
}

static double
get_sync_ipts(const OutputStream *ost, int64_t pts)
{
OutputFile *of = output_files[ost->file_index];
return (double)(pts - of->start_time) / AV_TIME_BASE;
}

static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
{
AVBitStreamFilterContext *bsfc = ost->bitstream_filters;
Expand Down Expand Up @@ -1934,7 +1927,7 @@ static void do_video_out(AVFormatContext *s,
if(ist && ist->st->start_time != AV_NOPTS_VALUE && ist->st->first_dts != AV_NOPTS_VALUE && ost->frame_rate.num)
duration = 1/(av_q2d(ost->frame_rate) * av_q2d(enc->time_base));

sync_ipts = get_sync_ipts(ost, in_picture->pts) / av_q2d(enc->time_base);
sync_ipts = in_picture->pts;
delta = sync_ipts - ost->sync_opts + duration;

/* by default, we output a single frame */
Expand Down Expand Up @@ -2162,22 +2155,22 @@ static int poll_filters(void)
break;
}
frame_pts = AV_NOPTS_VALUE;
if (ost->enc->type == AVMEDIA_TYPE_VIDEO)
filtered_frame->pts = frame_pts = av_rescale_q(picref->pts, ist_pts_tb, AV_TIME_BASE_Q);
else if (picref->pts != AV_NOPTS_VALUE)
if (picref->pts != AV_NOPTS_VALUE) {
filtered_frame->pts = frame_pts = av_rescale_q(picref->pts,
ost->filter->filter->inputs[0]->time_base,
ost->st->codec->time_base) -
av_rescale_q(of->start_time,
AV_TIME_BASE_Q,
ost->st->codec->time_base);

if (of->start_time && filtered_frame->pts < 0) {
avfilter_unref_buffer(picref);
continue;
}
}
//if (ost->source_index >= 0)
// *filtered_frame= *input_streams[ost->source_index]->decoded_frame; //for me_threshold

if (of->start_time && filtered_frame->pts < of->start_time) {
avfilter_unref_buffer(picref);
continue;
}

switch (ost->filter->filter->inputs[0]->type) {
case AVMEDIA_TYPE_VIDEO:
Expand Down

0 comments on commit 318e395

Please sign in to comment.