Comments 31
В заголовке «оЧипятка»?
Нашему прОигрывателю, наши же пластинки и не подходят
А почему в вашем проекте нельзя использовать открытые библиотеки?
Microsoft славится индусским кодом и API, а постоянство и стабильность — признак мастерства.
Microsoft славится индусским кодом и API, а постоянство и стабильность — признак мастерства.
Джоэл Сполски в свое время все правильно объяснил про глубоко неверный подход Майкрософт к API, вот тут можно почитать
Лично я в этом вопросе вас полностью поддерживаю, так как самому не нравятся многие новинки в Win8 именно по таким причинам искусственных «выпиливаний» и запретов.
Лично я в этом вопросе вас полностью поддерживаю, так как самому не нравятся многие новинки в Win8 именно по таким причинам искусственных «выпиливаний» и запретов.
Действительно здравая статья, хотя немного устарела, в вебе уже можно делать почти все то, что там написно, как недоступное для веб приложений, а у MS появился XAML, похоже, что удобный инструмент.
>Да, это немного глупо: конечно Apple и Sun могут продавать компьютеры, но не на двух наиболее прибыльных рынках, а именно на рынках корпоративных и домашних пользователей. Aplle до сих пор где-то там внизу, с очень маленьким процентом рынка
2005 год
А как всё изменилось за 7 лет. Sun погибла, а вот ноутбуки с яблоком мелькают почти везде. Мобильные телефоны стали компьютерами, и MS там где-то внизу на этом рынке.
2005 год
А как всё изменилось за 7 лет. Sun погибла, а вот ноутбуки с яблоком мелькают почти везде. Мобильные телефоны стали компьютерами, и MS там где-то внизу на этом рынке.
Завис на пол часа над статьей.
Спасибо, очень интересная статейка хоть и старая
Спасибо, очень интересная статейка хоть и старая
Суть претензий не очень понятна. Разумеется в сэмпле должна быть куча boilerplate-кода, иначе он работать не сможет.
Вообще это не претензия, бог миловал, для меня это первый и последний опыт работы с подобным фреймворком.
И я кстати вовсе не «против» Микрософта, много лет покупаю их оси и очень люблю Visual Studio в качестве IDE, для С++, хотя последнее время больше пользуюсь QtCreator'ом т.к. он одинаковый на всех десктоп платформах.
А насчет примера, вот, на мой взгляд «человеческий пример пример» захвата видео.
Короткий и по моему, понятный.
И я кстати вовсе не «против» Микрософта, много лет покупаю их оси и очень люблю Visual Studio в качестве IDE, для С++, хотя последнее время больше пользуюсь QtCreator'ом т.к. он одинаковый на всех десктоп платформах.
А насчет примера, вот, на мой взгляд «человеческий пример пример» захвата видео.
#include "cv.h"
#include "highgui.h"
#include "stdio.h"
int main(int argc, char** argv) {
CvCapture* capture = 0;
IplImage *frame = 0;
if (!(capture = cvCaptureFromCAM(0)))
printf("Cannot initialize camera\n");
cvNamedWindow("Capture", CV_WINDOW_AUTOSIZE);
while (1) {
frame = cvQueryFrame(capture);
if (!frame)
break;
IplImage *temp = cvCreateImage(cvSize(frame->width/2, frame->height/2), frame->depth, frame->nChannels); // A new Image half size
cvResize(frame, temp, CV_INTER_CUBIC); // Resize
cvSmooth(temp, temp, CV_GAUSSIAN, 7, 7, 0, 0); // Real time filter: Gaussian blur
cvSaveImage("test.jpg", temp, 0); // Save this image
cvSave("test.xml", temp, NULL, NULL, cvAttrList(0, 0)); // Save as xml
cvShowImage("Capture", frame); // Display the frame
cvReleaseImage(&temp);
if (cvWaitKey(5000) == 27) // Escape key and wait, 5 sec per capture
break;
}
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
return 0;
}
Короткий и по моему, понятный.
> Короткий и по моему, понятный
Короткий он потому, что в нём полностью отсутствует обработка ошибок и нештатных ситуаций, т.е. это типичный студенческий говнокод.
В примере от MS больше половины строк занимает как раз обработка нештатных ситуаций, т.е. это типичный качественный enterprise код.
Короткий он потому, что в нём полностью отсутствует обработка ошибок и нештатных ситуаций, т.е. это типичный студенческий говнокод.
В примере от MS больше половины строк занимает как раз обработка нештатных ситуаций, т.е. это типичный качественный enterprise код.
А мне же пример нужен, а не энтерпрайз, нам ведь как-то надо освоить это чудо. Как-то постичь обещанные удобство и простоту новых фреймворков, с которыми: «Разработка стала еще проще».
У Microsoft традиция писать все примеры с обработкой ошибок, т.к. выяснилось что многие разработчики просто копипастят этот код в свои проекты.
А потом 10050 «индусов» сделают copy-paste вашего примера и ихнее приложение будет работать только при особом положении луны и во всём будут винить конечно Майкрософт.
Майкрософт уже несколько раз декларировала что подход к примерам(из MSDN) должен быть таким чтобы код можно было было безбоязнено скопировать.
Майкрософт уже несколько раз декларировала что подход к примерам(из MSDN) должен быть таким чтобы код можно было было безбоязнено скопировать.
Зачем, скажите на милость, разработчикам втюхивают этот Media Foundation? И почему отменили совместимость с DirectShow в Metro приложениях?
Metro приложения появились с выходом Windows 8, в них никогда не было DirectShow — как можно «отменить совместимость» с тем, чего никогда не было? Вы бы еще огорчились, что в PlayStation 3 отменили совместимость с WinAPI :).
Почему его в Metro нету — другой вопрос. Насколько я понимаю концепцию, Metro — это объединенная платформа для телифонов, планшетов, и, по остаточному принципу, десктопа. Соответственно приложение условно работает «везде». Платформа изначально телефонная, от Windows Phone 7. Вполне логичный шаг использовать на телефонной птформе, заточенной под тайлы и джаваскрипт, адаптированный под нее фреймворк. Вместо того чтобы тащить десктопный. У меня есть смутное подозрение, что взаимоействие того же javascript с directshow было бы не самым лучшим опытом для разработчиков :)
Так довели бы его до ума, чем позориться. Книжку какую-то выпустили, толстенную и заранее устаревшую, в которой общие фразы типа MF это такое домино, сходятся только у которых одинаковые точки. А в примерах такое домино, что в глазах темно.
Вот на Андроиде к примеру — смог собрать библиотеку под Андроид — пользуйся, хоть тем же Qt. А DirectShow на 8й работает, но только в десктоп приложениях, а в метро нет. И у этого медиа фоундайшин какие-то хвосты в DirectShow лезут, а почему же в метро аппликациях на десктоп ПК им пользоваться тогда нельзя?
Вот на Андроиде к примеру — смог собрать библиотеку под Андроид — пользуйся, хоть тем же Qt. А DirectShow на 8й работает, но только в десктоп приложениях, а в метро нет. И у этого медиа фоундайшин какие-то хвосты в DirectShow лезут, а почему же в метро аппликациях на десктоп ПК им пользоваться тогда нельзя?
Windows 8 — это наследник Windows 7. Настольной Windows 7.
Было в предке и не стало в наследнике = выпилили. Всё ж понятно и резонно, не придирайтесь к словам.
Делают из ежа ужа, выплёскивая в помойку все отличия… :(
Было в предке и не стало в наследнике = выпилили. Всё ж понятно и резонно, не придирайтесь к словам.
Делают из ежа ужа, выплёскивая в помойку все отличия… :(
Все что связанно с захватом видео в Windows это, не побоюсь этого слова, позор для разработчик или скорее архитекторов из MS. Сначала VFW, потом фильтры, потом эти обертки DMO. Причем, чтобы написать простейший захват (при помощи любой из этих технологий) картинка + звук, сжатие, отправка, воспроизведение, нужно затратить неимоверные усилия, написать пару своих фильтров. На каком-то этапе обязательно будут проблемы. Кто сталкивался тот знает. Т.е. написать простенький видео чат, не вникая целиком и полностью во все аспекты разработки фильтров, не получится.
Это было бы счастье, только не могу найти пока того плагина, в какой версии Qt он появился?
Громадное спасибо!!! Я видел у Qt back-end с DirectShow не знал что они готовят с MF. А в 5й не догадался посмотреть. Ура!!!
Ну, как-бы страшного ничего особо нет. Здесь идет инициализация камеры для все возможных случаев (если я правильно понял по колбеку). Кому-то надо кадр с камеры, кому-то видео поток.
Если писать отдельное API для сдергивания кадра с камеры и отдельное API для получения потока кадров с заданным фреймрейтом, то будет либо куча разных функций с почти одинаковыми именами, либо отдельное API типа VfW :)
А если поток надо сразу перенаправиль в другой фильт, минуя буфер памяти?
В общем, не все так страшно.
Если писать отдельное API для сдергивания кадра с камеры и отдельное API для получения потока кадров с заданным фреймрейтом, то будет либо куча разных функций с почти одинаковыми именами, либо отдельное API типа VfW :)
А если поток надо сразу перенаправиль в другой фильт, минуя буфер памяти?
В общем, не все так страшно.
Sign up to leave a comment.
Нашему проигрывателю, наши же пластинки и не подходят