Browse Source

Merge remote-tracking branch 'qatar/master'

* qatar/master:
  lavf: simplify is_intra_only() by using codec descriptors.
  lavc: add an intra-only codec property.
  lavc: add codec descriptors.
  lavc: fix mixing CODEC_ID/AV_CODEC_ID in C++ code.
  dict: move struct AVDictionary definition to dict.c
  dict: add av_dict_count()

Conflicts:
	doc/APIchanges
	libavcodec/old_codec_ids.h
	libavformat/utils.c
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.0
Michael Niedermayer 13 years ago
parent
commit
f5f3684fb8
11 changed files with 2027 additions and 16 deletions
  1. +7
    -0
      doc/APIchanges
  2. +2
    -0
      libavcodec/Makefile
  3. +52
    -3
      libavcodec/avcodec.h
  4. +1943
    -0
      libavcodec/codec_desc.c
  5. +1
    -4
      libavcodec/old_codec_ids.h
  6. +1
    -1
      libavformat/asfenc.c
  7. +2
    -2
      libavformat/utils.c
  8. +10
    -0
      libavutil/dict.c
  9. +8
    -0
      libavutil/dict.h
  10. +0
    -5
      libavutil/internal.h
  11. +1
    -1
      libavutil/version.h

+ 7
- 0
doc/APIchanges View File

@@ -70,8 +70,15 @@ API changes, most recent first:
2012-03-26 - a67d9cf - lavfi 2.66.100
Add avfilter_fill_frame_from_{audio_,}buffer_ref() functions.

2012-08-08 - xxxxxxx - lavu 51.38 - dict.h
Add av_dict_count().

2012-08-xx - xxxxxxx - lavc 54.25 - avcodec.h
Rename CodecID to AVCodecID and all CODEC_ID_* to AV_CODEC_ID_*.
To provide backwards compatibility, CodecID is now #defined as AVCodecID.
Note that this can break user code that includes avcodec.h and uses the
'CodecID' identifier. Such code should either #undef CodecID or stop using the
CodecID name.

2012-08-03 - xxxxxxx - lavu 51.37.1 - cpu.h
lsws 2.1.1 - swscale.h


+ 2
- 0
libavcodec/Makefile View File

@@ -18,6 +18,7 @@ OBJS = allcodecs.o \
avpacket.o \
bitstream.o \
bitstream_filter.o \
codec_desc.o \
dsputil.o \
faanidct.o \
fmtconvert.o \
@@ -787,6 +788,7 @@ SKIPHEADERS += %_tablegen.h \
aac_tablegen_decl.h \
codec_names.h \
fft-internal.h \
old_codec_ids.h \
tableprint.h \
$(ARCH)/vp56_arith.h \



+ 52
- 3
libavcodec/avcodec.h View File

@@ -77,9 +77,6 @@
* @{
*/

#if FF_API_CODEC_ID
#include "old_codec_ids.h"
#endif

/**
* Identify the syntax and semantics of the bitstream.
@@ -459,8 +456,46 @@ enum AVCodecID {
AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
* stream (only used by libavformat) */
AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information.

#if FF_API_CODEC_ID
#include "old_codec_ids.h"
#endif
};

#if FF_API_CODEC_ID
#define CodecID AVCodecID
#endif

/**
* This struct describes the properties of a single codec described by an
* AVCodecID.
* @see avcodec_get_descriptor()
*/
typedef struct AVCodecDescriptor {
enum AVCodecID id;
enum AVMediaType type;
/**
* Name of the codec described by this descriptor. It is non-empty and
* unique for each codec descriptor. It should contain alphanumeric
* characters and '_' only.
*/
const char *name;
/**
* A more descriptive name for this codec. May be NULL.
*/
const char *long_name;
/**
* Codec properties, a combination of AV_CODEC_PROP_* flags.
*/
int props;
} AVCodecDescriptor;

/**
* Codec uses only intra compression.
* Video codecs only.
*/
#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)

#if FF_API_OLD_DECODE_AUDIO
/* in bytes */
#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
@@ -4793,6 +4828,20 @@ int av_codec_is_encoder(AVCodec *codec);
*/
int av_codec_is_decoder(AVCodec *codec);

