mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 07:40:00 +08:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: rtpdec: Templatize the code for different g726 bitrate variants rv40: move loop filter to rv34dsp context lavf: make av_set_pts_info private. rtpdec: Add support for G726 audio rtpdec: Add an init function that can do custom codec context initialization avconv: make copy_tb on by default. matroskadec: don't set codec timebase. rmdec: don't set codec timebase. avconv: compute next_pts from input packet duration when possible. lavf: estimate frame duration from r_frame_rate. avconv: update InputStream.pts in the streamcopy case. Conflicts: avconv.c libavdevice/alsa-audio-dec.c libavdevice/bktr.c libavdevice/fbdev.c libavdevice/libdc1394.c libavdevice/oss_audio.c libavdevice/v4l.c libavdevice/v4l2.c libavdevice/vfwcap.c libavdevice/x11grab.c libavformat/au.c libavformat/eacdata.c libavformat/flvdec.c libavformat/mpegts.c libavformat/mxfenc.c libavformat/rtpdec_g726.c libavformat/wtv.c libavformat/xmv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
9
ffmpeg.c
9
ffmpeg.c
@ -1841,7 +1841,9 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
pkt->dts = *pkt_dts;
|
||||
*pkt_pts = AV_NOPTS_VALUE;
|
||||
|
||||
if(*pkt_dts != AV_NOPTS_VALUE && ist->st->codec->time_base.num != 0) {
|
||||
if (*pkt_dts != AV_NOPTS_VALUE && pkt->duration) {
|
||||
*pkt_dts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q);
|
||||
} else if(*pkt_dts != AV_NOPTS_VALUE && ist->st->codec->time_base.num != 0) {
|
||||
int ticks= ist->st->parser ? ist->st->parser->repeat_pict+1 : ist->st->codec->ticks_per_frame;
|
||||
*pkt_dts += ((int64_t)AV_TIME_BASE *
|
||||
ist->st->codec->time_base.num * ticks) /
|
||||
@ -1864,7 +1866,9 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
||||
if(decoded_frame->best_effort_timestamp != AV_NOPTS_VALUE)
|
||||
ist->next_pts = ist->pts = decoded_frame->best_effort_timestamp;
|
||||
|
||||
if (ist->st->codec->time_base.num != 0) {
|
||||
if (pkt->duration)
|
||||
ist->next_pts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q);
|
||||
else if (ist->st->codec->time_base.num != 0) {
|
||||
int ticks = ist->st->parser ? ist->st->parser->repeat_pict + 1 :
|
||||
ist->st->codec->ticks_per_frame;
|
||||
ist->next_pts += ((int64_t)AV_TIME_BASE *
|
||||
@ -2042,6 +2046,7 @@ static int output_packet(InputStream *ist,
|
||||
/* handle stream copy */
|
||||
if (!ist->decoding_needed) {
|
||||
rate_emu_sleep(ist);
|
||||
ist->pts = ist->next_pts;
|
||||
switch (ist->st->codec->codec_type) {
|
||||
case AVMEDIA_TYPE_AUDIO:
|
||||
ist->next_pts += ((int64_t)AV_TIME_BASE * ist->st->codec->frame_size) /
|
||||
|
Reference in New Issue
Block a user