On Fri, Sep 30, 2016 at 11:02:32PM -0400, Chris Landry wrote:
> From: Chris Landry <topher.p.lan...@gmail.com>
> 
> When a video stream timebase is not 90k, the cc packet pts is relevant to the 
> timebase of the video stream, but later is assumed to be 90k. Adjust it here 
> to be 90k so timing is accurate in resulting subs.
> 
> Signed-off-by: Chris Landry <topher.p.lan...@gmail.com>
> ---
>  libavdevice/lavfi.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c
> index f9b2694..ffe5e0e 100644
> --- a/libavdevice/lavfi.c
> +++ b/libavdevice/lavfi.c
> @@ -58,6 +58,7 @@ typedef struct {
>      AVFrame *decoded_frame;
>      int nb_sinks;
>      AVPacket subcc_packet;
> +    AVRational video_time_base;
>  } LavfiContext;
>  
>  static int *create_all_formats(int n)
> @@ -317,6 +318,8 @@ av_cold static int lavfi_read_header(AVFormatContext 
> *avctx)
>          st->codecpar->codec_type = link->type;
>          avpriv_set_pts_info(st, 64, link->time_base.num, 
> link->time_base.den);
>          if (link->type == AVMEDIA_TYPE_VIDEO) {
> +            lavfi->video_time_base = link->time_base;
> +
>              st->codecpar->codec_id   = AV_CODEC_ID_RAWVIDEO;
>              st->codecpar->format     = link->format;
>              st->codecpar->width      = link->w;
> @@ -373,8 +376,14 @@ static int create_subcc_packet(AVFormatContext *avctx, 
> AVFrame *frame,
>      if ((ret = av_new_packet(&lavfi->subcc_packet, sd->size)) < 0)
>          return ret;
>      memcpy(lavfi->subcc_packet.data, sd->data, sd->size);
> +
> +    AVRational time_base = lavfi->video_time_base;

likely triggers compiler warning


> +
> +    double adjust_factor = time_base.den / (90000.0 * time_base.num);

floating point is not needed and not ok due to binary non portability
theres av_rescale*

also this breaks make fate

do you have a testcase that this fixes ?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Freedom in capitalist society always remains about the same as it was in
ancient Greek republics: Freedom for slave owners. -- Vladimir Lenin

Attachment: signature.asc
Description: Digital signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to