From 9abb7d4713746b2265fddbc6898acf3a03e10982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Mon, 6 Sep 2010 09:50:24 +0000 Subject: [PATCH] Remove the Matroska reader from the image and enable Matroska support in the FFmpeg plugin. I have a few streams to test with, most didn't play right with the Matroska reader, many simply crash. With the FFmpeg matroska support, most files do play fine. Seeking the audio stream is a problem, in that the FFmpeg code does not build the index for the audio stream, and so seeking always falls back to regions of the file that have already played. The audio will catch up eventually and playback will be fine again. A minority of files I could test with don't work right, those seem all to be older files. Overall, the support for Matroska files has much improved with this commit. I am still investigating why FFplay has no trouble seeking in mkv files, while the FFmpeg plugin only seeks perfectly in video streams. It may be a problem that the FFmpeg plugin uses completely separate AVFormatContexts for each stream, which on the other hand allows to seek BMediaTracks independently from each other and resolves concurrency issues. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38541 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/HaikuImage | 3 +-- src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index d71d509cf3..7f15a13c10 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -141,8 +141,7 @@ SYSTEM_ADD_ONS_MEDIA = cortex_audioadapter.media_addon ; SYSTEM_ADD_ONS_MEDIA_PLUGINS = $(GPL_ONLY)ac3_decoder aiff_reader asf_reader au_reader avi_reader $(X86_ONLY)ffmpeg - matroska mov_reader musepack - ogg raw_decoder speex + mov_reader musepack ogg raw_decoder speex $(X86_ONLY)ape_reader # theora vorbis wav_reader diff --git a/src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp b/src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp index d21d72c38d..af38d4f3a2 100644 --- a/src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp +++ b/src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp @@ -42,12 +42,12 @@ static const DemuxerFormat gDemuxerTable[] = { "flv", "Flash Video", "video/x-flv", B_QUICKTIME_FORMAT_FAMILY, B_QUICKTIME_FORMAT_FAMILY }, -// { -// // Tested and appears to work ok with regards to video, -// // audio seems a problem. -// "matroska", "Matroska Movie", "video/x-matroska", -// B_MISC_FORMAT_FAMILY, B_QUICKTIME_FORMAT_FAMILY -// }, + { + // Tested and appears to work ok with regards to video, + // audio seems a problem. + "matroska", "Matroska Movie", "video/x-matroska", + B_MISC_FORMAT_FAMILY, B_QUICKTIME_FORMAT_FAMILY + }, // { // // Plays the limited amount of files I could test with. // "mov", "Quicktime Movie", "video/x-mov",