Browse Source

Merge commit 'b08569a23948db107e5e6175cd4c695427d5339d'

* commit 'b08569a23948db107e5e6175cd4c695427d5339d':
  lavf: Replace the ASF demuxer

Conflicts:
	Changelog
	libavformat/asf.h
	libavformat/asfdec.c
	libavformat/version.h
	tests/ref/fate/wmv8-drm-nodec
	tests/ref/seek/lavf-asf

The rewritten demuxer is placed in a new file, the current demuxer is
left as default. Carl has tested both and the one working better is
default.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.8
Michael Niedermayer 10 years ago
parent
commit
30b8f3e7dc
9 changed files with 1773 additions and 34 deletions
  1. +1
    -0
      Changelog
  2. +1
    -0
      configure
  3. +2
    -0
      libavformat/Makefile
  4. +1
    -0
      libavformat/allformats.c
  5. +0
    -32
      libavformat/asf.h
  6. +1702
    -0
      libavformat/asfdec-o.c
  7. +32
    -0
      libavformat/asfdec.c
  8. +32
    -0
      libavformat/asfenc.c
  9. +2
    -2
      libavformat/version.h

+ 1
- 0
Changelog View File

@@ -8,6 +8,7 @@ version <next>:
- Hap decoder and encoder
- DirectDraw Surface image/texture decoder
- ssim filter
- rewritten ASF demuxer


version 2.7:


+ 1
- 0
configure View File

@@ -2503,6 +2503,7 @@ nvenc_hevc_encoder_deps="nvenc"
# demuxers / muxers
ac3_demuxer_select="ac3_parser"
asf_demuxer_select="riffdec"
asf_o_demuxer_select="riffdec"
asf_muxer_select="riffenc"
asf_stream_muxer_select="asf_muxer"
avi_demuxer_select="riffdec exif"


+ 2
- 0
libavformat/Makefile View File

@@ -84,6 +84,8 @@ OBJS-$(CONFIG_APNG_MUXER) += apngenc.o
OBJS-$(CONFIG_AQTITLE_DEMUXER) += aqtitledec.o subtitles.o
OBJS-$(CONFIG_ASF_DEMUXER) += asfdec.o asf.o asfcrypt.o \
avlanguage.o
OBJS-$(CONFIG_ASF_O_DEMUXER) += asfdec-o.o asf.o asfcrypt.o \
avlanguage.o
OBJS-$(CONFIG_ASF_MUXER) += asfenc.o asf.o
OBJS-$(CONFIG_ASS_DEMUXER) += assdec.o subtitles.o
OBJS-$(CONFIG_ASS_MUXER) += assenc.o


+ 1
- 0
libavformat/allformats.c View File

@@ -77,6 +77,7 @@ void av_register_all(void)
REGISTER_MUXDEMUX(APNG, apng);
REGISTER_DEMUXER (AQTITLE, aqtitle);
REGISTER_MUXDEMUX(ASF, asf);
REGISTER_DEMUXER (ASF_O, asf_o);
REGISTER_MUXDEMUX(ASS, ass);
REGISTER_MUXDEMUX(AST, ast);
REGISTER_MUXER (ASF_STREAM, asf_stream);


+ 0
- 32
libavformat/asf.h View File

@@ -28,38 +28,6 @@

#define PACKET_SIZE 3200

typedef struct ASFPayload {
uint8_t type;
uint16_t size;
} ASFPayload;

typedef struct ASFStream {
int num;
unsigned char seq;
/* use for reading */
AVPacket pkt;
int frag_offset;
int packet_obj_size;
int timestamp;
int64_t duration;
int skip_to_key;
int pkt_clean;

int ds_span; /* descrambling */
int ds_packet_size;
int ds_chunk_size;

int64_t packet_pos;

uint16_t stream_language_index;

int palette_changed;
uint32_t palette[256];

int payload_ext_ct;
ASFPayload payload[8];
} ASFStream;

typedef struct ASFMainHeader {
ff_asf_guid guid; ///< generated by client computer
uint64_t file_size; /**< in bytes


+ 1702
- 0
libavformat/asfdec-o.c
File diff suppressed because it is too large
View File


+ 32
- 0
libavformat/asfdec.c View File

@@ -39,6 +39,38 @@
#include "asf.h"
#include "asfcrypt.h"

typedef struct ASFPayload {
uint8_t type;
uint16_t size;
} ASFPayload;

typedef struct ASFStream {
int num;
unsigned char seq;
/* use for reading */
AVPacket pkt;
int frag_offset;
int packet_obj_size;
int timestamp;
int64_t duration;
int skip_to_key;
int pkt_clean;

int ds_span; /* descrambling */
int ds_packet_size;
int ds_chunk_size;

int64_t packet_pos;

uint16_t stream_language_index;

int palette_changed;
uint32_t palette[256];

int payload_ext_ct;
ASFPayload payload[8];
} ASFStream;

typedef struct ASFContext {
const AVClass *class;
int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID


+ 32
- 0
libavformat/asfenc.c View File

@@ -183,6 +183,38 @@

#define DATA_HEADER_SIZE 50

typedef struct ASFPayload {
uint8_t type;
uint16_t size;
} ASFPayload;

typedef struct ASFStream {
int num;
unsigned char seq;
/* use for reading */
AVPacket pkt;
int frag_offset;
int packet_obj_size;
int timestamp;
int64_t duration;
int skip_to_key;
int pkt_clean;

int ds_span; /* descrambling */
int ds_packet_size;
int ds_chunk_size;

int64_t packet_pos;

uint16_t stream_language_index;

int palette_changed;
uint32_t palette[256];

int payload_ext_ct;
ASFPayload payload[8];
} ASFStream;

typedef struct ASFContext {
uint32_t seqno;
int is_streamed;


+ 2
- 2
libavformat/version.h View File

@@ -30,8 +30,8 @@
#include "libavutil/version.h"

#define LIBAVFORMAT_VERSION_MAJOR 56
#define LIBAVFORMAT_VERSION_MINOR 38
#define LIBAVFORMAT_VERSION_MICRO 102
#define LIBAVFORMAT_VERSION_MINOR 39
#define LIBAVFORMAT_VERSION_MICRO 100

#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \


Loading…
Cancel
Save