X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=webmenc.cc;h=d41e700443c6cf941f61fe9171687508257498c6;hb=49bf2e2ffec18738b240778c7549820aac174cf4;hp=a0e542b17cfdd4bca8622ebc067d839e0270b3a5;hpb=78417211e255eec44eeaa36a65dbf59e7b044a05;p=libvpx diff --git a/webmenc.cc b/webmenc.cc index a0e542b17..d41e70044 100644 --- a/webmenc.cc +++ b/webmenc.cc @@ -24,7 +24,8 @@ void write_webm_file_header(struct EbmlGlobal *glob, const vpx_codec_enc_cfg_t *cfg, const struct vpx_rational *fps, stereo_format_t stereo_fmt, - unsigned int fourcc) { + unsigned int fourcc, + const struct VpxRational *par) { mkvmuxer::MkvWriter *const writer = new mkvmuxer::MkvWriter(glob->stream); mkvmuxer::Segment *const segment = new mkvmuxer::Segment(); segment->Init(writer); @@ -48,7 +49,31 @@ void write_webm_file_header(struct EbmlGlobal *glob, static_cast( segment->GetTrackByNumber(video_track_id)); video_track->SetStereoMode(stereo_fmt); - video_track->set_codec_id(fourcc == VP8_FOURCC ? "V_VP8" : "V_VP9"); + const char *codec_id; + switch (fourcc) { + case VP8_FOURCC: + codec_id = "V_VP8"; + break; + case VP9_FOURCC: + codec_id = "V_VP9"; + break; + case VP10_FOURCC: + codec_id = "V_VP10"; + break; + default: + codec_id = "V_VP10"; + break; + } + video_track->set_codec_id(codec_id); + if (par->numerator > 1 || par->denominator > 1) { + // TODO(fgalligan): Add support of DisplayUnit, Display Aspect Ratio type + // to WebM format. + const uint64_t display_width = + static_cast(((cfg->g_w * par->numerator * 1.0) / + par->denominator) + .5); + video_track->set_display_width(display_width); + video_track->set_display_height(cfg->g_h); + } if (glob->debug) { video_track->set_uid(kDebugTrackUid); }