mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
oggparsevorbis: export replaygain tags from Vorbis comments
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
1d55f8d5f6
commit
0048deb84c
@ -221,6 +221,7 @@ OBJS-$(CONFIG_OGG_DEMUXER) += oggdec.o \
|
||||
oggparsespeex.o \
|
||||
oggparsetheora.o \
|
||||
oggparsevorbis.o \
|
||||
replaygain.o \
|
||||
vorbiscomment.o \
|
||||
flac_picture.o
|
||||
OBJS-$(CONFIG_OGG_MUXER) += oggenc.o \
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "internal.h"
|
||||
#include "oggdec.h"
|
||||
#include "vorbiscomment.h"
|
||||
#include "replaygain.h"
|
||||
|
||||
static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val)
|
||||
{
|
||||
@ -305,8 +306,14 @@ static int vorbis_header(AVFormatContext *s, int idx)
|
||||
if (os->psize > 8 &&
|
||||
ff_vorbis_comment(s, &st->metadata, os->buf + os->pstart + 7,
|
||||
os->psize - 8) >= 0) {
|
||||
unsigned new_len;
|
||||
|
||||
int ret = ff_replaygain_export(st, st->metadata);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
// drop all metadata we parsed and which is not required by libvorbis
|
||||
unsigned new_len = 7 + 4 + AV_RL32(priv->packet[1] + 7) + 4 + 1;
|
||||
new_len = 7 + 4 + AV_RL32(priv->packet[1] + 7) + 4 + 1;
|
||||
if (new_len >= 16 && new_len < os->psize) {
|
||||
AV_WL32(priv->packet[1] + new_len - 5, 0);
|
||||
priv->packet[1][new_len - 1] = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user