* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avcodec.h"
+#include "bytestream.h"
#undef NDEBUG
#include <assert.h>
-typedef struct DVDSubtitleContext {
-} DVDSubtitleContext;
-
// ncnt is the nibble counter
#define PUTNIBBLE(val)\
do {\
*pq = q;
}
-static inline void putbe16(uint8_t **pq, uint16_t v)
-{
- uint8_t *q = *pq;
- *q++ = v >> 8;
- *q++ = v;
- *pq = q;
-}
-
static int encode_dvd_subtitles(uint8_t *outbuf, int outbuf_size,
const AVSubtitle *h)
{
// set data packet size
qq = outbuf + 2;
- putbe16(&qq, q - outbuf);
+ bytestream_put_be16(&qq, q - outbuf);
// send start display command
- putbe16(&q, (h->start_display_time*90) >> 10);
- putbe16(&q, (q - outbuf) /*- 2 */ + 8 + 12*rects + 2);
+ bytestream_put_be16(&q, (h->start_display_time*90) >> 10);
+ bytestream_put_be16(&q, (q - outbuf) /*- 2 */ + 8 + 12*rects + 2);
*q++ = 0x03; // palette - 4 nibbles
*q++ = 0x03; *q++ = 0x7f;
*q++ = 0x04; // alpha - 4 nibbles
*q++ = 0x06;
// offset1, offset2
- putbe16(&q, offset1[object_id]);
- putbe16(&q, offset2[object_id]);
+ bytestream_put_be16(&q, offset1[object_id]);
+ bytestream_put_be16(&q, offset2[object_id]);
}
*q++ = 0x01; // start command
*q++ = 0xff; // terminating command
// send stop display command last
- putbe16(&q, (h->end_display_time*90) >> 10);
- putbe16(&q, (q - outbuf) - 2 /*+ 4*/);
+ bytestream_put_be16(&q, (h->end_display_time*90) >> 10);
+ bytestream_put_be16(&q, (q - outbuf) - 2 /*+ 4*/);
*q++ = 0x02; // set end
*q++ = 0xff; // terminating command
qq = outbuf;
- putbe16(&qq, q - outbuf);
+ bytestream_put_be16(&qq, q - outbuf);
av_log(NULL, AV_LOG_DEBUG, "subtitle_packet size=%td\n", q - outbuf);
return q - outbuf;
"dvdsub",
CODEC_TYPE_SUBTITLE,
CODEC_ID_DVD_SUBTITLE,
- sizeof(DVDSubtitleContext),
+ 0,
dvdsub_init_encoder,
dvdsub_encode,
dvdsub_close_encoder,