[FFmpeg-devel] [PATCH] avformat/mxg: return reference counted packets
James Almer
jamrial at gmail.com
Fri Mar 2 18:28:02 EET 2018
On 3/2/2018 12:10 PM, wm4 wrote:
> On Tue, 27 Feb 2018 00:09:47 -0300
> James Almer <jamrial at gmail.com> wrote:
>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> libavformat/mxg.c | 17 +++++++++++------
>> 1 file changed, 11 insertions(+), 6 deletions(-)
>>
>> diff --git a/libavformat/mxg.c b/libavformat/mxg.c
>> index 6fbf99cfa3..fe5879ecf0 100644
>> --- a/libavformat/mxg.c
>> +++ b/libavformat/mxg.c
>> @@ -169,11 +169,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt)
>> continue;
>> }
>>
>> + size = mxg->buffer_ptr - mxg->soi_ptr;
>> + ret = av_new_packet(pkt, size);
>> + if (ret < 0)
>> + return ret;
>> + memcpy(pkt->data, mxg->soi_ptr, size);
>> +
>> pkt->pts = pkt->dts = mxg->dts;
>> pkt->stream_index = 0;
>> - pkt->buf = NULL;
>> - pkt->size = mxg->buffer_ptr - mxg->soi_ptr;
>> - pkt->data = mxg->soi_ptr;
>>
>> if (mxg->soi_ptr - mxg->buffer > mxg->cache_size) {
>> if (mxg->cache_size > 0) {
>> @@ -206,12 +209,14 @@ static int mxg_read_packet(AVFormatContext *s, AVPacket *pkt)
>> mxg->buffer_ptr += size;
>>
>> if (marker == APP13 && size >= 16) { /* audio data */
>> + ret = av_new_packet(pkt, size - 14);
>> + if (ret < 0)
>> + return ret;
>> + memcpy(pkt->data, startmarker_ptr + 16, size - 14);
>> +
>> /* time (GMT) of first sample in usec since 1970, little-endian */
>> pkt->pts = pkt->dts = AV_RL64(startmarker_ptr + 8);
>> pkt->stream_index = 1;
>> - pkt->buf = NULL;
>> - pkt->size = size - 14;
>> - pkt->data = startmarker_ptr + 16;
>>
>> if (startmarker_ptr - mxg->buffer > mxg->cache_size) {
>> if (mxg->cache_size > 0) {
>
> LGTM if FATE passes.
Pushed, thanks.
More information about the ffmpeg-devel
mailing list