Opened 7 years ago

Last modified 7 years ago

#2038 new defect

mencoder now encodes PCM audio in MOV as 'RLE'

Reported by: rectalogic@… Owned by: reimar
Priority: normal Component: mencoder
Version: HEAD Severity: normal
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: Analyzed by developer:

Description

mplayer SVN r34243 changed how codec id/tag conversion works. Prior to that commit, encoding -oac pcm in MOV used 'twos' (CODEC_ID_PCM_S16LE) audio codec tag, now it uses 'WRLE' (CODEC_ID_MSRLE).

mencoder input.AVI -of lavf -lavfopts format=mov -ovc raw -vf format=uyvy -ffourcc 2vuy -oac pcm -o output.mov

Prior to r34243 this would output the following, and use 'twos' as the audio tag:

VIDEO CODEC ID: 14
AUDIO CODEC ID: 10000, TAG: 0

(CODEC_ID_PCM_S16LE==0x10000)

Now it outputs the following, and uses 'WRLE' as the audio tag:

VIDEO CODEC ID: 14
AUDIO CODEC ID: 2e, TAG: 0

(CODEC_ID_MSRLE==0x2e)

Specifying -fafmttag has no effect.

Attachments (1)

pcm_codec_tag.diff (1.5 KB) - added by rectalogic@… 7 years ago.
lookup codec_tag in wav muxer if audio

Download all attachments as: .zip

Change History (2)

Changed 7 years ago by rectalogic@…

lookup codec_tag in wav muxer if audio

comment:1 Changed 7 years ago by rectalogic@…

mp_tag2codec_id() is looking up the id in the ffmpeg avi_muxer codec_tag list via av_codec_get_id() - but this list contains video tags first then audio tags. So the pcm tag was matching the CODEC_ID_MSRLE id (which has tag==1) before getting to the audio tags.

This patch looks up the id in either the ffmpeg avi muxer (for video tags) or wav muxer (for audio tags).

Note: See TracTickets for help on using tickets.