mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
img2dec: always close AVIOContexts
Zero sized files would cause the contexts to leak away. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
c3bcd22ed3
commit
5e3572893d
@ -216,7 +216,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
|
|||||||
char filename[1024];
|
char filename[1024];
|
||||||
int i;
|
int i;
|
||||||
int size[3]={0}, ret[3]={0};
|
int size[3]={0}, ret[3]={0};
|
||||||
AVIOContext *f[3];
|
AVIOContext *f[3] = {NULL};
|
||||||
AVCodecContext *codec= s1->streams[0]->codec;
|
AVCodecContext *codec= s1->streams[0]->codec;
|
||||||
|
|
||||||
if (!s->is_pipe) {
|
if (!s->is_pipe) {
|
||||||
@ -232,7 +232,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
|
|||||||
for(i=0; i<3; i++){
|
for(i=0; i<3; i++){
|
||||||
if (avio_open2(&f[i], filename, AVIO_FLAG_READ,
|
if (avio_open2(&f[i], filename, AVIO_FLAG_READ,
|
||||||
&s1->interrupt_callback, NULL) < 0) {
|
&s1->interrupt_callback, NULL) < 0) {
|
||||||
if(i==1)
|
if(i>=1)
|
||||||
break;
|
break;
|
||||||
av_log(s1, AV_LOG_ERROR, "Could not open file : %s\n",filename);
|
av_log(s1, AV_LOG_ERROR, "Could not open file : %s\n",filename);
|
||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
@ -259,7 +259,7 @@ static int read_packet(AVFormatContext *s1, AVPacket *pkt)
|
|||||||
|
|
||||||
pkt->size= 0;
|
pkt->size= 0;
|
||||||
for(i=0; i<3; i++){
|
for(i=0; i<3; i++){
|
||||||
if(size[i]){
|
if(f[i]){
|
||||||
ret[i]= avio_read(f[i], pkt->data + pkt->size, size[i]);
|
ret[i]= avio_read(f[i], pkt->data + pkt->size, size[i]);
|
||||||
if (!s->is_pipe)
|
if (!s->is_pipe)
|
||||||
avio_close(f[i]);
|
avio_close(f[i]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user