Browse Source

lavf: make av_interleave_packet_per_dts() private.

There is no reason for it to be public, it's only meant to be used
internally.
tags/n0.11
Anton Khirnov 13 years ago
parent
commit
a6733202cc
5 changed files with 39 additions and 16 deletions
  1. +5
    -13
      libavformat/avformat.h
  2. +1
    -1
      libavformat/gxfenc.c
  3. +18
    -0
      libavformat/internal.h
  4. +12
    -2
      libavformat/utils.c
  5. +3
    -0
      libavformat/version.h

+ 5
- 13
libavformat/avformat.h View File

@@ -1374,23 +1374,15 @@ int av_write_frame(AVFormatContext *s, AVPacket *pkt);
*/ */
int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt);


#if FF_API_INTERLEAVE_PACKET
/** /**
* Interleave a packet per dts in an output media file.
*
* Packets with pkt->destruct == av_destruct_packet will be freed inside this
* function, so they cannot be used after it. Note that calling av_free_packet()
* on them is still safe.
*
* @param s media file handle
* @param out the interleaved packet will be output here
* @param pkt the input packet
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
* < 0 if an error occurred
* @deprecated this function was never meant to be called by the user
* programs.
*/ */
attribute_deprecated
int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush); AVPacket *pkt, int flush);
#endif


/** /**
* Write the stream trailer to an output media file and free the * Write the stream trailer to an output media file and free the


+ 1
- 1
libavformat/gxfenc.c View File

@@ -936,7 +936,7 @@ static int gxf_interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *pk
if (pkt && s->streams[pkt->stream_index]->codec->codec_type == AVMEDIA_TYPE_VIDEO) if (pkt && s->streams[pkt->stream_index]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
pkt->duration = 2; // enforce 2 fields pkt->duration = 2; // enforce 2 fields
return ff_audio_rechunk_interleave(s, out, pkt, flush, return ff_audio_rechunk_interleave(s, out, pkt, flush,
av_interleave_packet_per_dts, gxf_compare_field_nb);
ff_interleave_packet_per_dts, gxf_compare_field_nb);
} }


AVOutputFormat ff_gxf_muxer = { AVOutputFormat ff_gxf_muxer = {


+ 18
- 0
libavformat/internal.h View File

@@ -327,4 +327,22 @@ int ff_framehash_write_header(AVFormatContext *s);
*/ */
int ff_read_packet(AVFormatContext *s, AVPacket *pkt); int ff_read_packet(AVFormatContext *s, AVPacket *pkt);


/**
* Interleave a packet per dts in an output media file.
*
* Packets with pkt->destruct == av_destruct_packet will be freed inside this
* function, so they cannot be used after it. Note that calling av_free_packet()
* on them is still safe.
*
* @param s media file handle
* @param out the interleaved packet will be output here
* @param pkt the input packet
* @param flush 1 if no further packets are available as input and all
* remaining packets should be output
* @return 1 if a packet was output, 0 if no packet could be output,
* < 0 if an error occurred
*/
int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush);

#endif /* AVFORMAT_INTERNAL_H */ #endif /* AVFORMAT_INTERNAL_H */

+ 12
- 2
libavformat/utils.c View File

@@ -3068,7 +3068,9 @@ static int ff_interleave_compare_dts(AVFormatContext *s, AVPacket *next, AVPacke
return comp > 0; return comp > 0;
} }


int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int flush){
int ff_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush)
{
AVPacketList *pktl; AVPacketList *pktl;
int stream_count=0; int stream_count=0;
int i; int i;
@@ -3098,6 +3100,14 @@ int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, AVPacket *pk
} }
} }


#if FF_API_INTERLEAVE_PACKET
int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out,
AVPacket *pkt, int flush)
{
return ff_interleave_packet_per_dts(s, out, pkt, flush);
}
#endif

/** /**
* Interleave an AVPacket correctly so it can be muxed. * Interleave an AVPacket correctly so it can be muxed.
* @param out the interleaved packet will be output here * @param out the interleaved packet will be output here
@@ -3114,7 +3124,7 @@ static int interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *in, in
av_free_packet(in); av_free_packet(in);
return ret; return ret;
} else } else
return av_interleave_packet_per_dts(s, out, in, flush);
return ff_interleave_packet_per_dts(s, out, in, flush);
} }


int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){ int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt){


+ 3
- 0
libavformat/version.h View File

@@ -56,5 +56,8 @@
#ifndef FF_API_READ_PACKET #ifndef FF_API_READ_PACKET
#define FF_API_READ_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55) #define FF_API_READ_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif #endif
#ifndef FF_API_INTERLEAVE_PACKET
#define FF_API_INTERLEAVE_PACKET (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif


#endif /* AVFORMAT_VERSION_H */ #endif /* AVFORMAT_VERSION_H */

Loading…
Cancel
Save