亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? amr.c

?? arm平臺下的H264編碼和解碼源代碼
?? C
字號:
/*  * amr file format * Copyright (c) 2001 ffmpeg project * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//*Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.txt?number=3267Only mono files are supported.*/#include "avformat.h"static const unsigned char AMR_header [] = "#!AMR\n";static const unsigned char AMRWB_header [] = "#!AMR-WB\n";static int amr_write_header(AVFormatContext *s){    ByteIOContext *pb = &s->pb;    AVCodecContext *enc = &s->streams[0]->codec;    s->priv_data = NULL;    if (enc->codec_id == CODEC_ID_AMR_NB)    {        put_tag(pb, AMR_header);       /* magic number */    }    else if(enc->codec_id == CODEC_ID_AMR_WB)    {        put_tag(pb, AMRWB_header);       /* magic number */    }    else    {        //This is an error!    }    put_flush_packet(pb);    return 0;}static int amr_write_packet(AVFormatContext *s, int stream_index_ptr,                           uint8_t *buf, int size, int force_pts){    put_buffer(&s->pb, buf, size);    put_flush_packet(&s->pb);    return 0;}static int amr_write_trailer(AVFormatContext *s){    return 0;}static int amr_probe(AVProbeData *p){    //Only check for "#!AMR" which could be amr-wb, amr-nb.     //This will also trigger multichannel files: "#!AMR_MC1.0\n" and     //"#!AMR-WB_MC1.0\n" (not supported)    if (p->buf_size < 5)        return 0;    if(memcmp(p->buf,AMR_header,5)==0)        return AVPROBE_SCORE_MAX;    else        return 0;}/* amr input */static int amr_read_header(AVFormatContext *s,                           AVFormatParameters *ap){    ByteIOContext *pb = &s->pb;    AVStream *st;    uint8_t header[9];    get_buffer(pb, header, 6);    if(memcmp(header,AMR_header,6)!=0)    {        get_buffer(pb, header+6, 3);        if(memcmp(header,AMRWB_header,9)!=0)        {            return -1;        }        st = av_new_stream(s, 0);        if (!st)        {            return AVERROR_NOMEM;        }            st->codec.codec_type = CODEC_TYPE_AUDIO;        st->codec.codec_tag = CODEC_ID_AMR_WB;        st->codec.codec_id = CODEC_ID_AMR_WB;        st->codec.channels = 1;        st->codec.sample_rate = 16000;    }    else    {        st = av_new_stream(s, 0);        if (!st)        {            return AVERROR_NOMEM;        }            st->codec.codec_type = CODEC_TYPE_AUDIO;        st->codec.codec_tag = CODEC_ID_AMR_NB;        st->codec.codec_id = CODEC_ID_AMR_NB;        st->codec.channels = 1;        st->codec.sample_rate = 8000;    }    return 0;}#define MAX_SIZE 32static int amr_read_packet(AVFormatContext *s,                          AVPacket *pkt){    AVCodecContext *enc = &s->streams[0]->codec;    if (enc->codec_id == CODEC_ID_AMR_NB)    {        const static uint8_t packed_size[16] = {12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0};        uint8_t toc, q, ft;        int read;        int size;            if (url_feof(&s->pb))        {            return -EIO;        }            toc=get_byte(&s->pb);        q  = (toc >> 2) & 0x01;        ft = (toc >> 3) & 0x0F;            size=packed_size[ft];            if (av_new_packet(pkt, size+1))        {            return -EIO;        }        pkt->stream_index = 0;                pkt->data[0]=toc;            read = get_buffer(&s->pb, pkt->data+1, size);            if (read != size)        {            av_free_packet(pkt);            return -EIO;        }            return 0;    }    else if(enc->codec_id == CODEC_ID_AMR_WB)    {        static uint8_t packed_size[16] = {18, 24, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};        uint8_t toc, mode;        int read;        int size;            if (url_feof(&s->pb))        {            return -EIO;        }            toc=get_byte(&s->pb);        mode = (uint8_t)((toc >> 3) & 0x0F);        size = packed_size[mode];            if ( (size==0) || av_new_packet(pkt, size))        {            return -EIO;        }            pkt->stream_index = 0;        pkt->data[0]=toc;            read = get_buffer(&s->pb, pkt->data+1, size-1);            if (read != (size-1))        {            av_free_packet(pkt);            return -EIO;        }            return 0;    }    else    {        return -EIO;    }}static int amr_read_close(AVFormatContext *s){    return 0;}static AVInputFormat amr_iformat = {    "amr",    "3gpp amr file format",    0, /*priv_data_size*/    amr_probe,    amr_read_header,    amr_read_packet,    amr_read_close,};static AVOutputFormat amr_oformat = {    "amr",    "3gpp amr file format",    "audio/amr",    "amr",    0,    CODEC_ID_AMR_NB,    CODEC_ID_NONE,    amr_write_header,    amr_write_packet,    amr_write_trailer,};int amr_init(void){    av_register_input_format(&amr_iformat);    av_register_output_format(&amr_oformat);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美一级| 91偷拍与自偷拍精品| 日韩午夜在线观看视频| 午夜日韩在线观看| 欧美一级一区二区| 激情综合色播激情啊| 亚洲精品一区二区三区蜜桃下载| 精品一区中文字幕| 国产喷白浆一区二区三区| 成人精品国产福利| 一区二区三区久久| 日韩欧美激情一区| 成人av影院在线| 一区二区三区在线免费| 777欧美精品| 狠狠色综合播放一区二区| 国产精品丝袜91| 欧美专区亚洲专区| 久久se精品一区精品二区| 久久久久久久久久久黄色| 9i在线看片成人免费| 亚洲成人777| 久久久精品欧美丰满| 91免费视频网址| 美女一区二区三区| 国产精品你懂的| 欧美欧美午夜aⅴ在线观看| 国产在线精品不卡| 一区二区三区在线不卡| 日韩视频免费观看高清完整版在线观看 | 国产精品99久久久久久似苏梦涵 | 99久久伊人久久99| 亚洲一区二区综合| 26uuu精品一区二区在线观看| eeuss国产一区二区三区| 亚洲高清免费一级二级三级| 久久综合九色综合97_久久久| 99精品视频中文字幕| 奇米一区二区三区av| 亚洲国产精品av| 6080日韩午夜伦伦午夜伦| 懂色av噜噜一区二区三区av| 天堂成人免费av电影一区| 国产区在线观看成人精品| 欧美日韩在线一区二区| 国产不卡视频一区| 日本欧美一区二区三区| 亚洲欧美日韩电影| 亚洲国产精华液网站w| 欧美性一区二区| 不卡的av电影| 国产精品69毛片高清亚洲| 日日摸夜夜添夜夜添亚洲女人| 综合欧美亚洲日本| 国产三级精品在线| 久久综合精品国产一区二区三区| 欧美精品欧美精品系列| 色婷婷亚洲婷婷| av一区二区久久| 国产精品一二三四区| 免费成人美女在线观看| 亚洲成av人片一区二区梦乃| 亚洲素人一区二区| 国产精品你懂的在线欣赏| 2023国产精品自拍| 欧美精品一区男女天堂| 日韩欧美国产高清| 欧美一级在线观看| 欧美一区二区三区视频免费播放| 欧美日韩国产经典色站一区二区三区| 99re66热这里只有精品3直播| 国产精品99久| 成人永久aaa| 国产精品一区二区三区乱码 | 性做久久久久久免费观看| 亚洲视频在线一区二区| 亚洲欧洲精品一区二区三区 | 欧美亚洲动漫精品| 在线视频综合导航| 在线观看亚洲一区| 欧美亚一区二区| 欧美肥胖老妇做爰| 欧美二区三区91| 日韩一级大片在线| 欧美mv和日韩mv国产网站| 精品理论电影在线观看| 337p日本欧洲亚洲大胆色噜噜| www日韩大片| 欧美—级在线免费片| 成人免费在线观看入口| 一区二区三区在线免费| 丝袜亚洲另类欧美| 久久精品国产99国产精品| 国产精品羞羞答答xxdd| 97久久超碰国产精品| 欧洲视频一区二区| 欧美一区二区三区免费视频| 精品国产一区二区三区久久影院 | 91丨国产丨九色丨pron| 日本高清不卡在线观看| 欧美日本免费一区二区三区| 日韩午夜激情电影| 久久亚洲精华国产精华液| 国产精品久久久久久一区二区三区 | 国产99久久久国产精品免费看| 成人av片在线观看| 欧美日韩三级一区二区| 日韩欧美激情一区| 中文字幕亚洲一区二区av在线| 亚洲国产精品久久不卡毛片 | 国产精品亚洲一区二区三区妖精| 国产成人免费在线| 在线免费观看日本一区| 日韩免费观看高清完整版| 日本一区二区成人在线| 亚洲午夜三级在线| 国产在线一区二区综合免费视频| av电影在线观看不卡| 这里只有精品视频在线观看| 欧美激情一区在线观看| 亚洲成a天堂v人片| 成人午夜视频在线| 欧美电影一区二区| 一区视频在线播放| 久久爱另类一区二区小说| 日本精品裸体写真集在线观看| 欧美videos大乳护士334| 中文字幕一区二区三区av| 奇米影视一区二区三区| 色悠悠久久综合| 国产欧美日韩精品一区| 亚洲超碰精品一区二区| 成人午夜激情片| 日韩免费一区二区三区在线播放| 亚洲日本va午夜在线影院| 激情综合一区二区三区| 欧美亚洲国产怡红院影院| 亚洲国产精品99久久久久久久久| 日韩专区欧美专区| 色猫猫国产区一区二在线视频| 欧美精品一区二区久久婷婷 | 亚洲午夜av在线| 99久久免费精品高清特色大片| 久久综合五月天婷婷伊人| 视频一区中文字幕国产| 91麻豆国产香蕉久久精品| 国产午夜亚洲精品不卡| 蜜桃视频在线观看一区| 欧美日韩精品欧美日韩精品| 亚洲日本在线看| 国产a久久麻豆| 久久久精品影视| 激情综合色播激情啊| 日韩三级电影网址| 偷偷要91色婷婷| 欧美挠脚心视频网站| 亚洲美女淫视频| 91丨porny丨在线| 最新成人av在线| 99综合影院在线| 1024成人网| 99久久综合99久久综合网站| 欧美国产精品一区二区| 国产风韵犹存在线视精品| 国产三级精品在线| 成人妖精视频yjsp地址| 亚洲国产精品t66y| 99视频有精品| 亚洲精品五月天| 欧美三级电影一区| 无吗不卡中文字幕| 欧美一区二区视频在线观看2020| 日韩国产成人精品| 精品国产乱子伦一区| 国产资源在线一区| 久久品道一品道久久精品| 国产不卡视频在线观看| 亚洲欧美综合色| 91国产视频在线观看| 亚洲国产一区二区在线播放| 欧美久久高跟鞋激| 六月婷婷色综合| 久久久久久久久免费| 不卡免费追剧大全电视剧网站| 亚洲欧美激情视频在线观看一区二区三区 | 国产在线精品一区二区夜色 | 26uuu色噜噜精品一区二区| 蜜桃久久av一区| 久久久五月婷婷| 成人av影院在线| 亚洲午夜影视影院在线观看| 日韩亚洲欧美在线| 国产精品一区二区三区网站| 亚洲天堂福利av| 日韩一区二区三区在线视频| 国产精品亚洲综合一区在线观看| 亚洲人成电影网站色mp4| 在线电影院国产精品| 国产成人精品免费网站| 亚洲人成网站色在线观看|