}
AVFormatContextWithCloser avformat_open_input_unique(
- const char *pathname, AVInputFormat *fmt,
+ const char *pathname, const AVInputFormat *fmt,
AVDictionary **options)
{
return avformat_open_input_unique(pathname, fmt, options, AVIOInterruptCB{ nullptr, nullptr });
}
AVFormatContextWithCloser avformat_open_input_unique(
- const char *pathname, AVInputFormat *fmt,
+ const char *pathname, const AVInputFormat *fmt,
AVDictionary **options,
const AVIOInterruptCB &interrupt_cb)
{
AVFormatContext *format_ctx = avformat_alloc_context();
format_ctx->interrupt_callback = interrupt_cb;
+#ifdef ff_const59
+ if (avformat_open_input(&format_ctx, pathname, const_cast<ff_const59 AVInputFormat *>(fmt), options) != 0) {
+#else
if (avformat_open_input(&format_ctx, pathname, fmt, options) != 0) {
+#endif
format_ctx = nullptr;
}
return AVFormatContextWithCloser(format_ctx);
AVFormatContextWithCloser avformat_open_input_unique(
int (*read_packet)(void *opaque, uint8_t *buf, int buf_size),
- void *opaque, AVInputFormat *fmt, AVDictionary **options,
+ void *opaque, const AVInputFormat *fmt, AVDictionary **options,
const AVIOInterruptCB &interrupt_cb)
{
AVFormatContext *format_ctx = avformat_alloc_context();
unsigned char *buf = (unsigned char *)av_malloc(buf_size);
format_ctx->pb = avio_alloc_context(buf, buf_size, /*write_flag=*/false, opaque,
read_packet, /*write_packet=*/nullptr, /*seek=*/nullptr);
+#ifdef ff_const59
+ if (avformat_open_input(&format_ctx, "", const_cast<ff_const59 AVInputFormat *>(fmt), options) != 0) {
+#else
if (avformat_open_input(&format_ctx, "", fmt, options) != 0) {
+#endif
format_ctx = nullptr;
}
return AVFormatContextWithCloser(format_ctx);
return AVFrameWithDeleter(av_frame_alloc());
}
+// AVPacket
+void av_packet_free_unique::operator() (AVPacket *packet) const
+{
+ av_packet_unref(packet);
+}
+
+AVPacketWithDeleter av_packet_alloc_unique()
+{
+ return AVPacketWithDeleter(av_packet_alloc());
+}
+
// SwsContext
void sws_free_context_unique::operator() (SwsContext *context) const