Opened 10 years ago

Closed 10 years ago

#3184 closed defect (fixed)

sfd: de/muxing does not properly work for cri adx and ac3

Reported by: Soukyuu Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: mpegps sofdec ac3
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
SFD (SofDec) is essentially mpeg1 video + adx audio (in later versions, also ac3 audio).
ffplay plays the file fine - adx is being played in file as well as out of file. The files come directly from the Ar tonelico 2 game, so they are official and not corrupted.

Demuxing:

  • video works
  • adx works
  • ac3 is being detected as adx, 0 channels, cannot be demuxed.

Muxing:

  • m1v + adx = mpeg with m1v+broken mp3
  • m1b + adx = mpeg with m1v+broken mp3+working ac3

How to reproduce:

  • Demuxing AC3
    "D:\\Program Files\\ffmpeg-20131129-git-7ea9c4a-win64-static\\bin\\ffmpeg.exe" -i ".\\AT2_OP1D.SFD" -acodec copy -vn -map 0:1 -report -f ac3 "R:\\test.ac3"
    ffmpeg version N-58570-g7ea9c4a Copyright (c) 2000-2013 the FFmpeg developers
      built on Nov 28 2013 22:06:58 with gcc 4.8.2 (GCC)
    
  • Muxing m1v + adx
    "D:\\Program Files\\ffmpeg-20131129-git-7ea9c4a-win64-static\\bin\\ffmpeg.exe" -i "R:\\AT2_OP01.m1v" -i "R:\\AT2_OP01.adx" -report -c copy -map 0:v:0 -map 1:a:0 -f mpeg "R:\\out.sfd"
    ffmpeg version N-58570-g7ea9c4a
    built on Nov 28 2013 22:06:58 with gcc 4.8.2 (GCC)
    
  • Muxing m1v + adx + ac3
    "D:\\Program Files\\ffmpeg-20131129-git-7ea9c4a-win64-static\\bin\\ffmpeg.exe" -i "R:\\AT2_OP1D.m1v" -i "R:\\AT2_OP1D.adx" -i "R:\\AT2_OP1D.ac3" -map 0:v:0 -map 1:a:0 -map 2:a:0 -acodec copy -vcodec copy -report -f mpeg out.sfd
    ffmpeg version N-58570-g7ea9c4a Copyright (c) 2000-2013 the FFmpeg developers
      built on Nov 28 2013 22:06:58 with gcc 4.8.2 (GCC)
    

The demuxing error probably comes from the fact sfd isn't really following the format and doing something along the lines of using an adx header for ac3 stream. The muxing error is beyond me though. ffmpeg -formats lists ADX as being muxable, I am also telling it to copy the codec, yet it still botches it to mp2. I mentioned this on the irc channel some time ago and was told that the actual muxing code is not there.

Can provide samples if needed. Attaching logs only in the meantime

Attachments (2)

sfd_mux_demux_logs.7z (62.0 KB ) - added by Soukyuu 10 years ago.
7zipped logs of all commands run
ffmpeg_mux_m1v+adx+ac3_console.txt (13.2 KB ) - added by Soukyuu 10 years ago.
muxing m1v+adx+ac3: console output

Download all attachments as: .zip

Change History (11)

by Soukyuu, 10 years ago

Attachment: sfd_mux_demux_logs.7z added

7zipped logs of all commands run

in reply to:  description comment:1 by Carl Eugen Hoyos, 10 years ago

Component: undeterminedavformat
Keywords: mpegps added
Version: unspecifiedgit-master

Replying to Soukyuu:

  • ac3 is being detected as adx, 0 channels, cannot be demuxed.

Please provide a sample.

Muxing sdf is not supported, if it is mentioned as supported, this would be a (separate) bug.
Please consider providing the failing command line for ac3-in-sdf together with the complete, uncut console output, please do not compress the console output.

by Soukyuu, 10 years ago

muxing m1v+adx+ac3: console output

comment:2 by Carl Eugen Hoyos, 10 years ago

Please provide the sample AT2_OP1D.SFD.

comment:3 by Soukyuu, 10 years ago

I am not sure what you mean by not compressing the console output. I'm using the -report switch as mentioned on the "submitting a bug report page", even adding -v 9 -loglevel 99 doesn't seem to produce the same thing I see on the console.

Attaching the console output for muxing m1v+adx+ac3
sfd_w_adx_ac3_m1v_small_bugnr3184.sfd uploaded to the ftp/incoming folder.
Note: only the first 10Mb as said in upload instructions, whole file is around 95mb, can upload this too if requested.

edit: I'm quite new to this, so please bear with me

Last edited 10 years ago by Soukyuu (previous) (diff)

comment:4 by Carl Eugen Hoyos, 10 years ago

Please provide the whole sample AT2_OP1D.SFD or the first xMB, as you prefer.

Last edited 10 years ago by Carl Eugen Hoyos (previous) (diff)

comment:5 by Soukyuu, 10 years ago

uploading AT2_OP1D.SFD in full length. Accidentally started uploading AT2_OP01.SFD but cancelled that, since it doesn't have an ac3 track. ETA is 20 minutes

comment:6 by Carl Eugen Hoyos, 10 years ago

Reproduced by developer: set
Status: newopen

Patch sent.

comment:7 by Soukyuu, 10 years ago

Thanks for the fast response. The sample is now fully uploaded, but I guess you already managed to reproduce it.

By the way, sfd does not even seem to be defined as a separate format, so what I meant by "mentioned as supported" is muxing/demuxing adx (not sfd). The patch will only affect being unable to demux ac3, right? Should I make a separate issue/enhancement request to support proper sfd muxing?

Last edited 10 years ago by Soukyuu (previous) (diff)

comment:8 by Carl Eugen Hoyos, 10 years ago

Which application would read such samples / why do you think it would be a good idea if FFmpeg supported writing such files?

comment:9 by Carl Eugen Hoyos, 10 years ago

Keywords: sofdec ac3 added
Resolution: fixed
Status: openclosed

Decoding AC-3 should be fixed in 4ba90392 thank you for the sample!
Regarding encoding: Consider opening an enhancement request, but please explain the use-case.

Note: See TracTickets for help on using tickets.