[FFmpeg-devel] [PATCH 2/2] avformat/mxfenc: Set horizontal chroma subsample value from pixel format if available

tim nicholson nichot20 at yahoo.com
Mon May 18 10:36:17 CEST 2015


On 16/05/15 19:18, Michael Niedermayer wrote:
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libavformat/mxfenc.c |    7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index 14449c9..659c34f 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -79,6 +79,7 @@ typedef struct MXFStreamContext {
>      int interlaced;          ///< whether picture is interlaced
>      int field_dominance;     ///< tff=1, bff=2
>      int component_depth;
> +    int h_chroma_sub_sample;
>      int temporal_reordering;
>      AVRational aspect_ratio; ///< display aspect ratio
>      int closed_gop;          ///< gop is closed, used in mpeg-2 frame parsing
> @@ -1027,7 +1028,7 @@ static void mxf_write_cdci_common(AVFormatContext *s, AVStream *st, const UID ke
>  
>      // horizontal subsampling
>      mxf_write_local_tag(pb, 4, 0x3302);
> -    avio_wb32(pb, 2);
> +    avio_wb32(pb, sc->h_chroma_sub_sample);
>  
>      // frame layout
>      mxf_write_local_tag(pb, 1, 0x320C);
> @@ -2035,9 +2036,11 @@ static int mxf_write_header(AVFormatContext *s)
>              AVRational rate, tbc = st->time_base;
>              // Default component depth to 8
>              sc->component_depth = 8;
> +            sc->h_chroma_sub_sample = 2;
>  
>              if (pix_desc) {
> -                sc->component_depth = pix_desc->comp[0].depth_minus1 + 1;
> +                sc->component_depth     = pix_desc->comp[0].depth_minus1 + 1;
> +                sc->h_chroma_sub_sample = 1 << pix_desc->log2_chroma_w;
>              }
>  
>              mxf->timecode_base = (tbc.den + tbc.num/2) / tbc.num;
> 

LGTM

-- 
Tim.
Key Fingerprint 38CF DB09 3ED0 F607 8B67 6CED 0C0B FC44 8B0B FC83


More information about the ffmpeg-devel mailing list