📄 qcdmp4.c
字号:
//// 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 + -