/**
* @return descriptor for given codec ID or NULL if no descriptor exists.
*/
const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id);

/**
* Iterate over all codec descriptors known to libavcodec.
*
* @param prev previous descriptor. NULL to get the first descriptor.
*
* @return next descriptor or NULL after the last descriptor
*/
const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev);

/**
* @}
*/


+ 1943
- 0
libavcodec/codec_desc.c
File diff suppressed because it is too large
View File


+ 1
- 4
libavcodec/old_codec_ids.h View File

@@ -19,7 +19,6 @@
#ifndef AVCODEC_OLD_CODEC_IDS_H
#define AVCODEC_OLD_CODEC_IDS_H

#include "libavutil/attributes.h"
#include "libavutil/common.h"

/*
@@ -30,8 +29,7 @@
* Do not add new items to this list. Use the AVCodecID enum instead.
*/

enum CodecID {
CODEC_ID_NONE,
CODEC_ID_NONE = AV_CODEC_ID_NONE,

/* video codecs */
CODEC_ID_MPEG1VIDEO,
@@ -395,6 +393,5 @@ enum CodecID {
CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
* stream (only used by libavformat) */
CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information.
} attribute_deprecated;

#endif /* AVCODEC_OLD_CODEC_IDS_H */

+ 1
- 1
libavformat/asfenc.c View File

@@ -318,7 +318,7 @@ static int asf_write_header1(AVFormatContext *s, int64_t file_size, int64_t data

duration = asf->duration + PREROLL_TIME * 10000;
has_title = tags[0] || tags[1] || tags[2] || tags[3] || tags[4];
metadata_count = s->metadata ? s->metadata->count : 0;
metadata_count = av_dict_count(s->metadata);

bit_rate = 0;
for(n=0;n<s->nb_streams;n++) {


+ 2
- 2
libavformat/utils.c View File

@@ -1157,7 +1157,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
// presentation_delayed, delay, av_ts2str(pkt->pts), av_ts2str(pkt->dts), av_ts2str(st->cur_dts));

/* update flags */
if(is_intra_only(st->codec))
if (is_intra_only(st->codec))
pkt->flags |= AV_PKT_FLAG_KEY;
if (pc)
pkt->convergence_duration = pc->convergence_duration;
@@ -3802,7 +3802,7 @@ static void print_fps(double d, const char *postfix){

static void dump_metadata(void *ctx, AVDictionary *m, const char *indent)
{
if(m && !(m->count == 1 && av_dict_get(m, "language", NULL, 0))){
if(m && !(av_dict_count(m) == 1 && av_dict_get(m, "language", NULL, 0))){
AVDictionaryEntry *tag=NULL;

av_log(ctx, AV_LOG_INFO, "%sMetadata:\n", indent);


+ 10
- 0
libavutil/dict.c View File

@@ -23,6 +23,16 @@
#include "internal.h"
#include "mem.h"

struct AVDictionary {
int count;
AVDictionaryEntry *elems;
};

int av_dict_count(const AVDictionary *m)
{
return m ? m->count : 0;
}

AVDictionaryEntry *
av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
{


+ 8
- 0
libavutil/dict.h View File

@@ -92,6 +92,14 @@ typedef struct AVDictionary AVDictionary;
AVDictionaryEntry *
av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);

/**
* Get number of entries in dictionary.
*
* @param m dictionary
* @return number of entries in dictionary
*/
int av_dict_count(const AVDictionary *m);

/**
* Set the given entry in *pm, overwriting an existing entry.
*


+ 0
- 5
libavutil/internal.h View File

@@ -40,11 +40,6 @@
#include "cpu.h"
#include "dict.h"

struct AVDictionary {
int count;
AVDictionaryEntry *elems;
};

#ifndef attribute_align_arg
#if ARCH_X86_32 && AV_GCC_VERSION_AT_LEAST(4,2)
# define attribute_align_arg __attribute__((force_align_arg_pointer))


+ 1
- 1
libavutil/version.h View File

@@ -39,7 +39,7 @@
*/

#define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 67
#define LIBAVUTIL_VERSION_MINOR 68
#define LIBAVUTIL_VERSION_MICRO 100

#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \


Loading…
Cancel
Save