mirror of
https://gitee.com/openharmony/multimedia_av_codec
synced 2025-02-18 19:40:03 +00:00
Modify to maintain synchronization
Signed-off-by: 陈钰晨 <chengyuchen8@huawei.com> Change-Id: Ifee7fe53d8d922fdc628c466d09a9ce8cf57d2d1
This commit is contained in:
parent
b7eff8f562
commit
98ae3b0f02
@ -44,11 +44,11 @@ public:
|
|||||||
int32_t StartReferenceParser(int64_t startTimeMs) override;
|
int32_t StartReferenceParser(int64_t startTimeMs) override;
|
||||||
int32_t GetFrameLayerInfo(std::shared_ptr<AVBuffer> videoSample, FrameLayerInfo &frameLayerInfo) override;
|
int32_t GetFrameLayerInfo(std::shared_ptr<AVBuffer> videoSample, FrameLayerInfo &frameLayerInfo) override;
|
||||||
int32_t GetGopLayerInfo(uint32_t gopId, GopLayerInfo &gopLayerInfo) override;
|
int32_t GetGopLayerInfo(uint32_t gopId, GopLayerInfo &gopLayerInfo) override;
|
||||||
|
|
||||||
int32_t GetIndexByRelativePresentationTimeUs(const uint32_t trackIndex,
|
int32_t GetIndexByRelativePresentationTimeUs(const uint32_t trackIndex,
|
||||||
const uint64_t relativePresentationTimeUs, uint32_t &index) override;
|
const uint64_t relativePresentationTimeUs, uint32_t &index) override;
|
||||||
int32_t GetRelativePresentationTimeUsByIndex(const uint32_t trackIndex,
|
int32_t GetRelativePresentationTimeUsByIndex(const uint32_t trackIndex,
|
||||||
const uint32_t index, uint64_t &relativePresentationTimeUs) override;
|
const uint32_t index, uint64_t &relativePresentationTimeUs) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<MediaDemuxer> demuxerEngine_ = nullptr;
|
std::shared_ptr<MediaDemuxer> demuxerEngine_ = nullptr;
|
||||||
std::string sourceUri_;
|
std::string sourceUri_;
|
||||||
|
@ -85,8 +85,8 @@ static std::map<AVCodecID, std::string_view> g_codecIdToMime = {
|
|||||||
{AV_CODEC_ID_VP8, MimeType::VIDEO_VP8},
|
{AV_CODEC_ID_VP8, MimeType::VIDEO_VP8},
|
||||||
{AV_CODEC_ID_VP9, MimeType::VIDEO_VP9},
|
{AV_CODEC_ID_VP9, MimeType::VIDEO_VP9},
|
||||||
{AV_CODEC_ID_AVS3DA, MimeType::AUDIO_AVS3DA},
|
{AV_CODEC_ID_AVS3DA, MimeType::AUDIO_AVS3DA},
|
||||||
{AV_CODEC_ID_PCM_MULAW, MimeType::AUDIO_G711MU},
|
|
||||||
{AV_CODEC_ID_APE, MimeType::AUDIO_APE},
|
{AV_CODEC_ID_APE, MimeType::AUDIO_APE},
|
||||||
|
{AV_CODEC_ID_PCM_MULAW, MimeType::AUDIO_G711MU},
|
||||||
{AV_CODEC_ID_SUBRIP, MimeType::TEXT_SUBRIP},
|
{AV_CODEC_ID_SUBRIP, MimeType::TEXT_SUBRIP},
|
||||||
{AV_CODEC_ID_WEBVTT, MimeType::TEXT_WEBVTT},
|
{AV_CODEC_ID_WEBVTT, MimeType::TEXT_WEBVTT},
|
||||||
{AV_CODEC_ID_FFMETADATA, MimeType::TIMED_METADATA}
|
{AV_CODEC_ID_FFMETADATA, MimeType::TIMED_METADATA}
|
||||||
@ -688,7 +688,7 @@ void FFmpegFormatHelper::ParseInfoFromMetadata(const AVDictionary* metadata, con
|
|||||||
parseFromMoov = true;
|
parseFromMoov = true;
|
||||||
}
|
}
|
||||||
if (valPtr == nullptr) {
|
if (valPtr == nullptr) {
|
||||||
MEDIA_LOG_D("Parse failed");
|
MEDIA_LOG_D("Parse failed.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (parseFromMoov) {
|
if (parseFromMoov) {
|
||||||
|
@ -2048,35 +2048,6 @@ HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_4000, TestSize.Level1)
|
|||||||
ASSERT_EQ(formatVal_.album, "a");
|
ASSERT_EQ(formatVal_.album, "a");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @tc.name: AVSource_ValidateMimeType_1000
|
|
||||||
* @tc.desc: validate MimeType when av_codec Type is mulaw
|
|
||||||
* @tc.type: FUNC
|
|
||||||
*/
|
|
||||||
HWTEST_F(AVSourceUnitTest, AVSource_ValidateMimeType_1000, TestSize.Level1)
|
|
||||||
{
|
|
||||||
fd_ = OpenFile(g_wavPath2);
|
|
||||||
size_ = GetFileSize(g_wavPath2);
|
|
||||||
printf("----%s----\n", g_wavPath2.c_str());
|
|
||||||
source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_);
|
|
||||||
ASSERT_NE(source_, nullptr);
|
|
||||||
format_ = source_->GetTrackFormat(trackIndex_);
|
|
||||||
ASSERT_NE(format_, nullptr);
|
|
||||||
printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo());
|
|
||||||
ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime));
|
|
||||||
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType));
|
|
||||||
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate));
|
|
||||||
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount));
|
|
||||||
ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout));
|
|
||||||
ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate));
|
|
||||||
ASSERT_EQ(formatVal_.codecMime, "audio/g711mu");
|
|
||||||
ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD);
|
|
||||||
ASSERT_EQ(formatVal_.channelLayout, 3);
|
|
||||||
ASSERT_EQ(formatVal_.sampleRate, 44100);
|
|
||||||
ASSERT_EQ(formatVal_.channelCount, 2);
|
|
||||||
ASSERT_EQ(formatVal_.bitRate, 705600);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @tc.name: AVSource_GetFormat_1601
|
* @tc.name: AVSource_GetFormat_1601
|
||||||
* @tc.desc: get format when the file is mp4 vvc
|
* @tc.desc: get format when the file is mp4 vvc
|
||||||
@ -2124,4 +2095,33 @@ HWTEST_F(AVSourceUnitTest, AVSource_GetFormat_1601, TestSize.Level1)
|
|||||||
ASSERT_EQ(formatVal_.width, 640);
|
ASSERT_EQ(formatVal_.width, 640);
|
||||||
ASSERT_EQ(formatVal_.height, 360);
|
ASSERT_EQ(formatVal_.height, 360);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @tc.name: AVSource_ValidateMimeType_1000
|
||||||
|
* @tc.desc: validate MimeType when av_codec Type is mulaw
|
||||||
|
* @tc.type: FUNC
|
||||||
|
*/
|
||||||
|
HWTEST_F(AVSourceUnitTest, AVSource_ValidateMimeType_1000, TestSize.Level1)
|
||||||
|
{
|
||||||
|
fd_ = OpenFile(g_wavPath2);
|
||||||
|
size_ = GetFileSize(g_wavPath2);
|
||||||
|
printf("----%s----\n", g_wavPath2.c_str());
|
||||||
|
source_ = AVSourceMockFactory::CreateSourceWithFD(fd_, SOURCE_OFFSET, size_);
|
||||||
|
ASSERT_NE(source_, nullptr);
|
||||||
|
format_ = source_->GetTrackFormat(trackIndex_);
|
||||||
|
ASSERT_NE(format_, nullptr);
|
||||||
|
printf("[trackFormat %d]: %s\n", trackIndex_, format_->DumpInfo());
|
||||||
|
ASSERT_TRUE(format_->GetStringValue(MediaDescriptionKey::MD_KEY_CODEC_MIME, formatVal_.codecMime));
|
||||||
|
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_TRACK_TYPE, formatVal_.trackType));
|
||||||
|
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_SAMPLE_RATE, formatVal_.sampleRate));
|
||||||
|
ASSERT_TRUE(format_->GetIntValue(MediaDescriptionKey::MD_KEY_CHANNEL_COUNT, formatVal_.channelCount));
|
||||||
|
ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_CHANNEL_LAYOUT, formatVal_.channelLayout));
|
||||||
|
ASSERT_TRUE(format_->GetLongValue(MediaDescriptionKey::MD_KEY_BITRATE, formatVal_.bitRate));
|
||||||
|
ASSERT_EQ(formatVal_.codecMime, "audio/g711mu");
|
||||||
|
ASSERT_EQ(formatVal_.trackType, MediaType::MEDIA_TYPE_AUD);
|
||||||
|
ASSERT_EQ(formatVal_.channelLayout, 3);
|
||||||
|
ASSERT_EQ(formatVal_.sampleRate, 44100);
|
||||||
|
ASSERT_EQ(formatVal_.channelCount, 2);
|
||||||
|
ASSERT_EQ(formatVal_.bitRate, 705600);
|
||||||
|
}
|
||||||
} // namespace
|
} // namespace
|
@ -33,6 +33,7 @@ public:
|
|||||||
int32_t ReadSample(uint32_t trackIndex, std::shared_ptr<AVMemoryMock> sample,
|
int32_t ReadSample(uint32_t trackIndex, std::shared_ptr<AVMemoryMock> sample,
|
||||||
AVCodecBufferInfo *bufferInfo, uint32_t &flag, bool checkBufferInfo) override;
|
AVCodecBufferInfo *bufferInfo, uint32_t &flag, bool checkBufferInfo) override;
|
||||||
int32_t SeekToTime(int64_t mSeconds, SeekMode mode) override;
|
int32_t SeekToTime(int64_t mSeconds, SeekMode mode) override;
|
||||||
|
|
||||||
int32_t GetIndexByRelativePresentationTimeUs(const uint32_t trackIndex,
|
int32_t GetIndexByRelativePresentationTimeUs(const uint32_t trackIndex,
|
||||||
const uint64_t relativePresentationTimeUs, uint32_t &index) override;
|
const uint64_t relativePresentationTimeUs, uint32_t &index) override;
|
||||||
int32_t GetRelativePresentationTimeUsByIndex(const uint32_t trackIndex,
|
int32_t GetRelativePresentationTimeUsByIndex(const uint32_t trackIndex,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user