Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwm4 <nfxjfg@googlemail.com>2016-03-22 21:09:53 +0300
committerwm4 <nfxjfg@googlemail.com>2016-04-21 15:23:36 +0300
commit7fc329e2dd6226dfecaa4a1d7adf353bf2773726 (patch)
tree697dd1faba6f7a1104fba355f171da913ca90c78 /libavcodec/internal.h
parenta0b92788a885f4a424d74e04b942ade0cca25403 (diff)
lavc: introduce a new decoding/encoding API with decoupled input/output
Until now, the decoding API was restricted to outputting 0 or 1 frames per input packet. It also enforces a somewhat rigid dataflow in general. This new API seeks to relax these restrictions by decoupling input and output. Instead of doing a single call on each decode step, which may consume the packet and may produce output, the new API requires the user to send input first, and then ask for output. For now, there are no codecs supporting this API. The API can work with codecs using the old API, and most code added here is to make them interoperate. The reverse is not possible, although for audio it might. From Libav commit 05f66706d182eb0c36af54d72614bf4c33e957a9. Signed-off-by: Anton Khirnov <anton@khirnov.net>
Diffstat (limited to 'libavcodec/internal.h')
-rw-r--r--libavcodec/internal.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 6c0efec8b1..be54471ef6 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -160,6 +160,19 @@ typedef struct AVCodecInternal {
* hwaccel-specific private data
*/
void *hwaccel_priv_data;
+
+ /**
+ * checks API usage: after codec draining, flush is required to resume operation
+ */
+ int draining;
+
+ /**
+ * buffers for using new encode/decode API through legacy API
+ */
+ AVPacket *buffer_pkt;
+ int buffer_pkt_valid; // encoding: packet without data can be valid
+ AVFrame *buffer_frame;
+ int draining_done;
} AVCodecInternal;
struct AVCodecDefault {