Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a  (Read 1675 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Since version 1.4.1 foobar2000 doesn't use other decoder for *.mp4/*.m4a files, if decoder that is higher in priority list didn't work.
Example. I have  foo_ac3, foo_input_dts installed and also foo_input_ffmpeg configured for decoding ac3, DTS and MP4. fb2k's native MP4 demuxer, foo_ac3, foo_input_dts and native matroska reader are higher in decoders' priority  list than foo_input_ffmpeg.
I created *.ac3 file with e-ac3 stream (which isn't supported by foo_ac3), *.mka file with e-ac3 stream, *.dts file with dts-express stream (which isn't supported by foo_input_dts) and also three *.mp4 files (one with e-ac3 stream, one with dts-express stream and one with mpeg4als stream).
In fb2k 1.4 decoding successfully falls back to foo_input_ffmpeg for ALL aforementioned files and all files are playable.
But 1.4.1 for *.mp4 files (with e-ac3, dts-express, mpeg4als inside) just gives out error "Unsupported format or corrupted file".
Archive with files - https://www.dropbox.com/s/u9ilyd1dg84w1tj/files.mp4.zip?dl=1

Also fallback to foo_input_ffmpeg never worked for *.mkv with dts-express even in 1.4. But i guess this is entirely different problem.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #1
Behavior persists in 1.4.2 beta 1

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #2
Problem being investigated, thanks for reporting.
Microsoft Windows: We can't script here, this is bat country.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #3
Fallback with MP4 files addressed for the next update.

Please provide sample files for dts-express/matroska fallback, I remuxed your dts-express.dts file to .mka and it plays with foo_input_ffmpeg with foo_input_ffmpeg at the end of the decoder list.
Microsoft Windows: We can't script here, this is bat country.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #4
Sorry, i should been mention that fallback for matroska with dts-express does't work ONLY if foo_input_dts is installed (even if it is disabled in decoders' list).
Here are 2 samples (error message is different for each of them) https://www.dropbox.com/s/byqnnzustad96zs/dts-express1.mka?dl=1 , https://www.dropbox.com/s/j0xl6jiv48g9fya/dt-express2.mka?dl=1

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #5
Problem noted, thanks for the details.
Microsoft Windows: We can't script here, this is bat country.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #6
(Incidentally, extended forms of DTS will always succeed on analyze_first_frame(), because they interleave single plain DTS frames with a following extended frame, and my decoder picks up that second frame if it exists, but I guess the MP4 container isn't packetizing them that way?)

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #7
MP4 scenario addressed in version 1.4.2 beta 2.

Matroska/DTS needs fixes in the DTS component which I believe are being deployed by kode54.
Microsoft Windows: We can't script here, this is bat country.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #8
Problem fixed partially. Decoding now succesfully falls back to foo_input_ffmpeg for *.mp4 with mpeg4als stream but not for *.mp4 with e-ac3 stream (regardless if foo_ac3 is installed or not).
And n 1.4.2 beta 2 if foo_ac3 0.9.11 is installed then *.mp4 with ac3 (not E-ac3) stream even can't be added to playlist with error "Unable to determine channel count." But in fb2k 1.4.0 with foo_ac3 0.9.11 *.mp4 with ac3 stream CAN be added to playlist and its decoding falls back to foo_input_ffmpeg.
Archive with ac3 in mp4 and eac3 in mp4 - https://www.dropbox.com/s/7fthj10pso5wne2/EAC3%20and%20AC3%20in%20mp4.zip?dl=1

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #9
I could theoretically make foo_ac3 support E-AC3, but I don't know how useful that would be. It would just be another FFmpeg port with another minimal FFmpeg build.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #10
Fixed MP4/E-AC3, for the next update, thanks for reporting.

My MP4 reader currently doesn't recognize E-AC3 tracks, so it can't be added with a new packet decoder until the next update.
Microsoft Windows: We can't script here, this is bat country.

Re: Fallback to other decoder doesn't work since 1.4.1 for mp4/m4a

Reply #11
I could theoretically make foo_ac3 support E-AC3, but I don't know how useful that would be.
I personally think that decoding of lossy with foo_input_ffmpeg is enough. Because many lossy encoders are not sample-accurate anyway and lossy is not meant to be re-encoded. So ffmpeg.exe's inability to do sample-accurate seeking doesn't matter much. But for lossless it does matter. Because when splitting mkv/mka with chapters or image+cue it is possible to loose some samples at the tracks boundaries along the album.