Opened 4 years ago

Closed 2 years ago

#5767 closed defect (fixed)

Some Monkey audio (.ape) samples do not work

Reported by: VLC_help Owned by: funman
Priority: normal Milestone: 2.1.0 release
Component: Decoders Version: master git
Severity: normal Keywords:
Cc: Difficulty: unknown
Platform(s): all Work status: Not started

Description

As noticed in: http://forum.videolan.org/viewtopic.php?f=7&t=27422&hilit=weekend#p320466

It seems Monkey audio (.ape) playback doesn't work. Tested with VLC 1.1.11, VLC 1.2.0-pre2-20111204-0202 and VLC 1.3.0-git-20120101-0002 under Win32. VLC loads libavcodec and does something, but no audio is outputted, and time indicators won't do anything.

Sample files can be downloaded from http://www.vbaccelerator.com/home/vb/code/vbmedia/audio/Lossless_WAV_Compression/Sample_APE_File.asp (1.4 megabytes) and https://rapidshare.com/files/3000297754/Thelonious_Monk_-_The_Complete_Riverside_Recordings__disc_3_.ape (220 megabytes)

Change History (10)

comment:1 Changed 4 years ago by jb

  • Component changed from Unknown to Decoders
  • Summary changed from Monkey audio (.ape) playback doesn't work to Some Monkey audio (.ape) samples do not work

comment:2 Changed 3 years ago by Lotesdelere

Another problematic sample not playing with VLC 2.0.x while FFplay is playing it fine: http://www.mirrorcreator.com/files/1WYX4CYT/

Related thread: http://forum.videolan.org/viewtopic.php?f=14&t=100504

comment:3 Changed 3 years ago by jb

See #6348 and #7349 with samples.

comment:5 Changed 3 years ago by jb

comment:6 Changed 2 years ago by funman

  • Owner changed from jb to funman
  • Status changed from new to assigned

comment:7 Changed 2 years ago by funman

diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index aa89255..d608782 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -340,6 +340,8 @@ block_t * DecodeAudio ( decoder_t *p_dec, block_t **pp_block )
         assert( p_block->i_buffer >= (unsigned)used );
         p_block->p_buffer += used;
         p_block->i_buffer -= used;
+        if (used == 0)
+            p_block->i_pts = VLC_TS_INVALID;
     }
 
     if( ctx->channels <= 0 || ctx->channels > 8 || ctx->sample_rate <= 0 )

comment:8 Changed 2 years ago by jb

  • Milestone changed from Bugs paradize to 2.1.0 release

comment:10 Changed 2 years ago by jb

  • Resolution set to fixed
  • Status changed from assigned to closed
Note: See TracTickets for help on using tickets.