diff mbox

[FFmpeg-devel,2/2] avcodec: mark AV_CODEC_CAP_SUBFRAMES as deprecated

Message ID 20171231130728.5335-2-atomnuker@gmail.com
State New
Headers show

Commit Message

Rostislav Pehlivanov Dec. 31, 2017, 1:07 p.m. UTC
The new decoding API supports 1 avpkt -> multiple avframes natively.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
---
 libavcodec/avcodec.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

wm4 Dec. 31, 2017, 1:13 p.m. UTC | #1
On Sun, 31 Dec 2017 13:07:28 +0000
Rostislav Pehlivanov <atomnuker@gmail.com> wrote:

> The new decoding API supports 1 avpkt -> multiple avframes natively.
> 
> Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
> ---
>  libavcodec/avcodec.h | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 5a27211b80..7e74c3b01c 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -985,6 +985,7 @@ typedef struct RcOverride{
>   */
>  #define AV_CODEC_CAP_SMALL_LAST_FRAME    (1 <<  6)
>  
> +#if FF_API_OLD_CODING
>  /**
>   * Codec can output multiple frames per AVPacket
>   * Normally demuxers return one frame at a time, demuxers which do not do
> @@ -995,8 +996,10 @@ typedef struct RcOverride{
>   * may return multiple frames in a packet. This has many disadvantages like
>   * prohibiting stream copy in many cases thus it should only be considered
>   * as a last resort.
> + * @deprecated the new decoding API handles this natively
>   */
>  #define AV_CODEC_CAP_SUBFRAMES           (1 <<  8)
> +#endif
>  /**
>   * Codec is experimental and is thus avoided in favor of non experimental
>   * encoders

That is completely orthogonal. The old API didn't require checking this
either. (And some codecs are incorrectly marked anyway.)
Rostislav Pehlivanov Dec. 31, 2017, 1:23 p.m. UTC | #2
On 31 December 2017 at 13:13, wm4 <nfxjfg@googlemail.com> wrote:

> On Sun, 31 Dec 2017 13:07:28 +0000
> Rostislav Pehlivanov <atomnuker@gmail.com> wrote:
>
> > The new decoding API supports 1 avpkt -> multiple avframes natively.
> >
> > Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
> > ---
> >  libavcodec/avcodec.h | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > index 5a27211b80..7e74c3b01c 100644
> > --- a/libavcodec/avcodec.h
> > +++ b/libavcodec/avcodec.h
> > @@ -985,6 +985,7 @@ typedef struct RcOverride{
> >   */
> >  #define AV_CODEC_CAP_SMALL_LAST_FRAME    (1 <<  6)
> >
> > +#if FF_API_OLD_CODING
> >  /**
> >   * Codec can output multiple frames per AVPacket
> >   * Normally demuxers return one frame at a time, demuxers which do not
> do
> > @@ -995,8 +996,10 @@ typedef struct RcOverride{
> >   * may return multiple frames in a packet. This has many disadvantages
> like
> >   * prohibiting stream copy in many cases thus it should only be
> considered
> >   * as a last resort.
> > + * @deprecated the new decoding API handles this natively
> >   */
> >  #define AV_CODEC_CAP_SUBFRAMES           (1 <<  8)
> > +#endif
> >  /**
> >   * Codec is experimental and is thus avoided in favor of non
> experimental
> >   * encoders
>
> That is completely orthogonal. The old API didn't require checking this
> either. (And some codecs are incorrectly marked anyway.)
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Either way, we should deprecate this so its removed at the same time as the
old api.
The incorrectly marked codecs will be fixed when we port all decoders and
encoders to the new api.
wm4 Jan. 4, 2018, 5:38 p.m. UTC | #3
On Sun, 31 Dec 2017 13:23:44 +0000
Rostislav Pehlivanov <atomnuker@gmail.com> wrote:

> On 31 December 2017 at 13:13, wm4 <nfxjfg@googlemail.com> wrote:
> 
> > On Sun, 31 Dec 2017 13:07:28 +0000
> > Rostislav Pehlivanov <atomnuker@gmail.com> wrote:
> >  
> > > The new decoding API supports 1 avpkt -> multiple avframes natively.
> > >
> > > Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
> > > ---
> > >  libavcodec/avcodec.h | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > > index 5a27211b80..7e74c3b01c 100644
> > > --- a/libavcodec/avcodec.h
> > > +++ b/libavcodec/avcodec.h
> > > @@ -985,6 +985,7 @@ typedef struct RcOverride{
> > >   */
> > >  #define AV_CODEC_CAP_SMALL_LAST_FRAME    (1 <<  6)
> > >
> > > +#if FF_API_OLD_CODING
> > >  /**
> > >   * Codec can output multiple frames per AVPacket
> > >   * Normally demuxers return one frame at a time, demuxers which do not  
> > do  
> > > @@ -995,8 +996,10 @@ typedef struct RcOverride{
> > >   * may return multiple frames in a packet. This has many disadvantages  
> > like  
> > >   * prohibiting stream copy in many cases thus it should only be  
> > considered  
> > >   * as a last resort.
> > > + * @deprecated the new decoding API handles this natively
> > >   */
> > >  #define AV_CODEC_CAP_SUBFRAMES           (1 <<  8)
> > > +#endif
> > >  /**
> > >   * Codec is experimental and is thus avoided in favor of non  
> > experimental  
> > >   * encoders  
> >
> > That is completely orthogonal. The old API didn't require checking this
> > either. (And some codecs are incorrectly marked anyway.)
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >  
> 
> Either way, we should deprecate this so its removed at the same time as the
> old api.
> The incorrectly marked codecs will be fixed when we port all decoders and
> encoders to the new api.

I don't mind. The CAP never made too much sense to me anyway. You
should probably still update the commit message - the old decoding API
could do this too, just in a more awkward way.
diff mbox

Patch

diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 5a27211b80..7e74c3b01c 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -985,6 +985,7 @@  typedef struct RcOverride{
  */
 #define AV_CODEC_CAP_SMALL_LAST_FRAME    (1 <<  6)
 
+#if FF_API_OLD_CODING
 /**
  * Codec can output multiple frames per AVPacket
  * Normally demuxers return one frame at a time, demuxers which do not do
@@ -995,8 +996,10 @@  typedef struct RcOverride{
  * may return multiple frames in a packet. This has many disadvantages like
  * prohibiting stream copy in many cases thus it should only be considered
  * as a last resort.
+ * @deprecated the new decoding API handles this natively
  */
 #define AV_CODEC_CAP_SUBFRAMES           (1 <<  8)
+#endif
 /**
  * Codec is experimental and is thus avoided in favor of non experimental
  * encoders