Merge commit '601d6228c4811d8971a2412a759e1a4ab775ebe8'
* commit '601d6228c4811d8971a2412a759e1a4ab775ebe8':
flac: move picture parsing code in a separate file
Conflicts:
libavformat/Makefile
libavformat/flacdec.c
See: 1e5bbbfcf3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
92b03cf926
@ -138,7 +138,7 @@ OBJS-$(CONFIG_FFMETADATA_MUXER) += ffmetaenc.o
|
|||||||
OBJS-$(CONFIG_FILMSTRIP_DEMUXER) += filmstripdec.o
|
OBJS-$(CONFIG_FILMSTRIP_DEMUXER) += filmstripdec.o
|
||||||
OBJS-$(CONFIG_FILMSTRIP_MUXER) += filmstripenc.o
|
OBJS-$(CONFIG_FILMSTRIP_MUXER) += filmstripenc.o
|
||||||
OBJS-$(CONFIG_FLAC_DEMUXER) += flacdec.o rawdec.o \
|
OBJS-$(CONFIG_FLAC_DEMUXER) += flacdec.o rawdec.o \
|
||||||
flacdec_picture.o \
|
flac_picture.o \
|
||||||
oggparsevorbis.o \
|
oggparsevorbis.o \
|
||||||
vorbiscomment.o
|
vorbiscomment.o
|
||||||
OBJS-$(CONFIG_FLAC_MUXER) += flacenc.o flacenc_header.o \
|
OBJS-$(CONFIG_FLAC_MUXER) += flacenc.o flacenc_header.o \
|
||||||
@ -262,7 +262,7 @@ OBJS-$(CONFIG_OGG_DEMUXER) += oggdec.o \
|
|||||||
oggparsetheora.o \
|
oggparsetheora.o \
|
||||||
oggparsevorbis.o \
|
oggparsevorbis.o \
|
||||||
vorbiscomment.o \
|
vorbiscomment.o \
|
||||||
flacdec_picture.o
|
flac_picture.o
|
||||||
OBJS-$(CONFIG_OGG_MUXER) += oggenc.o \
|
OBJS-$(CONFIG_OGG_MUXER) += oggenc.o \
|
||||||
vorbiscomment.o
|
vorbiscomment.o
|
||||||
OBJS-$(CONFIG_OMA_DEMUXER) += omadec.o pcm.o oma.o
|
OBJS-$(CONFIG_OMA_DEMUXER) += omadec.o pcm.o oma.o
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Raw FLAC demuxer
|
* Raw FLAC picture parser
|
||||||
* Copyright (c) 2001 Fabrice Bellard
|
* Copyright (c) 2001 Fabrice Bellard
|
||||||
*
|
*
|
||||||
* This file is part of FFmpeg.
|
* This file is part of FFmpeg.
|
||||||
@ -21,14 +21,14 @@
|
|||||||
|
|
||||||
#include "libavutil/avassert.h"
|
#include "libavutil/avassert.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "flacdec.h"
|
#include "flac_picture.h"
|
||||||
#include "id3v2.h"
|
#include "id3v2.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
|
int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
|
||||||
{
|
{
|
||||||
const CodecMime *mime = ff_id3v2_mime_tags;
|
const CodecMime *mime = ff_id3v2_mime_tags;
|
||||||
enum AVCodecID id = AV_CODEC_ID_NONE;
|
enum AVCodecID id = AV_CODEC_ID_NONE;
|
||||||
AVBufferRef *data = NULL;
|
AVBufferRef *data = NULL;
|
||||||
uint8_t mimetype[64], *desc = NULL;
|
uint8_t mimetype[64], *desc = NULL;
|
||||||
AVIOContext *pb = NULL;
|
AVIOContext *pb = NULL;
|
||||||
@ -41,7 +41,7 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
|
|||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
/* read the picture type */
|
/* read the picture type */
|
||||||
type = avio_rb32(pb);
|
type = avio_rb32(pb);
|
||||||
if (type >= FF_ARRAY_ELEMS(ff_id3v2_picture_types) || type < 0) {
|
if (type >= FF_ARRAY_ELEMS(ff_id3v2_picture_types) || type < 0) {
|
||||||
av_log(s, AV_LOG_ERROR, "Invalid picture type: %d.\n", type);
|
av_log(s, AV_LOG_ERROR, "Invalid picture type: %d.\n", type);
|
||||||
if (s->error_recognition & AV_EF_EXPLODE) {
|
if (s->error_recognition & AV_EF_EXPLODE) {
|
||||||
@ -51,7 +51,7 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* picture mimetype */
|
/* picture mimetype */
|
||||||
len = avio_rb32(pb);
|
len = avio_rb32(pb);
|
||||||
if (len <= 0 ||
|
if (len <= 0 ||
|
||||||
avio_read(pb, mimetype, FFMIN(len, sizeof(mimetype) - 1)) != len) {
|
avio_read(pb, mimetype, FFMIN(len, sizeof(mimetype) - 1)) != len) {
|
||||||
av_log(s, AV_LOG_ERROR, "Could not read mimetype from an attached "
|
av_log(s, AV_LOG_ERROR, "Could not read mimetype from an attached "
|
||||||
@ -136,7 +136,7 @@ int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
|
|||||||
st->codec->height = height;
|
st->codec->height = height;
|
||||||
av_dict_set(&st->metadata, "comment", ff_id3v2_picture_types[type], 0);
|
av_dict_set(&st->metadata, "comment", ff_id3v2_picture_types[type], 0);
|
||||||
if (desc)
|
if (desc)
|
||||||
av_dict_set(&st->metadata, "title", desc, AV_DICT_DONT_STRDUP_VAL);
|
av_dict_set(&st->metadata, "title", desc, AV_DICT_DONT_STRDUP_VAL);
|
||||||
|
|
||||||
av_freep(&pb);
|
av_freep(&pb);
|
||||||
|
|
||||||
@ -146,5 +146,6 @@ fail:
|
|||||||
av_buffer_unref(&data);
|
av_buffer_unref(&data);
|
||||||
av_freep(&desc);
|
av_freep(&desc);
|
||||||
av_freep(&pb);
|
av_freep(&pb);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Raw FLAC demuxer
|
* Raw FLAC picture parser
|
||||||
* Copyright (c) 2001 Fabrice Bellard
|
* Copyright (c) 2001 Fabrice Bellard
|
||||||
*
|
*
|
||||||
* This file is part of FFmpeg.
|
* This file is part of FFmpeg.
|
||||||
@ -19,8 +19,8 @@
|
|||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef AVFORMAT_FLACDEC_H
|
#ifndef AVFORMAT_FLAC_PICTURE_H
|
||||||
#define AVFORMAT_FLACDEC_H
|
#define AVFORMAT_FLAC_PICTURE_H
|
||||||
|
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
|
|
||||||
@ -28,4 +28,4 @@
|
|||||||
|
|
||||||
int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size);
|
int ff_flac_parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size);
|
||||||
|
|
||||||
#endif /* AVFORMAT_FLACDEC_H */
|
#endif /* AVFORMAT_FLAC_PICTURE_H */
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include "libavcodec/flac.h"
|
#include "libavcodec/flac.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "flacdec.h"
|
#include "flac_picture.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "rawdec.h"
|
#include "rawdec.h"
|
||||||
#include "oggdec.h"
|
#include "oggdec.h"
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
#include "libavcodec/get_bits.h"
|
#include "libavcodec/get_bits.h"
|
||||||
#include "libavcodec/vorbis_parser.h"
|
#include "libavcodec/vorbis_parser.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
#include "flacdec.h"
|
#include "flac_picture.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "oggdec.h"
|
#include "oggdec.h"
|
||||||
#include "vorbiscomment.h"
|
#include "vorbiscomment.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user