⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qcdmp4.c

📁 the mpeg2/4 aac decoder
💻 C
📖 第 1 页 / 共 5 页
字号:
////                file = MP4Modify(info_fn, 0, 0);//                if (file != MP4_INVALID_FILE_HANDLE)//                {//                    MP4MetadataDelete(file);//                    MP4Close(file);//                }//            }////            file = MP4Modify(info_fn, 0, 0);//            if (file == MP4_INVALID_FILE_HANDLE)//            {//                tag_delete(&tags);//                EndDialog(hwndDlg, wParam);//                return FALSE;//            }////            uGetDlgItemText(hwndDlg, IDC_METANAME, dummy1, 1024);//            tag_set_field(&tags, "title", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METAWRITER, dummy1, 1024);//            tag_set_field(&tags, "writer", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METAARTIST, dummy1, 1024);//            tag_set_field(&tags, "artist", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METAALBUM, dummy1, 1024);//            tag_set_field(&tags, "album", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METACOMMENTS, dummy1, 1024);//            tag_set_field(&tags, "comment", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METAGENRE, dummy1, 1024);//            tag_set_field(&tags, "genre", dummy1);////            uGetDlgItemText(hwndDlg, IDC_METAYEAR, dummy1, 1024);//            tag_set_field(&tags, "year", dummy1);////            GetDlgItemText(hwndDlg, IDC_METATRACK1, dummy1, 1024);//            dummy = atoi(dummy1);//            GetDlgItemText(hwndDlg, IDC_METATRACK2, dummy1, 1024);//            dummy2 = atoi(dummy1);//            wsprintf(temp, "%d/%d", dummy, dummy2);//            tag_set_field(&tags, "track", temp);////            GetDlgItemText(hwndDlg, IDC_METADISK1, dummy1, 1024);//            dummy = atoi(dummy1);//            GetDlgItemText(hwndDlg, IDC_METADISK2, dummy1, 1024);//            dummy2 = atoi(dummy1);//            wsprintf(temp, "%d/%d", dummy, dummy2);//            tag_set_field(&tags, "disc", temp);////            GetDlgItemText(hwndDlg, IDC_METATEMPO, dummy1, 1024);//            tag_set_field(&tags, "tempo", dummy1);////            dummy3 = SendMessage(GetDlgItem(hwndDlg, IDC_METACOMPILATION), BM_GETCHECK, 0, 0);//            tag_set_field(&tags, "compilation", (dummy3 ? "1" : "0"));////            WriteMP4Tag(file, &tags);////            MP4Close(file);////            MP4Optimize(info_fn, NULL, 0);//            /* ! */////            EndDialog(hwndDlg, wParam);//            return TRUE;//        }//    }//    return FALSE;//}/////* returns the name of the object type *///char *get_ot_string(int ot)//{//    switch (ot)//    {//    case 0://        return "Main";//    case 1://        return "LC";//    case 2://        return "SSR";//    case 3://        return "LTP";//    }//    return NULL;//}////BOOL CALLBACK aac_info_dialog_proc(HWND hwndDlg, UINT message,//                                   WPARAM wParam, LPARAM lParam)//{//    faadAACInfo aacInfo;//    char *info_text, *header_string;////#ifdef DEBUG_OUTPUT//    in_mp4_DebugOutput("aac_info_dialog_proc");//#endif////    switch (message) {//    case WM_INITDIALOG://        EnableWindow(GetDlgItem(hwndDlg,IDC_USERDATA), FALSE) ;//        ShowWindow(GetDlgItem(hwndDlg,IDC_USERDATA), SW_HIDE);////        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC1), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC2), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC3), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC4), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC5), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC6), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC7), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC8), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC9), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC10), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC11), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_STATIC12), SW_HIDE);////        ShowWindow(GetDlgItem(hwndDlg,IDC_METANAME), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METAARTIST), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METAWRITER), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METACOMMENTS), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METAALBUM), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METAGENRE), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METATEMPO), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METATRACK1), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METATRACK2), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METADISK1), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METADISK2), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METAYEAR), SW_HIDE);//        ShowWindow(GetDlgItem(hwndDlg,IDC_METACOMPILATION), SW_HIDE);////        info_text = malloc(1024*sizeof(char));////        get_AAC_format(info_fn, &aacInfo);////        switch (aacInfo.headertype)//        {//        case 0: /* RAW *///            header_string = " RAW";//            break;//        case 1: /* ADIF *///            header_string = " ADIF";//            break;//        case 2: /* ADTS *///            header_string = " ADTS";//            break;//        }////        sprintf(info_text, "%s AAC %s%s, %d sec, %d kbps, %d Hz",//            (aacInfo.version==2)?"MPEG-2":"MPEG-4", get_ot_string(aacInfo.object_type),//            header_string,//            (int)((float)aacInfo.length/1000.0), (int)((float)aacInfo.bitrate/1000.0+0.5),//            aacInfo.sampling_rate);////        SetDlgItemText(hwndDlg, IDC_INFOTEXT, info_text);////        free(info_text);////        return TRUE;////    case WM_COMMAND://        switch (LOWORD(wParam))//        {//        case IDC_CONVERT://            {//                char mp4FileName[256];//                char *extension;//                OPENFILENAME ofn;////                lstrcpy(mp4FileName, info_fn);//                extension = strrchr(mp4FileName, '.');//                lstrcpy(extension, ".mp4");////                memset(&ofn, 0, sizeof(OPENFILENAME));//                ofn.lStructSize = sizeof(OPENFILENAME);//                ofn.hwndOwner = hwndDlg;//                ofn.hInstance = module.hDllInstance;//                ofn.nMaxFileTitle = 31;//                ofn.lpstrFile = (LPSTR)mp4FileName;//                ofn.nMaxFile = _MAX_PATH;//                ofn.lpstrFilter = "MP4 Files (*.mp4)\0*.mp4\0";//                ofn.lpstrDefExt = "mp4";//                ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;//                ofn.lpstrTitle = "Select Output File";////                if (GetSaveFileName(&ofn))//                {//                    if (covert_aac_to_mp4(info_fn, mp4FileName))//                    {//                        MessageBox(hwndDlg, "An error occured while converting AAC to MP4!", "An error occured!", MB_OK);//                        return FALSE;//                    }//                }//                return TRUE;//            }//        case IDCANCEL://        case IDOK://            EndDialog(hwndDlg, wParam);//            return TRUE;//        }//    }//    return FALSE;//}////int infoDlg(char *fn, HWND hwndParent)//{//    if(!stricmp(fn + strlen(fn) - 3,"AAC"))//    {//        lstrcpy(info_fn, fn);////        DialogBox(module.hDllInstance, MAKEINTRESOURCE(IDD_INFO),//            hwndParent, aac_info_dialog_proc);//    } else {//        lstrcpy(info_fn, fn);////        DialogBox(module.hDllInstance, MAKEINTRESOURCE(IDD_INFO),//            hwndParent, mp4_info_dialog_proc);//    }////    return 0;//}/////* Get the title from the file *///void ConstructTitle(MP4FileHandle file, char *filename, char *title, char *format)//{//    char temp[4096];//    int some_info = 0;//    char *in = format;//    char *out = temp;//title;//    char *bound = out + sizeof(temp) - 256; //out + (MAX_PATH - 10 - 1);//    char *pVal, dummy1[1024];//    short dummy, dummy2;////    while (*in && out < bound)//    {//        switch (*in)//        {//        case '%'://            ++in;//            break;////        default://            *out++ = *in++;//            continue;//        }////        /* handle % escape sequence *///        switch (*in++)//        {//        case '0'://            dummy = 0; dummy2 = 0;//            if (MP4GetMetadataTrack(file, &dummy, &dummy2))//            {//                out += wsprintf(out, "%d", (int)dummy);//                some_info = 1;//            }//            break;////        case '1'://            pVal = NULL;//            if (MP4GetMetadataArtist(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '2'://            pVal = NULL;//            if (MP4GetMetadataName(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '3'://            pVal = NULL;//            if (MP4GetMetadataAlbum(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '4'://            pVal = NULL;//            if (MP4GetMetadataYear(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '5'://            pVal = NULL;//            if (MP4GetMetadataComment(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '6'://            pVal = NULL;//            if (MP4GetMetadataGenre(file, &pVal))//            {//                out += wsprintf(out, "%s", pVal);//                some_info = 1;//            }//            break;////        case '7'://            {//                const char *p=strrchr(filename,'\\');//                if (!p) p=filename; else p++;//                out += ConvertANSIToUTF8(p, out);//                some_info = 1;//                break;//            }////        default://            break;//        }//    }////    *out = '\0';////    if (!some_info)//    {//        char *p=filename+lstrlen(filename);//        while (*p != '\\' && p >= filename) p--;//        lstrcpy(title,++p);//    }//    else//    {//        int len = ConvertUTF8ToANSI(temp, dummy1);//        if (len > (MAX_PATH - 10 - 1)) len = (MAX_PATH - 10 - 1);//        memcpy(title, dummy1, len);//        title[len] = '\0';//    }//}BOOL CALLBACK config_dialog_proc(HWND hwndDlg, UINT message,                                 WPARAM wParam, LPARAM lParam){    int i;    switch (message) {    case WM_INITDIALOG:        SendMessage(GetDlgItem(hwndDlg, IDC_PRIORITY), TBM_SETRANGE, TRUE, MAKELONG(1,5));        SendMessage(GetDlgItem(hwndDlg, IDC_PRIORITY), TBM_SETPOS, TRUE, m_priority);        SendMessage(GetDlgItem(hwndDlg, res_id_table[m_resolution]), BM_SETCHECK, BST_CHECKED, 0);        if (m_show_errors)            SendMessage(GetDlgItem(hwndDlg, IDC_ERROR), BM_SETCHECK, BST_CHECKED, 0);        if (m_use_for_aac)            SendMessage(GetDlgItem(hwndDlg, IDC_USEFORAAC), BM_SETCHECK, BST_CHECKED, 0);        if (m_downmix)            SendMessage(GetDlgItem(hwndDlg, IDC_DOWNMIX), BM_SETCHECK, BST_CHECKED, 0);        if (m_vbr_display)            SendMessage(GetDlgItem(hwndDlg, IDC_VBR), BM_SETCHECK, BST_CHECKED, 0);        SetDlgItemText(hwndDlg, IDC_TITLEFORMAT, titleformat);        return TRUE;    case WM_COMMAND:        switch (LOWORD(wParam)) {        case IDCANCEL:            EndDialog(hwndDlg, wParam);            return TRUE;        case IDOK:            m_show_errors = SendMessage(GetDlgItem(hwndDlg, IDC_ERROR), BM_GETCHECK, 0, 0);            m_use_for_aac = SendMessage(GetDlgItem(hwndDlg, IDC_USEFORAAC), BM_GETCHECK, 0, 0);            m_downmix = SendMessage(GetDlgItem(hwndDlg, IDC_DOWNMIX), BM_GETCHECK, 0, 0);            m_vbr_display = SendMessage(GetDlgItem(hwndDlg, IDC_VBR), BM_GETCHECK, 0, 0);            GetDlgItemText(hwndDlg, IDC_TITLEFORMAT, titleformat, MAX_PATH);            m_priority = SendMessage(GetDlgItem(hwndDlg, IDC_PRIORITY), TBM_GETPOS, 0, 0);            for (i = 0; i < 6; i++)            {                if (SendMessage(GetDlgItem(hwndDlg, res_id_table[i]), BM_GETCHECK, 0, 0))                {                    m_resolution = i;                    break;                }            }            /* save config */            config_write();            //if (!m_use_for_aac)            //{            //    module.FileExtensions = short_ext_list;            //} else {            //    module.FileExtensions = long_ext_list;            //}            EndDialog(hwndDlg, wParam);            return TRUE;        }    }    return FALSE;}void Configure(int flags){    DialogBox(module.hDllInstance, MAKEINTRESOURCE(IDD_CONFIG),		module.hMainWindow, config_dialog_proc);}//-----------------------------------------------------------------------------void About(int flags){	MessageBox(module.hMainWindow,        "AudioCoding.com MPEG-4 General Audio player " FAAD2_VERSION " compiled on " __DATE__ ".\n"        "Visit the website for more info.\n"		"Ported to QCD by Shao Hao.\n"        "Copyright 2002-2003 AudioCoding.com",        "About",        MB_OK);}//-----------------------------------------------------------------------------int fill_buffer(state *st){    int bread;    if (st->m_aac_bytes_consumed > 0)    {        if (st->m_aac_bytes_into_buffer)        {            memmove((void*)st->m_aac_buffer, (void*)(st->m_aac_buffer + st->m_aac_bytes_consumed),                st->m_aac_bytes_into_buffer*sizeof(unsigned char));        }        if (!st->m_at_eof)        {            bread = fread((void*)(st->m_aac_buffer + st->m_aac_bytes_into_buffer),                1, st->m_aac_bytes_consumed, st->aacfile);            if (bread != st->m_aac_bytes_consumed)                st->m_at_eof = 1;            st->m_aac_bytes_into_buffer += bread;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -