#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "internal.h"
typedef struct PMPContext {
int cur_stream;
return 0;
}
-static int pmp_header(AVFormatContext *s, AVFormatParameters *ap)
+static int pmp_header(AVFormatContext *s)
{
PMPContext *pmp = s->priv_data;
AVIOContext *pb = s->pb;
int tb_num, tb_den;
int index_cnt;
- int audio_codec_id = CODEC_ID_NONE;
+ int audio_codec_id = AV_CODEC_ID_NONE;
int srate, channels;
int i;
uint64_t pos;
avio_skip(pb, 8);
switch (avio_rl32(pb)) {
case 0:
- vst->codec->codec_id = CODEC_ID_MPEG4;
+ vst->codec->codec_id = AV_CODEC_ID_MPEG4;
break;
case 1:
- vst->codec->codec_id = CODEC_ID_H264;
+ vst->codec->codec_id = AV_CODEC_ID_H264;
break;
default:
av_log(s, AV_LOG_ERROR, "Unsupported video format\n");
tb_num = avio_rl32(pb);
tb_den = avio_rl32(pb);
- av_set_pts_info(vst, 32, tb_num, tb_den);
+ avpriv_set_pts_info(vst, 32, tb_num, tb_den);
vst->nb_frames = index_cnt;
vst->duration = index_cnt;
switch (avio_rl32(pb)) {
case 0:
- audio_codec_id = CODEC_ID_MP3;
+ audio_codec_id = AV_CODEC_ID_MP3;
break;
case 1:
av_log(s, AV_LOG_WARNING, "AAC is not yet correctly supported\n");
- audio_codec_id = CODEC_ID_AAC;
+ audio_codec_id = AV_CODEC_ID_AAC;
break;
default:
av_log(s, AV_LOG_ERROR, "Unsupported audio format\n");
ast->codec->codec_id = audio_codec_id;
ast->codec->channels = channels;
ast->codec->sample_rate = srate;
- av_set_pts_info(ast, 32, 1, srate);
+ avpriv_set_pts_info(ast, 32, 1, srate);
}
pos = avio_tell(pb) + 4 * index_cnt;
for (i = 0; i < index_cnt; i++) {
if (pmp->cur_stream == 0) {
int num_packets;
pmp->audio_packets = avio_r8(pb);
+ if (!pmp->audio_packets) {
+ av_log(s, AV_LOG_ERROR, "No audio packets.\n");
+ return AVERROR_INVALIDDATA;
+ }
+
num_packets = (pmp->num_streams - 1) * pmp->audio_packets + 1;
avio_skip(pb, 8);
pmp->current_packet = 0;
{
PMPContext *pmp = s->priv_data;
pmp->cur_stream = 0;
- // fallback to default seek now
+ // fall back on default seek now
return -1;
}
AVInputFormat ff_pmp_demuxer = {
.name = "pmp",
- .long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP format"),
+ .long_name = NULL_IF_CONFIG_SMALL("Playstation Portable PMP"),
.priv_data_size = sizeof(PMPContext),
.read_probe = pmp_probe,
.read_header = pmp_header,