[FFmpeg-devel] [PATCH 2/4] mxfenc: support 50 and 60 frame rates
Matthieu Bouron
matthieu.bouron at gmail.com
Wed May 30 20:27:35 CEST 2012
On Sun, May 27, 2012 at 2:21 PM, Matthieu Bouron
<matthieu.bouron at gmail.com> wrote:
> ---
> $title
> ---
> libavformat/mxfenc.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index b2ef1f3..1d11bae 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -44,8 +44,10 @@
> #include "internal.h"
> #include "mxf.h"
>
> -static const int NTSC_samples_per_frame[] = { 1602, 1601, 1602, 1601, 1602, 0 };
> -static const int PAL_samples_per_frame[] = { 1920, 0 };
> +static const int NTSC_samples_per_frame[] = { 1602, 1601, 1602, 1601, 1602, 0 };
> +static const int NTSC_60_samples_per_frame[] = { 801, 801, 801, 801, 0 };
> +static const int PAL_samples_per_frame[] = { 1920, 0 };
> +static const int PAL_50_samples_per_frame[] = { 960, 0 };
>
> extern AVOutputFormat ff_mxf_d10_muxer;
>
> @@ -1423,10 +1425,18 @@ static int mxf_write_header(AVFormatContext *s)
> samples_per_frame = PAL_samples_per_frame;
> mxf->time_base = (AVRational){ 1, 25 };
> mxf->timecode_base = 25;
> + } else if (fabs(av_q2d(st->codec->time_base) - 1/50.0) < 0.0001) {
> + samples_per_frame = PAL_50_samples_per_frame;
> + mxf->time_base = (AVRational){ 1, 50 };
> + mxf->timecode_base = 50;
> } else if (fabs(av_q2d(st->codec->time_base) - 1001/30000.0) < 0.0001) {
> samples_per_frame = NTSC_samples_per_frame;
> mxf->time_base = (AVRational){ 1001, 30000 };
> mxf->timecode_base = 30;
> + } else if (fabs(av_q2d(st->codec->time_base) - 1001/60000.0) < 0.0001) {
> + samples_per_frame = NTSC_60_samples_per_frame;
> + mxf->time_base = (AVRational){ 1001, 60000 };
> + mxf->timecode_base = 60;
> } else {
> av_log(s, AV_LOG_ERROR, "unsupported video frame rate\n");
> return -1;
> --
> 1.7.10
>
ping
More information about the ffmpeg-devel
mailing list