Merge pull request #5 from alfg/bugfix/frames-memory-cleanup

libav memory cleanup
This commit is contained in:
Alfred Gutierrez
2020-12-18 21:51:10 -08:00
committed by GitHub
3 changed files with 13 additions and 8 deletions

View File

@@ -131,6 +131,7 @@ FileInfoResponse get_file_info() {
r.streams.push_back(stream); r.streams.push_back(stream);
free(fourcc); free(fourcc);
} }
avformat_close_input(&pFormatContext);
return r; return r;
} }
@@ -177,15 +178,14 @@ FramesResponse get_frames(int offset) {
if (video_stream_index == -1) { if (video_stream_index == -1) {
video_stream_index = i; video_stream_index = i;
nb_frames = pFormatContext->streams[i]->nb_frames; nb_frames = pFormatContext->streams[i]->nb_frames;
// Calculate the nb_frames for MKV/WebM if nb_frames is 0.
if (nb_frames == 0) {
nb_frames = (pFormatContext->duration / 1000000) * pFormatContext->streams[i]->avg_frame_rate.num;
}
pCodec = pLocalCodec; pCodec = pLocalCodec;
pCodecParameters = pLocalCodecParameters; pCodecParameters = pLocalCodecParameters;
} }
printf("Video Codec: resolution %d x %d\n",
pLocalCodecParameters->width, pLocalCodecParameters->height);
} else if (pLocalCodecParameters->codec_type == AVMEDIA_TYPE_AUDIO) {
printf("Audio Codec: %d channels, sample rate %d\n",
pLocalCodecParameters->channels, pLocalCodecParameters->sample_rate);
} }
} }
@@ -230,7 +230,12 @@ FramesResponse get_frames(int offset) {
} }
frame_count++; frame_count++;
} }
av_packet_unref(pPacket);
} }
avformat_close_input(&pFormatContext);
av_packet_free(&pPacket);
av_frame_free(&pFrame);
avcodec_free_context(&pCodecContext);
return r; return r;
} }

2
www/package-lock.json generated
View File

@@ -1,6 +1,6 @@
{ {
"name": "ffprobe-wasm", "name": "ffprobe-wasm",
"version": "0.2.0", "version": "0.2.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

View File

@@ -1,6 +1,6 @@
{ {
"name": "ffprobe-wasm", "name": "ffprobe-wasm",
"version": "0.2.0", "version": "0.2.1",
"scripts": { "scripts": {
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
"build": "vue-cli-service build", "build": "vue-cli-service build",