中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

FFmpeg mov_read_ftyp函數剖析

發布時間:2020-08-03 00:24:05 來源:網絡 閱讀:1095 作者:fengyuzaitu 欄目:編程語言

函數說明

    讀取文件格式,最小版本以及兼容格式,然后存儲到metadata,metadata作為AVFormatContext成員變量,可以通過t = av_dict_get(pAVFormatContext->metadata, "major_brand", NULL, AV_DICT_IGNORE_SUFFIX);查看文件格式

/* read major brand, minor version and compatible brands and store them as metadata */
static int mov_read_ftyp(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
    uint32_t minor_ver;
    int comp_brand_size;
    char* comp_brands_str;
    uint8_t type[5] = {0};
    int ret = ffio_read_size(pb, type, 4);
    if (ret < 0)
        return ret;

    if (strcmp(type, "qt  "))
        c->isom = 1;
    av_log(c->fc, AV_LOG_DEBUG, "ISO: File Type Major Brand: %.4s\n",(char *)&type);
    //fc結構體是AVFormatContext
    av_dict_set(&c->fc->metadata, "major_brand", type, 0);
    minor_ver = avio_rb32(pb); /* minor version */
    av_dict_set_int(&c->fc->metadata, "minor_version", minor_ver, 0);

    comp_brand_size = atom.size - 8;
    if (comp_brand_size < 0)
        return AVERROR_INVALIDDATA;
    comp_brands_str = av_malloc(comp_brand_size + 1); /* Add null terminator */
    if (!comp_brands_str)
        return AVERROR(ENOMEM);

    ret = ffio_read_size(pb, comp_brands_str, comp_brand_size);
    if (ret < 0) {
        av_freep(&comp_brands_str);
        return ret;
    }
    comp_brands_str[comp_brand_size] = 0;
    av_dict_set(&c->fc->metadata, "compatible_brands", comp_brands_str, 0);
    av_freep(&comp_brands_str);

    return 0;
}


文件格式說明

                    Brand                  Extension          Mime type
MP4             mp41,mp42       .mp4                  video/mp4,audio/mp4,application/mp4
QuickTim    qt                        .mov                    video/quicktime

參考
http://www.ftyps.com

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荃湾区| 新竹市| 平昌县| 黑龙江省| 阜阳市| 五家渠市| 韶关市| 宣恩县| 呼玛县| 彭水| 贵溪市| 呼伦贝尔市| 新河县| 柳江县| 奉化市| 嘉祥县| 烟台市| 东兰县| 类乌齐县| 咸丰县| 汝城县| 错那县| 军事| 建德市| 通化县| 万荣县| 东台市| 长泰县| 许昌市| 平和县| 界首市| 怀安县| 紫云| 英山县| 四平市| 桦甸市| 噶尔县| 濉溪县| 浪卡子县| 郧西县| 宕昌县|